Skip to main content
Version: 4.48.0

Xill4 schemas

This section describes the Content Store schemas.

Root schema

Use the root schema to store the starting point of the migration. The kind of the object is ‘ROOT’.

{
"_id": "{{_id}}", // REQUIRED | STRING | A generated id based on objects metadata, must be unique.
"kind": "ROOT", // REQUIRED | STRING | OPTIONS: ["ROOT"]
"target": {
// REQUIRED | OBJECT | Object containing the data from the target repository.
"id": "{{source.id}}", // REQUIRED | STRING |
"hierarchies": ["{{source.hierarchies}}"], // REQUIRED | ARRAY | Path notation of the location of the object. Always starts with a forward slash.
"name": {
// REQUIRED | OBJECT
"systemName": "{{source.name.systemName}}", // REQUIRED | STRING
"displayName": "{{source.name.displayName}}" // OPTIONAL | STRING
},
"contentType": {
// REQUIRED | OBJECT
"systemName": "{{source.contentType.systemName}}", // REQUIRED | STRING | System name of the content type of the object.
"displayName": "{{source.contentType.displayName}}" // OPTIONAL | STRING | Display name of the content type of the object.
}
},
"migration": {
// REQUIRED | OBJECT
"id": "{{migration.id}}", // REQUIRED | STRING | The id of the CONTAINER where the migration starts.
"migrate": true, // REQUIRED | BOOLEAN | Determines if the object will be migrated. If false, the object will not be migrated.
"failed": false, // OPTIONAL | BOOLEAN
"failedMessage": "", // OPTIONAL | STRING | Holds the message related to to failed state (error message).
"flags": {
// OPTIONAL | OBJECT | Holds custom flags during a migration process. Can be used to keep track off different statuses. Keys must be of type String, values of type Boolean.
"anyString": false, // OPTIONAL | BOOLEAN
},
"workerId": "", // OPTIONAL | STRING | Identifier string for load balancer flows.
"workerStatus": "", // OPTIONAL | STRING | OPTIONS: ["ASSIGNED", "PROCESSING", "DONE", "ERROR"] | The status of an object from the worker perspective.
"retryMessage": {}, // OPTIONAL | OBJECT | A copy of the incoming message from the component that generated an error.
"retryTarget": "", // OPTIONAL | STRING | The name of the component to target when retrying (depends on the targeted flow).
"origin" : "{{migration.origin}}" // REQUIRED | STRING | Specifies the origin of the document in the Content Store.
}
}

Content Schema

To use the schema set the kind to ‘RECORD’, ‘CONTAINER’.

{
"_id": "{{_id}}", // REQUIRED | STRING | A generated id based on objects metadata, must be unique.
"kind": "RECORD", // REQUIRED | STRING | OPTIONS: ["RECORD", "CONTAINER"]
"source": {
// REQUIRED | OBJECT | Object containing the data from the source repository.
"id": "{{source.id}}", // REQUIRED | STRING | The id of the object as it is in the source system.
"parentIds": ["{{source.parentIds}}"], // REQUIRED | ARRAY |
// The parent source ids of the object. If there is no parent, the value should be an empty array.
// The parent should also be stored in the database. If for extraction reasons the parent is not stored in the database (in case of the root for example), it should be treated as if there is no parent.
"hierarchies": ["{{source.hierarchies}}"], // REQUIRED | ARRAY | Path notation of the location of the object. Always starts with a forward slash.
"ancestors": ["{{source.ancestors}}"], // OPTIONAl | ARRAY |
// The ancestors ids of the object. Ancestors are the parents and the parents of the parents and so on. If there is no parent, the value should be an empty array. Only keep the ancestors that are stored in the database.
"name": {
// REQUIRED | OBJECT
"systemName": "{{source.name.systemName}}", // REQUIRED | STRING
"displayName": "{{source.name.displayName}}" // OPTIONAL | STRING
},
"description": "{{source.description}}", // OPTIONAL | STRING
"contentType": {
// REQUIRED | OBJECT
"systemName": "{{source.contentType.systemName}}", // REQUIRED | STRING | System name of the content type of the object.
"displayName": "{{source.contentType.displayName}}" // OPTIONAL | STRING | Display name of the content type of the object.
},
"versionInfo": {
// REQUIRED | OBJECT
"label": "{{source.versionInfo.label}}", // OPTIONAL | STRING | Version label of the object, if non existing in the source repository set to ‘1.0’.
"minor": 1, // REQUIRED | NUMBER
"major": 1, // REQUIRED | NUMBER
"seriesId": "{{source.versionInfo.seriesId}}", // REQUIRED | STRING | An identifier that represents the complete set of versions.
"isCurrent": true, // REQUIRED | BOOLEAN | Indicates if the version is the current version.
},
"states": ["{{source.states}}"], // REQUIRED | ARRAY | One or more state values, think hidden, archived, deleted, etc. If none, provide an empty list.
"created": {
// OPTIONAL | OBJECT
"date": "{{source.created.date}}", // REQUIRED | DATE
"principal": {
// OPTIONAL | OBJECT
"systemName": "{{source.created.principal.systemName}}", // REQUIRED | STRING
"displayName": "{{source.created.principal.displayName}}" // OPTIONAL | STRING
}
},
"lastModified": {
// OPTIONAL | OBJECT
"date": "{{source.lastModified.date}}", // REQUIRED | DATE
"principal": {
// OPTIONAL | OBJECT
"systemName": "{{source.lastModified.principal.systemName}}", // REQUIRED | STRING
"displayName": "{{source.lastModified.principal.displayName}}" // OPTIONAL | STRING
}
},
"lastAccessed": {
// OPTIONAL | OBJECT
"date": "{{source.lastAccessed.date}}", // OPTIONAL | DATE
"principal": {
// OPTIONAL | OBJECT
"systemName": "{{source.lastAccessed.principal.systemName}}", // REQUIRED | STRING
"displayName": "{{source.lastAccessed.principal.displayName}}" // OPTIONAL | STRING
}
},
"author": {
// OPTIONAL | OBJECT
"principal": {
// REQUIRED | OBJECT
"systemName": "{{source.author.principal.systemName}}", // REQUIRED | STRING
"displayName": "{{source.author.principal.displayName}}" // OPTIONAL | STRING
}
},
"owner": {
// OPTIONAL | OBJECT
"principal": {
// REQUIRED | OBJECT
"systemName": "{{source.owner.principal.systemName}}", // REQUIRED | STRING
"displayName": "{{source.owner.principal.displayName}}" // OPTIONAL | STRING
}
},
"language": {
// OPTIONAL | OBJECT
"systemName": "{{source.language.systemName}}", // REQUIRED | STRING
"displayName": "{{source.language.displayName}}", //OPTIONAL | STRING
"masterReference": "{{_id}}" // REQUIRED | STRING | If the object is the master, reference to itself.
},
"web": {
// OPTIONAL | OBJECT
"publishedTo": "{{source.web.publishedTo}}", // OPTIONAL | ARRAY | List of environments where the content is published to.
"url": "{{source.web.url}}" // REQUIRED | STRING | Full web URL to the object
},
"properties": {
// OPTIONAL | OBJECT | Object containing a copy of the original object. Within target it contains the system specific or custom properties.
},
"binaries": [
// OPTIONAL | ARRAY OF _ID REFERRING TO THE BINARY OBJECTS
],
"acls": [
// OPTIONAL | ARRAY OF _ID REFERRING TO THE ACL OBJECTS
],
"auditLogs": [
// OPTIONAL | ARRAY OF _ID REFERRING TO THE AUDIT LOG OBJECTS
]
},
"target": {
// OPTIONAL | OBJECT | HOLDS THE VALUES AFTER TRANSFORMATION, EQUAL STRUCTURE TO SOURCE OBJECT
},
"migration": {
// REQUIRED | OBJECT
"id": "{{migration.id}}", // OPTIONAL | STRING | The id of document after loading into the target repository.
"migrate": true, // REQUIRED | BOOLEAN | Determines if the object will be migrated. If false, the object will not be migrated.
"failed": false, // OPTIONAL | BOOLEAN
"failedMessage": "", // OPTIONAL | STRING | Holds the message related to to failed state (error message).
"flags": {
// OPTIONAL | OBJECT | Holds custom flags during a migration process. Can be used to keep track off different statuses. Keys must be of type String, values of type Boolean.
"anyString": false, // OPTIONAL | BOOLEAN
},
"workerId": "", // OPTIONAL | STRING | Identifier string for load balancer flows
"workerStatus": "", // OPTIONAL | STRING | OPTIONS: ["ASSIGNED", "PROCESSING", "DONE", "ERROR"] | The status of an object from the worker perspective.
"retryMessage": {}, // OPTIONAL | OBJECT | A copy of the incoming message from the component that generated an error.
"retryTarget": "" // OPTIONAL | STRING | The name of the component to target when retrying (depends on the targeted flow).
"origin" : "{{migration.origin}}" // REQUIRED | STRING | Specifies the origin of the document in the Content Store.
}
}

Note that the first _id in the binaries array is the primary binary.

Binary Schema

Use the binary schema to store binary metadata. The kind of object is ‘BINARY’.

{
"_id": "{{source.id}}", // REQUIRED | STRING
"kind": "BINARY", // REQUIRED | STRING | OPTIONS: ["BINARY"]
"source": {
// REQUIRED | OBJECT
"name": {
// OPTIONAL | OBJECT
"systemName": "{{source.name.systemName}}", // REQUIRED | STRING
"displayName": "{{source.name.displayName}}" // OPTIONAL | STRING
},
"type": "{{source.type}}", // OPTIONAL | STRING | Field to specify a certain binary type, for example if the binary is a rendition.
"rawExtension": "{{source.rawExtension}}", // REQUIRED | STRING | Field to specify raw extension of binary. Either an empty string or a string starting with a dot.
"extension": "{{source.extension}}", // REQUIRED | STRING | Field to specify extension of binary. Either an empty string or a string starting with a dot.
"byteSize": 1, // REQUIRED | NUMBER
"externalReference": "{{source.externalReference}}", // OPTIONAL | STRING | Reference where the binary resides, this can be a URL or a path to a network drive.
"localReference": "{{source.localReference}}", // OPTIONAL | STRING | Reference to the local GridFS copy of the binary.
"hash": "{{source.hash}}", // OPTIONAL | STRING | Unique hash of the binary (for example SHA256 or SHA512).
"properties": {
// OPTIONAL | OBJECT | Object containing a copy of the original object.
}
},
"target": {
// OPTIONAL | OBJECT | FILLING IN ONE OR MORE KEY(S) TRIGGERS VALIDATION AS SOURCE OBJECT
},
"migration": {
// REQUIRED | OBJECT
"id": "{{migration.id}}", // OPTIONAL | STRING | The id of document after loading into the target repository.
"migrate": true, // REQUIRED | BOOLEAN | Determines if the object will be migrated. If false, the object will not be migrated.
"failed": false, // OPTIONAL | BOOLEAN
"failedMessage": "", // OPTIONAL | STRING | Holds the message related to to failed state (error message).
"flags": {
// OPTIONAL | OBJECT | Holds custom flags during a migration process. Can be used to keep track off different statuses. Keys must be of type String, values of type Boolean.
"anyString": false, // OPTIONAL | BOOLEAN
},
"workerId": "", // OPTIONAL | STRING | Identifier string for load balancer flows.
"workerStatus": "", // OPTIONAL | STRING | OPTIONS: ["ASSIGNED", "PROCESSING", "DONE", "ERROR"] | The status of an object from the worker perspective.
"retryMessage" : {}, // OPTIONAL | OBJECT | A copy of the incoming message from the component that generated an error.
"retryTarget" : "" // OPTIONAL | STRING | The name of the component to target when retrying (depends on the targeted flow).
"origin" : "{{migration.origin}}" // REQUIRED | STRING | Specifies the origin of the document in the Content Store.
}
}

Relation Schema

Use the relation schema to store relation metadata. The kind of object is ‘RELATION’.

{
"_id": "{{_id}}", // REQUIRED | STRING
"kind": "RELATION", // REQUIRED | STRING | OPTIONS: ["RELATION"]
"source": {
// REQUIRED | OBJECT
"name": "{{source.name}}", // OPTIONAL | STRING
"type": "{{source.type}}", // OPTIONAL | STRING
"parentId": "{{source.parentId}}", //REQUIRED | STRING
"childId": "{{source.childId}}", // REQUIRED | STRING,
"properties": {
// OPTIONAL | OBJECT | Object containing a copy of the original object.
}
},
"target": {
// OPTIONAL | OBJECT | FILLING IN ONE OR MORE KEY(S) TRIGGERS VALIDATION AS SOURCE OBJECT
},
"migration": {
// REQUIRED | OBJECT
"id": "{{migration.id}}", // OPTIONAL | STRING | The id of document after loading into the target repository.
"migrate": true, // REQUIRED | BOOLEAN | Determines if the object will be migrated. If false, the object will not be migrated.
"failed": false, // OPTIONAL | BOOLEAN
"failedMessage": "", // OPTIONAL | STRING | Holds the message related to to failed state (error message).
"flags": {
// OPTIONAL | OBJECT | Holds custom flags during a migration process. Can be used to keep track off different statuses. Keys must be of type String, values of type Boolean.
"anyString": false, // OPTIONAL | BOOLEAN
},
"workerId": "", // OPTIONAL | STRING | Identifier string for load balancer flows.
"workerStatus": "", // OPTIONAL | STRING | OPTIONS: ["ASSIGNED", "PROCESSING", "DONE", "ERROR"] | The status of an object from the worker perspective.
"retryMessage" : {}, // OPTIONAL | OBJECT | A copy of the incoming message from the component that generated an error.
"retryTarget" : ""// OPTIONAL | STRING | The name of the component to target when retrying (depends on the targeted flow).
"origin" : "{{migration.origin}}" // REQUIRED | STRING | Specifies the origin of the document in the Content Store.
}
}

Acl Schema

Use the Acl schema to store Acl metadata. The kind of object is ‘ACL’.

{
"_id": "{{_id}}", // REQUIRED | STRING
"kind": "ACL", // REQUIRED | STRING | OPTIONS: ["ACL"]
"source": {
"name": {
// OPTIONAL | OBJECT
"systemName": "{{source.name.systemName}}", // REQUIRED | STRING
"displayName": "{{source.name.displayName}}" // OPTIONAL | STRING
},
"description": "{{source.description}}", // OPTIONAL | STRING
"created": {
// OPTIONAL | OBJECT
"date": "{{source.created.date}}", // REQUIRED | DATE
"principal": {
// OPTIONAL | OBJECT
"systemName": "{{source.created.principal.systemName}}", // REQUIRED | STRING
"displayName": "{{source.created.principal.displayName}}" // OPTIONAL | STRING
}
},
"lastModified": {
// OPTIONAL | OBJECT
"date": "{{source.lastModified.date}}", // REQUIRED | DATE
"principal": {
// OPTIONAL | OBJECT
"systemName": "{{source.lastModified.principal.systemName}}", // REQUIRED | STRING
"displayName": "{{source.lastModified.principal.displayName}}" // OPTIONAL | STRING
}
},
"permissions":[], // REQUIRED | ARRAY | Array of permissions (STRING).
"principals": [], // REQUIRED | ARRAY | Array of principal objects.
"properties": {
// OPTIONAL | OBJECT | Object containing a copy of the original object.
}
},
"target": {
// OPTIONAL | OBJECT | FILLING IN ONE OR MORE KEY(S) TRIGGERS VALIDATION AS SOURCE OBJECT
},
"migration": {
// REQUIRED | OBJECT
"id": "{{migration.id}}", // OPTIONAL | STRING | The id of document after loading into the target repository.
"migrate": true, // REQUIRED | BOOLEAN | Determines if the object will be migrated. If false, the object will not be migrated.
"failed": false, // OPTIONAL | BOOLEAN
"failedMessage": "", // OPTIONAL | STRING | Holds the message related to to failed state (error message).
"flags": {
// OPTIONAL | OBJECT | Holds custom flags during a migration process. Can be used to keep track off different statuses. Keys must be of type String, values of type Boolean.
"anyString": false, // OPTIONAL | BOOLEAN
},
"workerId": "", // OPTIONAL | STRING | Identifier string for load balancer flows.
"workerStatus": "", // OPTIONAL | STRING | OPTIONS: ["ASSIGNED", "PROCESSING", "DONE", "ERROR"] | The status of an object from the worker perspective.
"retryMessage" : {}, // OPTIONAL | OBJECT | A copy of the incoming message from the component that generated an error.
"retryTarget" : "" // OPTIONAL | STRING | The name of the component to target when retrying (depends on the targeted flow).
"origin" : "{{migration.origin}}" // REQUIRED | STRING | Specifies the origin of the document in the Content Store.
}
}

AuditLog Schema

Use the AuditLog schema to store relation metadata. The kind of object is ‘AUDITLOG’.

{
"_id": "{{_id}}", // REQUIRED | STRING
"kind": "AUDITLOG", // REQUIRED | STRING | OPTIONS: ["AUDITLOG"]
"source": {
// REQUIRED | OBJECT
"value": {
// OPTIONAL | OBJECT
},
"properties": {
// OPTIONAL | OBJECT | Object containing a copy of the original object.
}
},
"target": {
// OPTIONAL | OBJECT | FILLING IN ONE OR MORE KEY(S) TRIGGERS VALIDATION AS SOURCE OBJECT
},
"migration": {
// REQUIRED | OBJECT
"id": "{{migration.id}}", // OPTIONAL | STRING | The id of document after loading into the target repository.
"migrate": true, // REQUIRED | BOOLEAN | Determines if the object will be migrated. If false, the object will not be migrated.
"failed": false, // OPTIONAL | BOOLEAN
"failedMessage": "", // OPTIONAL | STRING | Holds the message related to to failed state (error message).
"flags": {
// OPTIONAL | OBJECT | Holds custom flags during a migration process. Can be used to keep track off different statuses. Keys must be of type String, values of type Boolean.
"anyString": false, // OPTIONAL | BOOLEAN
},
"workerId": "", // OPTIONAL | STRING | Identifier string for load balancer flows.
"workerStatus": "", // OPTIONAL | STRING | OPTIONS: ["ASSIGNED", "PROCESSING", "DONE", "ERROR"] | The status of an object from the worker perspective.
"retryMessage" : {},// OPTIONAL | OBJECT | A copy of the incoming message from the component that generated an error.
"retryTarget" : ""// OPTIONAL | STRING | The name of the component to target when retrying (depends on the targeted flow).
"origin" : "{{migration.origin}}" // REQUIRED | STRING | Specifies the origin of the document in the Content Store.
}
}

Principal Schema

Use the Principal schema to store principal metadata. For example, users and groups. The kind of object is ‘PRINCIPAL’.

{
"_id": "{{_id}}", // REQUIRED | STRING
"kind": "PRINCIPAL", // REQUIRED | STRING | OPTIONS: ["PRINCIPAL"]
"source": {
// REQUIRED | OBJECT
"id": "{{source.id}}", // REQUIRED | STRING | The id of the principal as it is in the source system.
"type": "{{source.type}}", // REQUIRED | STRING | OPTIONS: ["USER", "GROUP", "OTHER"] | The type of the principal.
"name": {
// REQUIRED | OBJECT
"systemName": "{{source.name.systemName}}", // REQUIRED | STRING
"displayName": "{{source.name.displayName}}" // OPTIONAL | STRING
},
"members": ["{{source.members}}"], // ONLY WHEN source.type is set to 'GROUP' | ARRAY | List of members that are part of the group. Refers to the `source.id` (or) of a principal.
"properties": {
// OPTIONAL | OBJECT | Object containing a copy of the original object.
}
},
"target": {
// OPTIONAL | OBJECT | FILLING IN ONE OR MORE KEY(S) TRIGGERS VALIDATION AS SOURCE OBJECT
},
"migration": {
// REQUIRED | OBJECT
"id": "{{migration.id}}", // OPTIONAL | STRING | The id of document after loading into the target repository.
"migrate": true, // REQUIRED | BOOLEAN | Determines if the object will be migrated. If false, the object will not be migrated.
"failed": false, // OPTIONAL | BOOLEAN
"failedMessage": "", // OPTIONAL | STRING | Holds the message related to to failed state (error message).
"flags": {
// OPTIONAL | OBJECT | Holds custom flags during a migration process. Can be used to keep track off different statuses. Keys must be of type String, values of type Boolean.
"anyString": false, // OPTIONAL | BOOLEAN
},
"workerId": "", // OPTIONAL | STRING | Identifier string for load balancer flows.
"workerStatus": "", // OPTIONAL | STRING | OPTIONS: ["ASSIGNED", "PROCESSING", "DONE", "ERROR"] | The status of an object from the worker perspective.
"retryMessage" : {},// OPTIONAL | OBJECT | A copy of the incoming message from the component that generated an error.
"retryTarget" : ""// OPTIONAL | STRING | The name of the component to target when retrying (depends on the targeted flow).
"origin" : "{{migration.origin}}" // REQUIRED | STRING | Specifies the origin of the document in the Content Store.
}
}