Skip to content

Composed-branch twin of #9041: external.credentialsRef bound + discrete mongo fields naming no username is the same silent no-op, unrefused #9147

Description

@os-zhuang

Found while implementing #9041 (dispatch session session_01225pUjnCKWqxcc1PeqKFUq), filed rather than folded in: the #9041 triage fences scope that refusal to a present config.url ("a mongo config.url whose userinfo names NO user"), so the composed spelling of the identical defect stays accepted.

What happens

A mongo datasource with NO config.url, discrete fields naming no username, and a bound secret:

driver: mongodbconfig: { database: events, host: mongo.internal }external: { credentialsRef: "sys_secret:..." }

buildMongoUrl in packages/services/service-datasource/src/default-datasource-driver-factory.ts composes the URI with const auth = user ? ... : ''; — no username, no credential, the bound secret is never used, and the datasource connects anonymously with the operator told nothing. Byte-for-byte the same "binding is a silent no-op at connect" defect #9041 closes for the URL-bearing spelling, one branch over (the #9041 card itself measured that the two branches have always agreed on this input).

Why #9041 did not close it

Its triage fences (adopted from the card, binding on the dispatch) scope the refusal to the pair with config.url present; the datasource-level refinement landed by the #9041 PR deliberately skips when url is absent, and its test file pins the composed branch as out of scope. Extending the refusal is a one-condition widening of the same refinement (url absent AND the discrete username key absent AND credentialsRef bound), but it is a fresh accept-set narrowing over a shape the fences deliberately excluded, so it needs its own triage rather than a rider.

Notes for triage

Backlink: #9041 (URL-bearing spelling; its PR carries the refinement this would extend), #8696 (the injection whose composed branch this is), #8153 (wizard reachability).

Metadata

Metadata

Type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions