Comparative table between JCR, EDP and user management systems
This summary table provides for a list of key data types the differences between their management within the JCR, which is limitless, and the list of available actions and expected results when managed within an External Data or a User Provider connected to Jahia.
|Within the JCR
|What you can do with the External Data Provider
|What you can do with the Users provider
|Can provide its own UUID, or let the EDP generate one.
|Users/groups are identified by their name only. A UUID is generated by EDP for every user/group/member node.
|All types/i18n/multiple supported
|No i18n or binary properties. Multiple values supported.
|Internal or external references supported.
|No reference properties for users/groups. Group members internally references users and groups from the same provider.
|Search - JCR-SQL2 queries
|QOM model passed to EDP, up to implementation to parse and execute the query as it can. QueryHelper is provided to help parsing of simple query, but do not support all type of constraints (1 type of boolean operators, only = comparison)
Queries results are aggregated sequentially for each provider, so global ordering may not be consistent.
|QOM is interpreted and query is transformed into a simple key-value pair criteria, on users and groups nodes only. Only simple AND or OR search can be done, no combination of both. Complex queries cannot be implemented in users provider. Cannot do query on member nodes. Ordering not supported.
|Listeners and rules
|Not supported yet
|Publication not supported : content is visible in default and live. This applies on external nodes, but also on extensions
|Same as EDP - but it can be confusing that extensions nodes (content stored under users and groups) do not support publication.
|ACL and permissions
|Can set ACLs on any node as an extension (stored in JR) if the provider does not give its own ACL.
|User nodes have Extensions node (content added under the users and the groups) can have custom ACLs set by the user
|Can define a writeable provider