Skip to content

finding: datasource-admin route-ledger gap (D6) + an unknown-driver draft is accepted 201 with status:'error' #7744

Description

@huangyiirene

Symptom

Two observations from datasource-admin-lifecycle (the item otherwise passes — secret handling is exemplary, and refusals attribute to the right service so the #4249 mis-attribution is absent):

(a) A draft naming an unknown driver is accepted 201 with status:'error' rather than refused — health-reporting rather than validation.

(b) D6 confirmed — the admin CRUD routes actually mounted carry no route-ledger entry, and the ledgered spelling differs from the live one.

Root cause

(b) The live admin CRUD routes are mounted at /api/v1/datasources/:name/remote-tables (packages/services/service-datasource/src/admin-routes.ts, ~line 200), but the route ledger (packages/rest/src/rest-route-ledger.ts, ~lines 321-323) lists only the federation family under the different spelling /api/v1/datasources/:name/external/tables — so the mounted admin routes have no ledger entry and the ledgered path does not match the live one. Same tranche-3 route-ledger parity family as #7526 (and the datasource-admin error-attribution family #4225 / #4249).

(a) The datasource-admin draft-create path accepts an unknown-driver draft and records status:'error' on the row instead of validating the driver name at create time (packages/services/service-datasource).

Fix per site: the ledger entry belongs in packages/rest; the draft driver-name validation in packages/services/service-datasource.

Stale-premise check: present on origin/main (ledger still spells /external/tables; live mount still /remote-tables).

Reproduction

(b) Diff the mounted datasource-admin routes against packages/rest/src/rest-route-ledger.ts: the five datasource ledger entries are all federation (/external/tables) ones; the live /remote-tables CRUD routes appear nowhere.

(a) POST a datasource draft naming a driver that is not registered.

Expected: (b) every mounted route has a ledger entry at its live spelling; (a) the unknown-driver draft is refused. Actual: (b) no ledger entry, spelling mismatch; (a) 201 with status:'error'.

Source

Extracted from the QA run #7690 (framework 92f26f7, console 09987b680).

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions