One-time secrets print bare: the sensitive mask is removed - #243
Merged
Conversation
|
Warning Review limit reachedNext included review available in 6 minutes. View limit detailsLimit details: You’ve used the included review currently available. This review ran on the open-source allowance, not this organization's plan, because the pull request author doesn't have an assigned seat. Waiting won't change this — ask an organization admin to assign them a seat, or add seats in Billing if every seat is already assigned, then retry. Review configuration: ⚙️ Run configurationConfiguration used: Organization UI Review profile: ASSERTIVE Plan: Pro Plus Run ID: 📒 Files selected for processing (7)
Comment |
commit: |
wmadden
approved these changes
Aug 26, 2026
Interactively, prisma postgres create showed its one-time connection URL nowhere: the human card masked it as ******** (sensitive: true), and since #172 the bare stdout mirror is skipped when stdout and stderr share a screen. The two rulings composed into a secret with no output path. Same hole in postgres connection create/rotate and bucket key create. Operator ruling (2026-08-26): the human card is where its owner reads a secret the command exists to hand over, so it prints bare. The sensitive flag is removed from the block type, the renderer, and both producers; the stdout mirror rules and --json are unchanged, so pipes still receive the clean data lines. Golden pins and the output-convention docs are updated to match. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Signed-off-by: willbot <w.a.madden+machine@gmail.com> Signed-off-by: Will Madden <madden@prisma.io>
Dropping the block type's sensitive field is the pre-1.0 breaking bump. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Signed-off-by: willbot <w.a.madden+machine@gmail.com> Signed-off-by: Will Madden <madden@prisma.io>
wmadden-electric
force-pushed
the
claude/prisma-postgres-redaction-c703fd
branch
from
August 26, 2026 13:35
ca56bbc to
cd5f921
Compare
Published composer-cli and orm-toolchain peer on the exact engine version, so any engine bump fails tarball conformance until the products re-release against it. The engine keeps its sensitive field, unused; the CLI's own commands stop passing it, which is what fixes the bug. Deleting the dead flag rides the next engine release. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Signed-off-by: willbot <w.a.madden+machine@gmail.com> Signed-off-by: Will Madden <madden@prisma.io>
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 bug Nurul reported:
prisma postgres createprovisions the database but the connection string is unreadable.The bug
Interactively, the one-time connection URL appeared nowhere. Two rulings composed badly:
sensitive: truevalue as********(Port init, delete the Commander shell: the CLI runs entirely on the engine #139).Both conditions hold in a plain terminal, so the card said "The connection URL below is shown once, so save it now" above a row of asterisks, and the bare value was never written. Because the URL is one-time, it was unrecoverable.
postgres connection create,postgres connection rotate, andbucket key createhad the same hole.The fix
Operator ruling (2026-08-26): the human card is where its owner reads a secret the command exists to hand over, so it prints bare. The mask never did useful work — before #172 the bare value printed to the same screen two lines below it.
secretBlocks,bucket key create) stop passingsensitive: true, so the card shows the real value.@prisma/composer-cliand@prisma/orm-toolchainpeer on the exact engine version, so removing the now-unusedsensitivefield from the engine's block type has to ride the next coordinated engine release.--jsonare unchanged: pipes and redirection still receive exactly the clean data lines.docs/product/output-conventions.mdanddocs/product/cli-style-guide.mdstate the new convention: a secret the command exists to hand over prints bare, once; scrubbing applies to logs, errors, telemetry, and previews.Follow-up for the next engine release: delete the
sensitivefield from the engine's block type and renderer — no producer uses it any more.🤖 Generated with Claude Code