docs(configure): federation ships today, and defineDatasource() exists - #252
Merged
Merged
Conversation
`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
This was referenced Sep 2, 2026
os-bill
marked this pull request as ready for review
September 2, 2026 15:23
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes #250
content/docs/configure/data-sources.mdxcarried two claims that a shippedcapability 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, theexternalbinding, 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 correctedLine 88 said "There is no
defineDatasource()helper." The helper isexported. 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
Datasourceliteral valid.Premise re-check (re-run at dispatch time, not carried forward)
Card measured at
objectstackorigin/main@7cbe705b; PM re-measured at90ff957; upstream had moved again to2514d49by the time this ran, soevery leg was re-run there. All hold:
objectstackorigin/main@2514d49**Status**: Accepted — backend/REST/CLI implemented; Studio UI + extra dialect drivers pendingdefineDatasourcepackages/spec/src/data/datasource.zod.ts:816; re-exported atpackages/spec/src/index.ts:171and via./data. Control probe: the same pathspec returns 20 otherexport function define…hits, so the match is a real readingschemaModeSchemaModeSchemaatdatasource.zod.ts:238, wired at:651asschemaMode: SchemaModeSchema.default('managed')externalbindingObjectExternalBindingSchema, wired atobject.zod.ts:1919asexternal: ObjectExternalBindingSchema.optional()packages/cli/src/commands/datasource/{introspect,validate,list-tables}.tsall presentpackages/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:
:232theRoadmap heading,
:238the "Planned, not yet shipped" line,:88thedenial.
⛔ 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)pnpm turbo run type-check build --filter=@objectos/docsTasks: 2 successful, 2 total·Cached: 0 cached(the content change moved the hash — no replayed green)pnpm turbo run testTasks: 1 successful, 1 total;✓ 4 self-test(s) passedapps/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 passedcheck-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 requiresRendered output checked on the real build artifact
(
apps/docs/.next/server/app/en/docs/configure/data-sources.html), not juston the source: the new heading and the pointer link are present, and
Roadmap: in-product,not yet shipped,status: ProposedandThere is noall 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