Platform Explorer / Nuxeo Platform LTS 2019 10.10

Extension point directories

Registration of generic directories. Generic directories are usable only as extensions to other directories which have been defined as templates.

First, register a template directory:

    <extension point="directories" target="org.nuxeo.ecm.directory.sql.SQLDirectoryFactory">
        <directory name="template-dir" template="true">
            <dataSource>java:/nxsqldirectory</dataSource>
            <createTablePolicy>always</createTablePolicy>
            <querySizeLimit>100</querySizeLimit>
        </directory>
    </extension>

Then use a generic directory to provide specific customizations:

    <extension point="directories" target="org.nuxeo.ecm.directory.GenericDirectory">
        <directory extends="template-dir" name="my-directory">
            <schema>myschema</schema>
            <table>mytable</table>
            <idField>id</idField>
            <passwordField>password</passwordField>
            <passwordHashAlgorithm>SSHA</passwordHashAlgorithm>
            <substringMatchType>subany</substringMatchType>
            <cacheTimeout>3600</cacheTimeout>
            <cacheMaxSize>1000</cacheMaxSize>
            <!-- <dataFile>my-directory.csv</dataFile> -->
        </directory>
    </extension>

Contribution Descriptor

Existing Contributions

  • nuxeo-routing-core-10.10.jar /OSGI-INF/document-routing-directories-contrib.xml
    <extension point="directories" target="org.nuxeo.ecm.directory.GenericDirectory">
    
        <directory extends="template-vocabulary" name="execution_type">
          <table>ecp-note-type</table>
          <dataFile>directories/execution_type.csv</dataFile>
          <types>
            <type>system</type>
          </types>
        </directory>
    
      </extension>
  • nuxeo-routing-default-10.10.jar /OSGI-INF/extensions.xml
    <extension point="directories" target="org.nuxeo.ecm.directory.GenericDirectory">
        <directory extends="template-vocabulary" name="WorkflowType">
          <autoincrementIdField>false</autoincrementIdField>
          <createTablePolicy>on_missing_columns</createTablePolicy>
          <table>studio_vocabulary_WorkflowType</table>
          <dataFile>data/vocabularies/WorkflowType.csv</dataFile>
          <cacheEntryName>vocab-WorkflowType-cache</cacheEntryName>
          <cacheEntryWithoutReferencesName>vocab-WorkflowType-cache-without-references</cacheEntryWithoutReferencesName>
        </directory>
      </extension>
  • nuxeo-platform-login-token-10.10.jar /OSGI-INF/token-authentication-directory-contrib.xml
    <extension point="directories" target="org.nuxeo.ecm.directory.GenericDirectory">
    
        <directory extends="template-directory" name="authTokens">
          <schema>authtoken</schema>
          <idField>token</idField>
          <table>auth_tokens</table>
          <types>
            <type>system</type>
          </types>
          <permissions>
            <permission name="Read">
              <group>__Nobody__</group>
            </permission>
          </permissions>
          <!-- Set cache to 5 minutes -->
          <cacheTimeout>300</cacheTimeout>
          <cacheMaxSize>1000</cacheMaxSize>
        </directory>
    
      </extension>
  • nuxeo-multi-tenant-core-10.10.jar /OSGI-INF/directories-contrib.xml
    <extension point="directories" target="org.nuxeo.ecm.directory.GenericDirectory">
    
        <directory extends="template-directory" name="tenants">
          <schema>tenant</schema>
          <idField>id</idField>
          <entryCacheName>tenants-cache</entryCacheName>
          <entryCacheWithoutReferencesName>tenants-cache-without-ref</entryCacheWithoutReferencesName>
        </directory>
    
        <directory extends="template-directory" name="topic">
          <schema>multitenantvocabulary</schema>
          <idField>id</idField>
          <dataFile>directories/topic.csv</dataFile>
          <entryCacheName>topic-cache</entryCacheName>
          <entryCacheWithoutReferencesName>topic-cache-without-ref</entryCacheWithoutReferencesName>
          <deleteConstraint class="org.nuxeo.ecm.directory.HierarchicalDirectoryDeleteConstraint">
            <property name="targetDirectory">subtopic</property>
            <property name="targetDirectoryField">parent</property>
          </deleteConstraint>
        </directory>
    
        <directory extends="template-directory" name="subtopic">
          <schema>multitenantxvocabulary</schema>
          <idField>id</idField>
          <parentDirectory>topic</parentDirectory>
          <dataFile>directories/subtopic.csv</dataFile>
          <entryCacheName>subtopic-cache</entryCacheName>
          <entryCacheWithoutReferencesName>subtopic-cache-without-ref</entryCacheWithoutReferencesName>
        </directory>
    
        <directory extends="template-directory" name="l10nsubjects">
          <schema>multitenantl10nxvocabulary</schema>
          <idField>id</idField>
          <parentDirectory>l10nsubjects</parentDirectory>
          <dataFile>directories/l10nsubjects.csv</dataFile>
          <entryCacheName>l10nsubjects-cache</entryCacheName>
          <entryCacheWithoutReferencesName>l10nsubjects-cache-without-ref</entryCacheWithoutReferencesName>
          <deleteConstraint class="org.nuxeo.ecm.directory.HierarchicalDirectoryDeleteConstraint">
            <property name="targetDirectory">l10nsubjects</property>
            <property name="targetDirectoryField">parent</property>
          </deleteConstraint>
        </directory>
    
        <directory extends="template-directory" name="l10ncoverage">
          <schema>multitenantl10nxvocabulary</schema>
          <idField>id</idField>
          <parentDirectory>l10ncoverage</parentDirectory>
          <dataFile>directories/l10ncoverage.csv</dataFile>
          <entryCacheName>l10ncoverage-cache</entryCacheName>
          <entryCacheWithoutReferencesName>l10ncoverage-cache-without-ref</entryCacheWithoutReferencesName>
          <deleteConstraint class="org.nuxeo.ecm.directory.HierarchicalDirectoryDeleteConstraint">
            <property name="targetDirectory">l10ncoverage</property>
            <property name="targetDirectoryField">parent</property>
          </deleteConstraint>
        </directory>
    
      </extension>
  • nuxeo-permissions-10.10.jar /OSGI-INF/directories-contrib.xml
    <extension point="directories" target="org.nuxeo.ecm.directory.GenericDirectory">
    
        <directory extends="template-directory" name="aceinfo">
          <schema>aceinfo</schema>
          <idField>id</idField>
          <types>
            <type>system</type>
          </types>
          <permissions>
            <permission name="Read">
              <group>__Nobody__</group>
            </permission>
          </permissions>
        </directory>
    
      </extension>
  • nuxeo-platform-oauth-10.10.jar /OSGI-INF/directory-contrib.xml
    <extension point="directories" target="org.nuxeo.ecm.directory.GenericDirectory">
    
        <directory extends="template-directory" name="oauth2ServiceProviders">
          <schema>oauth2ServiceProvider</schema>
          <idField>id</idField>
          <autoincrementIdField>true</autoincrementIdField>
          <substringMatchType>subfinal</substringMatchType>
          <types>
            <type>system</type>
          </types>
          <permissions>
            <permission name="Read">
              <group>___Nobody___</group>
            </permission>
          </permissions>
        </directory>
    
        <directory extends="template-directory" name="oauth2Tokens">
          <schema>oauth2Token</schema>
          <idField>id</idField>
          <autoincrementIdField>true</autoincrementIdField>
          <types>
            <type>system</type>
          </types>
          <permissions>
            <permission name="Read">
              <group>__Nobody__</group>
            </permission>
          </permissions>
        </directory>
    
        <directory extends="template-directory" name="oauth2Clients">
          <schema>oauth2Client</schema>
          <idField>id</idField>
          <autoincrementIdField>true</autoincrementIdField>
          <dataFile>directories/oauth2clients.csv</dataFile>
          <types>
            <type>system</type>
          </types>
          <permissions>
            <permission name="Read">
              <group>__Nobody__</group>
            </permission>
          </permissions>
        </directory>
    
      </extension>
  • nuxeo-platform-oauth1-10.10.jar /OSGI-INF/directory-contrib.xml
    <extension point="directories" target="org.nuxeo.ecm.directory.GenericDirectory">
    
        <directory extends="template-directory" name="oauthConsumers">
          <schema>oauthConsumer</schema>
          <idField>consumerKey</idField>
          <types>
            <type>system</type>
          </types>
          <permissions>
            <permission name="Read">
              <group>__Nobody__</group>
            </permission>
          </permissions>
        </directory>
    
        <directory extends="template-directory" name="oauthServiceProviders">
          <schema>oauthServiceProvider</schema>
          <idField>id</idField>
          <autoincrementIdField>true</autoincrementIdField>
          <substringMatchType>subfinal</substringMatchType>
          <types>
            <type>system</type>
          </types>
          <permissions>
            <permission name="Read">
              <group>__Nobody__</group>
            </permission>
          </permissions>
        </directory>
    
        <directory extends="template-directory" name="oauthTokens">
          <schema>oauthToken</schema>
          <idField>token</idField>
          <types>
            <type>system</type>
          </types>
          <permissions>
            <permission name="Read">
              <group>__Nobody__</group>
            </permission>
          </permissions>
        </directory>
    
      </extension>
  • nuxeo-apidoc-repo-10.10.jar /OSGI-INF/directories-contrib.xml
    <extension point="directories" target="org.nuxeo.ecm.directory.GenericDirectory">
    
        <directory extends="template-vocabulary" name="documentationTypes">
          <dataFile>directories/documentation-types.csv</dataFile>
        </directory>
    
      </extension>
  • nuxeo-runtime-10.10.jar /Users/ffischer/nuxeo-server-10.10-tomcat/nxserver/config/default-directories-bundle.xml
    <extension point="directories" target="org.nuxeo.ecm.directory.GenericDirectory">
    
        <directory extends="template-user" name="userDirectory">
    
          <schema>user</schema>
    
          <types>
            <type>system</type>
          </types>
    
          <idField>username</idField>
          <passwordField>password</passwordField>
          <passwordHashAlgorithm>SSHA</passwordHashAlgorithm>
          <autoincrementIdField>false</autoincrementIdField>
          <dataFile>users.csv</dataFile>
          <createTablePolicy>on_missing_columns</createTablePolicy>
          <querySizeLimit>50</querySizeLimit>
    
          <!-- comment <cache* /> tags to disable the cache -->
          <cacheEntryName>user-entry-cache</cacheEntryName>
          <cacheEntryWithoutReferencesName>user-entry-cache-without-references</cacheEntryWithoutReferencesName>
    
          <references>
            <inverseReference directory="groupDirectory" dualReferenceField="members" field="groups"/>
          </references>
    
        </directory>
    
        <directory extends="template-group" name="groupDirectory">
    
          <schema>group</schema>
          <types>
            <type>system</type>
          </types>
          <idField>groupname</idField>
          <dataFile>groups.csv</dataFile>
          <createTablePolicy>on_missing_columns</createTablePolicy>
          <autoincrementIdField>false</autoincrementIdField>
    
          <!-- comment <cache* /> tags to disable the cache -->
          <cacheEntryName>group-entry-cache</cacheEntryName>
          <cacheEntryWithoutReferencesName>group-entry-cache-without-references</cacheEntryWithoutReferencesName>
    
          <references>
            <reference dataFile="user2group.csv" directory="userDirectory" field="members" name="user2group" source="groupId" target="userId"/>
            <!-- Warning ! From Nuxeo 5.3.1, a wrong setting has been fixed. See
            http://jira.nuxeo.org/browse/NXP-4401 . Nuxeo upgrades would need a fix in the
            database (inverting parentGroupId and childGroupId in the group2group)  -->
            <reference directory="groupDirectory" field="subGroups" name="group2group" source="parentGroupId" target="childGroupId"/>
            <inverseReference directory="groupDirectory" dualReferenceField="subGroups" field="parentGroups"/>
          </references>
    
        </directory>
    
        <directory extends="template-directory" name="digestauth">
          <schema>digestauth</schema>
          <idField>username</idField>
          <passwordField>password</passwordField>
          <types>
            <type>system</type>
          </types>
          <cacheEntryName>digestauth-entry-cache</cacheEntryName>
          <cacheEntryWithoutReferencesName>digestauth-entry-cache-without-references</cacheEntryWithoutReferencesName>
        </directory>
    
      </extension>
  • nuxeo-runtime-10.10.jar /Users/ffischer/nuxeo-server-10.10-tomcat/nxserver/config/login-digest-config.xml
    <extension point="directories" target="org.nuxeo.ecm.directory.GenericDirectory">
    
        <directory extends="template-directory" name="digestauth">
          <schema>digestauth</schema>
          <idField>username</idField>
          <passwordField>password</passwordField>
          <types>
            <type>system</type>
          </types>
        </directory>
      </extension>
  • nuxeo-platform-audit-core-10.10.jar /OSGI-INF/directories-contrib.xml
    <extension point="directories" target="org.nuxeo.ecm.directory.GenericDirectory">
    
        <directory extends="template-vocabulary" name="eventTypes">
          <dataFile>directories/event-types.csv</dataFile>
          <types>
            <type>system</type>
          </types>
        </directory>
    
        <directory extends="template-vocabulary" name="eventCategories">
          <dataFile>directories/event-categories.csv</dataFile>
          <types>
            <type>system</type>
          </types>
        </directory>
    
      </extension>
  • nuxeo-platform-relations-default-config-10.10.jar /OSGI-INF/directories-contrib.xml
    <extension point="directories" target="org.nuxeo.ecm.directory.GenericDirectory">
    
        <directory extends="template-directory" name="predicates">
          <schema>vocabulary</schema>
          <idField>id</idField>
          <table>relation_predicates</table>
          <dataFile>directories/relation_predicates.csv</dataFile>
        </directory>
    
        <directory extends="template-directory" name="inverse_predicates">
          <schema>vocabulary</schema>
          <idField>id</idField>
          <table>relation_inverse_predicates</table>
          <dataFile>directories/relation_inverse_predicates.csv</dataFile>
        </directory>
    
      </extension>
  • nuxeo-platform-signature-core-10.10.jar /OSGI-INF/directory-contrib.xml
    <extension point="directories" target="org.nuxeo.ecm.directory.GenericDirectory">
    
        <directory extends="template-directory" name="certificate">
          <schema>cert</schema>
          <idField>userid</idField>
          <passwordField>keypassword</passwordField>
          <passwordHashAlgorithm>SSHA</passwordHashAlgorithm>
          <types>
            <type>system</type>
          </types>
          <permissions>
            <permission name="Read">
              <group>__Nobody__</group>
            </permission>
          </permissions>
        </directory>
      </extension>
  • nuxeo-platform-login-shibboleth-10.10.jar /OSGI-INF/shibboleth-group-type-contrib.xml
    <extension point="directories" target="org.nuxeo.ecm.directory.GenericDirectory">
    
        <directory extends="template-directory" name="shibbGroup">
          <schema>shibbolethGroup</schema>
          <idField>groupName</idField>
          <types>
            <type>system</type>
          </types>
        </directory>
      </extension>
  • nuxeo-platform-default-config-10.10.jar /OSGI-INF/nxdirectories-contrib.xml
    <extension point="directories" target="org.nuxeo.ecm.directory.GenericDirectory">
    
        <directory extends="template-xvocabulary" name="country">
          <parentDirectory>continent</parentDirectory>
          <dataFile>directories/country.csv</dataFile>
        </directory>
    
        <directory extends="template-vocabulary" name="continent">
          <deleteConstraint class="org.nuxeo.ecm.directory.HierarchicalDirectoryDeleteConstraint">
            <property name="targetDirectory">country</property>
            <property name="targetDirectoryField">parent</property>
          </deleteConstraint>
          <dataFile>directories/continent.csv</dataFile>
        </directory>
    
        <directory extends="template-l10nxvocabulary" name="l10ncoverage">
          <parentDirectory>l10ncoverage</parentDirectory>
          <deleteConstraint class="org.nuxeo.ecm.directory.HierarchicalDirectoryDeleteConstraint">
            <property name="targetDirectory">l10ncoverage</property>
            <property name="targetDirectoryField">parent</property>
          </deleteConstraint>
          <dataFile>directories/l10ncoverage.csv</dataFile>
        </directory>
    
        <directory extends="template-xvocabulary" name="subtopic">
          <parentDirectory>topic</parentDirectory>
          <dataFile>directories/subtopic.csv</dataFile>
        </directory>
    
        <directory extends="template-vocabulary" name="topic">
          <deleteConstraint class="org.nuxeo.ecm.directory.HierarchicalDirectoryDeleteConstraint">
            <property name="targetDirectory">subtopic</property>
            <property name="targetDirectoryField">parent</property>
          </deleteConstraint>
          <dataFile>directories/topic.csv</dataFile>
        </directory>
    
        <directory extends="template-l10nxvocabulary" name="l10nsubjects">
          <parentDirectory>l10nsubjects</parentDirectory>
          <deleteConstraint class="org.nuxeo.ecm.directory.HierarchicalDirectoryDeleteConstraint">
            <property name="targetDirectory">l10nsubjects</property>
            <property name="targetDirectoryField">parent</property>
          </deleteConstraint>
          <dataFile>directories/l10nsubjects.csv</dataFile>
        </directory>
    
        <directory extends="template-vocabulary" name="subject">
          <types>
            <type>system</type>
          </types>
          <dataFile>directories/subject.csv</dataFile>
        </directory>
    
        <directory extends="template-vocabulary" name="search_operators">
          <types>
            <type>system</type>
          </types>
          <dataFile>directories/search_operators.csv</dataFile>
        </directory>
    
        <directory extends="template-documentsLists" name="documentsLists">
          <types>
            <type>system</type>
          </types>
          <permissions>
            <permission name="Write">
              <group>Everyone</group>
            </permission>
          </permissions>
        </directory>
    
        <directory extends="template-vocabulary" name="language">
          <dataFile>directories/language.csv</dataFile>
        </directory>
    
        <directory extends="template-vocabulary" name="nature">
          <dataFile>directories/nature.csv</dataFile>
        </directory>
    
      </extension>