This is something that's causing me some conceptual difficulty. The problem is this: ACS introduces a fair amount of overhead, under the rubric of "doing things right the first time." But then a lot of the core system is incomplete, and so, in the worst-case scenario, you end up spending a lot of time and effort for nothing. A lot of people are doing very good work to finish packages and correct semi-implemented architecture; in the meantime, I'm trying to figure out how to get the best tradeoffs for my own work, and how to document them for others to make informed tradeoffs. And this acs_core stuff is a key point.
Making some of the records in your new package acs_objects takes a lot of effort. A bunch of extra code in the database creation scripts, and then many relational integrity links that can make adding and deleting very frustrating if anything goes wrong. What do you get back in return? Access to a fairly clean, simple, and powerful permissions API. And a consistent way to store and access meta-data. What meta-data? Name, owner, creation and modified date, creation ip.
Okay, now how do you access this meta-data? One way is to join, but there is an argument that joining directly breaks information hiding. Another way is to call a function, but as far as I know a function only exists for name, and I've read posts that say it's to inefficient for big queries.
So my questions are:
What's the best way to get to this meta-data now? If there are several, what's the quick rule of thumb to decide which is appropriate?
What architectural stuff is proposed or already happening to change this?
URL seems like another good piece of data to have universally available. I see another thread about how to build this efficiently. How can we move forward on this?