You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
fix(dev): eliminate three fixed startup log warnings so official examples boot clean (#3420)
`os dev` on the stock showcase printed three fixed noise sources on every
boot, training users to ignore warnings (cry-wolf). Clear all three:
1. field-zoo password warning — ObjectSchema.create() warned that
showcase_field_zoo.f_password declares `password` on a non-auth object,
yet offered no way to express the "this is intended" its own text invited.
Add a field-level `ackPlaintextMasking: true` opt-out (ADR-0100) that skips
the warning for a deliberately-masked field, and set it on field-zoo's demo
field. The warning text now points authors at the flag.
2. Better Auth well-known warning (printed twice) — @better-auth/oauth-provider
warned "Please ensure '/.well-known/oauth-authorization-server/api/v1/auth'
exists…" even though registerOidcDiscoveryRoutes already mounts those
documents at the issuer root (RFC 8414 §3). Silence the false positive with
the documented `silenceWarnings.oauthAuthServerConfig` option; gating the
emitter also removes the duplicate print.
3. Registry re-register output — `[Registry] Overwriting package…` and
`Re-registering owned object…` are normal rebuild/HMR/seed-replay paths but
were emitted via console.warn (always on). Route them through a new
debug-only SchemaRegistry.debug() so they stay out of the default 'info'
boot log while remaining available at logLevel 'debug'.
Adds spec tests for the ackPlaintextMasking opt-out (suppress, partial-ack,
warning-text hint); updates ADR-0100 §B5 to record the opt-out.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01TXHXXHnquzVUjeQYPs9bmy
* over permission-set field grants. Enforced by plugin-security's FieldMasker.
512
512
*/
513
513
requiredPermissions: z.array(z.string()).optional().describe('[ADR-0066 D3] Capabilities required to read/edit this field (mask on read, deny on write; AND-gate).'),
514
+
515
+
/**
516
+
* [ADR-0100] Author's explicit acknowledgment that a generic (non-auth)
517
+
* `password` field is stored PLAINTEXT at rest and masked to SECRET_MASK on
518
+
* read — it is NOT one-way hashed (that lives only in the auth subsystem).
519
+
* Set `true` to affirm the masking contract is intended; this is the
520
+
* documented way to express "this is intended" and silences the non-fatal
521
+
* `ObjectSchema.create()` author-time warning so a deliberate demo/design
522
+
* starts clean (#3420). No runtime effect beyond the diagnostic; ignored on
523
+
* non-`password` fields.
524
+
*/
525
+
ackPlaintextMasking: z.boolean().optional().describe("[ADR-0100] Affirm a generic `password` field's plaintext-at-rest / masked-on-read contract is intended, silencing the author-time warning (#3420). No effect on non-password fields."),
514
526
system: z.boolean().optional().describe('Auto-injected system/audit field (e.g. created_at, updated_by, organization_id). Tools that surface system fields separately from author-declared business fields should branch on this flag.'),
515
527
sortable: z.boolean().optional().default(true).describe('Whether field is sortable in list views'),
516
528
inlineHelpText: z.string().optional().describe('Help text displayed below the field in forms'),
0 commit comments