From cfe99749dbe7daa85d105ede16f99329655443d3 Mon Sep 17 00:00:00 2001 From: RovinKYK Date: Sun, 5 Jul 2026 14:51:16 +0530 Subject: [PATCH 1/4] Add docs for IAM CTL dry-run mode --- .../promote-configurations.md | 1 + .../docs/setup/promote-configurations.md | 33 +++++++++++++++++++ .../docs/deploy/promote-configurations.md | 1 + .../docs/deploy/promote-configurations.md | 1 + .../docs/deploy/promote-configurations.md | 1 + .../docs/deploy/promote-configurations.md | 1 + .../docs/deploy/promote-configurations.md | 1 + en/includes/deploy/ctl-tool/dryRun-mode.md | 32 ++++++++++++++++++ 8 files changed, 71 insertions(+) create mode 100644 en/includes/deploy/ctl-tool/dryRun-mode.md diff --git a/en/asgardeo/docs/guides/your-asgardeo/manage-environments/promote-configurations.md b/en/asgardeo/docs/guides/your-asgardeo/manage-environments/promote-configurations.md index 6fc06e81aa..4ccf89766a 100644 --- a/en/asgardeo/docs/guides/your-asgardeo/manage-environments/promote-configurations.md +++ b/en/asgardeo/docs/guides/your-asgardeo/manage-environments/promote-configurations.md @@ -8,4 +8,5 @@ {% include "../../../../../includes/deploy/ctl-tool/propagate-between-child-organizations.md" %} {% include "../../../../../includes/deploy/ctl-tool/customization-options.md" %} {% include "../../../../../includes/deploy/ctl-tool/logging.md" %} +{% include "../../../../../includes/deploy/ctl-tool/dryRun-mode.md" %} {% include "../../../../../includes/deploy/ctl-tool/resource-specific-notes.md" %} diff --git a/en/identity-server/5.11.0/docs/setup/promote-configurations.md b/en/identity-server/5.11.0/docs/setup/promote-configurations.md index b0425826ce..f08881246a 100644 --- a/en/identity-server/5.11.0/docs/setup/promote-configurations.md +++ b/en/identity-server/5.11.0/docs/setup/promote-configurations.md @@ -183,3 +183,36 @@ Add a `LOGS` block to your `toolConfig.json` to configure logging behavior: !!! warning "Sensitive data in request payloads" Request bodies may contain sensitive credentials (client secrets, passwords, access tokens). Enabling `LOG_REQUEST_PAYLOADS` will write these values to your log output. Only enable this option in secure, non-production environments, and ensure log files are adequately protected. + +## Dry-run mode + +Dry-run mode lets you preview what `importAll` or `exportAll` would do without applying any destructive changes. No resources are created, updated, or deleted on the server in import, and no local files are removed in export. + +### Usage + +Pass the `--dryRun` (`-d`) flag to either command: + +**importAll** + +```bash +iamctl importAll --config ./env --dryRun +``` + +**exportAll** + +```bash +iamctl exportAll --config ./env --dryRun +``` + +### Behavior + +In dry-run mode, all mutating operations (POST, PUT, PATCH, DELETE) are skipped and logged with a `[DRY RUN] Would ` message instead of being sent to the server: + +```bash title="Sample log output" +[DRY RUN] Would POST https://localhost:9443/api/server/v1/applications +``` + +Local file and directory deletions are skipped in the same way. The end-of-run summary reports `Would Import`, `Would Update`, and `Would Delete` counts in place of the applied counts. + +!!! note + Dry-run mode only skips mutating operations. List and detail `GET` requests are still sent to the server so that the tool can diff local files against the current server state. diff --git a/en/identity-server/7.0.0/docs/deploy/promote-configurations.md b/en/identity-server/7.0.0/docs/deploy/promote-configurations.md index 091cb93f10..e56283f176 100644 --- a/en/identity-server/7.0.0/docs/deploy/promote-configurations.md +++ b/en/identity-server/7.0.0/docs/deploy/promote-configurations.md @@ -8,4 +8,5 @@ {% include "../../../../includes/deploy/ctl-tool/propagate-between-child-organizations.md" %} {% include "../../../../includes/deploy/ctl-tool/customization-options.md" %} {% include "../../../../includes/deploy/ctl-tool/logging.md" %} +{% include "../../../../includes/deploy/ctl-tool/dryRun-mode.md" %} {% include "../../../../includes/deploy/ctl-tool/resource-specific-notes.md" %} diff --git a/en/identity-server/7.1.0/docs/deploy/promote-configurations.md b/en/identity-server/7.1.0/docs/deploy/promote-configurations.md index 6795ed7951..67ee694e70 100644 --- a/en/identity-server/7.1.0/docs/deploy/promote-configurations.md +++ b/en/identity-server/7.1.0/docs/deploy/promote-configurations.md @@ -8,4 +8,5 @@ {% include "../../../../includes/deploy/ctl-tool/propagate-between-child-organizations.md" %} {% include "../../../../includes/deploy/ctl-tool/customization-options.md" %} {% include "../../../../includes/deploy/ctl-tool/logging.md" %} +{% include "../../../../includes/deploy/ctl-tool/dryRun-mode.md" %} {% include "../../../../includes/deploy/ctl-tool/resource-specific-notes.md" %} diff --git a/en/identity-server/7.2.0/docs/deploy/promote-configurations.md b/en/identity-server/7.2.0/docs/deploy/promote-configurations.md index 085431566b..f3be3f5677 100644 --- a/en/identity-server/7.2.0/docs/deploy/promote-configurations.md +++ b/en/identity-server/7.2.0/docs/deploy/promote-configurations.md @@ -8,4 +8,5 @@ {% include "../../../../includes/deploy/ctl-tool/propagate-between-child-organizations.md" %} {% include "../../../../includes/deploy/ctl-tool/customization-options.md" %} {% include "../../../../includes/deploy/ctl-tool/logging.md" %} +{% include "../../../../includes/deploy/ctl-tool/dryRun-mode.md" %} {% include "../../../../includes/deploy/ctl-tool/resource-specific-notes.md" %} diff --git a/en/identity-server/7.3.0/docs/deploy/promote-configurations.md b/en/identity-server/7.3.0/docs/deploy/promote-configurations.md index d305bfddb5..df2e724662 100644 --- a/en/identity-server/7.3.0/docs/deploy/promote-configurations.md +++ b/en/identity-server/7.3.0/docs/deploy/promote-configurations.md @@ -8,4 +8,5 @@ {% include "../../../../includes/deploy/ctl-tool/propagate-between-child-organizations.md" %} {% include "../../../../includes/deploy/ctl-tool/customization-options.md" %} {% include "../../../../includes/deploy/ctl-tool/logging.md" %} +{% include "../../../../includes/deploy/ctl-tool/dryRun-mode.md" %} {% include "../../../../includes/deploy/ctl-tool/resource-specific-notes.md" %} diff --git a/en/identity-server/next/docs/deploy/promote-configurations.md b/en/identity-server/next/docs/deploy/promote-configurations.md index d305bfddb5..df2e724662 100644 --- a/en/identity-server/next/docs/deploy/promote-configurations.md +++ b/en/identity-server/next/docs/deploy/promote-configurations.md @@ -8,4 +8,5 @@ {% include "../../../../includes/deploy/ctl-tool/propagate-between-child-organizations.md" %} {% include "../../../../includes/deploy/ctl-tool/customization-options.md" %} {% include "../../../../includes/deploy/ctl-tool/logging.md" %} +{% include "../../../../includes/deploy/ctl-tool/dryRun-mode.md" %} {% include "../../../../includes/deploy/ctl-tool/resource-specific-notes.md" %} diff --git a/en/includes/deploy/ctl-tool/dryRun-mode.md b/en/includes/deploy/ctl-tool/dryRun-mode.md new file mode 100644 index 0000000000..4ede901b6e --- /dev/null +++ b/en/includes/deploy/ctl-tool/dryRun-mode.md @@ -0,0 +1,32 @@ +## Dry-run mode + +Dry-run mode lets you preview what `importAll` or `exportAll` would do without applying any destructive changes. No resources are created, updated, or deleted on the server in import, and no local files are removed in export. + +### Usage + +Pass the `--dryRun` (`-d`) flag to either command: + +=== "importAll" + + ```bash + iamctl importAll --config ./env --dryRun + ``` + +=== "exportAll" + + ```bash + iamctl exportAll --config ./env --dryRun + ``` + +### Behavior + +In dry-run mode, all mutating operations (POST, PUT, PATCH, DELETE) are skipped and logged with a `[DRY RUN] Would ` message instead of being sent to the server: + +```bash title="Sample log output" +[DRY RUN] Would POST https://localhost:9443/api/server/v1/applications +``` + +Local file and directory deletions are skipped in the same way. The end-of-run summary reports `Would Import`, `Would Update`, and `Would Delete` counts in place of the applied counts. + +!!! note + Dry-run mode only skips mutating operations. List and detail `GET` requests are still sent to the server so that the tool can diff local files against the current server state. From 91a53984c8c5a6f2ee6fe4a3c3e06a1cc83c437f Mon Sep 17 00:00:00 2001 From: RovinKYK Date: Sun, 5 Jul 2026 15:15:06 +0530 Subject: [PATCH 2/4] Fix lint errors --- .../5.11.0/docs/setup/promote-configurations.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/en/identity-server/5.11.0/docs/setup/promote-configurations.md b/en/identity-server/5.11.0/docs/setup/promote-configurations.md index f08881246a..584d4da2a0 100644 --- a/en/identity-server/5.11.0/docs/setup/promote-configurations.md +++ b/en/identity-server/5.11.0/docs/setup/promote-configurations.md @@ -192,13 +192,13 @@ Dry-run mode lets you preview what `importAll` or `exportAll` would do without a Pass the `--dryRun` (`-d`) flag to either command: -**importAll** +#### Import ```bash iamctl importAll --config ./env --dryRun ``` -**exportAll** +#### Export ```bash iamctl exportAll --config ./env --dryRun From 759ae1af5bb5646dad5cba06921ebed37af24e03 Mon Sep 17 00:00:00 2001 From: RovinKYK Date: Sun, 5 Jul 2026 16:22:44 +0530 Subject: [PATCH 3/4] Fix Vale lint errors --- en/includes/deploy/ctl-tool/dryRun-mode.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/en/includes/deploy/ctl-tool/dryRun-mode.md b/en/includes/deploy/ctl-tool/dryRun-mode.md index 4ede901b6e..8ac7f73ec2 100644 --- a/en/includes/deploy/ctl-tool/dryRun-mode.md +++ b/en/includes/deploy/ctl-tool/dryRun-mode.md @@ -6,13 +6,13 @@ Dry-run mode lets you preview what `importAll` or `exportAll` would do without a Pass the `--dryRun` (`-d`) flag to either command: -=== "importAll" +=== "Import" ```bash iamctl importAll --config ./env --dryRun ``` -=== "exportAll" +=== "Export" ```bash iamctl exportAll --config ./env --dryRun From af7666dd1a70e14e415c14650883b8c5c717e0e3 Mon Sep 17 00:00:00 2001 From: RovinKYK Date: Sun, 5 Jul 2026 21:48:09 +0530 Subject: [PATCH 4/4] Improve wording --- .../5.11.0/docs/setup/promote-configurations.md | 11 +++++------ en/includes/deploy/ctl-tool/dryRun-mode.md | 7 ++----- 2 files changed, 7 insertions(+), 11 deletions(-) diff --git a/en/identity-server/5.11.0/docs/setup/promote-configurations.md b/en/identity-server/5.11.0/docs/setup/promote-configurations.md index 584d4da2a0..c41734faa8 100644 --- a/en/identity-server/5.11.0/docs/setup/promote-configurations.md +++ b/en/identity-server/5.11.0/docs/setup/promote-configurations.md @@ -186,7 +186,7 @@ Add a `LOGS` block to your `toolConfig.json` to configure logging behavior: ## Dry-run mode -Dry-run mode lets you preview what `importAll` or `exportAll` would do without applying any destructive changes. No resources are created, updated, or deleted on the server in import, and no local files are removed in export. +Dry-run mode lets you preview what `importAll` or `exportAll` would do without modifying the server or deleting any local files. ### Usage @@ -208,11 +208,10 @@ iamctl exportAll --config ./env --dryRun In dry-run mode, all mutating operations (POST, PUT, PATCH, DELETE) are skipped and logged with a `[DRY RUN] Would ` message instead of being sent to the server: -```bash title="Sample log output" +#### Sample log output + +```bash [DRY RUN] Would POST https://localhost:9443/api/server/v1/applications ``` -Local file and directory deletions are skipped in the same way. The end-of-run summary reports `Would Import`, `Would Update`, and `Would Delete` counts in place of the applied counts. - -!!! note - Dry-run mode only skips mutating operations. List and detail `GET` requests are still sent to the server so that the tool can diff local files against the current server state. +During import, no resources are created, updated, or deleted on the server. During export, resources are still fetched and written to disk, but stale local files and directories are left in place. The end-of-run summary reports `Would Import`, `Would Update`, and `Would Delete` counts in place of the applied counts. diff --git a/en/includes/deploy/ctl-tool/dryRun-mode.md b/en/includes/deploy/ctl-tool/dryRun-mode.md index 8ac7f73ec2..790e5a1f85 100644 --- a/en/includes/deploy/ctl-tool/dryRun-mode.md +++ b/en/includes/deploy/ctl-tool/dryRun-mode.md @@ -1,6 +1,6 @@ ## Dry-run mode -Dry-run mode lets you preview what `importAll` or `exportAll` would do without applying any destructive changes. No resources are created, updated, or deleted on the server in import, and no local files are removed in export. +Dry-run mode lets you preview what `importAll` or `exportAll` would do without modifying the server or deleting any local files. ### Usage @@ -26,7 +26,4 @@ In dry-run mode, all mutating operations (POST, PUT, PATCH, DELETE) are skipped [DRY RUN] Would POST https://localhost:9443/api/server/v1/applications ``` -Local file and directory deletions are skipped in the same way. The end-of-run summary reports `Would Import`, `Would Update`, and `Would Delete` counts in place of the applied counts. - -!!! note - Dry-run mode only skips mutating operations. List and detail `GET` requests are still sent to the server so that the tool can diff local files against the current server state. +During import, no resources are created, updated, or deleted on the server. During export, resources are still fetched and written to disk, but stale local files and directories are left in place. The end-of-run summary reports `Would Import`, `Would Update`, and `Would Delete` counts in place of the applied counts.