The projects/sync/export method enables dev opps in the movement of projects between disparate Infiniti environments. Use cases range from the promotion of artefacts to higher environments to synchronizing disparate environments on either side of a firewall. The response of projects/sync/export couples with the projects/sync/import method.
The projects/sync/export accepts an array of Infiniti Project ids and returns a collection of granular arrays relating of objects related to the projects somehow, referred to a syncPack. Namely, a sync pack is comprised of the objects below.
Object | Referenced/Needed by |
---|---|
projects | from the request) |
projectFragments | projects projectFragments |
dataSources | projects projectFragments |
dataObjects | dataSources |
contentItems | projects projectFragments |
contentFolders | projects projectFragments |
publishProjects | projects |
publishFolders | publishProjects |
groups | projects (workflow) contentFolders publishFolders |
users | projects (workflow) groups |
roles | groups users |
customFields | N/A |
connectorSettings | N/A |
Individual objects within a sync pack appear only once can be referred by multiple times. For example, a sync pack contains a data source used by three of the five Infiniti projects on the request.
By default a syncPack contains everything potentially required for the movement between environments and may be overkill for some requirements. For example, a target environment might have different means of user management rendering the users, groups and roles in the syncPack inappropriate. Thus, the project/sync/export method accepts an options object containing flags to include/exclude particular items in the pack. By default, everything is included. It is of course possible to customise a syncPack to suit business requirements before an import. For example, change a dev connection string to production.