Uh oh!
There was an error while loading. Please reload this page.
docs(data): accept-and-document mongo/turso passthrough secrets with no binder slot - #9253
Merged
os-project-manager merged 1 commit intoAug 17, 2026
Conversation
…no binder slot Adds a "Secret-shaped keys with no binder slot: accepted at-rest risk" subsection to the database drivers guide, naming the five keys the datasource secret binder has no slot for -- mongo's options.proxyPassword, options.tlsCertificateKeyFilePassword, options.key, options.passphrase, and turso's encryptionKey. States plainly that they are writable and stored at rest in sys_metadata as plain text, that read-side redaction (#9040, shipped) is the only protection today, and records the restart condition: the first real deployment needing an authenticated SOCKS5 proxy or a passphrase- protected key converts this into the binder-slot programme (Option A). Maintainer ruling 2026-08-17 03:19Z (issue comment 5311378700): Option B, accept-and-document. No runtime code changed; Option A (binder slots) and Option C (publish-door refusal) stay explicitly out of scope. Fixes#9124
os-project-manager
marked this pull request as ready for review
August 17, 2026 08:12
Uh oh!
There was an error while loading. Please reload this page.
os-project-manager
deleted the
claude/issue-9124-mongo-passthrough-at-rest-doc
branch
August 17, 2026 08:30
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 freeto 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#9124
What
Maintainer ruling 2026-08-17 03:19Z (issue comment 5311378700): Option B — accept-and-document. This PR is the docs deliverable only; Option A (named binder slots) and Option C (publish-door refusal) stay out of scope by that ruling.
Adds a new subsection to
content/docs/data-modeling/drivers.mdx— "Secret-shaped keys with no binder slot: accepted at-rest risk", placed directly under the existing "configis validated per driver" section (the section a reader configuring any datasource driver already lands on). It:options.proxyPassword,options.tlsCertificateKeyFilePassword,options.key,options.passphrase, and turso'sencryptionKey.sys_metadataas plain text.config.options.auth.passwordis a fourth spelling of an inline credential — authorable, persisted cleartext, unredacted, and read by the client #9040, shipped).Verification of the card's premises (done before writing, per the dispatch instructions)
PASSTHROUGH_SECRET_PATHSinpackages/spec/src/data/datasource-credential-redaction.tscovers exactly the four mongo keys (options.auth.password,options.proxyPassword,options.tlsCertificateKeyFilePassword,options.key,options.passphrase, plusoptions.authMechanismProperties.AWS_SESSION_TOKEN) — the four named in the card are all present and confirmed still-writable (onlyauth.passwordis also refused at write, mirrored inrefusedPassthroughSecretPaths).packages/services/service-datasource/src/datasource-config-redaction.ts(restoreRedactedConfig), importspassthroughSecretPathsfrom spec, and is wired intodatasource-admin-service.ts(merged.config = restoreRedactedConfig(...)) — confirmed.encryptionKey(packages/spec/src/data/driver/turso.zod.ts) isz.string().optional()withformat: 'password'metadata — a top-level writable config key (STILL_WRITABLE_CREDENTIAL_KEYS.turso), a different code path from mongo's nested passthrough keys (PASSTHROUGH_SECRET_PATHS). The outcome shape the card claims — writable, stored cleartext at rest, redacted only on read — is genuinely the same for both; the underlying mechanism is not identical, and the doc text says "same … posture," not "same mechanism."sys_metadatais the real, durable storage table for datasource records (packages/services/service-datasource/src/datasource-admin-plugin.ts,packages/metadata-core/src/objects/sys-metadata.object.ts).Scope discipline
No runtime code changed — this PR touches only
content/docs/data-modeling/drivers.mdx. Per the dispatch scope fence: no publish-door refusal added (Option C), no binder slot growth (Option A).Out-of-scope finding, not fixed here — filed as #9254: the auto-generated
optionsfield description inpackages/spec/src/data/driver/mongo.zod.ts(rendered intocontent/docs/references/data/driver-mongo.mdxand the Studio connection-form help text) currently reads "credential material is refused" — true only forauth.password, not for the four keys this card is about. Not fixed in-place here: it is apackages/specsource edit that pulls in the spec build/docs-regen gate surface, a different verification surface than this docs-only PR.Tests
Documentation-only change; no test suite applies. Local gates, all green at
5dd33ddd0:pnpm check:nul-bytespnpm check:docs-audit-scopepnpm check:docs-redirectspnpm check:role-wordpnpm --filter @objectstack/spec run check:empty-statepnpm --filter @objectstack/spec run check:livenesspnpm --filter @objectstack/spec run check:strictness-ledgerpnpm --filter @objectstack/spec run check:variant-docs(the four spec gates run because
content/docs/**is a CI trigger path inspec-liveness-check.yml, pernode scripts/pm/dispatch-gates.mjs content/docs/data-modeling/drivers.mdx;packages/specwas built first per the toolchain-trap note.)Changeset
None — docs-only, nothing published moves.
skip-changesetlabel applied.Generated by Claude Code