Skip to content

docs(configure): federation ships today, and defineDatasource() exists - #252

Merged
os-bill merged 1 commit into
mainfrom
claude/issue-250-federation-shipped-not-roadmap
Sep 2, 2026
Merged

docs(configure): federation ships today, and defineDatasource() exists#252
os-bill merged 1 commit into
mainfrom
claude/issue-250-federation-shipped-not-roadmap

Conversation

@os-bill

@os-bill os-bill commented Sep 2, 2026

Copy link
Copy Markdown
Collaborator

Fixes #250

content/docs/configure/data-sources.mdx carried two claims that a shipped
capability does not exist. Both are corrected here; nothing else on the page
changes.

1. The "Roadmap" section becomes a pointer, not a second description

The section titled "Roadmap: in-product External Datasource Federation"
its heading, its "Planned, not yet shipped" framing, the four bullets and
the "until those land, prefer the documented path" closer — is replaced by a
short pointer to the framework guide that owns this surface,
data-modeling/external-datasources.

Linking rather than re-describing is the adjudicated direction on the card:
the mirror follows, it does not lead. Re-stating schemaMode, the external
binding, the CLI or the wizard here would recreate the second copy that
drifted apart in the first place. The ADR-0015 link survives; its
"status: Proposed" gloss does not, because the ADR's own status line no
longer says that.

2. The defineDatasource() denial is corrected

Line 88 said "There is no defineDatasource() helper." The helper is
exported. Note the shape of the defect: the plain-object form the page
teaches still works, so this was a wrong denial rather than a broken
example — the replacement names the helper as available and explicitly keeps
the plain Datasource literal valid.

Premise re-check (re-run at dispatch time, not carried forward)

Card measured at objectstack origin/main @ 7cbe705b; PM re-measured at
90ff957; upstream had moved again to 2514d49 by the time this ran, so
every leg was re-run there. All hold:

Leg Reading at objectstack origin/main @ 2514d49
ADR-0015 status **Status**: Accepted — backend/REST/CLI implemented; Studio UI + extra dialect drivers pending
defineDatasource packages/spec/src/data/datasource.zod.ts:816; re-exported at packages/spec/src/index.ts:171 and via ./data. Control probe: the same pathspec returns 20 other export function define… hits, so the match is a real reading
Bullet 1 schemaMode SchemaModeSchema at datasource.zod.ts:238, wired at :651 as schemaMode: SchemaModeSchema.default('managed')
Bullet 2 external binding ObjectExternalBindingSchema, wired at object.zod.ts:1919 as external: ObjectExternalBindingSchema.optional()
Bullet 3 CLI packages/cli/src/commands/datasource/{introspect,validate,list-tables}.ts all present
Bullet 4 gates + wizard ADR-0062 R6 boot gate ✅ (packages/runtime/src/external-validation-plugin.ts), R5c write gate (double opt-in) ✅, R7 introspection + runtime Sync wizard ✅

Each of the four bullets was verified individually rather than as a group, so
that a single still-unshipped bullet would have split the edit instead of
being deleted along with the others. None was.

The page's own three lines were confirmed present before editing: :232 the
Roadmap heading, :238 the "Planned, not yet shipped" line, :88 the
denial.

⛔ Deliberately not claimed anywhere on the page: which dialect drivers or
Studio surfaces remain pending. That forecast is what this lane keeps having
to delete, and the guide this page now points at is where the current state
is maintained.

Gates (all at feeeec8)

Gate Its own verdict
pnpm turbo run type-check build --filter=@objectos/docs Tasks: 2 successful, 2 total · Cached: 0 cached (the content change moved the hash — no replayed green)
pnpm turbo run test Tasks: 1 successful, 1 total; ✓ 4 self-test(s) passed
apps/docs/scripts/gen-zh-hant.mjs --check ✓ zh-Hant: 73 generated file(s) match the zh-Hans sources byte for byte.
check-translations.mjs ✓ translations gate passed
check-translation-ownership.mjs ⚠ TRANSLATION_BOT_LOGIN is not set — ownership is not enforced yet. This PR touches 0 translation artifact(s) and 1 other file(s).
check-locale-surface.mjs ✓ every advertised URL has a source file and every source file is advertised…
check-node-floor.mjs (+ --self-test) ✅ Every declared floor clears what the dependency tree requires

Rendered output checked on the real build artifact
(apps/docs/.next/server/app/en/docs/configure/data-sources.html), not just
on the source: the new heading and the pointer link are present, and
Roadmap: in-product, not yet shipped, status: Proposed and
There is no all return zero hits.

English only, per AGENTS.md — the seven locale siblings of this page are
untouched and are now stale, which the freshness gate reports and the next
translation pass fixes.

🤖 Generated with Claude Code

https://claude.ai/code/session_01ChPQM8jamxLUfUAxwFpJ8S


Generated by Claude Code

`configure/data-sources.mdx` told readers that in-product external
datasource federation was a roadmap item and that no `defineDatasource()`
helper existed. Both claims are stale at the source:

- All four "planned, not yet shipped" bullets are shipped on objectstack
  `origin/main` (`SchemaModeSchema`, `external` on `ObjectSchema`, the
  `datasource/{introspect,validate,list-tables}` CLI, the boot/write gates
  and the runtime Sync wizard — ADR-0062 R1/R5c/R6/R7).
- ADR-0015's own status line reads "Accepted", not "Proposed".
- `export function defineDatasource` is live in
  `packages/spec/src/data/datasource.zod.ts` and re-exported from both
  `@objectstack/spec` and `@objectstack/spec/data`.

The Roadmap section becomes a short pointer to the framework guide that
owns this surface rather than a second description of it — the mirror
follows, it does not lead. The `defineDatasource()` note names the helper
as available without implying the plain-object form stopped working; it
has not.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01ChPQM8jamxLUfUAxwFpJ8S
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

2 participants