Repository navigation
Summarize a command's env vars in the PIN dialog and Slack (v0.1.27) - #193
Conversation
… record the ones it asked for An app's command_env_vars can hold every env var its commands need to boot (around a hundred names for a Rails app). The PIN dialog, --dry-run and the Slack notification listed every one of them, which buried the names that matter: the ones the command asked for and the read-only substitutes. They now say "the 98 in the app's command_env_vars, plus SENTRY_DSN; read-only DATABASE_URL (from READ_ONLY_DATABASE_URL)". The plan knows which env vars were added for the command (--env, or its approved_deploy_commands entry), and the audit entry records them as env_vars_added beside the full env_vars list.
…rs_added in the audit log
|
No actionable comments were generated in the recent review.
|
| Layer / File(s) | Summary |
|---|---|
Track added variables and summarize plans internal/cmdenv/cmdenv.go, internal/cmdenv/cmdenv_test.go, internal/gateway/settings/command_env.go, internal/gateway/settings/command_env_test.go |
Environment plans record sorted requested variables beyond the app-wide list. Plan summaries report configured-variable counts, added names, and read-only variables. |
Use plan summaries in CLI and Slack internal/cli/convox_process_env.go, internal/cli/convox_process_env_test.go, internal/cli/AGENTS.md, internal/gateway/slack/process_notifications.go, internal/gateway/slack/process_notifications_test.go, docs/src/content/docs/user-guide/cli/commands.mdx |
CLI prompts and dry-run output, plus Slack notifications, use the updated environment summary. Documentation describes the displayed counts and variable names. |
Record and display added variables internal/gateway/audit/command_env.go, internal/gateway/proxy/command_env_test.go, web/src/components/audit-logs/command-details.tsx, web/src/components/audit-logs/command-details.test.tsx, docs/src/content/docs/concepts/audit-logging.mdx |
Command audit details include nonempty added-variable lists. The web audit view parses and displays those names, and documentation describes the audit field. |
Release Version Updates
| Layer / File(s) | Summary |
|---|---|
Update release version values convox.yml, web/package.json |
The gateway and admin image tags and the web package version are updated to v0.1.27 and 0.1.27, respectively. |
Priority:
Estimated code review effort: 3 (Moderate) | ~20 minutes
Change: Feature
Sequence Diagram(s)
sequenceDiagram
participant SettingsCommandEnv
participant AuditCommandEnv
participant parseCommandDetails
participant CommandDetails
SettingsCommandEnv->>AuditCommandEnv: Plan.Added
AuditCommandEnv->>parseCommandDetails: env_vars_added
parseCommandDetails->>CommandDetails: envAdded names
Possibly related PRs
- DocSpring/rack-gateway#182: Introduced command approval, Slack process notifications, and readable web audit details that this change extends with environment-variable summaries and audit data.
Merge Risk: 
Minimal · up to b3218
-
The environment-variable summaries and audit display are mergeable after normal checks.
Pre-merge checks: 
5
-
Full details: Title check
-
Explanation
The title names the primary change: command environment-variable summaries in the PIN dialog and Slack. The objectives confirm this is the main change. It also includes the version bump (v0.1.27), which is a minor detail. The title is concise, specific, and does not use vague terms.
Full details: Docstring Coverage
-
Explanation
Docstring coverage is 81.82% which is sufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 11 functions across 12 files. (5 skipped: 5 unsupported.)
-
Finishing Touches
-
🧪 Generate unit tests (beta)
-
- Commit to this branch
- Create a new PR
-
- Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts
A rabbit checks the env plan with care,
Added names hop into the record there.
The CLI counts; Slack tells the tale,
Audit details show names without fail.
I thump my feet: the fields align,
Then nibble greens beside the line.
Comment @coderabbitai help to get the list of available commands.
|
|
Overall Grade |
Security Reliability Complexity Hygiene |
Code Review Summary
| Analyzer | Status | Updated (UTC) | Details |
|---|---|---|---|
| JavaScript | Oct 26, 2026 10:02p.m. | Review ↗ | |
| Go | Oct 26, 2026 10:02p.m. | Review ↗ |
Important
AI Review is run only on demand for your team. We're only showing results of static analysis review right now. To trigger AI Review, comment @deepsourcebot review on this thread.
An app's
command_env_varscan hold every env var its commands need to boot. For a Rails app that's around a hundred names: the image's own, the non-secret settings, and the keys it can't boot without. The PIN dialog,--dry-runand the Slack notification listed every one of them. That buried the names the person approving a command needs to see: the ones it asked for and the read-only substitutes.They now summarize the app's list:
cmdenv.PlanhasAdded: the env vars the command gets besides the app's (--env, or itsapproved_deploy_commandsentry).settings.CommandEnv.Planfills it in, andPlan.Summaryuses it.Describestill names every env var, and the mock rack'senv:line uses it.env_vars_addedbeside the fullenv_varslist. The web audit dialog shows them as "Asked for".Tests:
TestSummary, plusenv_vars_addedand the summary text in the settings, proxy, Slack, CLI prompt, CLI dry-run and web audit dialog tests. The changed Go packages and the web test passed on the test box.Summary by CodeRabbit