Repository navigation
feat: require --confirm on irreversible actions and keep secrets out of output - #13
Merged
Merged
Conversation
…of output - apps suspend, databases suspend, databases reset-password, databases backups restore, api-keys rotate, object-storage rotate-credentials, webhooks roll-secret and apps deployment-hook regenerate now fail without --confirm - env-vars list hides values unless --show-values; env-vars create/update no longer echo the value (apps, static sites, global) - --dry-run masks passwords, secrets and env var values - auth status checks the token with the API and reports a rejected token - --data can't be combined with body flags, and works without the flags it replaces - list commands say on stderr when more pages exist - apps get includes primary_domain - --dry-run on apps processes update, apps/static-sites env-vars update and apps deployments cancel - schema options report mandatory and takesValue instead of the misleading required - apps deployments trigger takes --commit, --skip-build-cache and --restart
…-hook disable - the --confirm refusal goes through handleError, so it's a JSON error in --json mode - apps deployment-hook disable needs --confirm: the hook URL stops working and re-enabling gives a new one - unit tests for auth status: a 401 is a rejected token, any other error exits 1 - README examples of the protected commands pass --confirm BREAKING CHANGE: apps suspend, databases suspend, databases reset-password, databases backups restore, api-keys rotate, object-storage rotate-credentials, webhooks roll-secret, apps deployment-hook regenerate and apps deployment-hook disable fail without --confirm. env-vars list hides values unless --show-values is passed, and env-vars create and update no longer return the value. sevalla schema options report mandatory and takesValue instead of required.
kristofdombi
approved these changes
Oct 28, 2026
|
🎉 This PR is included in version 2.0.0 🎉 The release is available on: Your semantic-release bot 📦🚀 |
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.
Fixes the findings from the agent skill work on 1.11.0.
Safety
apps suspend,databases suspend,databases reset-password,databases backups restore,api-keys rotate,object-storage rotate-credentials,webhooks roll-secret,apps deployment-hook regenerateandapps deployment-hook disablenow fail without--confirm, saying what can't be undone. The refusal goes through the error handler, so it's a JSON error in--jsonmode.--dry-runworks without--confirm.env-vars list(apps, static sites, global) hides values unless--show-valuesis passed; the API returns them decrypted.env-vars create/updateno longer echo the value.--dry-runmasks passwords, secrets and env var values (e.g.databases create --db-password).Correctness and agent use
auth statuschecks the token with/api-keys/validate; a 401 giveslogged_in: false, token_rejected: true, any other error exits 1.--datacan't be combined with body flags (they used to be dropped silently), and now works without the flags it replaces. Before,apps create --datafailed unless--name,--clusterand--sourcewere also passed.Showing 1-25 of 60. Use --page 2 for the next page.), so stdout stays a plain array.apps getincludesprimary_domain.--dry-runonapps processes update,apps env-vars update,static-sites env-vars updateandapps deployments cancel; these also validate their IDs now.sevalla schemaoptions reportmandatoryandtakesValueinstead ofrequired, which only meant "takes a value".apps deployments triggertakes--commit,--skip-build-cacheand--restart.CONTEXT.mdlists exactly which commands need--confirm; itsapps createexamples and the README examples of the protected commands are fixed.Release: 2.0.0. The second commit has a
BREAKING CHANGE:footer, and the repo's squash merge puts the commit messages in the body, so semantic-release picks a major. Keep the title asfeat:: this repo uses the default Angular preset, which doesn't parsefeat!:, so that title would produce no release at all (checked with@semantic-release/commit-analyzeron the simulated squash message). Don't clear the squash body when merging.Not included: commands for process exec, maintenance mode, rate limits and egress IPs (separate PR); 13 other mutation commands still lack
--dry-run(they reject the flag and do nothing).Testing
--data, dry-run masking, page hint, hidden env values, schema fields,auth status401/200/500 with mocked fetch)