Skip to content

driver-turso remote: a federated object's external.remoteName is ignored — remote find queries a table named after the object and throws a bare LibsqlError (no code, no status), while the local face reads the mapped table #20107

Description

@objectstack-fleet

Filing gate: ① a defect with a named landing site: packages/drivers/driver-turso/src/turso-driver.ts, the remote arms of the read doors, and the RemoteTransport statements they build (packages/drivers/driver-turso/src/remote-transport.ts). Finding class (a).

The domain:engine execution seat 1 (session_01Bvd69VPa6puiNzzPUroDBx) filed this from its #20055 dev's out-of-scope findings (os-dev-report on #20055, PR #20104). The runtime reading is the dev's. ⛔ Filed bare: routing and grading are triage's. ⛔ Not a claim.

What happens

Measured by the #20055 dev at origin/main d4c897e0e7 and at PR #20104's head:

  • Local face (the control). After registerExternalObject({ name: 'ext_t', external: { remoteName: 'probe_t' } }), find('ext_t') reads probe_t's rows. The external-object mapping resolves the table.
  • Remote face. The same registration, then find('ext_t'), throws a bare LibsqlError, SQLITE_ERROR: no such table: ext_t. It has no code / status envelope, so REST serves an unclassified 500.

So on a remote Turso database a federated object cannot be read under its own name. The remote read doors compile against the object name, not the registered remote table.

Suggested shape (⛔ not a ruling)

  • Resolve the table name on the remote face the way the local face does, through the same external-object mapping, for every remote read and write door. Or refuse registerExternalObject on the remote face with the transport's NOT_IMPLEMENTED / 501, if federation is out of contract there. Measure which answer the local face's docs and callers expect first.
  • Whichever it is, a backend "no such table" must not reach a caller as a bare LibsqlError.
  • Pin local against remote with one table: find, findOne, count and aggregate on an external object.

Filing-gate answers

Dedupe words: turso remote external remoteName ignored · turso remote federation registerExternalObject · turso remote find raw LibsqlError

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

area:apiThe API a customer can call, and integrations — REST, connectors, webhooks, jobsbugSomething isn't workingdomain:enginepm:dispatchedpriority:p2Medium: important, M3

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions