Sample deployment scripts
The sample scripts, along with the properties file, are used for deploying in the runtime environment (test, staging, or production). However, some of the cleanup scripts are not recommended for the runtime environment.
- Scripts
- Content Project Deployment Service properties file
- Getting the object store configuration status
- Configuring the object store
- Deploying a project version
- Getting the deployment of the project version
- Returning the deployment status for the project version
- Prechecking the system
- Prechecking the new project version to deploy
- Cleaning up the object store and deleting the associated Document Processing engine project
- Cleaning up the business teams
Scripts
The scripts give samples on how to deploy a project version to a runtime environment, monitor the deployment, and check the object store to verify that the Content Project Deployment Initialization has been performed. The cpds.properties.sample file contains a list of properties that are used as input for the deployment scripts.
All sample scripts and the deployment properties file are available in the product archive.
For more information about the parameters, use the documentation that is provided in the sample script files and properties file.
- Content Platform Engine object store scripts
-
- The cpds_getOSConfigStatus.sh script checks the project deployment configuration status on the object store.
- The cpds_configureOS.sh script initializes or updates or upgrades the Content Platform Engine object store to the current level. Run this script if the getOSConfigStatus.sh script returns a response in which the value of the isInitialized parameter is false.
- Project deployment related scripts
-
- The cpds_deployProj.sh script deploys a version of the deployment project for the content project.
- The cpds_getDeployedProjSnapshot.sh script returns the project version information for the deployed snapshot or version.
- The cpds_getDeploymentStatus.sh script returns the deployment record for the deployment project version.
- Deployment check scripts
-
- The cpds_systemPrecheck.sh script performs a system check for the Content Project Deployment Service and returns status of connections, Document Processing engine database projects, and whether the user can deploy a project to the environment.
- The cpds_projectPrecheck.sh script provides the capability to check or preview data and content definition changes without actually deploying the project version to the object store. The script can be run for a new project version before it is deployed to identify changes and issues. The script returns alerts that are associated with changes made in the specified version against the previous design repository version and against the object store for an existing project deployment.
- Deployment artifact cleanup scripts
-
Attention: These scripts are intended for use in the development environment only and are not recommended for runtime environments.
- The cpds_cleanUpProject.sh script removes documents and metadata from the Content Platform Engine repository and removes the associated Document Processing engine project information.
- The cpds_cleanUpTeams.sh script cleans up the teams that are associated to the specified project name.
- IAM/Zen authentication script
- The helper_getZenToken.sh authentication script is used by all the scripts to log in to the IAM and Zen server to provide a Zen bearer token.
(Deprecated) UMS
authentication script- The helper_getUMSToken.sh UMS authentication script is used by all the scripts to log in to the UMS server and provider a bearer token.
--cacert
<certificate file>, and use a certificate file with one or more PEM
certificates to create more secure HTTPS connections. For more curl options that
you can use to secure connections with certificates, see the curl help and
documentation.Content Project Deployment Service properties file
This file is a collection of properties that are used as input for the deployment and status
scripts. You make a copy of the sample file and complete it with the values for your environment.
The format of the file is set up for defined key-value pairs, separated by the equal character
(=). The key has the same name as the parameter name that is passed into the
script.
- Do not include an equal sign '=' in any value.
- Make sure not to add extra spaces or slashes "/" to any URL routes.
- The cpds.properties file contains credential information and should be secured after you fill it out.
When you edit your copy of the cpds.properties file, read the descriptions and explanations in the script for more details about the properties and values. In general, you provide information about the configuration details of both your authoring environment and your runtime environment, and you also provide information about your project and object store.
Runtime environment (destination) settings
runtimeUseZen=true
runtimeZenIamUrl=<cp-console URL for IAM login Test/Staging/Prod Environment>
runtimeZenUrl=<cpd URL for ZEN login Test/Staging/Prod Environment>
runtimeUser=<User Name Test/Staging/Prod Environment>
runtimePwd=<Password>
Authoring/development (source) settings
devUseZen=true
devZenIamUrl=<cp-console URL for IAM login Test/Staging/Prod Environment>
devZenUrl=<cpd URL for ZEN login Test/Staging/Prod Environment>
devUser=<User Name Test/Staging/Prod Environment>
devPwd=<Password>
Content Project Deployment Service information for the runtime environment
runtimeCpdsUrl=<Content Project Deployment URL>
Project and version information for your Document Processing Designer project
projectName=<Project Name>
snapshotVersion=<version>
Object store name for the runtime environment
runtimeObjectStore=<Object Store SymbolicName>
| Value | Location |
|---|---|
runtimeZenIamUrl |
|
runtimeZenUrl |
|
runtimeUser |
A user who is a member of the DocProcessingManagers Team on the Runtime Environment.
Note: For
deployment, the user must be a member of the
DocProcessingManagers, or
DocProcessingAnalysts. |
runtimePwd |
The password for the |
devZenIamUrl |
|
devZenUrl |
|
devUser |
A user who is a member of the DocProcessingManagers UMS Team on the runtime Environment.
Note: For deployment, the user must be a member of the
DocProcessingManagers, the
DocProcessingAnalysts, or the ProjectAdmin-<projectIdentifier>
Team in the Authoring environment. |
devPwd |
The password for the devUser. |
runtimeCpdsUrl |
The URL of the Content Project Deployment Service in the Runtime environment.
|
projectName |
The Document Processing Designer project’s Acronym. You can find this information in:
|
snapshotVersion |
The Document Processing Designer project version that is used for deployment. You can find the project version in the Authoring environment, in the Document Processing Designer project. Open the project, select Version/Deploy, and find the snapshot version for the deployed version. Example: snapshotVersion=v2-2020-10-13-1825 |
runtimeObjectStore |
The symbolic name of the Object Store for the Content Process Engine that is used for deployment. Example: DEVOS1 |
acceptLanguage=en_US |
Specify the language that the client prefers to get back a status response. The default value is set to en_US if the value is not specified. The default value is set to en_US if not specified. Example: acceptLanguage=en_US |
cleanProjOptions |
This value is optional, which can be uncommented from the properties sample if you are using the cpds_cleanUpProject.sh script. For more information, see Cleaning up the object store and deleting Document Processing engine project.
|
cleanTeamsOptions |
This value is optional, which can be uncommented from the properties sample by using the
cpds_cleanUpTeams.sh script. For more information, see Cleaning up the business teams.
Example: cleanTeamsOptions="\"cleanTeams\": true" |
Getting the object store configuration status
GET /v1/repositories/{repositoryIdentifier}/initializationcpds.properties
file:./cpds_getOSConfigStatus.sh --file cpds.propertiesFor more information about the GET
/v1/repositories/{repositoryIdentifier}/initialization request, see the Swagger
documentation.
Code samples for getting the object store configuration status
- Output
- The following example shows sample
output.
./cpds_getOSConfigStatus.sh --file cpds.properties Extracting fields from file cpds.properties ...... Getting RunTime ZENToken ... {"data":{"contentAnalyzerHandlerVersion":"20.0.3.0-dev-180","contentAnalyzerMetadataVersion":"20.0.3.0.8","contentDeploymentMetadataVersion":"20.0.3.0.0","isInitialized":true,"umsRoleHandlerMetadataVersion":"20.0.3.0.1","umsRoleHandlerVersion":"20.0.3.0-dev-180"},"status":{"code":200,"message":"Successfully retrieved the initialization status of the repository.","messageId":"FNRDD0013I"}} Return Code=200 - Explanation
-
The following example explains the possible output.
{ "data": { "contentAnalyzerHandlerVersion": "21.0.2.0-dev-246", "contentAnalyzerMetadataVersion": "21.0.2.0.10", "contentDeploymentMetadataVersion": "21.0.3.0.0", "isInitialized": true, ==> the Object store is configured to the appropriate levels for Document Content Deployment "umsRoleHandlerMetadataVersion": "20.0.3.0.1", "umsRoleHandlerVersion": "21.0.2.0-dev-246" }, "status": { "code": 200, "message": "Successfully retrieved the initialization status of the repository.", "messageId": "FNRDD0013I" } }
Configuring the object store
The cpds_configureOS.sh runs the Content Project Deployment Service REST POST initialization endpoint, which initializes or updates the Content Platform Engine object store. If the cpds_getOSInitStat.sh script was run and the object store returned false for the isInitialized parameter, the operations performed in this script initialize the object store to the appropriate levels.
To run the script, the user must be a Content Platform Engine administrator for the object store and a member of the DocProcessingManagers team on the Runtime (Test/Staging/Prod) environment.
cpds.properties
file:./cpds_configureOS.sh --file cpds.propertiesFor more information about the POST
/v1/repositories/{repositoryIdentifier}/initialization request, see the Swagger
documentation.
Code samples for configuring the object store
- Output
- The following example shows sample
output.
./cpds_configureOS.sh --file cpds.properties Extracting fields from file cpds.properties ...... Getting RunTime ZENToken ... {"data":{"elapsedTime":624,"initializationStatus":"Success"},"status":{"code":200,"message":"Successfully initialized the repository.","messageId":"FNRDD0002I"}} Return Code=200 - Explanation
- The following example explains the possible output.
{ "data": { "elapsedTime": 624, => the number of ms to perform the initialization/upgrade "initializationStatus": "Success" => the initialization/upgrade was successful. }, "status": { "code": 200, "message": "Successfully initialized the repository.", "messageId": "FNRDD0002I" } }
Deploying a project version
cpds_deployProj.sh script deploys a Document Processing Designer project and
version from the authoring or development environment into a runtime (test/staging/production)
environment. The project is deployed to the Content Platform Engine object store and the associated
Document Processing engine runtime
environment. The script uses this Content Project Deployment Service REST endpoint to deploy the
project.POST /v1/deployment/projects/{projectIdentifier}/branches/{branchName}/snapshots/{snapshotName}POST /v1/deployment/projects/{projectIdentifier}/branches/{branchName}/snapshots/{snapshotName}?repositoryIdentifier={objectStore}&operationMode=AsyncThis script requires log-in credentials from both the authoring environment (the source) and the runtime environment (the destination for the deployment). You provide them as parameter values in the cpds.properties file.
./cpds_deployProj.sh --file cpds.properties ./cpds_deployProj.sh --file cpds.properties --runtimeObjectStore OS2For more information about the POST
/v1/deployment/projects/{projectIdentifier}/branches/{branchName}/snapshots/{snapshotName}
request, see the Swagger documentation.
Code samples for deploying a project version
- Output
-
./cpds_deployProj.sh --file cpds.properties Extracting fields from file cpds.properties ...... Getting RunTime ZENToken ... Getting Dev ZENToken ... Deploying project ... - Mitigations
- If deployment takes a long time, you can try the following mitigations.
- Run cpds_getDeployedProjSnapshot.sh to return the overview information about the deployed project version.
- Run cpds_getDeploymentRec.sh and, to retrieve progress details, pass an
identifier by setting the deploymentRecordId parameter to the
lastDeploymentRecordId value that you retrieved in the previous step.
This process can take about 1 to 3 minutes.
- Return codes
- Deployment can return the following codes.
- 200: deployment is successful.
- 202: deployment failed midstream and some deployment artifacts were created.
- Anything that is NOT 200 or 202: deployment failed at the start because of configuration issue.
No artifact was created.
If this script returns immediately with a status that is NOT 200 or 202, issues might need to be corrected before redeploy. Do not call the next shell script because this is a global setup issue, which must be fixed before you can deploy any project in this environment.
In this case, go to the CPDS server and ensure that the Content Designer Rest API (CDRA) URL (REPO_SERVICE_URL environment variable) is correctly configured to allow the CPDS server to connect to the CDRA server. For more information, consult the system.log file on the CPDS server.
- Explanation
-
{ "data": { "branchName": "master", "caProjectDescriptor": "a1263c2a-778f-452a-b4ca-e55ef79dda9d", => Document Processing engine project descriptor associated with the deployment project. "deploymentStatus": { "status": "Success", => Options are Success or Failed "type": "Redeploy" => New, the first time the version is deployed or Redeploy, a subsequent deployment of the same version }, "lastDeploymentRecordId": "{50A5E775-0000-C314-82C6-1D87C9F34749}", => the last deployment record can be used to find out information about the deployment. See cpds_getDeploymentStatus.sh "precheckDetails": { "alerts": [ { "alertAction": "No action is needed.", "alertCode": "A800", "alertMessage": "The property template DbaCDDCustomernumber will be added to the object store. ", "alertSeverity": "Informational", "artifactType": "PropertyTemplate", "changeSourceType": "ObjectStore", "changeType": "PropertyAdded", "propertySymbolicName": "DbaCDDCustomernumber", "referenceId": 0 }, { "alertAction": "No action is needed.", "alertCode": "A800", "alertMessage": "The property template DbaCDDAccountnumber will be added to the object store. ", "alertSeverity": "Informational", "artifactType": "PropertyTemplate", "changeSourceType": "ObjectStore", "changeType": "PropertyAdded", "propertySymbolicName": "DbaCDDAccountnumber", "referenceId": 1 }, { "alertAction": "No action is needed.", "alertCode": "A800", "alertMessage": "The property template DbaCDDDuedate will be added to the object store. ", "alertSeverity": "Informational", "artifactType": "PropertyTemplate", "changeSourceType": "ObjectStore", "changeType": "PropertyAdded", "propertySymbolicName": "DbaCDDDuedate", "referenceId": 2 }, { "alertAction": "No action is needed.", "alertCode": "A800", "alertMessage": "The property template DbaCDDPaymentreceived will be added to the object store. ", "alertSeverity": "Informational", "artifactType": "PropertyTemplate", "changeSourceType": "ObjectStore", "changeType": "PropertyAdded", "propertySymbolicName": "DbaCDDPaymentreceived", "referenceId": 3 }, { "alertAction": "No action is needed.", "alertCode": "A800", "alertMessage": "The property template DbaCDDPreviousbalance will be added to the object store. ", "alertSeverity": "Informational", "artifactType": "PropertyTemplate", "changeSourceType": "ObjectStore", "changeType": "PropertyAdded", "propertySymbolicName": "DbaCDDPreviousbalance", "referenceId": 4 }, { "alertAction": "No action is needed.", "alertCode": "A800", "alertMessage": "The property template DbaCDDTotalamountdue will be added to the object store. ", "alertSeverity": "Informational", "artifactType": "PropertyTemplate", "changeSourceType": "ObjectStore", "changeType": "PropertyAdded", "propertySymbolicName": "DbaCDDTotalamountdue", "referenceId": 5 }, { "alertAction": "No action is needed.", "alertCode": "A800", "alertMessage": "The property template DbaCDDCompanynameandaddress will be added to the object store. ", "alertSeverity": "Informational", "artifactType": "PropertyTemplate", "changeSourceType": "ObjectStore", "changeType": "PropertyAdded", "propertySymbolicName": "DbaCDDCompanynameandaddress", "referenceId": 6 }, { "alertAction": "No action is needed.", "alertCode": "A800", "alertMessage": "The property template DbaCDDUnpaidAndNewCharge will be added to the object store. ", "alertSeverity": "Informational", "artifactType": "PropertyTemplate", "changeSourceType": "ObjectStore", "changeType": "PropertyAdded", "propertySymbolicName": "DbaCDDUnpaidAndNewCharge", "referenceId": 7 }, { "alertAction": "No action is needed.", "alertCode": "A800", "alertMessage": "The property template DbaCDDPin will be added to the object store. ", "alertSeverity": "Informational", "artifactType": "PropertyTemplate", "changeSourceType": "ObjectStore", "changeType": "PropertyAdded", "propertySymbolicName": "DbaCDDPin", "referenceId": 8 }, { "alertAction": "No action is needed.", "alertCode": "A800", "alertMessage": "The property template DbaCDDWebSite will be added to the object store. ", "alertSeverity": "Informational", "artifactType": "PropertyTemplate", "changeSourceType": "ObjectStore", "changeType": "PropertyAdded", "propertySymbolicName": "DbaCDDWebSite", "referenceId": 9 }, { "alertAction": "No action is needed.", "alertCode": "A800", "alertMessage": "The property template DbaCDDStatementDate will be added to the object store. ", "alertSeverity": "Informational", "artifactType": "PropertyTemplate", "changeSourceType": "ObjectStore", "changeType": "PropertyAdded", "propertySymbolicName": "DbaCDDStatementDate", "referenceId": 10 }, { "alertAction": "No action is needed.", "alertCode": "A200", "alertMessage": "The class definition DbaJL126UtilityBill will be added to the object store.", "alertSeverity": "Informational", "artifactType": "Class", "changeSourceType": "ObjectStore", "changeType": "ClassAdded", "classSymbolicName": "DbaJL126UtilityBill", "referenceId": 11 }, { "alertAction": "No action is needed.", "alertCode": "A200", "alertMessage": "The class definition DbaJL126Invoice will be added to the object store.", "alertSeverity": "Informational", "artifactType": "Class", "changeSourceType": "ObjectStore", "changeType": "ClassAdded", "classSymbolicName": "DbaJL126Invoice", "referenceId": 12 }, { "alertAction": "No action is needed.", "alertCode": "A200", "alertMessage": "The class definition DbaJL126GasBill will be added to the object store.", "alertSeverity": "Informational", "artifactType": "Class", "changeSourceType": "ObjectStore", "changeType": "ClassAdded", "classSymbolicName": "DbaJL126GasBill", "referenceId": 13 }, { "alertAction": "No action is needed.", "alertCode": "A200", "alertMessage": "The class definition DbaJL126INVOICE will be added to the object store.", "alertSeverity": "Informational", "artifactType": "Class", "changeSourceType": "ObjectStore", "changeType": "ClassAdded", "classSymbolicName": "DbaJL126INVOICE", "referenceId": 14 } ], "classes": [ { "referenceId": 11, "definitionFile": "CD_UtilityBill.json", "displayName": "Utility Bill", "symbolicName": "DbaJL126UtilityBill" }, { "referenceId": 12, "definitionFile": "CD_Invoice.json", "displayName": "Invoice", "symbolicName": "DbaJL126Invoice" }, { "referenceId": 13, "definitionFile": "CD_GasBill.json", "displayName": "Gas Bill", "symbolicName": "DbaJL126GasBill" }, { "referenceId": 14, "definitionFile": "CD_INVOICE.json", "displayName": "INVOICE", "symbolicName": "DbaJL126INVOICE" } ], "propertyTemplates": [ { "referenceId": 0, "cardinality": "Single", "dataDefinitionFile": "proj://CDD/DD_cfe8c0fd-5df8-4a92-81fc-a75aa09997c7_CustomerNumber.json", "dataType": "String", "definitionName": "Customernumber", "symbolicName": "DbaCDDCustomernumber" }, { "referenceId": 1, "cardinality": "Single", "dataDefinitionFile": "proj://CDD/DD_a3e14089-d37f-4e97-9453-da46d35f0f1b_AccountNumber.json", "dataType": "String", "definitionName": "Accountnumber", "symbolicName": "DbaCDDAccountnumber" }, { "referenceId": 2, "cardinality": "Single", "dataDefinitionFile": "proj://CDD/DD_25f602c8-c310-48f1-8e8f-9ae9a892b3ab_DueDate.json", "dataType": "DateTime", "definitionName": "Duedate", "symbolicName": "DbaCDDDuedate" }, { "referenceId": 3, "cardinality": "Multi", "dataDefinitionFile": "proj://CDD/DD_8743e449-ca39-4229-874f-65df2590e932_Paymentreceived.json", "dataType": "Boolean", "definitionName": "Paymentreceived", "symbolicName": "DbaCDDPaymentreceived" }, { "referenceId": 4, "cardinality": "Single", "dataDefinitionFile": "proj://CDD/DD_35ad3772-179b-4490-8955-e3c8b7d36c18_Balance.json", "dataType": "Float", "definitionName": "Previousbalance", "symbolicName": "DbaCDDPreviousbalance" }, { "referenceId": 5, "cardinality": "Single", "dataDefinitionFile": "proj://CDD/DD_35ad3772-179b-4490-8955-e3c8b7d36c18_Balance.json", "dataType": "Float", "definitionName": "Totalamountdue", "symbolicName": "DbaCDDTotalamountdue" }, { "referenceId": 6, "cardinality": "Single", "dataDefinitionFile": "proj://CDD/DD_709aa21d-79fa-4a2c-b3ba-dea7cfdf01a5_Companynameandaddress.json", "dataType": "String", "definitionName": "Companynameandaddress", "symbolicName": "DbaCDDCompanynameandaddress" }, { "referenceId": 7, "cardinality": "Single", "dataDefinitionFile": "proj://CDD/DD_e3181ef1-02f8-402d-8e0c-8a3993ed86b9_unpaidandnewcharge.json", "dataType": "String", "definitionName": "UnpaidAndNewCharge", "symbolicName": "DbaCDDUnpaidAndNewCharge" }, { "referenceId": 8, "cardinality": "Single", "dataDefinitionFile": "proj://CDD/DD_f6e6c14e-5c04-43bf-b12d-da10a1dcfd42_Pin.json", "dataType": "String", "definitionName": "Pin", "symbolicName": "DbaCDDPin" }, { "referenceId": 9, "cardinality": "Single", "dataDefinitionFile": "proj://CDD/DD_d3418061-4b46-4a36-b0e6-61eb0ff26597_WebSite.json", "dataType": "String", "definitionName": "WebSite", "symbolicName": "DbaCDDWebSite" }, { "referenceId": 10, "cardinality": "Single", "dataDefinitionFile": "proj://CDD/DD_04a73b45-4c57-4a5b-859e-b83db33377a5_InvoiceDate.json", "dataType": "DateTime", "definitionName": "StatementDate", "symbolicName": "DbaCDDStatementDate" } ] }, "projectId": "{2A0DDE5C-4753-441E-B7AB-107E1D708898}", => the project id guid for the deployed project "projectIdentifier": "PRJ999", => the project identifier for the deployed project "projectVersionId": "{9D7B952E-8E1D-4E11-AD11-2D0395904E64}", => the deployed project version guid. For each version deployed of a project, a deployed project version is created. "repositoryIdentifier": "OS3", ==> the Object store the project was deployed "snapshotName": "v1-2020-11-19-0105" ==> The version of the project deployed }, "status": { "code": 200, "message": "Successfully deployed the project.", "messageId": "FNRDD0003I" } }
Getting the deployment of the project version
cpds_getDeploymentProjSnapshot.sh script returns the identifiers of the project
version and of the last deployment record for the snapshot or version that is deployed. This script
can be run about 20 seconds after the deployment has started. The deployment record ID is the value
of the latestDeploymentRecordId parameter in the deployment script output. To
get the status of the deployment, enter this identifier as input to the
cpds_getDeploymentStatus.sh script. The script uses this Content Project Deployment
Service REST endpoint to deploy the
project.GET /v1/deployment/projects/{projectIdentifier}/branches/{branchName}/snapshots/{snapshotName}./cpds_getDeployedProjSnapshot.sh --file cpds.propertiesFor more information about the GET
/v1/deployment/projects/{projectIdentifier}/branches/{branchName}/snapshots/{snapshotName}
request, see the Swagger documentation.
Code samples for getting the deployment of the project version
- Output
- The following example shows sample
output.
./cpds_getDeployedProjSnapshot.sh --file cpds.properties Extracting fields from file cpds.properties ...... Getting Runtime ZENToken ... Retrieving the deployed project information for OS3/PRJ999/v1-2020-11-19-0105 ... {"data":{"branchName":"master","caProjectDescriptor":"a1263c2a-778f-452a-b4ca-e55ef79dda9d","deploymentStatus":{"status":"Success","type":"Redeploy"},"lastDeploymentRecordId":"{50A5E775-0000-C314-82C6-1D87C9F34749}","projectId":"{9D7B952E-8E1D-4E11-AD11-2D0395904E64}","projectIdentifier":"PRJ999","projectVersionId":"{9D7B952E-8E1D-4E11-AD11-2D0395904E64}","repositoryIdentifier":"OS3","snapshotName":"v1-2020-11-19-0105"},"status":{"code":200,"message":"Successfully retrieved the information for the deployed project snapshot.","messageId":"FNRDD0009I"}} Return Code=200 - Explanation
- The following section shows an explanation of the output.
{ "data": { "branchName": "master", "caProjectDescriptor": "a1263c2a-778f-452a-b4ca-e55ef79dda9d", =>Document Processing engine project descriptor associated with the deployment project. "deploymentStatus": { "status": "Success", => Options are Success or Failed "type": "Redeploy" => New, the first time the version is deployed or Redeploy, a subsequent deployment of the same version }, "lastDeploymentRecordId": "{50A5E775-0000-C314-82C6-1D87C9F34749}", => the last deployment record can be used to find out information about the deployment. See cpds_getDeploymentStatus.sh "projectId": "{2A0DDE5C-4753-441E-B7AB-107E1D708898}", => the project id guid for the deployed project "projectIdentifier": "PRJ999", => the project identifier for the deployed project "projectVersionId": "{9D7B952E-8E1D-4E11-AD11-2D0395904E64}", => the deployed project version guid. For each version deployed of a project, a deployed project version is created. "repositoryIdentifier": "OS3", ==> the Object store the project was deployed "snapshotName": "v1-2020-11-19-0105" ==> The version of the project deployed }, "status": { "code": 200, "message": "Successfully retrieved the information for the deployed project snapshot.", "messageId": "FNRDD0009I" } } Get Failed - Invalid input Sample: If the information is all correct, this error can result because of timing. The deployment project and deployment project version may not have been created by the time the GET request for the project and version has been issued. Wait a few seconds and try again. { "status": { "code": 400, "messageId": "FNRDD1004E"", "message": " Invalid input::java.lang.IllegalArgumentException null projectIdentifier = PRJ123, branchName = master, snapshotName = v4-2020-12-01-0051" }, "errors": [ { "errorId": 1004, "explanation": "Invalid input ", "action": "Reenter your information and try again" } ] }
Returning the deployment status for the project version
The deployment of a project version might take a few minutes and the cpds_getDeploymentStatus.sh script provides the ability to monitor the progress of the deployment. Because the deployment can take a few minutes, you can use this script to poll the status of the deployment.
cpds.properties
file and the required deploymentRecId value. Use the
lastDeploymentRecordId value, which you retrieved from the
cpds_getDeploymentProjSnapshot.sh or cpds_deployProj.sh
script../cpds_getDeploymentStatus.sh --file cpds.properties --deploymentRecId D00E6C75-0000-CB1E-9CA6-ED3F7DB2AE9B For more information about the GET /v1/deploymentrecords/{deploymentRecordId}
request, see the Swagger documentation.
Code samples for returning the deployment status for the project version
- Output
- The following example shows sample
output.
./cpds_getDeploymentStatus.sh --file cpds.properties --deploymentRecId 50A5E775-0000-C314-82C6-1D87C9F34749 Extracting fields from file cpds.properties ...... Getting Runtime ZENToken ... Retrieving deploymentRecord ... {"data":{"branchName":"master","caProjectDescriptor":"a1263c2a-778f-452a-b4ca-e55ef79dda9d","contentAnalyzerStatus":{"machineLearningElapsedTime":5244,"newProject":false,"ontologyElapsedTime":32734,"projectCreationElapsedTime":0,"startTime":"2020-11-20T21:53:10.173Z"},"contentEngineStatus":{"existingClasses":2,"existingPropertyTemplates":5,"existingRoles":19,"newClasses":0,"newPropertyTemplates":0,"newRoles":0,"propertiesAndClassesElapsedTime":3244,"rolesElapsedTime":8308,"totalClasses":2,"totalPropertyTemplates":5,"totalRoles":19},"id":"50A5E775-0000-C314-82C6-1D87C9F34749","information":{"completionStatus":"Success","completionTime":"2020-11-20T21:53:48.151Z","existingTeams":12,"gitRepoRetrievalStatus":{"dataDefinitionsParsed":5,"gitElapsedTime":0},"newProject":false,"newTeams":0,"newVersion":false,"stages":["ReadSnapshot","Teams","ContentMetadata","Roles","ImportCAML","ImportCAOntology"],"startTime":"2020-11-20T21:52:54.544Z","teamsElapsedTime":2213,"totalElapsedTime":53607,"totalTeams":12},"projectId":"{2A0DDE5C-4753-441E-B7AB-107E1D708898}","projectIdentifier":"DM999","projectVersionId":"{9D7B952E-8E1D-4E11-AD11-2D0395904E64}","snapshotName":"v1-2020-11-19-0105"},"status":{"code":200,"message":"Successfully retrieved the deployment record.","messageId":"FNRDD0006I"}} Return Code=200 - Explanation
- The following example explains the possible output.
"data": { "branchName": "master", "caProjectDescriptor": "a1263c2a-778f-452a-b4ca-e55ef79dda9d", =>Document Processing engine project descriptor associated with the deployment project. "contentAnalyzerStatus": { "machineLearningElapsedTime": 5244, => The number of milliseconds to import the machine learning "newProject": false, => True if a new Document Processing engine project descriptor was created for the project or false if one existed and was updated during the deployment "ontologyElapsedTime": 32734,=> The number of ms to import the Document Processing engine files and definitions "projectCreationElapsedTime": 0, "startTime": "2020-11-20T21:53:10.173Z" }, "contentEngineStatus": { "existingClasses": 2, "existingPropertyTemplates": 5, "existingRoles": 19, "newClasses": 0, "newPropertyTemplates": 0, "newRoles": 0, "propertiesAndClassesElapsedTime": 3244, "rolesElapsedTime": 8308, "totalClasses": 2, "totalPropertyTemplates": 5, "totalRoles": 19 }, "id": "50A5E775-0000-C314-82C6-1D87C9F34749", => the deployment record id "information": { => overall deployment information "completionStatus": "Success", => Completion status of the deployment , Success or Failed "completionTime": "2020-11-20T21:53:48.151Z", => Time the deployment was completed "existingTeams": 12, "gitRepoRetrievalStatus": { "dataDefinitionsParsed": 5, "gitElapsedTime": 0 }, "newProject": false, "newTeams": 0, "newVersion": false, "stages": [ "ReadSnapshot", "Teams", "ContentMetadata", "Roles", "ImportCAML", "ImportCAOntology" ], "startTime": "2020-11-20T21:52:54.544Z", "teamsElapsedTime": 2213, "totalElapsedTime": 53607, "totalTeams": 12 }, "projectId": "{2A0DDE5C-4753-441E-B7AB-107E1D708898}", => the project id guid for the deployed project "projectIdentifier": "PRJ999", => the project identifier for the deployed project "projectVersionId": "{9D7B952E-8E1D-4E11-AD11-2D0395904E64}", => the deployed project version guid. For each version deployed of a project, a deployed project version is created. "snapshotName": "v1-2020-11-19-0105" ==> The version of the project deployed }, "status": { "code": 200, "message": "Successfully retrieved the deployment record.", "messageId": "FNRDD0006I" } } - Deployment status
- Deployment can also fail for a variety of reasons and then returns
errors.
currentStage: stage where error occurs. List of ordered stages can be found in "stages" field. completionStatus: "Failed" lastErrorId: an id assigned to a particular message. lastError: a localized version of the error message. Additional data can be appended to help diagnose issue.
Deployment appears InProgress when it takes some time to complete. The response returned in this case is similar, with the following exceptions:- The currentStage value is set to the stage that deployment is currently processing.
- The completionStatus value is set to
InProgress. - The lastErrorId and lastError values are not set.
Prechecking the system
precheck endpoint to the following effects. GET /v1/precheck- Verifies that the user has privileges to deploy.
- Verifies that the connections used for the Content Project Deployment Service are accessible.
- Reports the Document Processing engine project database availability where Content Project Deployment is configured.
cpds.properties
file:./cpds_systemPrecheck.sh --file cpds.propertiesFor more information about the GET /v1/precheck, see the Swagger
documentation.
Code samples for prechecking the system
- Output
-
The following example shows sample output.
./cpds_systemPrecheck.sh --file cpds.properties Extracting fields from file cpds.properties ..... Getting RunTime ZENToken ... {"data": {"caConnectionState":"Success","caProjectsAvailable":1,"caProjectsDeleteState":1,"caProjectsUsed":1, "canDeploy":true,"cpeConnectionState":"Success","gitConnectionState":"Success","umsTeamConnectionState":"Success"}, "status":{"code":200,"message":"Precheck of Content Project Deployment Service is successful.","messageId":"FNRDD0019I"}} Return Code=200 - Explanation
- The following example explains the possible output.
{ { "data": {{ "caConnectionState": "Success", => indicates the Document Processing engine connection tested was successful. "caProjectsAvailable": 1, ==> number of available Document Processing engine project databases used for new project creation. There needs to be at least one new project available for new projects being deployed. In a development environment, two projects are required for each deployment. One for the design and one for the deployment to an object store. "caProjectsDeleteState": 1, ==> number of Document Processing engine projects that are in the deletion state. The admin would be able to cleanup old projects. "caProjectsUsed": 1, ==> number of Document Processing engine project used. "canDeploy": true, ==> user has appropriate permissions to be able to deploy. "cpeConnectionState": "Success", ==> indicates the Content Platform Engine connection test was successful. "gitConnectionState": "Success", ==> indicates the Content Design REST API connection test was successful. "umsTeamConnectionState": "Success" ==> indicates the Teams Services connection test was successful. }, "status": { "code": 200 "message": "Precheck of Content Project Deployment Service is successful." "messageId": "FNRDD0019I } } - Connection issue
- This sample shows a connection issue.
{ "data": {{ "caConnectionError": "action": "Ask your system administrator to review the error logs on the Content Project Deployment Service application server for more details." "errorId": 516 "explanation": "Failed to connect to Document Processing engine. }, "caConnectionState": "Failed", ==> Document Processing engine connection test failed. See caConnectionError for error explanation, errorId and action to be taken. NOTE: Any failure for the connection states (ca, cpe, git, Team) needs to be addresses before a project can be deployed and the Content Project Deployment Service is fully functional. "canDeploy": true "cpeConnectionState": "Success" "gitConnectionState": "Success" "umsTeamConnectionState": "Success }, "status": { "code": 200 "message": "Precheck of Content Project Deployment Service is successful." "messageId": "FNRDD0019I } }}
Prechecking the new project version to deploy
GET /deployment/projects/{projectIdentifier}/branches/{branchName}/snapshots/{snapshotName}/precheckcpds.properties
file../cpds_projectPrecheck.sh --file cpds.propertiesFor more information about the GET
/deployment/projects/{projectIdentifier}/branches/{branchName}/snapshots/{snapshotName}/precheck
request, see the Swagger documentation.
- Incompatible
- These errors cause downstream deployment failures.
- Data type changes - The Content Designer prevents these changes. The changeType parameter is set to DataType.
- Cardinality (single or multivalue) changes - Content Designer versions earlier than 21.0.2 might have allowed these changes. The changeType parameter is set to Cardinality.
- ExistingDataImpact
- These warnings can impact in-progress objects. In general, they describe changes that are more
restrictive in nature, and existing data could become invalid.
- A property is now required (isRequired). The changeType parameter is set to IsValueRequired.
- The maximum length of a String to a more restrictive length. The changeType parameter is set to MaximumLength.
- The minimum and maximum values of an integer or double value are more restrictive. The changeType parameter is set to MinimumValue or MaximumValue.
- A new property is added so that existing data would have no value. The changeType parameter is set to PropertyAdded.
- Class retention settings changes. The changeType parameter has the RetentionChange value.
- Information
- These changes are less restrictive in nature and reflect a silent CPDS behavior.
- The isRequired parameter is automatically set to false for unmapped properties. The changeType parameter has the PropertyRemoved value.
- The maximum length of a String is set to a less restrictive length. The changeType parameter has the MaximumLength value.
- The minimum and maximum values of an integer or double value are more restrictive. The changeType parameter has the MinimumValue or MaximumValue value.
- Other changes that do not impact existing data. The changeType parameter is set to PropertyRemoved, or ClassRemoved, or ClassAdded.
The returned data is broken up into alerts, classes, and property templates. In the list of
alerts list, each alert has a reference identifier. This identifier corresponds to an artifact in
the classes section or the property template section. That
artifact provides more information about the identity of the class, property, property template, or
subproperty.
In the following example, alerts for which the changeSourceType parameter is set to DesignRepo are checked only when a version is deployed to any object store for the first time. With this first deployment, additional information about the version is captured in the design repository and certain metadata is established. Alerts for which the changeSourceType parameter is set to ObjectStore are always checked against what is currently deployed to the object store (if it is deployed at all).
Code samples for prechecking the new project version to deploy
- Output
- The following example shows sample
output.
./cpds_projectPrecheck.sh --file cpds.properties Extracting fields from file cpds.properties ...... Getting RunTime ZENToken ... {"data":{"alerts":[{"alertAction":"No action is needed.","alertCode":"A803","alertMessage":"The property template DbaCDDConsigneeAndShipper0003 is added to the design repository. ","alertSeverity":"Informational","artifactType":"PropertyTemplate","changeSourceType":"DesignRepo","changeType":"PropertyAdded","propertySymbolicName":"DbaCDDConsigneeAndShipper0003","referenceId":0},{"alertAction":"Ensure that the application is not adversely affected by any missing data.","alertCode":"A403","alertMessage":"The property DbaCDDConsigneeAndShipper0003 will be added to the class DbaJL125BillofLading in this version of the project in the design repository. ","alertSeverity":"ExistingDataImpact","artifactType":"Property","changeSourceType":"DesignRepo","changeType":"PropertyAdded","classSymbolicName":"DbaJL125BillofLading","propertySymbolicName":"DbaCDDConsigneeAndShipper0003","referenceId":2},{"alertAction":"No action is needed.","alertCode":"A800","alertMessage":"The property template DbaCDDConsigneeAndShipper0003 will be added to the object store. ","alertSeverity":"Informational","artifactType":"PropertyTemplate","changeSourceType":"ObjectStore","changeType":"PropertyAdded","propertySymbolicName":"DbaCDDConsigneeAndShipper0003","referenceId":0},{"alertAction":"Ensure that the application is not adversely affected by any missing data.","alertCode":"A400","alertMessage":"The property DbaCDDConsigneeAndShipper0003 will be added to the class DbaJL125BillofLading in the object store. Existing instances of the class in the object store will not have values for this property. ","alertSeverity":"ExistingDataImpact","artifactType":"Property","changeSourceType":"ObjectStore","changeType":"PropertyAdded","classSymbolicName":"DbaJL125BillofLading","propertySymbolicName":"DbaCDDConsigneeAndShipper0003","referenceId":2}],"classes":[{"referenceId":1,"classProperties":[{"referenceId":2,"cardinality":"Single","dataDefinitionFile":"proj://CDD/DD_d23e45a1-abec-4172-af6b-5ec65172e8f3_ConsigneeAndShipper.json","dataType":"Composite","definitionName":"ConsigneeAndShipper","displayName":"ConsigneeAndShipper","symbolicName":"DbaCDDConsigneeAndShipper0003"}],"definitionFile":"CD_BillofLading.json","displayName":"Bill of Lading","symbolicName":"DbaJL125BillofLading"}],"propertyTemplates":[{"referenceId":0,"cardinality":"Single","dataDefinitionFile":"proj://CDD/DD_d23e45a1-abec-4172-af6b-5ec65172e8f3_ConsigneeAndShipper.json","dataType":"Composite","definitionName":"ConsigneeAndShipper","symbolicName":"DbaCDDConsigneeAndShipper0003"}]},"status":{"code":200,"message":"Precheck of project version is successful.","messageId":"FNRDD0020I"}} Return 200 - Example of returned data
-
"data": { "alerts": [ // Same alerts as returned from precheck phase of deployment ] "propertyTemplates": [ // Same information returned from precheck phase of deployment ] "classes":[ // Same information returned from precheck phase of deployment ] } - Explanation
- The following example explains the possible output.
{ "data": { "alerts": [ { "alertAction": "No action is needed.", ==>What action can be taken for the alert "alertCode": "A803", ==> the alert code. All alerts start with the letter 'A'. "alertMessage": "The property template DbaCDDConsigneeAndShipper0003 is added to the design repository.", ==> Alert messages "alertSeverity": "Informational", ==> Type of alert. See Alert Categories "artifactType": "PropertyTemplate", ==> Type of artifact for this alert. Types are: Class, PropertyTemplate, Property or SubProperty "changeSourceType": "DesignRepo", ==> The type of source where the new project version change is different. Types are: DesignRepo (Design repository checks with prior version) and ObjectStore (checks with the object store) "changeType": "PropertyAdded", => the type of change. Change types: DataType, Cardinality, MinimumValue, MaximumValue,MaximumLength, IsValueRequired, PropertyAdded, PropertyRemoved, ClassAdded, ClassRemoved, RetentionChange. "propertySymbolicName": "DbaCDDConsigneeAndShipper0003", ==> the property if the alert is related to a property or property template. "referenceId": 0 ==> The reference id will correspond to the reference id in an artifact defined in the classes or propertyTemplates section }, { "alertAction": "Ensure that the application is not adversely affected by any missing data.", "alertCode": "A403", "alertMessage": "The property DbaCDDConsigneeAndShipper0003 will be added to the class DbaJL125BillofLading in this version of the project in the design repository. ", "alertSeverity": "ExistingDataImpact", "artifactType": "Property", "changeSourceType": "DesignRepo", "changeType": "PropertyAdded", "classSymbolicName": "DbaJL125BillofLading", ==> the class if the alert is related to a class or property within a class. "propertySymbolicName": "DbaCDDConsigneeAndShipper0003", "referenceId": 2 }, { "alertAction": "No action is needed.", "alertCode": "A800", "alertMessage": "The property template DbaCDDConsigneeAndShipper0003 will be added to the object store.", "alertSeverity": "Informational", "artifactType": "PropertyTemplate", "changeSourceType": "ObjectStore", "changeType": "PropertyAdded", "propertySymbolicName": "DbaCDDConsigneeAndShipper0003", "referenceId": 0 }, { "alertAction": "Ensure that the application is not adversely affected by any missing data.", "alertCode": "A400", "alertMessage": "The property DbaCDDConsigneeAndShipper0003 will be added to the class DbaJL125BillofLading in the object store. Existing instances of the class in the object store will not have values for this property. ", "alertSeverity": "ExistingDataImpact", "artifactType": "Property", "changeSourceType": "ObjectStore", "changeType": "PropertyAdded", "classSymbolicName": "DbaJL125BillofLading", "propertySymbolicName": "DbaCDDConsigneeAndShipper0003", "referenceId": 2 } ], "classes": [ { "referenceId": 1, "classProperties": [ { "referenceId": 2, ==> The reference id can be mapped to alert reference ids for particular alerts. "cardinality": "Single", "dataDefinitionFile": "proj://CDD/DD_d23e45a1-abec-4172-af6b-5ec65172e8f3_ConsigneeAndShipper.json", "dataType": "Composite", "definitionName": "ConsigneeAndShipper", "displayName": "ConsigneeAndShipper", "symbolicName": "DbaCDDConsigneeAndShipper0003" } ], "definitionFile": "CD_BillofLading.json", "displayName": "Bill of Lading", "symbolicName": "DbaJL125BillofLading" } ], "propertyTemplates": [ { "referenceId": 0, "cardinality": "Single", "dataDefinitionFile": "proj://CDD/DD_d23e45a1-abec-4172-af6b-5ec65172e8f3_ConsigneeAndShipper.json", "dataType": "Composite", "definitionName": "ConsigneeAndShipper", "symbolicName": "DbaCDDConsigneeAndShipper0003" } ] }, "status": { "code": 200, "message": "Precheck of project version is successful.", "messageId": "FNRDD0020I" } }:
Cleaning up the object store and deleting the associated Document Processing engine project
The cpds_cleanUpProject.sh script cleans up artifacts for the specified deployed project in Content Platform Engine repository and the associated Document Processing engine project. The script prompts the user with a warning and requires the user to type in YES before running the command to the Content Project Deployment Service.
In the development environment, you can run this script if you are a member of either the Doc Processing Managers or the Doc Processing Analysts teams.
POST /projects/{projectId}/cleanup- filterIncludeDocDetails
- Boolean value with default is false. If true, returns the details of each deleted document so an additional section, "documentDetails": [] will be returned with the ID, name and className of the each document deleted.
- timeOutInSecs
- Integer value with default to 10 seconds. This value limits the number of seconds to clean up the documents of a project. If the time is too short, cleanup will not be complete.
- cleanPropertyTemplates
- Boolean value with default to false. If true, removes the property templates associated with the
project. Note:
- Property templates can be shared with other projects. A property template can be deleted only if no other project in that object store is using the template. Otherwise, that property is skipped.
- If no options are specified, default options
apply.
\"filterIncludeDocDetails\": false
\"timeOutInSecs\": 10
\"cleanPropertyTemplates\": false
cpds.properties
file, without removing project-related
templates:./cpds_cleanUpProject.sh --file cpds.properties --deployedProjectId EB9B7698-8C1F-45C1-AD04-B7DA7A10E717cpds.properties
file, with the option to clean the associated property
templates:./cpds_cleanUpProject.sh --file cpds.properties --deployedProjectId EB9B7698-8C1F-45C1-AD04-B7DA7A10E717cpds.properties
file, with the option to clean up the project without removing associated templates
output:./cpds_cleanUpProject.sh --file cpds.properties --deployedProjectId 44542974-9241-4343-8949-AB24C56457EDFor more information about the POST /projects/{projectId}/cleanup request, see
the Swagger documentation.
Code samples for cleaning up the object store and deleting the associated Document Processing engine project
- Output
- The following example shows sample
output.
Extracting fields from file cpds.properties ...... Getting RunTime ZENToken ... WARNING: Deletion of a project will remove most artifacts associated with a deployed project. These artifacts include: documents, document classes, roles, ca project, project versions, project, project deployment records associated with a project. Unreferenced property templates can be deleted if passed in an override flag. In the dev env, operation is opened to users who are EITHER members of Doc Processing Managers or Content Analysts. In the runtime env, operation is opened only to users who are BOTH members of Doc Processing Mgrs and OS admins. Type YES to proceed with deletion or return to exit ? YES Cleaning project ... {"data":{"documentClassDetails":[{"id":"{4CEA3A2A-973A-4386-8041-75AAB05AC02C}","symbolicName":"DbaJL123UtilityBill"}],"documentsCountDetails":[{"className":"DbaJL123UtilityBill","count":0}],"elapsedTime":2,"id":"44542974-9241-4343-8949-AB24C56457ED","projectVersionDetails":[{"id":"{6D72B307-F901-4A55-9E12-4D9302E0FD4E}","snapshotName":"v34-2021-04-26-1833"}],"roleDetails":[{"displayName":"Document Viewers-JL123 Membership","id":"{70DF79DB-35A6-4041-875E-021978F49B21}","roleClassName":"DbaUMSTeamDynamicRole","umsTeamUUID":"a623f3c6-22c4-460d-abcc-8d60543ab89c"},{"displayName":"Document Viewers-JL123-UtilityBill Membership","id":"{9CFFD44D-1D8C-456C-8011-BDA95C8E152A}","roleClassName":"DbaUMSTeamDynamicRole","umsTeamUUID":"2d9d90a1-7e69-45a0-8788-ca1efb6779ce"},{"displayName":"Document Editors-JL123-UtilityBill Membership","id":"{4107EA60-8EEA-45AA-A948-0CE414186E3B}","roleClassName":"DbaUMSTeamDynamicRole","umsTeamUUID":"b1198b5c-55f1-49c7-8607-741bb2856781"},{"displayName":"Classification Workers-JL123 Membership","id":"{E97B288B-269D-4E95-BA8F-27C55A1C89B8}","roleClassName":"DbaUMSTeamDynamicRole","umsTeamUUID":"dbe5eed2-1509-4768-8f0d-9f8e964a3d07"},{"displayName":"Document Owners-JL123 Membership","id":"{3029DCB3-BA28-40FF-A160-C7C8B194C373}","roleClassName":"DbaUMSTeamDynamicRole","umsTeamUUID":"5c5f0ebc-32d1-4ee3-981a-c03b0fd89a67"},{"displayName":"Project Admins-JL123 Membership","id":"{B75AC624-B88F-419D-BCDF-1D5EECECBD70}","roleClassName":"DbaUMSTeamDynamicRole","umsTeamUUID":"fe6b1bf5-7ce4-4765-8e2a-e3dda6a1d839"},{"displayName":"Document Owners-JL123-UtilityBill Membership","id":"{A1D28D71-612B-449F-8765-ED3405C19377}","roleClassName":"DbaUMSTeamDynamicRole","umsTeamUUID":"435f7476-95f6-42c3-b295-9f1925631352"},{"displayName":"Document Editors-JL123 Membership","id":"{5E71E654-AC39-4FCA-96A2-7C00B9312878}","roleClassName":"DbaUMSTeamDynamicRole","umsTeamUUID":"9c72aab0-3ea7-4440-b124-83258c06b37d"},{"displayName":"Classification Workers-JL123","id":"{B556D3FA-8B6B-40FF-9AA0-C01FAFF0D2FE}","roleClassName":"DbaClassificationWorkersRole"},{"displayName":"Project Admins-JL123","id":"{A1C9578B-1FFC-48F0-9278-1B4A12EAB449}","roleClassName":"DbaProjectAdminsRole"},{"displayName":"Document Owners-JL123-UtilityBill","id":"{3EC70A5A-51B5-420D-8D7E-D32F2EC0CB1D}","roleClassName":"DbaProjectDocumentOwnersRole"},{"displayName":"Document Editors-JL123-UtilityBill","id":"{71BCB3A8-E294-4D62-BAC2-F35851A939DF}","roleClassName":"DbaProjectDocumentEditorsRole"},{"displayName":"Document Viewers-JL123-UtilityBill","id":"{FC86E9F0-70E2-4FE5-A53B-7CE70A7F11A4}","roleClassName":"DbaProjectDocumentViewersRole"}]},"status":{"code":200,"message":"Successfully cleaned up the project.","messageId":"FNRDD0004I"}} Return Code=200 - Explanation
- The following example explains the possible output.
{ "data": { "documentClassDetails": [ ==> Classes deleted { "id": "{4CEA3A2A-973A-4386-8041-75AAB05AC02C}", "symbolicName": "DbaJL123UtilityBill" } ], "documentsCountDetails": [ ==> Documents deleted specified by for each Classes deleted { "className": "DbaJL123UtilityBill", ==> deleted class "count": 0 ==> number of documents deleted which were instantiated from the deleted class } ], "elapsedTime": 2, "id": "44542974-9241-4343-8949-AB24C56457ED", ==> Deployed Project guid "projectVersionDetails": [ ==> Deployed project versions { "id": "{6D72B307-F901-4A55-9E12-4D9302E0FD4E}", "snapshotName": "v34-2021-04-26-1833" } ], "roleDetails": [ ==> Roles associated to the project which were deleted { "displayName": "Document Viewers-JL123 Membership", ==> Display Name "id": "{70DF79DB-35A6-4041-875E-021978F49B21}", ==> Role guid "roleClassName": "DbaUMSTeamDynamicRole", ==> symbolic role name "umsTeamUUID": "a623f3c6-22c4-460d-abcc-8d60543ab89c"==>Team guid associated with the role }, { "displayName": "Document Viewers-JL123-UtilityBill Membership", "id": "{9CFFD44D-1D8C-456C-8011-BDA95C8E152A}", "roleClassName": "DbaUMSTeamDynamicRole", "umsTeamUUID": "2d9d90a1-7e69-45a0-8788-ca1efb6779ce" }, { "displayName": "Document Editors-JL123-UtilityBill Membership", "id": "{4107EA60-8EEA-45AA-A948-0CE414186E3B}", "roleClassName": "DbaUMSTeamDynamicRole", "umsTeamUUID": "b1198b5c-55f1-49c7-8607-741bb2856781" }, { "displayName": "Classification Workers-JL123 Membership", "id": "{E97B288B-269D-4E95-BA8F-27C55A1C89B8}", "roleClassName": "DbaUMSTeamDynamicRole", "umsTeamUUID": "dbe5eed2-1509-4768-8f0d-9f8e964a3d07" }, { "displayName": "Document Owners-JL123 Membership", "id": "{3029DCB3-BA28-40FF-A160-C7C8B194C373}", "roleClassName": "DbaUMSTeamDynamicRole", "umsTeamUUID": "5c5f0ebc-32d1-4ee3-981a-c03b0fd89a67" }, { "displayName": "Project Admins-JL123 Membership", "id": "{B75AC624-B88F-419D-BCDF-1D5EECECBD70}", "roleClassName": "DbaUMSTeamDynamicRole", "umsTeamUUID": "fe6b1bf5-7ce4-4765-8e2a-e3dda6a1d839" }, { "displayName": "Document Owners-JL123-UtilityBill Membership", "id": "{A1D28D71-612B-449F-8765-ED3405C19377}", "roleClassName": "DbaUMSTeamDynamicRole", "umsTeamUUID": "435f7476-95f6-42c3-b295-9f1925631352" }, { "displayName": "Document Editors-JL123 Membership", "id": "{5E71E654-AC39-4FCA-96A2-7C00B9312878}", "roleClassName": "DbaUMSTeamDynamicRole", "umsTeamUUID": "9c72aab0-3ea7-4440-b124-83258c06b37d" }, { "displayName": "Classification Workers-JL123", "id": "{B556D3FA-8B6B-40FF-9AA0-C01FAFF0D2FE}", "roleClassName": "DbaClassificationWorkersRole" }, { "displayName": "Project Admins-JL123", "id": "{A1C9578B-1FFC-48F0-9278-1B4A12EAB449}", "roleClassName": "DbaProjectAdminsRole" }, { "displayName": "Document Owners-JL123-UtilityBill", "id": "{3EC70A5A-51B5-420D-8D7E-D32F2EC0CB1D}", "roleClassName": "DbaProjectDocumentOwnersRole" }, { "displayName": "Document Editors-JL123-UtilityBill", "id": "{71BCB3A8-E294-4D62-BAC2-F35851A939DF}", "roleClassName": "DbaProjectDocumentEditorsRole" }, { "displayName": "Document Viewers-JL123-UtilityBill", "id": "{FC86E9F0-70E2-4FE5-A53B-7CE70A7F11A4}", "roleClassName": "DbaProjectDocumentViewersRole" } ] }, "status": { "code": 200, "message": "Successfully cleaned up the project.", "messageId": "FNRDD0004I" } }
Cleaning up the business teams
The cpds_cleanUpTeams.sh script removes teams that are associated with the project name specified from the Business Teams Server. The script prompts the user with a warning and requires the user to type in YES before running the command to the Content Project Deployment Service.
In the development environment, you can run this script if you are a member of either the Doc Processing Managers or the Doc Processing Analysts teams.
POST /projects/{projectIdentifier}/teamscleanupcpds.properties
file:./cpds_cleanUpTeams.sh --file cpds.propertiescpds.properties
file, with the option to override the project
name:./cpds_cleanUpTeams.sh --file cpds.properties --projectName PROJ1For more information about the POST /projects/{projectIdentifier}/teamscleanup
request, see the Swagger documentation.
- Project Admins-<projectName>
- Classification Workers-<projectName>
- Business Owners-<projectName>
- Document Owners<projectName>
- Document Editors-<projectName>
- Document Viewers-<projectName>
- Project class related teams (one per class for the project):
- Document Owners-<projectName>-<documentTypeName>
- Document Editors-<projectName>-<documentTypeName>
- Document Viewers-<projectName>-<documentTypeName>
--cleanTeamsOptions "\"cleanTeams\": false"Code samples for cleaning up the business teams
- Output
- The following example shows sample
output.
./cpds_cleanUpTeams.sh --file cpds.properties Extracting fields from file cpds.properties ...... Getting RunTime ZENToken ... "cleanTeams": true WARNING: Deletion of project-related teams will remove all teams associated to the project. If the project is deployed in one or more repositories using these same teams, the project in these environments will no longer function. Type YES to proceed with deletion or return to exit ? YES {"data":{"teamDetails":[{"displayName":"Business Owners-JL123","distinguishedName":"cn=businessowners,project=jl123,scope=project,application=capture","uuid":"724735a2-cea3-4c5f-ab39-f27bfacd9e1c"},{"displayName":"Classification Workers-JL123","distinguishedName":"cn=classificationworkers,project=jl123,scope=project,application=capture","uuid":"dbe5eed2-1509-4768-8f0d-9f8e964a3d07"},{"displayName":"Document Editors-JL123","distinguishedName":"cn=documenteditors,project=jl123,scope=project,application=capture","uuid":"9c72aab0-3ea7-4440-b124-83258c06b37d"},{"displayName":"Document Owners-JL123","distinguishedName":"cn=documentowners,project=jl123,scope=project,application=capture","uuid":"5c5f0ebc-32d1-4ee3-981a-c03b0fd89a67"},{"displayName":"Document Viewers-JL123","distinguishedName":"cn=documentviewers,project=jl123,scope=project,application=capture","uuid":"a623f3c6-22c4-460d-abcc-8d60543ab89c"},{"displayName":"ProjectAdmins-JL123","distinguishedName":"cn=projectadmins,project=jl123,scope=project,application=capture","uuid":"fe6b1bf5-7ce4-4765-8e2a-e3dda6a1d839"},{"displayName":"Document Editors-JL123-BillofLading","distinguishedName":"cn=documenteditors,class=billoflading,project=jl123,scope=projectclass,application=capture","uuid":"e18ee7f9-7f25-4ac0-8435-6923762de966"},{"displayName":"Document Editors-JL123-UtilityBill","distinguishedName":"cn=documenteditors,class=utilitybill,project=jl123,scope=projectclass,application=capture","uuid":"b1198b5c-55f1-49c7-8607-741bb2856781"},{"displayName":"Document Owners-JL123-BillofLading","distinguishedName":"cn=documentowners,class=billoflading,project=jl123,scope=projectclass,application=capture","uuid":"3342f424-929e-433c-be0a-0a339d95d1aa"},{"displayName":"Document Owners-JL123-UtilityBill","distinguishedName":"cn=documentowners,class=utilitybill,project=jl123,scope=projectclass,application=capture","uuid":"435f7476-95f6-42c3-b295-9f1925631352"},{"displayName":"Document Viewers-JL123-BillofLading","distinguishedName":"cn=documentviewers,class=billoflading,project=jl123,scope=projectclass,application=capture","uuid":"b8602e0d-a3f6-466b-9598-217c88040e11"},{"displayName":"Document Viewers-JL123-EnergyBill","distinguishedName":"cn=documentviewers,class=energybill,project=jl123,scope=projectclass,application=capture","uuid":"d075177c-c47e-4b5d-90de-97a81bf87646"},{"displayName":"Document Viewers-JL123-Invoice","distinguishedName":"cn=documentviewers,class=invoice,project=jl123,scope=projectclass,application=capture","uuid":"b84af045-bac5-40f2-bfcc-4eda5ec262bf"},{"displayName":"Document Viewers-JL123-UtilityBill","distinguishedName":"cn=documentviewers,class=utilitybill,project=jl123,scope=projectclass,application=capture","uuid":"2d9d90a1-7e69-45a0-8788-ca1efb6779ce"}]},"status":{"code":200,"message":"Retrieved the teams that are associated with the Project Identifier.","messageId":"FNRDD0018I"}} Return Code=200 - Explanation
- The following example explains the possible output.
{ "data": { "teamDetails": [ <== array of teams identified by the project name which have been deleted from the Teams Server { "displayName": "Business Owners-JL123", ==> display name for the Team deleted. "distinguishedName": "cn=businessowners,project=jl123,scope=project,application=capture", ==> Team Distinguished Name "uuid": "724735a2-cea3-4c5f-ab39-f27bfacd9e1c" ==> Team guid for the deleted team }, { "displayName": "Classification Workers-JL123", "distinguishedName": "cn=classificationworkers,project=jl123,scope=project,application=capture", "uuid": "dbe5eed2-1509-4768-8f0d-9f8e964a3d07" }, { "displayName": "Document Editors-JL123", "distinguishedName": "cn=documenteditors,project=jl123,scope=project,application=capture", "uuid": "9c72aab0-3ea7-4440-b124-83258c06b37d" }, { "displayName": "Document Owners-JL123", "distinguishedName": "cn=documentowners,project=jl123,scope=project,application=capture", "uuid": "5c5f0ebc-32d1-4ee3-981a-c03b0fd89a67" }, { "displayName": "Document Viewers-JL123", "distinguishedName": "cn=documentviewers,project=jl123,scope=project,application=capture", "uuid": "a623f3c6-22c4-460d-abcc-8d60543ab89c" }, { "displayName": "ProjectAdmins-JL123", "distinguishedName": "cn=projectadmins,project=jl123,scope=project,application=capture", "uuid": "fe6b1bf5-7ce4-4765-8e2a-e3dda6a1d839" }, { "displayName": "Document Editors-JL123-BillofLading", "distinguishedName": "cn=documenteditors,class=billoflading,project=jl123,scope=projectclass,application=capture", "uuid": "e18ee7f9-7f25-4ac0-8435-6923762de966" }, { "displayName": "Document Editors-JL123-UtilityBill", "distinguishedName": "cn=documenteditors,class=utilitybill,project=jl123,scope=projectclass,application=capture", "uuid": "b1198b5c-55f1-49c7-8607-741bb2856781" }, { "displayName": "Document Owners-JL123-BillofLading", "distinguishedName": "cn=documentowners,class=billoflading,project=jl123,scope=projectclass,application=capture", "uuid": "3342f424-929e-433c-be0a-0a339d95d1aa" }, { "displayName": "Document Owners-JL123-UtilityBill", "distinguishedName": "cn=documentowners,class=utilitybill,project=jl123,scope=projectclass,application=capture", "uuid": "435f7476-95f6-42c3-b295-9f1925631352" }, { "displayName": "Document Viewers-JL123-BillofLading", "distinguishedName": "cn=documentviewers,class=billoflading,project=jl123,scope=projectclass,application=capture", "uuid": "b8602e0d-a3f6-466b-9598-217c88040e11" }, { "displayName": "Document Viewers-JL123-EnergyBill", "distinguishedName": "cn=documentviewers,class=energybill,project=jl123,scope=projectclass,application=capture", "uuid": "d075177c-c47e-4b5d-90de-97a81bf87646" }, { "displayName": "Document Viewers-JL123-Invoice", "distinguishedName": "cn=documentviewers,class=invoice,project=jl123,scope=projectclass,application=capture", "uuid": "b84af045-bac5-40f2-bfcc-4eda5ec262bf" }, { "displayName": "Document Viewers-JL123-UtilityBill", "distinguishedName": "cn=documentviewers,class=utilitybill,project=jl123,scope=projectclass,application=capture", "uuid": "2d9d90a1-7e69-45a0-8788-ca1efb6779ce" } ] }, "status": { "code": 200, "message": "Retrieved the teams that are associated with the Project Identifier.", "messageId": "FNRDD0018I" } }