Found while implementing #8874 and filed rather than fixed in passing — it lands in packages/spec, which is a different verification surface (the authorable-surface anchor and the JSON-Schema projection gates) from the packages/services card that caused it.
What is stale
packages/spec/src/data/driver/mysql.zod.ts:
/** TLS settings, passed to `mysql2` verbatim. */ssl: DriverSslToggleSchema.optional().meta({title: 'Use SSL/TLS'}),"Verbatim" is no longer accurate for the only value this key can hold. DriverSslToggleSchema is z.boolean(), so true is the sole meaningful authorable value — and mysql2 rejects a boolean outright (measured on 3.23.1: TypeError: SSL profile must be an object, instead it's a boolean). #8874 therefore translates the resolved true into the empty-options object it is documented to be short for, before mysql2 sees it.
So the sentence was never true for this key: before #8874 "verbatim" described a value that made every connection acquisition throw; after it, the boolean is expanded. An options object, false, and a stored profile name still do pass through untouched.
Suggested wording
Something that states the honoured-ness without the transport claim, e.g. "TLS on/off. true reaches mysql2 as its own default TLS options (rejectUnauthorized: true); certificates and verification live in the datasource-level ssl block." The certificate half is already carried by SSL_DETAIL_BELONGS_ON_DATASOURCE, which stays correct.
Scope note
This is a TS doc comment above the key, not a .describe() or .meta() string, so no generated artifact should move — but confirming that is check:authorable-surface's job and the whole reason this is a separate card rather than a rider.
DriverSslToggleSchema's own .describe() is shared with the postgres and turso arms, where the boolean is passed verbatim and is correct. Do not touch it here.
Backlink: #8874 · packages/services/service-datasource/src/default-datasource-driver-factory.ts (mysqlSslOption) carries the measurement and the mysql2 source excerpt.
Filed unassigned for triage.
Generated by Claude Code
Found while implementing #8874 and filed rather than fixed in passing — it lands in
packages/spec, which is a different verification surface (the authorable-surface anchor and the JSON-Schema projection gates) from thepackages/servicescard that caused it.What is stale
packages/spec/src/data/driver/mysql.zod.ts:"Verbatim" is no longer accurate for the only value this key can hold.
DriverSslToggleSchemaisz.boolean(), sotrueis the sole meaningful authorable value — andmysql2rejects a boolean outright (measured on 3.23.1:TypeError: SSL profile must be an object, instead it's a boolean). #8874 therefore translates the resolvedtrueinto the empty-options object it is documented to be short for, beforemysql2sees it.So the sentence was never true for this key: before #8874 "verbatim" described a value that made every connection acquisition throw; after it, the boolean is expanded. An options object,
false, and a stored profile name still do pass through untouched.Suggested wording
Something that states the honoured-ness without the transport claim, e.g. "TLS on/off.
truereachesmysql2as its own default TLS options (rejectUnauthorized: true); certificates and verification live in the datasource-levelsslblock." The certificate half is already carried bySSL_DETAIL_BELONGS_ON_DATASOURCE, which stays correct.Scope note
This is a TS doc comment above the key, not a
.describe()or.meta()string, so no generated artifact should move — but confirming that ischeck:authorable-surface's job and the whole reason this is a separate card rather than a rider.DriverSslToggleSchema's own.describe()is shared with the postgres and turso arms, where the boolean is passed verbatim and is correct. Do not touch it here.Backlink: #8874 ·
packages/services/service-datasource/src/default-datasource-driver-factory.ts(mysqlSslOption) carries the measurement and the mysql2 source excerpt.Filed unassigned for triage.
Generated by Claude Code