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
{{ message }}
Repository navigation
Commit 199ec47
Browse filesBrowse the repository at this point in the historyBrowse files
fix(objectql,service-datasource): bind federated objects whatever the boot order, and report what could not be bound (#7737) (#7788)
`driver.registerExternalObject(obj)` is the only thing that installs an
ADR-0015 federated object's read metadata (object -> remote-table mapping,
columnMap translation, coercion maps). Without it a read resolves to a table
named after the OBJECT instead of the remote table it declares.
`ObjectQLPlugin`'s boot schema-sync calls it from `start()`, but the declared
datasource that owns the remote database is auto-connected in
`AppPlugin.start()` — a later `start()` — so on a healthy boot the driver does
not exist yet at that point and the call is skipped. Whether an object ended up
bound therefore depended on some other component re-driving it. Two cases where
nothing did: an object routed by a `datasourceMapping` rule (#4462), and any
deployment running with `OS_SKIP_SCHEMA_SYNC` (a DDL flag, while this binding is
DDL-free).
- ObjectQLPlugin now reconciles federated bindings on `kernel:ready`, after
every `start()` has run: idempotent re-drive for every registered external
object, independent of boot order.
- The same pass reports what it could not bind at `error`, naming the objects,
their datasources, the consequence and the fix. The previous diagnosis was one
`debug` line ("No driver available for object, skipping schema sync"). Silent
on a boot with nothing to report.
- DatasourceConnectionService re-drives `mappedObjects` alongside `objects`, so
a mapping-routed federated object is bound by a runtime datasource connect too.
Claude-Session: https://claude.ai/code/session_01K5pui68hQhfFRR1fB1iuvh
Co-authored-by: Claude <noreply@anthropic.com>
fix(objectql,service-datasource): bind federated objects to their remote tables whatever the boot order, and report the ones that could not be bound (#7737)
7
+
8
+
`driver.registerExternalObject(obj)` is the only thing that installs an
0 commit comments