Addons

Nuxeo Federation Framework

Updated: December 4, 2024

The Nuxeo Federation Framework allows users to search, find and view documents stored in an external system, thanks to Nuxeo federation capabilities. Binary files can either be copied in Nuxeo repository or remain "in-place".

Watch the related video on Hyland University:
Product News - Nuxeo Federation Framework.
nuxeo-federation-university.png
nuxeo-federation-university.png
Simflofy is a Federation and Integration platform for content management. It provides ways to search or migrate data across multiple content repositories.

Synchronization Process

The synchronization is done according to the following scenario:

  1. Simflofy queries 3rd party repositories to fetch content based on rules that can be specified (New documents, modified documents, etc.).
  2. Simflofy creates documents in Nuxeo with references to these contents.
  3. Nuxeo is then able to access the documents that are stored in those 3rd party repositories.

Simflofy documents are now stored in Nuxeo like any other document.

Installation

Simflofy requirements
Note that Simflofy requires MongoDB 3.4.x as a database.

Configuration

Nuxeo Configuration

This addon comes with a Blob Provider that enables access from Nuxeo to any content that Simflofy knows how to federate. This blob provider is configurable with the following parameters:

  • nuxeo.simflofy.url: the Simflofy URL.
  • nuxeo.simflofy.username: the username that Nuxeo use to access Simflofy.
  • nuxeo.simflofy.password: the password that Nuxeo use to access Simflofy.
  • nuxeo.simflofy.createFromKey.users: the list of users that can create blobs in this blob provider (separated by commas).

Full access
nuxeo.simflofy.createFromKey.users=* allows all users to be able to create blobs.

Example:

nuxeo.simflofy.url=http://localhost:8080/simflofy-admin
nuxeo.simflofy.username=admin
nuxeo.simflofy.password=admin
nuxeo.simflofy.createFromKey.users=user1,user2...

These configuration parameters should be provided in the configuration file nuxeo.conf.

Connector Configuration

Authentication Connection

First, create an authentication entry for all the systems you need to federate.

simflofy-authentication1.png
simflofy-authentication1.png

Each system has a specific authentication screen. Enter your credentials and any additional information needed for the authentication.

simflofy-authentication2.png
simflofy-authentication2.png

Repository Connection

Once the authentication configuration is set, create a repository connection which will use the authentication connection you've just defined.

repository-connection1.png
repository-connection1.png

Validate your configuration by clicking on the Test button.

repository-connection4.png
repository-connection4.png

Content Service Connection

The content service connection allows you to use the addon for "in-place" federation. Thus, it is not needed if you only need to migrate content.

  1. Set the Security Mode to Simflofy Authentication Connection.
  2. Reuse the authentication connection you've initially created.
  3. Optionally, edit the additional default settings.

content-service-connection.png
content-service-connection.png

Output Connection

An output connection is necessary to indicate the target folder of the Nuxeo repository. It is typically something like /default-domain/workspaces/federation-folder.

nuxeo-output-connector.png
nuxeo-output-connector.png

The Nuxeo Config tab indicates the folder where federated documents will be found.

nuxeo-output-connector2.png
nuxeo-output-connector2.png

Discovery

A discovery is a mechanism to retrieve all the document types and document properties available in a specific system. It is necessary to create a discovery instance if you need to establish a particular mapping between system: without discovery, you'll have to create the mapping manually, without any suggestion (and consequently, increase the federation error rate).

A discovery instance needs an authentication connection and additional properties.

Once created, you can run a report to view the discovery results.

nuxeo-discovery.png
nuxeo-discovery.png

Federation Job

The federation jobs are the cornerstone of the federation process. A job concerns one source system and one target system. Consequently, if you need to federate three applications to Nuxeo, you'll need three jobs.

At the time of writing, in the case of bidirectional synchronization, you need to create one job per synchronization direction.

nuxeo-job-main.png
nuxeo-job-main.png

Click on Add a New Job button to create a new job and fill in the information in the different tabs.

Job Description

In the Details tab, you need to indicate:

  • The repository connection and the content services for the federation mechanism (source system).
  • The output connection (target system).
  • The migration type (simple migration, incremental migration or polling).

in place federation
In the Advanced Options, uncheck the Include Binary checkbox if you're federating content. The connector won't work if this option is activated with "in place" federation.

job-details.png
job-details.png

Tasks

The Task tab allows you to perform predefined actions on the federated content.

For example:

  • The Override Folder Path Task helps you to build the target path according to document properties (in the case you don't want to replicate the same folder structure).
  • The Generic ACL Mapper Task allows you to map permissions.

job-tasks.png
job-tasks.png

Mappings

The Mappings tab allows you to map document types as well as document properties. If you've run a discovery on the federated systems, then the connector offers you suggestion mechanism. On the left side, the source system information is listed and the target system on the right side.

  1. Select the discovery instance.
  2. Select the document type mapping.
  3. Select the property mapping (Simflofy will indicate you the field nature to ensure mapping coherence).
  4. Click on the + button to validate.

You can use Calculated Field if you need to set the same value to a specific property.

nuxeo-mapping.png
nuxeo-mapping.png

Additional Information

Depending on the system you're federating, some extra tabs will appear. For example, in the case of a CMIS connection, you can restrict the document you wish to federate with a CMIS Query:

cmis-query.png
cmis-query.png

Job Execution

Once your job is configured, you can run it from the Job Status and Monitoring menu. Click on the Start link to trigger the job and then on the Refresh button to see the federation process status.

You can view among other metrics:

  • The number on document retrieved from the source system.
  • The number of created/modified documents in the target system.
  • The number of synchronization errors.
  • The job execution time.

job-report.png
job-report.png

If you need to execute the federation job automatically, then you'll have to set up a job runner. This process runs a specific federation job periodically. More information on the Documentation Site.

You can view the job report by clicking on the numbers displayed in each column (Read, Written, Errors...) to list the exhaustive list of related documents:

job-report2.png
job-report2.png

Functional Overview

Data Sources

You can store in Nuxeo a huge variety of document types:

  • Files stored in a flat folder structure: Either in a filesystem or a remote cloud storage unit such as Amazon S3 or Microsoft Azure.
  • Similarly, you can federate content stored in the major file storage and synchronization cloud application (Google Drive, Dropbox, Box, etc.).
  • Documents stored in a legacy document management system. In this scenario, the federation configuration is more complex as you would need to map document properties, document permissions, document ownership, document versions, etc.
  • Information stored in specific applications with an existing Simflofy connector (Twitter, Microsoft Exchange, Salesforce...) or in a structured application (as a relational database for example)

Integration Scenario

The Nuxeo Federation Framework addon allows you to run two different scenario:

  1. In the main cases, users are willing to federate their document repositories within Nuxeo. It means the document remains in the third party applications, but users are able to search, find and view them in Nuxeo transparently. From a end-user perspective, the federation is totally transparent so a user don't know necessarily if a document is stored in Nuxeo or any other application

  2. If the external document repository aims at being decommissioned, then the connector allows you to migrate the content into Nuxeo. Technically, it means the binaries are copied in Nuxeo.