Nuxeo EP provides several types of API :
- Java local API
- Java remote API
- WebService (JAX-WS) API
- REST (JAX-RS) API
- AMF (Flash) API
Since Nuxeo EP is built using the java language, only the Java local API can be used to extend Nuxeo.
When running in the same JVM as Nuxeo you have access to all Nuxeo API (components and services).
All other APIs provide remote access and allow you to call some Nuxeo Services from an external application. These are typically the APIs you may use to integrate Nuxeo with third party application. For more information about this topic, please see : Using Nuxeo as a service platform.
Content oriented Protocols
You can also access Nuxeo EP content via a "standard" protocol.
Nuxeo EP currently supports:
- Windows Sharepoint Services protocol (only the subset used by MS Office and MS Explorer).
Compared to the APIs, these protocols won't give you access to services but directly to the content.
Depending on the chosen protocol, your access to Nuxeo Content will be more or less powerful:
- CMIS gives you access to a big subset of the data managed by Nuxeo.
- WebDav and WSS mainly map Nuxeo's content as a file-system (with all the associated limitations).
These protocols may be useful in several use cases:
- Desktop integration,
- To allow a portal or a WCM solution to access Nuxeo's content.
For more information, please see the section dedicated to Repository access.
Inside Nuxeo EP, directories are used to provide a abstraction on all referencial data that can be manipulated inside the application.
These data can be:
- groups of users,
- fixed list of values (vocabularies),
Basically we try to map all data that can be manipulated like record via directories. For that, directories provide a simple CRUD API and an abstraction on the actual implementation. This means that the services of the platform do not have to worry about where and how the data is stored, they just access the API.
Directories comes with several implementations:
- SQL Directories that can map SQL tables,
- LDAP Directories that can map a LDAP server,
- Multi-Directory that allow to combine several directories into a single one.
A frequent use case is also to use the directory abstraction to map a given webservice or application that manages centralized data.
(We provide a connector sample for that.)
Authentication and User management
Authentication and user management is also a typical use case for integration between Nuxeo EP and existing infrastructures:
- integrating a Single Sign On system,
- integrating an application that manage users profiles,
- integrating an application that manage groups.
As seen above, directories provide part of the solution. But in order to be able to integrate a lot of different authentication use cases, Nuxeo EP authentication system was designed to be very pluggable.
The initial identification can be done at Java level via JAAS or at Http level via a dedicated filter. The filter is pluggable so that the way of retrieving credentials can be an adapter to the target system. The JAAS login module is also pluggable so that you can define how the credentials are validated. By default, credentials are validated against directory that use LDAP, SQL or an external application.
Integration via Nuxeo Event system
When you need to integrate some features of an external application into Nuxeo, or want Nuxeo to push data into an external application, using Nuxeo Event system is usually a good solution.