NEW RELEASE! The 2024x Refresh2 Hot Fix 1 was released on May 2, 2025. For more information, see 2024x Refresh2 Hot Fix 1 Version News.

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

On this page

Table of Contents
maxLevel4


Data Manager is a Teamwork Cloud Magic Collaboration Studio Java utility for interfacing directly with the Cassandra database. The Data Manager package can be found in the Utilities directory of your server installation, and as a portable zip package in the 3DS installer distribution.

Warning

Data Manager is used to make permanent and irrecoverable modifications to the Cassandra database. A full database backup should always be performed before making any modifications to the database.

Always use the Data Manager package included with your version of Teamwork Cloud Magic Collaboration Studio distribution.

Running Data Manager

To run Data Manager


  1. Stop Teamwork Cloud Magic Collaboration Studio services to prevent users from accessing the database.
  2. Ensure Cassandra is up and running: use the nodetool status command to verify the database status is Up and Normal.
  3. Run a Data Manager command.

    Info

    If Data Manager is executed for the first time on the system, you will be prompted to provide the path to Java. Use the same version of Java as Teamwork CloudMagic Collaboration Studio.


    Execute with the -help option to ensure Data Manager is working:

    Code Block
    languagebash
    themeDJango
    linenumberstrue
    ./datamanager -help


  4. After finishing all Data Manager steps, start Teamwork Cloud Magic Collaboration Studio services to resume user access.

Data Manager configuration

Data Manager has its own configuration files, located in the Data Manager installation path, under configuration.

Database access

For best performance, run Data Manager on the Cassandra server. By default, Data Manager will access the database via Localhost. If you need to run Data Manager remotely from the Cassandra server, modify the contact-points field for datastax-java-driverin application.conf.

Cassandra Authentication

Data Manager will connect to Cassandra on localhost using anonymous authentication. If your Cassandra node is configured to bind to a specific IP address (by default, port 9042 binds to all interfaces), or if you have configured Cassandra to use an authenticator other than AllowAllAuthenticator, you will need to modify the auth-providerfields inapplication.conf accordingly.

Logs

Data Manager will append to a detailed log file on each execution. The datamanager.log file is stored in the logs directory of the Data Manager installation path. You can change the location of the log file and the level of logging in logback.xml.

Data Manager commands

The following table outlines the commands you can use in Data Manager to manage your data. 

You can add
  • Add --silent-drop to run the command silently, i.e., without requesting user permission.
  • You need to clear the removed keyspace snapshots using the nodetool utility command:

Server tool commandFunction

-help

Displays Help information.

-dk, --drop-keyspace <keyspace=value> --silent-drop

Drops the 19.0 keyspace to free up the storage space after the database migration from 19.0 to 2021x.

Note
Code Block
 nodetool clearsnapshot -- <keyspace>

-dr,--delete-resource <resource ID>

Deletes the given resource(s) and all of its related information. Specify multiple resource IDs using space as a separator.

Note

If you delete a synchronized resource from the target server, the resource will be removed together with its remote resource configuration allowing you to create new configurations with the same resource from the source server.


-drb,--delete-branch <resourceID=value branchID=<ID1>,<ID2> includeChildBranch=<true/false>>

Deletes the given branch(es) and all of its related information. Specify multiple branch ID using a comma as a separator.

includeChildBranch has two values: true and false.

  • When the includeChildBranch value is set to false, andthe branch has child branches, this branch will not be deleted.
  • When the includeChildBranch value is set to true, the branch including its child branches will be deleted.
Note

This command does not work for the branches of a synchronized resource. You can delete only the whole synchronized resource, but not its branches.


-drd,--delete-marked-deleted-resources

Deletes all resources that were marked as deleted.

Note

If you delete a synchronized resource from the target server, the resource will be removed together with its remote resource configuration allowing you to create new configurations with the same resource from the source server.


-drr,--delete-revision <resourceID=value revision=<revision1,revision2> includeChildRevision=<true/false>>


Deletes the given revision(s) and all of its related information. Specify multiple revisions using a comma as a separator.

includeChildRevision has two values: true and false.

  • When the includeChildRevision value is set to false, and the revision is not the latest, it will not be deleted.
  • When the includeChildRevision value is set to true, the upward revisions and branches within it from the selected version will be deleted.
Note

This command does not work for the revisions of a synchronized resource. You can delete only the whole synchronized resource, but not its revisions.


-du,--delete-user <username>

Deletes the given username(s) and all of its related information. Specify

  • To specify multiple usernames
using
  • , use comma as a separator.
note
  • If the username consists of two words (for example, dan smith)

you must
  • add double quotation marks (" ") before and after the username

, as shown in the following example
  • :

    Code Block
    languagetext
       --delete-user "dan smith" 
       -du "dan smith"
-rrof, --remove-read-only-flag <-resourceID=<value1>,<value2> --categoryID=<value1>,<value2>>

Removes the read-only flag from a synchronized resource or category in the target server. Specify multiple resources or categories using a comma as a separator, for example:

Code Block
datamanager -rrof --resourceID=a4c498c9-f125-453c-b9cb-3d5a6e675714 --categoryID=a1d569ea-fe6a-402f-8a25-aef6b932de48


Warning

Do not remove the read-only flag from periodically synchronized resources or categories. This will cause version inconsistencies after subsequent synchronizations.

The read-only flag removal is recommended only if resources or categories were moved to another server as a result of a one-time synchronization operation and you want to make them active again.


-lb,--list-branch <resourceID=value>

Lists all branches of the given resource.

-lc,--list-cluster-ids

Lists previous cluster IDs and the current one.

-li,--list-index

Lists all available data that have indexes.

-lr,--list-resources

Lists all available resources.

-lrd,--list-marked-deleted-resources

Lists all resources that are marked as deleted.

-lrv,--list-revision <resourceID=value branchID=value>

Lists all revisions in the given branch.

-lu,--list-users <--no-info>

Lists all usernames and their information, sorted by name.

Note

You can add --no-info to show only the usernames.


-ram,--reset-administrator

Resets admin password, status, and permissions.

note

  • If there is no Administrator account, it will be created.
  • If the Administrator account exists in the database:
    • If the account is for an external user, it will be reset to an internal user with a new password. This user will be shown in the Teamwork Cloud
Admin
    •  Admin console.
    • If the account is an internal user, only a new password will be generated, and the user will be shown in the Teamwork Cloud Admin console.
  • The default roles of
the
  • the Teamwork Cloud Admin will be restored to make sure that this account can fully operate as the default administrator.

-rc,--recreate-cluster-id

Recreates a cluster ID.

-ri,--rebuild-index <data=value1,value2>

Rebuilds all indexes for the given data and uses the data=* option to rebuild all indexes of all available data.

-urd,--unmark-deleted-resources <resource ID>

Unmarks the given resource(s) previously marked as deleted. Specify multiple resource ID using space as a separator.

-vb,--validate-blob <savePath=value onlyInconsistent=value --readAllWithCQL --createCompareOfThriftAndCQL>

Validates blob information.

-ve,--validate-eobject <resourceID=value1,value2 saveDir=value onlyInconsistent=value>

Validates the eObject information of a specific resource ID and uses the resourceID=* option to validate all resources.

-version

Displays the version of Data Manager.

-vi,--verify-index <data=value1,value2>

Verifies all indexes for the given data and uses the data=* option to verify all indexes of all available data.

-vr,--validate-rbac <savePath=value onlyInconsistent=value>

Validates a user, user group, role, and role assignment information.

-vrc,--validate-resource-commit <savePath=value onlyInconsistent=value>

Validates a metamodel, branch, and committed information.-col,--cleanup-object-locks

Removes released object locks (that are no longer used) from the database.

Note

How to safely execute this command:

  1. Before performing object lock cleanup make sure that all Cassandra nodes are running and accessible.
  2. After Data Manager finishes cleaning locks, run the command in a separate terminal nodetool repair which you can find in the Cassandra/bin directory. Once nodetool repair is done, return to Data Manager and confirm operation to proceed.
  3. DataManager will ask to run command in a separate terminal nodetool compact. After running the command in nodetool compact terminal, return to Data Manager and confirm operation to proceed.


-rcc,--rebuild-change-count <--resourceID=<resourceID1>,<resourceID2>>

Rebuilds the commit change count of all or the selected resources.

Warning

The process may take a while depending on the commit and change count.


Note

You can specify multiple revisions using commas as separators.

Example:

  • datamanager -rcc
  • datamanager -rcc resourceID=956ec67b-e79f-4b51-9197-2f041265b637
  • datamanager -rcc resourceID=0c81b8e6-71ef-4dc6-b2f3-201626da1feb,5126b26c-275e-472d-adb5-8abd0cb9492c


-crb,--clean-resource-blobs <--resourceID=<resourceID1>,<resourceID2>>

Cleans resource metadata and obsolete local cache blobs. If the optional resourceID argument is not set, all the listed resource blobs (for archiving resources) will be cleaned.

-ll,--list-ldap

Lists all LDAP realm information.

-rlu, --remap-ldap-users

Remaps LDAP user realms to another existing LDAP realm.

Tip
titleExample
datamanager -rlu source-realm=b8ea2561-b952-4588-8fff-269f49f0764f target-realm=4d1bdd4b-8ea7-4b4c-bfdc-7ee48ab9be3b


-vlu,--validate-ldap-users <saveDir=value onlyInconsistent=value>

Validates users which have an LDAP realm ID pointing to a non-existing LDAP configuration.

-udb,--unmark-deleted-branches <resourceID=value branchID=<ID1>,<ID2>>

Unmarks the given branches that were previously marked as deleted.


The delete command to delete resources and users works as follows.

Deleting selected resource 

Code Block
languagebash
themeDJango
linenumberstrue
-dr,--delete-resource <resource ID> <resource ID> ...

These commands delete a selected resource and all of the following resource-related information:

  • Tags information of the resource. 
  • Category information (the resource will be removed from all categories). 
  • Branch information. 
  • Commit information. 
  • Role assignment information (role assignment information related to the resource will be removed). 
  • Locking information.

Deleting selected user 

Code Block
languagebash
themeDJango
linenumberstrue
-du,--delete-user <username>,<username> ...

This command deletes a selected user and all of the following user-related information:

  • Role assignment information (all role assignment information belonging to the user will be removed).
  • Session (the existing user session will be removed).
  • Lock information (model elements in projects locked by the user will be unlocked).
  • User group information (the user will be removed from all user groups).

Note
titleNotes on deleting usernames
  • For usernames consisting of two words (such as dan smith), add double quotation marks (" ") before and after the username, as shown:

    Code Block
    languagetext
       --delete-user "dan smith" 
       -du "dan smith"
  • In the modeling tool's history panels, the
word
  • word deleted will appear in brackets next to the deleted users.

Deleting selected branch 

Code Block
languagebash
themeDJango
linenumberstrue
-drb,--delete-branch <resourceID=value branchID=<ID1>,<ID2> includeChildBranch=<true/false>>

The branch-related information which will be removed together with the branch includes:

  • Tags information of each revision in the branch
  • Object information created/modified at each revision in the branch
  • Commit information of each revision in the branch
  • Locking information of each object locked in the branch
  • Branch information of the branch
  • If the branch has child branches, depending on the includeChildBranch value, the branch will be deleted or not:  
    • When the includeChildBranch value is set to False andthe branch has child branches, then this branch will not be deleted.
    • When the includeChildBranch value is set to True, then even if the branch has child branches it will be deleted.

Deleting revisions 

Code Block
languagebash
themeDJango
linenumberstrue
-drr,--delete-revision <resourceID=value revision=<revision1,revision2> includeChildRevision=<true/false>>

The revision-related information which will be removed together with the revision includes:

  • Tags information of the revision
  • Object information created/modified at the revision
  • Commit information of the revision
  • Locking information of objects whose id's do not exist anymore in the branch that the revision belongs to
  • Branch information of the branch if the revision was the first revision of the branch
  • If a selected revision is not the latest, depending on the includeChildRevision value, the revision will be deleted or not: 
    • When the includeChildRevision value is set to False, and the revision is not the latest, then it will not be deleted.
    • When the includeChildRevision value is set to True, thenrevisions upward and branches within it from the selected version will be deleted.