Repository API : Repository Controller

Using the Repository APIs, you can view, add, update, and delete repositories, as well as the various preferences, configurations, links, mappings, and other values contained within the repositories and records. The repositoryId parameter allows you to specify the particular repository to maintain and then use additional parameters and attributes to choose what actions to take.

The Repository APIs can be used to control saved sets, user preferences, search configurations, item links, groups, variants, validation models, rule mappings, hierarchies, and sequences used to manage how the data is stored and viewed within the repository. There are also APIs used to kick off a job to create a snapshot table of attribute values or sync a staging repository to production.

For more detailed information, see the Repository API Endpoints section below or the EnterWorks Swagger pages.

Repository API Endpoints

Note: Some of the operations listed below have been deprecated and are no longer recommended to use due to changes in the API. Replacement operations are listed below the definition for all deprecated items.

POST /api/links:

  • Creates a link relationship between repositories.

DELETE /api/links/{linkId}:

  • Deletes an existing link relationship based on the link relationship ID (linkId).

GET /api/links/{linkId}:

  • Retrieves the link relationship based on the specified link relationship ID (linkId).

  • You can also choose to include the details of the link relationship in the data returned.

PUT /api/links/{linkId}:

  • Updates the link for a specified link relationship ID (linkId) and replaces it with a new link.

GET /api/repositories:

  • Retrieves a list of repositories.

  • Each repository contains a link to the Repository Group to which it belongs and a link to an underlying profile that describes its content.

    Note: The permissions field is deprecated. Use canRead, canEdit, canDelete, canView, canSyncIn, canAddItem, canDeleteItem, and canEditMetaData instead.

POST /api/repositories:

  • Creates a new repository.

    Note: This request creates the main repository object only.
  • To create a full repository:

    • Call POST /api/repositories to create a repository object (main level object only).

    • Call PATCH /api/repositories/{repositoryId}/attrMappings (optional) to map attributes.

    • Call PUT /api/repositories/{repositoryId}/ruleMappings (optional) to map rules.

    • Call PUT /api/repositories/{repositoryId}/summaryAttrs (optional) to create summary attributes.

    • Call PUT /api/repositories/{repositoryId}/workFlowSetting (optional) to create workflow settings.

    • Call PUT /api/repositories/{repositoryId}/validationModel (optional) to create a validation model.

GET /api/repositories/Sequence:

  • Returns a list of repository sequences.

POST /api/repositories/Sequence:

  • Creates a defined sequence for a repository.

DELETE /api/repositories/Sequence/{sequenceId}:

  • Deletes a specific repository sequence based on the sequence ID (sequenceId).

PATCH /api/repositories/Sequence/{sequenceId}:

  • Updates the sequence for a specific repository (sequenceId).

GET /api/repositories/attrPropValuesList:

  • Retrieves a list of possible values for attribute properties such as the calculation IND and calculation URL fields.

GET /api/repositories/folders:

  • Returns a list of folders within the repository.

GET /api/repositories/stateAttributes/exportTemplate:

  • Retrieves a list of the current state for all attributes in a repository.

GET /api/repositories/stateAttributes/importTemplate:

  • Retrieves a list of state attributes for a repository.

DELETE /api/repositories/{repositoryId}:

  • Deletes a specific repository based on the repository ID (repositoryId).

    Note: It is recommended that you call /repositories/{repositoryId}/dependencies to check the dependencies for a repository before deleting it.

GET /api/repositories/{repositoryId}:

  • Retrieves details for a repository based on the specified ID (repositoryId).

    Note: The permissions field is deprecated. Use canRead, canEdit, canDelete, canView, canSyncIn, canAddItem, canDeleteItem, and canEditMetaData instead.

PUT /api/repositories/{repositoryId}:

  • Updates the attributes for a specified repository (repositoryId).

GET /api/repositories/{repositoryId}/attrMappings:

  • Retrieves the attribute mappings for a specific repository (repositoryId).

PATCH /api/repositories/{repositoryId}/attrMappings:

  • Updates the attribute mappings for a specific repository (repositoryId).

    Note: The list of attributes (attrMappingList) to update can be partial. Mappings that are not included in the list will not be changed. Each object in the list needs to be a full object.

GET /api/repositories/{repositoryId}/attrTabs:

  • Retrieves a specific attribute tab (attrTab) for the repository (repositoryId).

POST /api/repositories/{repositoryId}/attrTabs/{attrTabId}:

  • Retrieves the repository attribute tab for a specific tab ID (attrTabId).

GET /api/repositories/{repositoryId}/attributes:

  • Gets the attribute list for a specific repository (repositoryId).

GET /api/repositories/{repositoryId}/attributes/{attrId}/values:

  • Returns the existing values for a specific attribute (attrId) within a specific repository (repositoryId) or a linked repository.

GET /api/repositories/{repositoryId}/childLinks:

  • Retrieves a list of child link relationships for the specified repository (repositoryId).

GET /api/repositories/{repositoryId}/dependencies:

  • Retrieves a list of dependencies for the specified repository (repositoryId).

GET /api/repositories/{repositoryId}/exportTemplates:

  • Retrieves the available export templates for a specified repository (repositoryId).

GET /api/repositories/{repositoryId}/filterAttrs:

  • Retrieves the attribute list for a repository with specified ID (repositoryId).

  • This call returns the filter list from the Search tab on the item listing page.

GET /api/repositories/{repositoryId}/hierarchies:

  • Retrieves the hierarchy list for the repository with the specified ID (repositoryId).

  • This call returns the filter list from the Hierarchy tab on the item listing page.

GET /api/repositories/{repositoryId}/importConfigs:

  • Retrieves the import configuration list for the repository with specified ID (repositoryId).

GET /api/repositories/{repositoryId}/itemListPermission:

  • Retrieves a list of permissions from the item listing page for a repository with specified ID (repositoryId).

  • This list can be used to enable or disable menu items and buttons on the item listing page.

GET /api/repositories/{repositoryId}/links:

  • Retrieves a list of link relationships in the specified repository (repositoryId).

  • You can also use the linkTypeCode parameter to filter the return to show specific link types only.

GET /api/repositories/{repositoryId}/mainTableHeaders:

  • Retrieves the main table headers (no user preference) for a specified repository (repositoryId).

GET /api/repositories/{repositoryId}/parentLinks:

  • Retrieves a list of the parent link relationships in the specified repository (repositoryId).

GET /api/repositories/{repositoryId}/promotion:

  • Retrieves the promotion configuration from the JSON Properties column in the masterRepository.

PUT /api/repositories/{repositoryId}/promotion:

  • Puts the promotion configuration into the JSON Properties column in the masterRepository.

GET /api/repositories/{repositoryId}/pubContexts:

  • Retrieves the publication context for a repository.

    Note: Change this call to GET: /repositories/{repositoryId}/exportTemplate.

POST /api/repositories/{repositoryId}/reports:

  • Retrieves data for a report from the Home page.

    Note: Deprecated. Use system/report/ instead.

GET /api/repositories/{repositoryId}/reports/attributes:

  • Retrieves the attribute ID and name list for a report widget within the specified repository ID.

    Note: The Id1 value is the attribute ID and the Id2 value is the link relationship ID if the attribute is from a linked repository.

GET /api/repositories/{repositoryId}/ruleMappings:

  • Retrieves a list of rule mappings from the specified repository (repositoryId).

PUT /api/repositories/{repositoryId}/ruleMappings:

  • Updates the rule mappings from the specified repository (repositoryId).

    Note: The savedSetUpdate list has to be a complete list. Any mapping that is not contained in the list will be removed.

GET /api/repositories/{repositoryId}/rules:

  • Retrieves a list of rules for the specified repository (repositoryId).

GET /api/repositories/{repositoryId}/savedSets:

  • Retrieves a saved set list from the specified repository (repositoryId).

GET /api/repositories/{repositoryId}/searchConfigs:

  • Retrieves the search configuration list from the specified repository (repositoryId).

POST /api/repositories/{repositoryId}/snapShot:

  • Retrieves the state attribute list for the specified repository (repositoryId).

GET /api/repositories/{repositoryId}/stateAttributes:

  • Retrieves the list of state attributes for the specified repository(repositoryId).

GET /api/repositories/{repositoryId}/summaryAttrs:

  • Retrieves a list of summary attributes for the specified repository(repositoryId).

PUT /api/repositories/{repositoryId}/summaryAttrs:

  • Updates the summary attribute list for the specified repository.

    Note: The savedSetUpdate list has to be a complete list. Any mapping that is not contained in the list will be removed.

POST /api/repositories/{repositoryId}/syncToProd:

  • Syncs a staging repository definition to the production repository.

    Note: This call is only valid on a staging repository.

GET /api/repositories/{repositoryId}/syncToProdLinks:

  • Retrieves a list of links for syncing the staging repository definition to the production repository.

GET /api/repositories/{repositoryId}/templatesForExport:

  • Retrieves a list of templates that can be used to start a export job.

GET /api/repositories/{repositoryId}/triggerProperties:

  • Retrieves the trigger properties for the selected repository (repositoryID).

PUT /api/repositories/{repositoryId}/triggerProperties:

  • Updates the trigger properties for the selected repository (repositoryID).

GET /api/repositories/{repositoryId}/userPreferences:

  • Retrieves a list of user preferences for the specified repository (repositoryId).

DELETE /api/repositories/{repositoryId}/validationModel:

  • Deletes the validation model for the specified repository (repositoryId).

GET /api/repositories/{repositoryId}/validationModel:

  • Retrieves the validation model for the specified repository (repositoryId).

PUT /api/repositories/{repositoryId}/validationModel:

  • Updates the validation model for the specified repository (repositoryId).

    Note: This call can pass a full node tree or only the user selected nodes. Any node that is not set as "selected" will be ignored.

GET /api/repositories/{repositoryId}/variants/childAttrMappings:

  • Retrieves the variant child attribute mapping for a specified repository (repositoryId).

GET /api/repositories/{repositoryId}/variants/childAttributes:

  • Retrieves the variant child attributes for a specified repository (repositoryId).

GET /api/repositories/{repositoryId}/variants/links:

  • Retrieves a list of variant links for a specified repository (repositoryId).

GET /api/repositories/{repositoryId}/variants/parentAttributes:

  • Retrieves a list of variant parent attributes for a specified repository (repositoryId).

GET /api/repositories/{repositoryId}/variants/types:

  • Retrieves a list of variant types for a specified repository (repositoryId).

GET /api/repositories/{repositoryId}/workFlowSetting:

  • Retrieves a list of summary attributes for a specified repository (repositoryId).

PUT /api/repositories/{repositoryId}/workFlowSetting:

  • Updates the list of summary attributes for a specified repository (repositoryId).

GET /api/repositoryGroups:

  • Retrieves all repository groups or use the name parameter to return only a specific group.

  • Repository groups are used to categorize and group repositories, like folders in Windows.

POST /api/repositoryGroups:

  • Creates a new repository group.

DELETE /api/repositoryGroups/{repoGroupId}:

  • Deletes the specified repository group (repoGroupId).

PATCH /api/repositoryGroups/{repoGroupId}:

  • Updates a specified repository group.

GET /api/repositoryGroups/{repositoryGroupId}:

  • Retrieves the specified repository group (repositoryGroupId).

GET /api/repositoryGroups/{repositoryGroupId}/repositories:

  • Retrieves a list of Repository Groups (repositoryGroupId).

    Note: The permissions field is deprecated. Use canRead, canEdit, canDelete, canView, canSyncIn, canAddItem, canDeleteItem, and canEditMetaData instead.

GET /api/repositoryTypes:

  • Returns a list of repository types.

GET /api/rules/{ruleId}:

  • Retrieves the specified rule (ruleId).

POST /api/savedSets:

  • Creates a new saved set.

    Note: This call creates an empty save set with no names included.

DELETE /api/savedSets/{savedSetId}:

  • Deletes the specified saved set (savedSetId).

GET /api/savedSets/{savedSetId}:

  • Retrieves the specified saved set (savedSetId).

PUT /api/savedSets/{savedSetId}:

  • Updates the specified saved set (savedSetId).

POST /api/savedSets/{savedSetId}/linkItem:

  • Links or unlinks items to a specified saved set (savedSetId).

POST /api/savedSets/{savedSetId}/promote:

  • Promotes the saved set from the staging repository to the production repository.

  • This endpoint can only be called from the staging repository.

  • Only the saved set is promoted, not the items in the saved set.

  • Only the part of the saved set that is related to the specified repository will be promoted.

  • The parts of the saved set that are unrelated to the specified repository will not be promoted.

GET /api/searchConfigAttrs:

  • Retrieves the search attributes for item search.

  • To search a linked repository, use the ID of the linked repository (repositoryId).

GET /api/searchConfigAttrs/searchOperators:

  • Retrieves the search operators used for item search in the specified repository (repositoryId).

    Note: Change this call to GET: /searchConfigOperators.

GET /api/searchConfigOperators:

  • Retrieves the search operators used for item search in the specified repository (repositoryId).

  • To search on a linked repository, use the ID of the linked repository.

PATCH /api/searchConfigs:

  • Updates the search configuration list for a specified repository.

    Note: Deprecated. Use PATCH: /searchConfig/{searchConfigId} instead.

POST /api/searchConfigs:

  • Creates the search configuration list for a specified repository (repositoryId).

GET /api/searchConfigs/repositories:

  • Retrieves the search configuration repositories for the search condition editor.

    Note: The id1 value is the repository ID and the id2 value is the link relationship ID.

GET /api/searchConfigs/types:

  • Retrieves the search configuration types for the specified repository (repositoryId).

DELETE /api/searchConfigs/{searchConfigId}:

  • Deletes the specified saved set (searchConfigId).

GET /api/searchConfigs/{searchConfigId}:

  • Retrieves the specified saved set (searchConfigId).

PATCH /api/searchConfigs/{searchConfigId}:

  • Updates the search configuration for the specified repository.

    Note: Deprecated. Use PATCH: /searchConfig/{searchConfigId} instead.

GET /api/splitFileControl:

  • Retrieves the export template split file control details for a specified repository (repoId).

  • Split file control allows you to see a list of repositories and taxonomy control attributes.

POST /api/userPreferences:

  • Creates the user preferences for a specified repository (repositoryId).

  • The linkAttrDispOrder attributes indicate how the column name is displayed if the column is a linked attribute.

DELETE /api/userPreferences/{userPreferenceId}:

  • Deletes the specified user preference (userPreferenceId).

GET /api/userPreferences/{userPreferenceId}:

  • Retrieves the specified user preference (userPreferenceId).

PUT /api/userPreferences/{userPreferenceId}:

  • Updates the specified user preferences (userPreferenceId).

GET /api/userPreferences/{userPreferenceId}/mainTableHeaders:

  • Retrieves the item listing table headers for the specified user preference ID (userPreferenceId).