Migrate from dxtoolkit to DCT toolkit
If you currently use dxtoolkit to automate Delphix operations, this topic covers what you need to know to migrate to dct-toolkit. The most fundamental difference between the two tools is how they communicate with the Delphix platform: dxtoolkit communicates directly with Delphix engines via the Engine APIs, while dct-toolkit communicates with Data Control Tower via the DCT APIs. DCT acts as a centralized gateway to all connected engines, so dct-toolkit operations are not scoped to a single engine.
For a full comparison of DCT versus per-engine capabilities — including the removal of the Self-Service template and container model, consolidated refresh operations, and centralized authentication — see DCT overview.
Key differences
Supported product
dxtoolkit was open source and community-supported. dct-toolkit is a fully supported Delphix product. Issues can be filed through the Delphix Support Portal.
Dynamic capability updates
dct-toolkit is generated automatically from the OpenAPI spec of your DCT instance. Most new functionality becomes available by upgrading DCT — no toolkit reinstallation is required. New versions of dct-toolkit itself may update fundamental capabilities of the toolkit, but day-to-day feature additions come from your DCT version, not the toolkit version.
Command mapping
The following tables show common dxtoolkit commands and their dct-toolkit equivalents, organized by category.
Delphix Self-Service operations
DCT does not use the Delphix Self-Service template and container model. The commands below map Self-Service workflows to their DCT equivalents, which operate directly against VDBs and VDB Groups. For VDBs that require coordination — such as Oracle E-Business Suite — VDB Groups serve a similar purpose to Self-Service containers but without the constraints of that model.
| Use case | dxtoolkit | dct-toolkit |
|---|---|---|
| Refresh VDB to latest dSource snapshot | dx_refresh_db
|
refresh_vdb_by_snapshot
|
| Refresh single-VDB container to latest snapshot | dx_ctl_js_container refresh
|
refresh_vdb_by_snapshot
|
| Restore multi-VDB container to a bookmark | dx_ctl_js_container restore
|
refresh_vdb_group
|
| Manage bookmarks for a container | dx_get_js_bookmarks, dx_ctl_js_bookmarks |
get_bookmarks_by_vdb, create_bookmark |
| Create a container | dx_ctl_js_container create
|
N/A — equivalent to creating a VDB or VDB Group. |
| Create a template | dx_ctl_js_template
|
N/A — equivalent to creating a dSource, VDB, or VDB Group. |
| Grant user access | dx_ctl_js_container addowner
|
Tag management or add_objects_to_access_group_scope |
Refresh and restore operations
In dxtoolkit, refresh, restore, rollback, and rewind were separate operations. In dct-toolkit these are unified — the distinction is expressed as what you are refreshing from: a snapshot, a timestamp, or a bookmark.
| dxtoolkit | dct-toolkit |
|---|---|
dx_refresh_db
|
refresh_vdb_by_snapshot (omit snapshot ID to use latest) |
dx_ctl_js_container refresh (single VDB) |
refresh_vdb_by_snapshot
|
dx_ctl_js_container restore (single VDB) |
refresh_vdb_by_snapshot <snapshot_id>, refresh_vdb_from_bookmark <bookmark_id>, or refresh_vdb_by_timestamp <timestamp> |
dx_ctl_js_container refresh (multi-VDB) |
refresh_vdb_group_by_snapshot, refresh_vdb_group_from_bookmark, or refresh_vdb_group_by_timestamp |
dx_ctl_js_container restore (multi-VDB) |
refresh_vdb_group_from_bookmark vdb_group_id=<vdb_group_id> bookmark_id=<bookmark_id>
|