feat(cli): rename policy list to bundles, confirm publish, simplify activate#271
Merged
Utsav-Patel merged 5 commits intoJul 8, 2026
Conversation
Mirror the `activate` subcommand layout to take a policy bundle's active
version offline by bundle name. Resolves `--bundle-name` to the parent
bundle UUID internally, then POSTs
`v1/policy-engine/policy-bundles/{id}/deactivate` (no body). Rewrites the
monolith 409 (no active version) to reference the user-supplied bundle
name, and fails CLI-side on unknown bundle names before hitting the API.
Rename the camelCase CLI flags across the policy command group to kebab-case (e.g. --bundleName -> --bundle-name, --transcendUrl -> --transcend-url, --policyBundleId -> --policy-bundle-id, --dryRun -> --dry-run). Single-word flags (--auth, --json, --version, --dir, --limit, --offset, --after, --description, --pkg, --input, --bundle) are unchanged. stricli has no per-command case-style toggle, so this is done by defining the flag keys as kebab-case strings in each policy command.ts. stricli then displays and accepts --kebab-case (and rejects --camelCase input with a "did you mean" suggestion). Scoped to the policy command group only -- no global app config change, so request/consent/inventory/admin/migration commands are unaffected. Impl functions keep camelCase local variable names via destructuring renaming, so internal logic and the shared helpers are unchanged. README command docs regenerated.
…ctivate Rename transcend policy list to bundles for parity with versions. Prompt before creating a new bundle on publish (--yes for CI). Require bundle name only on activate (no UUID flags).
@transcend-io/airgap.js-types
@transcend-io/cli
@transcend-io/internationalization
@transcend-io/privacy-types
@transcend-io/sdk
@transcend-io/type-utils
@transcend-io/utils
@transcend-io/mcp
@transcend-io/mcp-server-admin
@transcend-io/mcp-server-assessment
@transcend-io/mcp-server-base
@transcend-io/mcp-server-consent
@transcend-io/mcp-server-discovery
@transcend-io/mcp-server-docs
@transcend-io/mcp-server-dsr
@transcend-io/mcp-server-inventory
@transcend-io/mcp-server-preferences
@transcend-io/mcp-server-workflows
commit: |
Base automatically changed from
utsav/link-7227-implement-transcend-policy-deactivate-subcommand
to
main
July 7, 2026 20:16
…ivate-simplify Resolve policy CLI conflicts keeping bundles rename, publish confirmation, and activate simplification. Update changeset to cover all CLI changes.
…ivate-simplify Resolve changeset conflict: main consumed link-7227-policy-deactivate via Version Packages (#272). Add a new changeset for bundles rename, publish confirmation, and activate simplification.
MadDataScience
approved these changes
Jul 8, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Related Issues
transcend policy deactivatesubcommand #264Follow-up to the merged policy CLI work in #264 (
deactivate, kebab-case flags). This PR finishes policy bundle lifecycle UX: consistent subcommand naming, safer publish, and simpler activate.Public Changelog
transcend policy list→transcend policy bundles(parallel totranscend policy versions).transcend policy publishnow prompts before creating a brand-new bundle when--bundle-namedoes not exist; pass--yesto skip the prompt in CI/non-interactive runs.transcend policy activateaccepts only--bundle-nameand optional--version(raw label); removed--policy-bundle-id.Internal Changelog
listsubcommand tobundlesand updated routes, docs, and tests.publishfor unknown bundle names usinginquirerConfirmBoolean; non-TTY without--yesfails fast.activateto resolve bundle name internally (mirrorsdeactivate); deleted unusedresolvePolicyBundleIdhelper.deactivatehelp copy to referencepublish/bundlesinstead ofpublish/list.activateand expandedpublishconfirmation coverage.main, resolved policy CLI merge conflicts, and updated.changeset/link-7227-policy-deactivate.mdsocheck:changesetpasses.Implementation details
Key files
packages/cli/src/commands/policy/bundles/— renamed fromlist/packages/cli/src/commands/policy/publish/{command,impl}.ts—--yesflag + confirmation promptpackages/cli/src/commands/policy/activate/{command,impl,readme}.ts— name-only activationpackages/cli/src/commands/policy/activate/tests/impl.test.ts— new testspackages/cli/src/commands/policy/deactivate/command.ts— help text consistencypackages/cli/src/commands/policy/helpers/resolvePolicyBundleId.ts— deleted.changeset/link-7227-policy-deactivate.md— release notes for bundles rename, publish confirm, activate simplifyNotes
--yesis scoped topublishonly; existing bundles still upload new versions without prompting.activatestill resolves--versionto a version record viaresolvePolicyBundleVersion; when omitted, picks latest bycreatedAt.Test plan
pnpm run --dir packages/cli test -- src/commands/policypnpm run --dir packages/cli buildpnpm run --dir packages/cli docgenglobal,cli,preview) passingtranscend policy bundles --auth=$TRANSCEND_API_KEYtranscend policy publish --dir=./policies --bundle-name=typo-nameprompts before creatingtranscend policy publish --dir=./policies --bundle-name=new-bundle --yescreates without prompttranscend policy activate --bundle-name=main --version=<label>activates by name onlyMade with Cursor