# Documentation - [Build business apps without writing code](/docs/build-without-code): What admins and business analysts can do visually in Console, Studio, and Setup — and how that stays in sync with metadata written as code - [Documentation — build apps from metadata](/docs): ObjectStack documentation: one executable business ontology — AI writes it, the runtime runs it, agents operate it, you own it. Start here for guides, concepts and APIs. - [Upgrade guide — move between major versions](/docs/upgrading): Upgrade ObjectStack in two halves on separate clocks — the platform runtime and your metadata app. What each moves, and where each major's checklist lives. - [MCP tools — expose actions to AI agents](/docs/ai/actions-as-tools): Expose declarative Action metadata as AI-callable tools with explicit opt-in, HITL approval, and permission-aware execution - [AI agents — declare tools, model and prompt](/docs/ai/agents): The two platform agents (ask and build), how skills extend them, and the shape of an AgentSchema record - [MCP client setup — Claude, Cursor and IDEs](/docs/ai/connect-mcp): Point Claude Code, Claude Desktop, or any MCP client at your running app — OAuth or API key — and verify the agent can see and operate it. - [AI features — MCP tools, agents and RAG](/docs/ai): Complete guide to leveraging AI agents, RAG pipelines, and intelligent automation in ObjectStack - [RAG — embeddings and knowledge retrieval](/docs/ai/knowledge-rag): The Knowledge Protocol — permission-aware RAG for agents via pluggable adapter plugins (memory, RAGFlow, custom) - [Natural language queries over your data](/docs/ai/natural-language-queries): How agents query live data through the open MCP data tools (query_records, get_record, aggregate_records) under RLS - [AI skill reference — every field explained](/docs/ai/skills-reference): Reference for every ObjectStack AI skill — domain-scoped knowledge modules that teach AI assistants the protocol's schemas and constraints - [AI skills — reusable instructions for agents](/docs/ai/skills): How ObjectStack uses structured AI skills to enable intelligent code generation, review, and automation - [Tool records — govern what an agent may call](/docs/ai/tools): The three ways a capability reaches an agent, and the narrow case where authoring a tool record is the right answer - [Client SDK — typed JavaScript data access](/docs/api/client-sdk): The official TypeScript client for ObjectStack — auto-discovery, typed metadata, CRUD, batch operations, and service-aware feature detection. - [REST data API — CRUD over every object](/docs/api/data-api): REST endpoints for CRUD, batch operations, record cloning, and analytics queries. - [Request data flow — from HTTP to driver](/docs/api/data-flow): How data moves through the ObjectStack system — from defineStack() configuration to database queries, realtime events, and metadata resolution - [Custom endpoints declared as metadata](/docs/api/declarative-endpoints): Expose your app to outside systems by declaring an apis: endpoint as metadata — pick the channel, pass the four publish gates, secure anonymous calls. - [Environment routing — dev, preview, prod](/docs/api/environment-routing): Route REST, metadata, automation, AI, and package calls through /api/v1/environments/:environmentId/.... - [API error codes — the complete catalog](/docs/api/error-catalog): Complete reference for all ObjectStack error codes with causes, fixes, and retry strategies - [Client error handling — retries and codes](/docs/api/error-handling-client): Best practices for handling ObjectStack errors in client applications — parsing, display, retry strategies, and React patterns - [Server error handling — throw the envelope](/docs/api/error-handling-server): Best practices for handling and throwing errors in ObjectStack plugins — custom errors, hook propagation, validation, transactions, and safeParsePretty - [REST and GraphQL APIs — generated per object](/docs/api): How ObjectStack generates its API surface from metadata — discovery, error handling wire formats, protocol types, and a map of the API & SDK docs. - [Metadata API — read and publish packages](/docs/api/metadata-api): REST endpoints for object schemas, metadata types, UI views, and package management. - [Plugin endpoints — add routes from a plugin](/docs/api/plugin-endpoints): REST endpoints each installed plugin adds — auth, workflow, automation, views, realtime, notifications, AI, i18n and files — and how to discover them. - [API wire format — request and response JSON](/docs/api/wire-format): Complete HTTP request/response examples for ObjectStack API operations — CRUD, queries, metadata, errors, and batch operations - [AI under governance — permissioned agents](/docs/capabilities/ai): Ask questions and get charts, let AI act under the same permissions and audit as people, and connect your own agents over MCP - [Analytics — dashboards, reports and charts](/docs/capabilities/analytics): ~20 chart families, period-over-period comparison, runtime filters, TV display pages, and four report shapes - [Approvals — routing, queues and audit trail](/docs/capabilities/approvals): Seven ways to pick approvers, four decision modes including group sign-off, record locking, overdue escalation, and send-back-for-revision - [Automation — processes that run themselves](/docs/capabilities/automation): Five trigger styles, visual flow diagrams, notifications, branching, loops, waits, and external calls — the work nobody should have to remember - [Business data — objects, fields and records](/docs/capabilities/data): Objects, 40+ field types, auto-computed fields, and relationships — every spreadsheet you run the business on, structured and governed - [Forms and data quality — validation rules](/docs/capabilities/forms): Sectioned and wizard forms, validation at the moment of entry, legal stage transitions, and public forms for anonymous submission - [What can it do? — the capability overview](/docs/capabilities): What the platform can do, in business language — data, views, automation, approvals, permissions, analytics, AI and integrations, shown on a real CRM. - [Integrations — email, files and everyday work](/docs/capabilities/integrations): Import/export, generated APIs, webhooks, connectors, federated external databases, marketplace templates — plus collaboration and languages - [Permissions — who sees what, enforced](/docs/capabilities/permissions): Four layers from object capability to per-field visibility, five data-depth scopes, sharing rules, audit, and an explain API - [Request a feature — how to describe it](/docs/capabilities/request-template): A one-page template that turns business needs into the platform's vocabulary — hand it to your implementation team or an AI agent and get a running system - [Views — lists, kanban, calendar and gantt](/docs/capabilities/views): Nine list views over the same records — table, kanban, calendar, gantt, gallery, timeline, map, tree, chart — plus saved filters and global search - [Approval chains — multi-step sign-off rules](/docs/automation/approvals): Route a record for sign-off with an approval flow — who may configure it, and the run-identity choice that keeps it from bypassing row-level security. - [Connectors — call external systems safely](/docs/automation/connectors): Call external systems from flows with plugin connectors or declarative rest, openapi and mcp instances — pure metadata with reference-based credentials. - [Email templates — merge fields and layouts](/docs/automation/email-templates): Author a localizable outbound mail template as metadata, and reach it from a flow's notify node or from services.email. - [Flows — DAG automation as typed metadata](/docs/automation/flows): Build visual automation with decision trees, data operations, HTTP requests, and screen interactions - [Hook and action bodies — the L1/L2 rules](/docs/automation/hook-bodies): How hook handlers and script-action bodies travel through ObjectStack as pure metadata, and the spec they must conform to. - [Record hooks — beforeInsert to afterDelete](/docs/automation/hooks): Run custom code at interception points in the ObjectQL execution pipeline — before/after insert, update, delete, and find - [Automation — flows, triggers and schedules](/docs/automation): Hooks, flows, workflows, approvals, scheduled jobs, durable webhooks, and connectors — the process engine that reacts to your data. - [Scheduled jobs — cron automation metadata](/docs/automation/jobs): Run a sandboxed body, a connector pull, or a TypeScript function on a cron, interval, or one-off schedule — and decide when a job is the right tool instead of a schedule-triggered flow. - [Webhooks — outbound delivery and retries](/docs/automation/webhooks): How ObjectStack reliably ships outbound HTTP notifications — from event to receiver — with at-least-once guarantees, signed payloads, and observable retries. - [Workflow rules — declarative record logic](/docs/automation/workflows): Use Flow for automation and state machines for strict lifecycle transitions. - [Protocol architecture — the four layers](/docs/concepts/architecture): How the Data, System, and UI protocols work together as one cohesive system - [How ObjectStack compares — ontologies, semantic layers, low-code](/docs/concepts/compare): ObjectStack beside knowledge ontologies, semantic layers, operational ontologies, metadata platforms and AI codegen: what each does well, where it differs. - [Design principles behind the metadata spec](/docs/concepts/design-principles): The unshakable core principles that govern ObjectStack as an AI-native business backend - [Core concepts — metadata, runtime, protocol](/docs/concepts): The foundational ideas behind ObjectStack — metadata-driven development, protocol-first design, and the principles that shape every decision - [Metadata-driven development explained](/docs/concepts/metadata-driven): Understanding how structured metadata becomes APIs, UI, workflows, and AI-agent tools - [Metadata lifecycle — load, publish and HMR](/docs/concepts/metadata-lifecycle): How metadata flows through Repository, Change Log, Cache and Registry — the event stream behind Studio hot reload, REST writes and cloud editing. - [North star — why this framework exists](/docs/concepts/north-star): Where ObjectStack is headed: a metadata-native backend that humans and AI agents can both operate safely — its principles, runtime shape and non-goals. - [Business ontology — the executable definition the runtime runs](/docs/concepts/ontology): What ObjectStack means by business ontology: the executable definition the runtime runs, its projections, what it is not, and how AI writes and uses it. - [When to use ObjectStack, and when not to](/docs/concepts/when-to-use): Where ObjectStack fits today and where it does not, the five questions to answer before you start, and what you get in the first weeks and after a year. - [Build an app with Claude Code, step by step](/docs/getting-started/build-with-claude-code): Build an ObjectStack app with Claude Code: the AI writes the metadata, you verify it in the Console, guardrails catch mistakes, and the app speaks MCP. - [Common patterns — proven metadata recipes](/docs/getting-started/common-patterns): Top 10 patterns for building applications with ObjectStack — CRUD, views, flows, agents, security, and more - [Example apps — CRM, showcase and more](/docs/getting-started/examples): Run and explore the built-in example applications to learn ObjectStack hands-on - [Glossary — every metadata term defined](/docs/getting-started/glossary): The Glossary of the ObjectStack Ecosystem. Speaking the same language. - [How AI-written app development works](/docs/getting-started/how-ai-development-works): How building with ObjectStack splits the work: AI writes the typed metadata, you verify it in the visual UI, and layered guardrails stop its mistakes. - [What is ObjectStack? — a 5-minute intro](/docs/getting-started): ObjectStack is the AI-native business backend for structured, auditable business applications - [Quick reference — every metadata type](/docs/getting-started/quick-reference): Look up any ObjectStack metadata type fast — the key schemas of every protocol category on one page, with common patterns and search tips. - [Anatomy of an app — your first metadata](/docs/getting-started/quick-start): A tour of the metadata an AI agent writes for you — objects, actions, views, apps — and how to read it so you can verify the result in the Console. - [Your first project — from zero to running](/docs/getting-started/your-first-project): Scaffold a standalone ObjectStack project with npm, extend the data model, call the REST API and build a deployable artifact — no AI agent required. - [Analytics datasets — modelling for reports](/docs/data-modeling/analytics): The dataset semantic layer (ADR-0021) — define a metric once, bind reports and dashboards to it by name. - [Database drivers — Postgres, MySQL, Mongo](/docs/data-modeling/drivers): Connect ObjectStack to PostgreSQL, MySQL, SQLite, MongoDB, Turso or memory — URL-based driver inference, per-driver config keys and dialect caveats. - [External datasources — query without ETL](/docs/data-modeling/external-datasources): Declare an external database as a datasource and query its tables as ObjectStack objects — visible, auto-connected, and queryable with zero app code. - [Which field type should I use? A decision tree](/docs/data-modeling/field-type-decision-tree): Interactive guide for choosing the right ObjectStack field type — decision flowchart, quick-reference table, and use case mapping - [Field types — the complete visual gallery](/docs/data-modeling/field-types): Complete reference for every ObjectStack field type with per-type configuration properties - [Field metadata — every option explained](/docs/data-modeling/fields): Configure field types and properties — text, numbers, dates, relationships, files, and more - [Formulas — CEL expressions on records](/docs/data-modeling/formulas): Canonical CEL-based expression language for formulas, predicates, conditions, and dynamic seed values - [Import mappings — load external data files](/docs/data-modeling/import-mappings): Named, reusable source-column to field projections for CSV/JSON/xlsx import, and the mappingName request that applies one. - [Data modelling — objects, fields, relations](/docs/data-modeling): Objects, fields, relationships, validation, CEL formulas, and a compiled query AST — the ObjectQL layer every other module builds on. - [Database indexes — declare and tune them](/docs/data-modeling/indexing): Optimize query performance with single-field, unique, compound, and lookup indexes - [Object extensions — extend without forking](/docs/data-modeling/object-extensions): Add fields, validations and indexes to an object another package owns, without forking it — declaration, merge order, and what an extension may not contribute. - [Object metadata — define your data schema](/docs/data-modeling/objects): Define business entities with ObjectSchema — the core building block of every ObjectStack application - [ObjectQL query syntax — a cheat sheet](/docs/data-modeling/queries): One-page reference for ObjectStack QuerySchema — filters, sorts, pagination, aggregations, and expand - [Relationships — lookups, master-detail](/docs/data-modeling/relationships): Model relationships between objects — lookups, filtered lookups, self-referencing hierarchies, and related lists - [Schema design — model a business domain](/docs/data-modeling/schema-design): Design robust object schemas in ObjectStack — object metadata, enable flags, field groups, and enterprise best practices - [Seed data — fixtures and demo datasets](/docs/data-modeling/seed-data): Populate ObjectStack objects with bootstrap data, reference records, and demo fixtures using defineSeed() - [Validation rules — reject bad records](/docs/data-modeling/validation-rules): Default validation behavior, required properties, and constraints for each ObjectStack field type - [Validation metadata — declare the checks](/docs/data-modeling/validation): Define data integrity rules — formula conditions, format, cross-field checks, state machine transitions, and more - [Backup and restore — protect tenant data](/docs/deployment/backup-restore): What state an ObjectStack deployment actually holds, how to back up each piece per database driver, and the restore drill to rehearse before you need it. - [Command line interface — the os CLI reference](/docs/deployment/cli): Complete guide for using the ObjectStack CLI to build metadata-driven applications - [Cloud Connection — connect a self-hosted server to ObjectStack Cloud](/docs/deployment/cloud-connection): Connect your own ObjectStack server to an ObjectStack Cloud account from Setup → Cloud Connection with a one-time code, then rename or disconnect it. What the server stores, and what disconnecting removes. - [Environment variables — the full list](/docs/deployment/environment-variables): Canonical list of OS_* environment variables read by the ObjectStack runtime, CLI, and built-in plugins. - [Deployment — ship a runtime to production](/docs/deployment): Deploy the platform runtime or ship your metadata app — two things on separate clocks. Find out which one you are doing and which pages cover it. - [Install modes — managed or an unmanaged copy](/docs/deployment/install-modes): Declare which install modes a package permits with installModes, then pick one at install time. What a managed install keeps, and what an unmanaged copy keeps and drops, the vendor's protection locks included. - [Production readiness — the go-live list](/docs/deployment/production-readiness): Security headers, rate limiting, observability, and the go-live checklist for ObjectStack runtimes. - [Publish, versioning and preview builds](/docs/deployment/publish-and-preview): Compile a metadata app into a versioned artifact, then install it from the catalog or pin it as the runtime's boot artifact to preview and publish. - [Repair seed tenancy after a bad import](/docs/deployment/seed-tenancy-repair): The automatic repair that stamps organization_id on untenanted seed rows — when it runs, what it changes, and the manual fix for multi-org installs. - [Self-hosting — run your own deployment](/docs/deployment/self-hosting): Run a compiled ObjectStack app on your own servers with the official Docker image, Compose and Postgres, or Kubernetes — health checks and secrets too. - [Single-environment mode — the simple setup](/docs/deployment/single-project-mode): Run ObjectStack as a one-environment local stack without a Cloud control plane. - [Tenancy postures and membership models](/docs/deployment/tenancy-modes): Choose single, group or isolated tenancy: how OS_TENANCY_POSTURE resolves, the membership policy for new users, and the degraded-tenancy boot guard. - [Troubleshooting — common errors and fixes](/docs/deployment/troubleshooting): Solutions to common ObjectStack issues — validation failures, query problems, configuration mistakes, and more - [Validate metadata before you deploy it](/docs/deployment/validating-metadata): Why ObjectStack metadata mistakes fail silently at runtime, and the one command that catches them at author time — run it after every metadata edit. - [Core architecture — kernel and services](/docs/kernel/architecture): How the ObjectKernel boots and runs: its core architecture, the plugin bootstrap lifecycle, and the public kernel API you call from a plugin. - [Cluster semantics — multi-node runtimes](/docs/kernel/cluster): How ObjectStack stays correct from a single laptop to a multi-node cluster — event scope, service scope, leader election, and metadata versioning. - [Kernel events and hooks — the full list](/docs/kernel/events): Every kernel lifecycle hook and data lifecycle hook in ObjectStack — when each fires, its payload and ordering, and which of the two systems to pick. - [Kernel and services — the runtime core](/docs/kernel): The ObjectKernel runtime — plugin host, event bus, service registry, and the versioned services.* APIs your hooks and plugins call. - [Kernel services checklist for reviewers](/docs/kernel/services-checklist): Complete inventory of ObjectStack kernel services with protocol methods, implementation status, and development requirements. - [Service registry — resolve and override](/docs/kernel/services): How plugins expose and consume services in ObjectStack — register a service, resolve it by name, see the standard services, and replace a core one. - [Add a custom metadata type from a plugin](/docs/plugins/adding-a-metadata-type): How to register a new metadata type so it shows up in the Studio app's Metadata Admin with full CRUD, overlay diffing, and (optionally) a custom editor. - [Plugin anatomy — files, hooks and exports](/docs/plugins/anatomy): The Plugin contract — interface, context, and lifecycle phases every ObjectStack plugin implements - [Plugin development — build and test one](/docs/plugins/development): Step-by-step guide to creating, testing, and publishing ObjectStack plugins - [Plugin system — extend the runtime safely](/docs/plugins): Overview of the ObjectStack plugin architecture — plugin types, configuration, management, and built-in plugins. - [Package overview — what each one does](/docs/plugins/packages): Complete guide to all ObjectStack packages, services, drivers, plugins, and adapters - [Access matrix snapshot gate explained](/docs/permissions/access-matrix): A committed (permission set × object) capability matrix that fails the build on any grant drift, with the semantic diff as the review artifact (ADR-0090 D6). - [Access recipes — data, automation and UI](/docs/permissions/access-recipes): Map a real access requirement onto the right layer — object CRUD, field-level and row-level security, capabilities, navigation gating and automations. - [Administrator guide to permissions and access](/docs/permissions/administrator-guide): The permissions manual for tenant administrators: onboard a tenant in four steps, then run daily access by assigning positions — no plumbing needed. - [Attachment access — who can read a file](/docs/permissions/attachments-access): Who can read, upload or delete a record's attachments: the parent-derived access model, authenticated downloads, the enable.files gate and file cleanup. - [Authentication — sessions, tokens, SSO](/docs/permissions/authentication): Complete guide to implementing authentication in ObjectStack using plugin-auth with Better-Auth - [Authorization architecture — how it decides](/docs/permissions/authorization): One-page map of ObjectStack authorization — the enforcement chain, how grants combine, package provenance, lifecycle coverage and the CI checks behind it. - [Declaring capabilities in a permission set](/docs/permissions/capabilities): Define an authorization capability in a package with defineCapability, then follow it into the catalogue, a permission-set grant and a runtime check. - [Delegated administration — scoped admin rights](/docs/permissions/delegated-administration): Hand out scoped admin rights: a business-unit subtree, an action set and an assignable-set allowlist, with self-escalation structurally impossible. - [Explain engine — why access was denied](/docs/permissions/explain): Ask the runtime why a decision came out the way it did — every pipeline layer, with contributor attribution, over the kernel service or REST (ADR-0090 D6). - [Field-level security — hide and mask fields](/docs/permissions/field-level-security): Control visibility and editability of specific fields — readable/editable rules, hidden vs. read-only semantics, and server-side enforcement of declared rules. - [Permissions and identity — the overview](/docs/permissions): Authentication, authorization, and record- and field-level access control in ObjectStack — declared as security metadata and enforced by the runtime. - [Permission metadata — every option explained](/docs/permissions/permission-metadata): Define access control with permission sets — object CRUD, field security, tab visibility, and row-level security - [Permission sets — grant access in bundles](/docs/permissions/permission-sets): Permission sets are the only capability container: object CRUD, field security, scope depth and capabilities, union-merged across what a user holds. - [Security permissions matrix reference](/docs/permissions/permissions-matrix): Visual reference for ObjectStack security — permission types, the object × permission-set matrix, field security, sharing rules and business-unit depth. - [Positions — org hierarchy for sharing](/docs/permissions/positions): Positions are flat groups that hand permission sets to users — the built-in identity positions, the everyone and guest anchors, and where hierarchy lives. - [Profiles (removed) — use permission sets](/docs/permissions/profiles): Profiles were removed. Author baseline access with the everyone audience anchor, package isDefault suggestions and permission sets given via positions. - [Record view auditing — who read what](/docs/permissions/record-view-auditing): Find out who viewed a record and when: the read action in sys_audit_log, its per-object opt-in, the edges of its scope and what a view row leaves out. - [Row-level security (RLS) — filter by rule](/docs/permissions/rls): Declarative per-row policies compiled into query filters — the grammar, the context variables, how policies compose, and the fail-closed contract. - [Sharing rules and organization-wide defaults](/docs/permissions/sharing-rules): Record-level access in ObjectStack: organization-wide defaults per object, the external sharing dial, criteria sharing rules and RLS-safe analytics reads. - [SSO — social and enterprise sign-in setup](/docs/permissions/sso): Enable Google sign-in in open source, and extend auth providers through packages. - [System context (isSystem) — bypass rules](/docs/permissions/system-context): Every platform behaviour that ExecutionContext.isSystem changes — what an elevated write gets, what it loses, and what the flag deliberately does not do. - [Tenant-audit census — tenancy write call sites](/docs/permissions/tenant-audit-census): A census of every write call site against a tenancy-enabled object — which pass an execution context, which pass none, and what static checks can decide. - [Backward compatibility policy for the spec](/docs/protocol/backward-compatibility): Versioning strategy, deprecation timelines, breaking change policy, and migration support for ObjectStack - [Protocol relationship diagram explained](/docs/protocol/diagram): Visual architecture diagram showing how ObjectStack's protocol layers connect — Data, UI, System, Automation, AI, API, and Security - [Protocol specification — the open format](/docs/protocol): The ObjectStack protocol specification: how the Data, UI and System layers describe a complete business application as metadata, and its design principles. - [Knowledge protocol — RAG as metadata](/docs/protocol/knowledge): Pluggable RAG / knowledge retrieval for ObjectStack agents — protocol + adapter model. - [Protocol 16 → 17 upgrade guide](/docs/protocol-upgrade/17): The mechanical conversions and the semantic to-dos for moving metadata from protocol 16 to 17, generated from the ADR-0087 registries. - [Protocol 17 → 18 upgrade guide](/docs/protocol-upgrade/18): The mechanical conversions and the semantic to-dos for moving metadata from protocol 17 to 18, generated from the ADR-0087 registries. - [Protocol upgrade guide](/docs/protocol-upgrade): One page per metadata protocol major: what each major changed, what `objectstack migrate meta` rewrites for you, and the to-dos it leaves you. - [Protocol reference — every schema by module](/docs/references): Every schema published by @objectstack/spec — 1544 schemas across 14 protocol modules - [Implementation Status Matrix](/docs/releases/implementation-status): Detailed status of protocol implementations across ObjectStack packages - [Overview](/docs/releases): Release notes for the ObjectStack platform — framework packages and the Console UI, summarized per version for app and plugin developers. - [v12.0.0](/docs/releases/v12): Anonymous data access denied by default (ADR-0056 D2), adaptive record surfaces, an enforced protocol-version handshake, and a wave of author-time correctness lints. - [v13.0.0](/docs/releases/v13): Permission Model v2 (ADR-0090) — Roles and Profiles converge on Positions, custom objects default to private, and the model gains an explain engine, delegated administration, and self-serve MCP OAuth. - [v14.0.0](/docs/releases/v14): The v14 series completes the ADR-0090 vocabulary convergence, makes object enable.* capability flags real gates, and adds admin user management, phone/SMS auth, book-audience enforcement, a data-lifecycle contract, and effective-dated grants. - [v15.0.0](/docs/releases/v15): Record-level access explanation, a docked AI workspace in the Console, attachments that follow record permissions, no-code third-party connectors, dashboard-wide filters, and Chinese pinyin search — with materially safer multi-tenant defaults. Backend and Console notes for 15.0.0 and 15.1.0. - [v16.0.0](/docs/releases/v16): One org identifier for hook and action authors, quorum and per-group sign-off (会签) approvals, time-relative automations that actually fire, filtered roll-ups, strict dashboard widgets, an identity-scoped MCP stdio transport, and a metadata-driven approvals inbox — plus a large enforce-or-remove sweep that makes dead metadata loud. Backend and Console notes for 16.0.0 and 16.1.0. - [v9.0.0](/docs/releases/v9): Analytics single-form cutover (ADR-0021), honest chart taxonomy, canonical OS_* settings env vars, Google sign-in, and a smarter AI build experience in Console. - [Actions — permission-checked UI buttons](/docs/ui/actions): Declare buttons as metadata with server-side behavior — bind them to lists, records and navigation, permission-check both sides, and expose them to AI. - [App metadata — navigation and branding](/docs/ui/apps): Define application containers with navigation, branding, and access control - [Audience-based interfaces — one app, many](/docs/ui/audience-based-interfaces): Serve one dataset to different audiences: give end users a curated app and keep builder surfaces like Studio and raw tables out of their view by default. - [Create form vs edit form — the differences](/docs/ui/create-vs-edit-form): Derive a short create form and a full sectioned edit form from one flat field set, and hand-shape the create form only when its layout truly differs. - [Dashboard metadata — charts and KPIs](/docs/ui/dashboards): Build analytics dashboards with chart widgets, global filters, and auto-refresh - [Doc metadata — in-app documentation pages](/docs/ui/doc-pages): Ship package documentation as metadata — flat src/docs/*.md files compiled into the manifest and rendered in the console, ordered by a book navigation spine - [Field grouping and order in generated forms](/docs/ui/field-grouping-and-order): Where form sections really come from: field.group versus form sections versus table row grouping — three different groups over one flat field set. - [Forms — public and internal data entry](/docs/ui/forms): Render any FormView publicly at /f/:slug or internally at /forms/:name from one metadata source, with URL prefill, post-submit behavior and form actions. - [UI engine — render views from metadata](/docs/ui): Apps, views, dashboards, branding, and public forms — server-driven UI declared as metadata and rendered by the ObjectUI runtime. - [Page metadata — build custom app screens](/docs/ui/pages): Build custom pages with component-based layouts, variables, and event handling - [Print pages — printing a record to a PDF file](/docs/ui/print-pages): Declare print on a record page, then archive a record's PDF as an attachment with the print service, rendered in headless Chromium as the requesting user - [Collect data from the public with web forms](/docs/ui/public-data-collection): Collect web-to-lead, contact and intake submissions from anonymous visitors through one public form, without opening the underlying data to guests. - [React pages — escape hatch for custom UI](/docs/ui/react-pages): Write a page body as real React or as constrained JSX that is parsed but never executed — the two source-authoring tiers and how to choose between them. - [Report metadata — grouped, filtered data](/docs/ui/reports): Analytics reports as metadata — the four report shapes, dataset binding, drill-through, and how a report differs from a list view and a dashboard widget - [Setup app — administer a running runtime](/docs/ui/setup-app): The platform's built-in administration UI — what it is, what it shows, and how it is wired - [Translations — labels and UI text per locale](/docs/ui/translations): Labels and UI text as metadata — one bundle per locale, resolved per request, with CLI tooling to draft and to gate coverage in CI. - [View metadata — list, kanban, calendar](/docs/ui/views): Configure list views and form views — grid, kanban, calendar, gantt, and more - [IAuthService — the authentication contract](/docs/kernel/contracts/auth-service): Reference for the Auth Service contract — authentication, session verification, user resolution, and logout - [ICacheService — the cache service contract](/docs/kernel/contracts/cache-service): Reference for the Cache Service contract — key-value caching with TTL support - [IDataEngine — the storage driver contract](/docs/kernel/contracts/data-engine): Reference for the Data Engine contract — the core data persistence layer for CRUD operations, queries, aggregations, and transactions - [Service contracts — the kernel interfaces](/docs/kernel/contracts): Reference for all ObjectStack service contracts — TypeScript interfaces that define the API between the Kernel and plugins - [IMetadataService — the metadata contract](/docs/kernel/contracts/metadata-service): Reference for the Metadata Service contract — CRUD operations for object and field definitions, schema registry, and import/export - [IStorageService — the file storage contract](/docs/kernel/contracts/storage-service): Reference for the Storage Service contract — file upload, download, deletion, metadata, and signed URL generation - [services.audit — the audit log service API](/docs/kernel/runtime-services/audit-service): Write ingress for audit events that are not CRUD — today, auth session events and sign-in outcome events on an account. - [services.data — the record CRUD service API](/docs/kernel/runtime-services/data-service): CRUD runtime helper API for records (`query`, `get`, `find`, `create`, `update`, `delete`). - [services.email — the outbound mail API](/docs/kernel/runtime-services/email-service): Send email from a plugin or flow with services.email — send() and sendTemplate(), the result they return, and the typed error codes to handle. - [Runtime service examples — copyable code](/docs/kernel/runtime-services/examples): Practical examples for flow nodes, hooks, and plugin event subscriptions. - [Runtime service APIs — the services object](/docs/kernel/runtime-services): Reference entry for runtime `services.*` APIs used by flow nodes, hooks, and plugins. - [services.queue — the job queue service API](/docs/kernel/runtime-services/queue-service): Publish and subscribe to async job queues with services.queue — queue size, purge, and dead-letter listing, replay and cleanup for failed messages. - [services.settings — the settings API](/docs/kernel/runtime-services/settings-service): Namespace-based configuration service with OS env/global/tenant/user/default cascade. - [services.sharing — the record share API](/docs/kernel/runtime-services/sharing-service): Check and manage record-level sharing with services.sharing — read filters, canEdit and canDelete checks, and granting or revoking record shares. - [services.sms — the text message service API](/docs/kernel/runtime-services/sms-service): Outbound SMS delivery through pluggable providers (Aliyun SMS, Twilio). - [services.storage — the file store API](/docs/kernel/runtime-services/storage-service): File/object storage contract for upload/download and presigned URL workflows. - [Runtime service API versioning policy](/docs/kernel/runtime-services/versioning): Stability labels and how to track runtime service API breaking changes. - [ObjectQL — the data protocol specification](/docs/protocol/objectql): The database-agnostic data abstraction layer - Define once, run anywhere - [ObjectQL query syntax — the full specification](/docs/protocol/objectql/query-syntax): Database-agnostic query language with filtering, expand, aggregations, and sorting — aligned with the canonical @objectstack/spec QuerySchema - [ObjectQL schema definition specification](/docs/protocol/objectql/schema): The complete specification for defining objects, fields, and relationships in ObjectQL - [ObjectQL security and access control](/docs/protocol/objectql/security): Comprehensive security model - ACL, field-level security, row-level permissions, and data isolation - [State machine — record lifecycle spec](/docs/protocol/objectql/state-machine): Define strict business logic constraints prevents AI hallucinations by enforcing valid transitions. - [ObjectQL type system — the specification](/docs/protocol/objectql/types): Complete reference for ObjectQL field types - Scalars, relationships, computed fields, and advanced types - [Configuration resolution order and layers](/docs/protocol/kernel/config-resolution): How a setting resolves — the env → global → tenant → user → default cascade, its storage, and the SettingsService API - [Error handling — the response envelope](/docs/protocol/kernel/error-handling): Global error codes, response formats, and debugging strategies for ObjectStack APIs - [HTTP API protocol — routes and verbs](/docs/protocol/kernel/http-protocol): Standard REST mapping rules, CRUD operations, and request/response formats for ObjectStack - [Internationalization standard for metadata](/docs/protocol/kernel/i18n-standard): Translation bundles, locale resolution, pluralization, date/number formatting, and dynamic loading - [Kernel — the system protocol specification](/docs/protocol/kernel): The runtime orchestration layer - Lifecycle, plugins, configuration, and system services - [System lifecycle — from boot to ready state](/docs/protocol/kernel/lifecycle): Boot sequence, schema evolution and graceful shutdown as implemented today, plus the design intent for plugin installation, zero-downtime upgrades, and rollback - [Metadata service protocol specification](/docs/protocol/kernel/metadata-service): The unified engine for loading, saving, and managing configuration metadata across the platform - [Plugin package specification and manifest](/docs/protocol/kernel/plugin-spec): Manifest structure, directory layout, dependency management, and distribution format - [Real-time protocols — websockets, SSE](/docs/protocol/kernel/realtime-protocol): WebSocket subscriptions, Server-Sent Events, and event-driven communication in ObjectStack - [Action protocol — buttons as metadata](/docs/protocol/objectui/actions): The ObjectUI action protocol: declare buttons, menu items and triggers as metadata that run business logic, navigate, or call external integrations. - [UI as data — the core ObjectUI concept](/docs/protocol/objectui/concept): Why ObjectUI defines interfaces as data, not code: forms, dashboards and reports as declarative metadata that any renderer can draw consistently. - [ObjectUI — the UI protocol specification](/docs/protocol/objectui): ObjectUI, the server-driven UI protocol: define layouts, forms and dashboards as JSON or YAML metadata that renderers turn into working interfaces. - [Layout DSL — arrange fields declaratively](/docs/protocol/objectui/layout-dsl): Declarative layout description language for pages, sections, and responsive grids - [record:alert — banners on record pages](/docs/protocol/objectui/record-alert): Surface contextual notices (unverified email, expired trial, locked account…) at the top of any record page using the slotted page schema. - [Widget contract — build a custom widget](/docs/protocol/objectui/widget-contract): Build a custom ObjectUI field widget: the standard props, events and lifecycle it implements, how to register it, and accessibility and theme rules. - [Agent schema — AI Protocol property reference](/docs/references/ai/agent): Agent schemas of the ObjectStack AI Protocol: AIModelConfig, Agent and 3 more — each property with its type, default and a TypeScript example. - [Build Progress schema — AI Protocol reference](/docs/references/ai/build-progress): Build-progress PHASE vocabulary for the data-build-progress stream frame (the cloud build-progress card, ruling A). - [Conversation schema — AI Protocol reference](/docs/references/ai/conversation): Multi-turn AI conversations with token budget management. Enables context preservation, conversation history, and token optimization. - [Embedding schema — AI Protocol reference](/docs/references/ai/embedding): Embedding & Vector Store Primitives — Platform contract for configuring embedding models and vector stores. - [AI Protocol — complete schema reference](/docs/references/ai): The ObjectStack AI Protocol in 12 reference pages: every schema in @objectstack/spec with its properties, types, defaults and a TypeScript example. - [Knowledge Document — AI Protocol reference](/docs/references/ai/knowledge-document): Knowledge Document / Chunk / Hit — canonical shapes shared by every IKnowledgeAdapter implementation. - [Knowledge Source — AI Protocol reference](/docs/references/ai/knowledge-source): Knowledge Source — declarative metadata describing what to index and which adapter to use. - [Mcp schema — AI Protocol property reference](/docs/references/ai/mcp): Model Context Protocol (MCP) — Reference & Binding Primitives — MCP itself is an external protocol defined by Anthropic. - [Model Registry schema — AI Protocol reference](/docs/references/ai/model-registry): Centralized registry for managing AI models, prompt templates, and model versioning. - [Skill schema — AI Protocol property reference](/docs/references/ai/skill): Defines programmatic conditions under which a skill becomes active. Allows context-aware activation based on object type, user role, etc. - [Solution Blueprint — AI Protocol reference](/docs/references/ai/solution-blueprint): The structured-output target an AI agent emits for a high-level goal ("build me a project-management system") instead of transcribing a field list. - [Tool schema — AI Protocol property reference](/docs/references/ai/tool): Tool schemas of the ObjectStack AI Protocol: Tool — each property with its type, default and a TypeScript example. - [Usage schema — AI Protocol property reference](/docs/references/ai/usage): AI Usage Primitives — Platform contract for measuring AI consumption. Reference for AIUsageRecord, TokenUsage: every property with its type and default. - [Approval — Automation Protocol reference](/docs/references/automation/approval): Approval schemas of the ObjectStack Automation Protocol: ApprovalDecision and 5 more — each property with its type, default and a TypeScript example. - [Bpmn Interop — Automation Protocol reference](/docs/references/automation/bpmn-interop): Defines the specification for importing and exporting BPMN 2.0 XML process definitions. - [Builtin Node Config — Automation Protocol](/docs/references/automation/builtin-node-config): Config contracts for the remaining flat builtins — the CRUD quartet (get_record / create_record / update_record / delete_record), screen, map. - [Control Flow — Automation Protocol reference](/docs/references/automation/control-flow): Structured control-flow constructs — the native + AI-authored flow model: a loop container, a parallel block, and structured try/catch/retry. - [Execution — Automation Protocol reference](/docs/references/automation/execution): Defines schemas for execution logging, error tracking, checkpointing, concurrency control, and scheduled execution persistence. - [Flow Function — Automation Protocol reference](/docs/references/automation/flow-function): The contract for a named handler function a script node invokes — contributed by defineStack({ functions }) and resolved by name at execute time. - [Flow schema — Automation Protocol reference](/docs/references/automation/flow): Flow schemas of the ObjectStack Automation Protocol: Flow, FlowEdge, FlowNode and 3 more — each property with its type, default and a TypeScript example. - [Automation Protocol — schema reference](/docs/references/automation): The ObjectStack Automation Protocol in 13 reference pages: every schema in @objectstack/spec with its properties, types, defaults and a TypeScript example. - [Io Node Config — Automation Protocol reference](/docs/references/automation/io-node-config): Config contracts for the flat IO builtins — notify and http. Reference for HttpConfig, NotifyConfig: every property with its type and default. - [Node Executor — Automation Protocol reference](/docs/references/automation/node-executor): Defines the specification for node executor plugins, with a focus on the wait node executor that supports flow pause and external-event resume. - [Schedule Organization — Automation Protocol](/docs/references/automation/schedule-organization): The ACTING ORGANIZATION of a time-triggered flow — the one start-node key that says which organization a scheduled run executes as. - [Schemaless Node Config — Automation Protocol](/docs/references/automation/schemaless-node-config): Config contracts for the descriptor-schemaless builtins whose designer form lives ONLY in objectui's hand-written FLOW_NODE_CONFIG table — script. - [Time Relative Trigger — Automation Protocol](/docs/references/automation/time-relative-trigger): A declarative trigger for time-relative business rules — "act on records whose date field is coming up (or overdue) relative to today". - [Webhook schema — Automation Protocol reference](/docs/references/automation/webhook): Webhook schemas of the ObjectStack Automation Protocol: Webhook, WebhookTriggerType — each property with its type, default and a TypeScript example. - [Analytics schema — API Protocol reference](/docs/references/api/analytics): Defines the HTTP interface for the Semantic Layer. Provides endpoints for executing analytical queries and discovering metadata. - [Auth Endpoints schema — API Protocol reference](/docs/references/api/auth-endpoints): Defines the canonical HTTP endpoints for the authentication service. Based on better-auth v1.4.18 endpoint conventions. - [Auth schema — API Protocol property reference](/docs/references/api/auth): Defines the standard API contracts for Identity, Session Management, and Access Control. - [Automation Api schema — API Protocol reference](/docs/references/api/automation-api): Defines REST CRUD endpoint schemas for managing automation flows, triggering executions, and querying execution history. - [Batch schema — API Protocol property reference](/docs/references/api/batch): Batch Operations API — Provides efficient bulk data operations with transaction support. - [Contract schema — API Protocol reference](/docs/references/api/contract): Contract schemas of the ObjectStack API Protocol: ApiError, BaseResponse and 14 more — each property with its type, default and a TypeScript example. - [Discovery schema — API Protocol reference](/docs/references/api/discovery): Discovery schemas of the ObjectStack API Protocol: ApiRoutes, AuthFamilies and 10 more — each property with its type, default and a TypeScript example. - [Dispatcher schema — API Protocol reference](/docs/references/api/dispatcher): Defines how the ObjectStack HttpDispatcher routes incoming API requests to the correct kernel service based on URL prefix matching. - [Documentation schema — API Protocol reference](/docs/references/api/documentation): Provides schemas for generating interactive API documentation and testing interfaces similar to Swagger UI, Postman, etc. - [Endpoint schema — API Protocol reference](/docs/references/api/endpoint): Endpoint schemas of the ObjectStack API Protocol: ApiEndpoint, ApiMapping — each property with its type, default and a TypeScript example. - [Error Code Ledger — API Protocol reference](/docs/references/api/error-code-ledger): Error-Code Ledger. Reference for ErrorCode, ProvenanceWaiver, StandardSynonymWaiver: every property with its type and default. - [Errors schema — API Protocol reference](/docs/references/api/errors): Provides consistent, machine-readable error codes across the platform. - [Events schema — API Protocol reference](/docs/references/api/events): Events schemas of the ObjectStack API Protocol: BulkDataEvent, BulkDataEventType and 4 more — each property with its type, default and a TypeScript example. - [Export schema — API Protocol reference](/docs/references/api/export): Defines the export file formats, import validation, template-based field mapping, and the asynchronous import-job contracts. - [Http Cache schema — API Protocol reference](/docs/references/api/http-cache): HTTP Metadata Cache Protocol — Implements efficient HTTP-level metadata caching with ETag support. - [API Protocol — complete schema reference](/docs/references/api): The ObjectStack API Protocol in 32 reference pages: every schema in @objectstack/spec with its properties, types, defaults and a TypeScript example. - [Metadata schema — API Protocol reference](/docs/references/api/metadata): Defines the standard API contracts for the @objectstack/metadata package. - [Misc schema — API Protocol property reference](/docs/references/api/misc): Misc schemas of the ObjectStack API Protocol: ResolvedBook, ResolvedEntry, ResolvedGroup — each property with its type, default and a TypeScript example. - [Odata schema — API Protocol property reference](/docs/references/api/odata): Open Data Protocol (OData) v4 is an industry-standard protocol for building and consuming RESTful APIs. - [Package Api Assembled — API Protocol reference](/docs/references/api/package-api-assembled): The Package API declarations that carry the ASSEMBLED package body. Published from @objectstack/spec/api-assembled, never from @objectstack/spec/api. - [Package Api schema — API Protocol reference](/docs/references/api/package-api): Package API Protocol — REST API endpoint schemas for package lifecycle management. - [Package Lifecycle — API Protocol reference](/docs/references/api/package-lifecycle): Response payloads for the dispatcher-served packages.* lifecycle routes — the ADR-0067 commit timeline, the ADR-0033 draft batch doors. - [Plugin Rest Api — API Protocol reference](/docs/references/api/plugin-rest-api): Defines the schema for REST API plugins that register Discovery, Metadata, Data CRUD, Batch, and Permission routes with the HTTP Dispatcher. - [Protocol schema — API Protocol reference](/docs/references/api/protocol): Protocol schemas of the ObjectStack API Protocol: AiAgentCapabilities and 137 more — each property with its type, default and a TypeScript example. - [Query Adapter schema — API Protocol reference](/docs/references/api/query-adapter): Defines mapping rules between the internal unified query DSL (defined in data/query.zod.ts) and external API protocol formats: REST and OData. - [Realtime Shared — API Protocol reference](/docs/references/api/realtime-shared): Realtime Shared Protocol — Shared schemas and types for real-time communication protocols. - [Realtime schema — API Protocol reference](/docs/references/api/realtime): Realtime schemas of the ObjectStack API Protocol: RealtimeConfig, RealtimeEvent and 5 more — each property with its type, default and a TypeScript example. - [Rest Server schema — API Protocol reference](/docs/references/api/rest-server): Defines the REST API server configuration for automatically generating RESTful CRUD endpoints, metadata endpoints, and batch operations. - [Router schema — API Protocol reference](/docs/references/api/router): Router schemas of the ObjectStack API Protocol: ConflictResolutionStrategy and 4 more — each property with its type, default and a TypeScript example. - [Sortability schema — API Protocol reference](/docs/references/api/sortability): The per-column SORTABILITY projection served with object metadata — the one signal a grid reads to decide whether a column header offers a sort click. - [Storage schema — API Protocol reference](/docs/references/api/storage): Storage Service Protocol — Defines the API contract for client-side file operations. - [Versioning schema — API Protocol reference](/docs/references/api/versioning): Defines how API versions are negotiated between client and server. Supports multiple versioning strategies and deprecation lifecycle management. - [Websocket schema — API Protocol reference](/docs/references/api/websocket): Defines the schema for WebSocket-based real-time communication in ObjectStack. - [Eval User schema — Identity Protocol reference](/docs/references/identity/eval-user): EvalUser — the one user-context contract. Reference for EvalUser: every property with its type and default. - [Identity schema — Identity Protocol reference](/docs/references/identity/identity): Defines the standard user, account, and session data models for ObjectStack. These schemas represent "who is logged in" and their associated data. - [Identity Protocol — complete schema reference](/docs/references/identity): The ObjectStack Identity Protocol in 5 reference pages: every schema in @objectstack/spec with its properties, types, defaults and a TypeScript example. - [Organization — Identity Protocol reference](/docs/references/identity/organization): Defines the standard organization/workspace model for ObjectStack. Supports B2B SaaS scenarios where users belong to multiple teams/workspaces. - [Position schema — Identity Protocol reference](/docs/references/identity/position): Position schemas of the ObjectStack Identity Protocol: Position — each property with its type, default and a TypeScript example. - [Scim schema — Identity Protocol reference](/docs/references/identity/scim): System for Cross-domain Identity Management (SCIM) 2.0 specification implementation for ObjectStack. - [Connector — Integration Protocol reference](/docs/references/integration/connector): Defines the standard connector specification for external system integration. - [Integration Protocol — schema reference](/docs/references/integration): The ObjectStack Integration Protocol in 1 reference page: every schema in @objectstack/spec with its properties, types, defaults and a TypeScript example. - [Marketplace Protocol — schema reference](/docs/references/marketplace): The ObjectStack Marketplace Protocol in 4 reference pages: every schema in @objectstack/spec with its properties, types, defaults and a TypeScript example. - [Marketplace — Marketplace Protocol reference](/docs/references/marketplace/marketplace): Marketplace Protocol — Defines the core schemas for the plugin marketplace ecosystem. - [Package Version — Marketplace Protocol](/docs/references/marketplace/package-version): Package Version Protocol — A package version is an immutable release snapshot of a package. - [Package — Marketplace Protocol reference](/docs/references/marketplace/package): A package (also called a Solution in Power Platform, an Unlocked Package in Salesforce, or an Application in ServiceNow) is the first-class unit of… - [Template Manifest — Marketplace Protocol](/docs/references/marketplace/template-manifest): objectstack.manifest.json — on-disk descriptor for a template / package source tree. - [Analytics schema — Data Protocol reference](/docs/references/data/analytics): Defines the "Business Logic" for data analysis. Inspired by Cube.dev, LookML, and dbt MetricFlow. - [Context Tokens — Data Protocol reference](/docs/references/data/context-tokens): Context Tokens — the declarative placeholders that resolve against the caller's session (who am I, which org am I in) rather than the clock. - [Data Engine schema — Data Protocol reference](/docs/references/data/data-engine): Defines the standard interface for data persistence engines in ObjectStack. - [Datasource schema — Data Protocol reference](/docs/references/data/datasource): Datasource schemas of the ObjectStack Data Protocol: Datasource, DriverDefinition and 3 more — each property with its type, default and a TypeScript example. - [Date Macros schema — Data Protocol reference](/docs/references/data/date-macros): Date Macro Tokens — the declarative placeholders the UI substitutes into filter values before sending a query to the data engine. - [Driver Common schema — Data Protocol reference](/docs/references/data/driver-common): Shared building blocks for the per-driver datasource.config shapes. Reference for DriverSslToggle, SqlAutoMigrate: every property with its type and default. - [Driver Memory schema — Data Protocol reference](/docs/references/data/driver-memory): Defines the configuration options for the in-memory driver. Reference: objectql/packages/drivers/memory (Mingo-powered production-ready driver). - [Driver Mongo schema — Data Protocol reference](/docs/references/data/driver-mongo): Describes the MongoDB connection settings and capabilities. ENFORCED as of #4410. - [Driver Mysql schema — Data Protocol reference](/docs/references/data/driver-mysql): MySQL / MariaDB driver configuration — the config slot of a datasource whose driver resolves to mysql (mysql2). - [Driver Nosql schema — Data Protocol reference](/docs/references/data/driver-nosql): Driver Nosql schemas of the ObjectStack Data Protocol: AggregationPipeline and 13 more — each property with its type, default and a TypeScript example. - [Driver Postgres — Data Protocol reference](/docs/references/data/driver-postgres): PostgreSQL driver configuration — the config slot of a datasource whose driver resolves to postgres (pg / postgresql). - [Driver Sql schema — Data Protocol reference](/docs/references/data/driver-sql): Driver Sql schemas of the ObjectStack Data Protocol: DataTypeMapping, SQLDialect and 2 more — each property with its type, default and a TypeScript example. - [Driver Sqlite schema — Data Protocol reference](/docs/references/data/driver-sqlite): SQLite driver configuration — the config slot of a datasource whose driver resolves to sqlite or to sqlite-wasm (pure-JS). - [Driver Turso schema — Data Protocol reference](/docs/references/data/driver-turso): Turso / libSQL Driver Protocol. Reference for TursoConfig, TursoTransportMode: every property with its type and default. - [Driver schema — Data Protocol reference](/docs/references/data/driver): Driver schemas of the ObjectStack Data Protocol: DriverCapabilities, DriverConfig and 2 more — each property with its type, default and a TypeScript example. - [External Catalog — Data Protocol reference](/docs/references/data/external-catalog): ExternalCatalog — cached remote-schema snapshot for a federated datasource. - [Feed schema — Data Protocol reference](/docs/references/data/feed): Activity-timeline UI config enums, and the sys_activity.type built-in set. - [Field Value schema — Data Protocol reference](/docs/references/data/field-value): Field runtime VALUE-shape contract. Reference for Address, AddressValue, CalendarDateValue, ClockTimeValue and 7 more: every property with its type and default. - [Field schema — Data Protocol reference](/docs/references/data/field): Field schemas of the ObjectStack Data Protocol: CurrencyConfig, CurrencyValue, Field and 7 more — each property with its type, default and a TypeScript example. - [Filter schema — Data Protocol reference](/docs/references/data/filter): Unified Query DSL Specification. Reference for ComparisonOperator, EqualityOperator, FieldOperators and 9 more: every property with its type and default. - [Hook Body schema — Data Protocol reference](/docs/references/data/hook-body): Hook Body schemas of the ObjectStack Data Protocol: ExpressionBody, HookBody and 2 more — each property with its type, default and a TypeScript example. - [Hook schema — Data Protocol property reference](/docs/references/data/hook): Hook schemas of the ObjectStack Data Protocol: Hook, HookContext, HookEvent — each property with its type, default and a TypeScript example. - [Data Protocol — complete schema reference](/docs/references/data): The ObjectStack Data Protocol in 29 reference pages: every schema in @objectstack/spec with its properties, types, defaults and a TypeScript example. - [Mapping schema — Data Protocol reference](/docs/references/data/mapping): Mapping schemas of the ObjectStack Data Protocol: ImportFieldMapping, Mapping, TransformType — each property with its type, default and a TypeScript example. - [Object schema — Data Protocol reference](/docs/references/data/object): Object schemas of the ObjectStack Data Protocol: ApiMethod, ApiOperation, Index and 13 more — each property with its type, default and a TypeScript example. - [Picklist schema — Data Protocol reference](/docs/references/data/picklist): One list of select options that several fields on several objects use, instead of an options array copied into each field. - [Query schema — Data Protocol reference](/docs/references/data/query): QueryAST — Abstract Syntax Tree for data queries. Reference for AggregationFunction, AggregationNode and 6 more: every property with its type and default. - [Seed Loader schema — Data Protocol reference](/docs/references/data/seed-loader): Defines the schemas for metadata-driven seed data loading with automatic relationship resolution, dependency ordering, and multi-pass insertion. - [Seed schema — Data Protocol property reference](/docs/references/data/seed): Seed schemas of the ObjectStack Data Protocol: Seed, SeedMode — each property with its type, default and a TypeScript example. - [Validation schema — Data Protocol reference](/docs/references/data/validation): This module defines the validation schema protocol for ObjectStack, providing a comprehensive type-safe validation system similar to Salesforce's validation… - [QA Protocol — complete schema reference](/docs/references/qa): The ObjectStack QA Protocol in 1 reference page: every schema in @objectstack/spec with its properties, types, defaults and a TypeScript example. - [Testing schema — QA Protocol reference](/docs/references/qa/testing): Testing schemas of the ObjectStack QA Protocol: TestAction, TestActionType and 6 more — each property with its type, default and a TypeScript example. - [Explain schema — Security Protocol reference](/docs/references/security/explain): Access-explanation contract — explain(principal, object, operation) as a first-class API. - [Security Protocol — complete schema reference](/docs/references/security): The ObjectStack Security Protocol in 5 reference pages: every schema in @objectstack/spec with its properties, types, defaults and a TypeScript example. - [Misc schema — Security Protocol reference](/docs/references/security/misc): Misc schemas of the ObjectStack Security Protocol: CapabilityDeclaration and 4 more — each property with its type, default and a TypeScript example. - [Permission — Security Protocol reference](/docs/references/security/permission): Permission schemas of the ObjectStack Security Protocol: AdminScope and 5 more — each property with its type, default and a TypeScript example. - [Rls schema — Security Protocol reference](/docs/references/security/rls): Implements fine-grained record-level access control inspired by PostgreSQL RLS and Salesforce Criteria-Based Sharing Rules. - [Sharing schema — Security Protocol reference](/docs/references/security/sharing): Sharing schemas of the ObjectStack Security Protocol: CriteriaSharingRule, OWDModel and 4 more — each property with its type, default and a TypeScript example. - [Cli Extension — Kernel Protocol reference](/docs/references/kernel/cli-extension): Defines the contract for plugins that extend the ObjectStack CLI with custom commands. - [Cluster schema — Kernel Protocol reference](/docs/references/kernel/cluster): Defines the runtime semantics required for ObjectStack to behave correctly when more than one Node.js process is involved. - [Context schema — Kernel Protocol reference](/docs/references/kernel/context): Context schemas of the ObjectStack Kernel Protocol: KernelContext, RuntimeMode and 1 more — each property with its type, default and a TypeScript example. - [Dependency Resolution — Kernel Protocol](/docs/references/kernel/dependency-resolution): Defines schemas for runtime dependency resolution when installing, upgrading, or managing packages. - [Events Bus schema — Kernel Protocol reference](/docs/references/kernel/events-bus): Events Bus schemas of the ObjectStack Kernel Protocol: EventBusConfig — each property with its type, default and a TypeScript example. - [Events Core schema — Kernel Protocol reference](/docs/references/kernel/events-core): Events Core schemas of the ObjectStack Kernel Protocol: Event, EventMetadata and 2 more — each property with its type, default and a TypeScript example. - [Events Dlq schema — Kernel Protocol reference](/docs/references/kernel/events-dlq): Events Dlq schemas of the ObjectStack Kernel Protocol: DeadLetterQueueEntry, EventLogEntry — each property with its type, default and a TypeScript example. - [Events Handlers — Kernel Protocol reference](/docs/references/kernel/events-handlers): Events Handlers schemas of the ObjectStack Kernel Protocol: EventHandler and 2 more — each property with its type, default and a TypeScript example. - [Events Integrations — Kernel Protocol](/docs/references/kernel/events-integrations): Events Integrations schemas of the ObjectStack Kernel Protocol — each property with its type, default and a TypeScript example. - [Events Queue — Kernel Protocol reference](/docs/references/kernel/events-queue): Events Queue schemas of the ObjectStack Kernel Protocol: EventQueueConfig and 2 more — each property with its type, default and a TypeScript example. - [Execution Context — Kernel Protocol reference](/docs/references/kernel/execution-context): Execution Context schemas of the ObjectStack Kernel Protocol: AuthGateCode and 2 more — each property with its type, default and a TypeScript example. - [Kernel Protocol — complete schema reference](/docs/references/kernel): The ObjectStack Kernel Protocol in 30 reference pages: every schema in @objectstack/spec with its properties, types, defaults and a TypeScript example. - [Manifest schema — Kernel Protocol reference](/docs/references/kernel/manifest): Manifest schemas of the ObjectStack Kernel Protocol: InstallMode, Manifest and 6 more — each property with its type, default and a TypeScript example. - [Metadata Loader — Kernel Protocol reference](/docs/references/kernel/metadata-loader): How the runtime MetadataManager is wired: which datasource backs sys_metadata, what to fall back to when that datasource is unreachable. - [Metadata Plugin — Kernel Protocol reference](/docs/references/kernel/metadata-plugin): Defines the specification for the Metadata Plugin — the central authority responsible for managing ALL metadata across the ObjectStack platform. - [Metadata Protection — Kernel Protocol](/docs/references/kernel/metadata-protection): Phase 1 introduces the item-level lock (_lock) and the provenance / package tags that drive it. - [Package Artifact — Kernel Protocol reference](/docs/references/kernel/package-artifact): Defines the standard structure of a package artifact (.tgz) produced by the build pipeline. - [Package Registry — Kernel Protocol reference](/docs/references/kernel/package-registry): Defines the runtime state and lifecycle operations for installed packages. - [Package Upgrade — Kernel Protocol reference](/docs/references/kernel/package-upgrade): Defines the complete lifecycle for upgrading installed packages, including pre-upgrade analysis, snapshot/backup, execution, validation. - [Plugin Capability — Kernel Protocol reference](/docs/references/kernel/plugin-capability): Defines the standard way plugins declare their capabilities, implementations, and conformance levels to ensure interoperability across vendors. - [Plugin Lifecycle Advanced — Kernel Protocol](/docs/references/kernel/plugin-lifecycle-advanced): Declares the INPUT contracts of the host-driven lifecycle classes exported by @objectstack/core — PluginHealthMonitor. - [Plugin Loading — Kernel Protocol reference](/docs/references/kernel/plugin-loading): What remains of this module is the observational half: the lifecycle event a loader would emit. - [Plugin Registry — Kernel Protocol reference](/docs/references/kernel/plugin-registry): Plugin Registry Protocol — Defines the schema for the plugin discovery and registry system. - [Plugin Security Advanced — Kernel Protocol](/docs/references/kernel/plugin-security-advanced): Defines comprehensive security mechanisms for plugin isolation, permission management, and threat protection in the ObjectStack ecosystem. - [Plugin Security — Kernel Protocol reference](/docs/references/kernel/plugin-security): Provides comprehensive security scanning, vulnerability management, and dependency resolution for the ObjectStack plugin ecosystem. - [Plugin Structure — Kernel Protocol reference](/docs/references/kernel/plugin-structure): Formal Zod definitions for the Plugin Directory Structure and File Naming conventions. This can be used by the CLI or IDE extensions to lint project structure. - [Plugin Validator — Kernel Protocol reference](/docs/references/kernel/plugin-validator): Zod schemas for plugin validation data structures. These schemas align with the IPluginValidator contract interface. - [Plugin Versioning — Kernel Protocol reference](/docs/references/kernel/plugin-versioning): Defines comprehensive versioning, compatibility checking, and dependency resolution mechanisms for the plugin ecosystem. - [Plugin schema — Kernel Protocol reference](/docs/references/kernel/plugin): Plugin schemas of the ObjectStack Kernel Protocol: Plugin — each property with its type, default and a TypeScript example. - [Service Registry — Kernel Protocol reference](/docs/references/kernel/service-registry): Zod schemas for service registry data structures. These schemas align with the IServiceRegistry contract interface. - [Startup Orchestrator — Kernel Protocol](/docs/references/kernel/startup-orchestrator): One schema, describing the one startup datum the kernel actually produces. - [Duration schema — Shared Protocol reference](/docs/references/shared/duration): Duration schemas of the ObjectStack Shared Protocol: DurationMs, DurationSeconds — each property with its type, default and a TypeScript example. - [Enums schema — Shared Protocol reference](/docs/references/shared/enums): Enums schemas of the ObjectStack Shared Protocol: IsolationLevelEnum and 3 more — each property with its type, default and a TypeScript example. - [Epoch schema — Shared Protocol reference](/docs/references/shared/epoch): Epoch schemas of the ObjectStack Shared Protocol: EpochMs — each property with its type, default and a TypeScript example. - [Expression schema — Shared Protocol reference](/docs/references/shared/expression): Canonical wire format for all "expression"-shaped metadata across ObjectStack. - [Http schema — Shared Protocol reference](/docs/references/shared/http): Common HTTP-related schemas used across API and System protocols. These schemas ensure consistency across different parts of the stack. - [Identifiers schema — Shared Protocol reference](/docs/references/shared/identifiers): Identifiers schemas of the ObjectStack Shared Protocol: MetadataItemName and 2 more — each property with its type, default and a TypeScript example. - [Shared Protocol — complete schema reference](/docs/references/shared): The ObjectStack Shared Protocol in 10 reference pages: every schema in @objectstack/spec with its properties, types, defaults and a TypeScript example. - [Mapping schema — Shared Protocol reference](/docs/references/shared/mapping): This module provides the canonical field mapping schema used across ObjectStack for data synchronization. - [Metadata Types — Shared Protocol reference](/docs/references/shared/metadata-types): Metadata Types schemas of the ObjectStack Shared Protocol: BaseMetadataRecord, MetadataFormat — each property with its type, default and a TypeScript example. - [Protection schema — Shared Protocol reference](/docs/references/shared/protection): Public, type-safe author surface for package authors to declare how much of one of their metadata items the runtime. - [Value Domain — Shared Protocol reference](/docs/references/shared/value-domain): Standard value domains: one closed vocabulary and one membership predicate for settings and fields. - [Flow Builder — Studio Protocol reference](/docs/references/studio/flow-builder): Studio Flow Builder Protocol. Reference for FlowBuilderConfig, FlowCanvasEdge, FlowCanvasEdgeStyle and 5 more: every property with its type and default. - [Studio Protocol — complete schema reference](/docs/references/studio): The ObjectStack Studio Protocol in 3 reference pages: every schema in @objectstack/spec with its properties, types, defaults and a TypeScript example. - [Object Designer — Studio Protocol reference](/docs/references/studio/object-designer): Defines the specification for the Object Designer experience within ObjectStack Studio. - [Plugin schema — Studio Protocol reference](/docs/references/studio/plugin): Defines the specification for Studio plugins — a VS Code-like extension model that allows each metadata type to contribute custom viewers, designers. - [17.0.0](/docs/releases/v17/17-0): The v17 major cut, published 2026-08-14: files become owned sys_file records with a governed download path, bulk export becomes its own privilege, the SDK drops 21 methods no server answered, and a datasource that cannot connect fails the boot. - [17.1.0](/docs/releases/v17/17-1): Release notes and upgrade checklist for 17.1.0 of the v17 line. - [17.2.0](/docs/releases/v17/17-2): Release notes and upgrade checklist for 17.2.0 of the v17 line. - [17.3.0](/docs/releases/v17/17-3): Release notes and upgrade checklist for 17.3.0 of the v17 line. - [17.4.0](/docs/releases/v17/17-4): Release notes and upgrade checklist for 17.4.0 of the v17 line. - [17.5.0](/docs/releases/v17/17-5): Release notes and upgrade checklist for 17.5.0 of the v17 line. - [17.6.0](/docs/releases/v17/17-6): Release notes and upgrade checklist for 17.6.0 of the v17 line. - [17.7.0](/docs/releases/v17/17-7): Release notes and upgrade checklist for 17.7.0 of the v17 line. - [v17](/docs/releases/v17): The v17 line — a truth-telling release. Files become owned records, the export privilege stops riding on read, the SDK is reconciled against the routes the server mounts, and a boot that cannot reach its datasource stops pretending it can. Per-release notes for 17.0.0 through 17.7.0. - [Action Params schema — UI Protocol reference](/docs/references/ui/action-params): The action DISPATCH contract: what the platform validates on the way in, and what it hands the handler on the way out. - [Action schema — UI Protocol property reference](/docs/references/ui/action): Action schemas of the ObjectStack UI Protocol: Action, ActionAi, ActionLocation and 3 more — each property with its type, default and a TypeScript example. - [App schema — UI Protocol property reference](/docs/references/ui/app): App schemas of the ObjectStack UI Protocol: ActionNavItem, App, AppBranding and 12 more — each property with its type, default and a TypeScript example. - [Bulk Action schema — UI Protocol reference](/docs/references/ui/bulk-action): The vocabulary of a list view's bulkActionDefs — one entry per button in the multi-select toolbar. - [Chart schema — UI Protocol property reference](/docs/references/ui/chart): Shared by Dashboard and Report widgets. Provides a comprehensive set of chart types for data visualization. - [Component schema — UI Protocol reference](/docs/references/ui/component): Component schemas of the ObjectStack UI Protocol: ActionButtonProps and 43 more — each property with its type, default and a TypeScript example. - [Dashboard schema — UI Protocol reference](/docs/references/ui/dashboard): Dashboard schemas of the ObjectStack UI Protocol: Dashboard, DashboardHeader and 8 more — each property with its type, default and a TypeScript example. - [Dataset schema — UI Protocol reference](/docs/references/ui/dataset): Analytics Dataset — the one semantic layer. Reference for Dataset, DatasetDimension, DatasetMeasure, DerivedMeasureOp: every property with its type and default. - [Expression Bindable Text Keys — UI Protocol](/docs/references/ui/expression-bindable-text-keys): Expression-bindable text keys — the CLOSED vocabulary of top-level text keys a SchemaRenderer evaluation memo evaluates. - [I18n schema — UI Protocol property reference](/docs/references/ui/i18n): Display-label and ARIA-label primitives shared by every ui/ shape. Reference for AriaProps, I18nLabel and 1 more: every property with its type and default. - [UI Protocol — complete schema reference](/docs/references/ui): The ObjectStack UI Protocol in 16 reference pages: every schema in @objectstack/spec with its properties, types, defaults and a TypeScript example. - [Notification schema — UI Protocol reference](/docs/references/ui/notification): Notification schemas of the ObjectStack UI Protocol: NotificationPosition and 2 more — each property with its type, default and a TypeScript example. - [Page schema — UI Protocol property reference](/docs/references/ui/page): Page schemas of the ObjectStack UI Protocol: ElementApiDataSource and 11 more — each property with its type, default and a TypeScript example. - [Report schema — UI Protocol property reference](/docs/references/ui/report): Report schemas of the ObjectStack UI Protocol: JoinedReportBlock, Report and 3 more — each property with its type, default and a TypeScript example. - [Responsive schema — UI Protocol reference](/docs/references/ui/responsive): Responsive schemas of the ObjectStack UI Protocol: ResponsiveStyles, StyleMap — each property with its type, default and a TypeScript example. - [Sharing schema — UI Protocol reference](/docs/references/ui/sharing): Sharing & Embedding Protocol — Public-link sharing of a form view. Reference for SharingConfig: every property with its type and default. - [View schema — UI Protocol property reference](/docs/references/ui/view): View protocol schemas — the view metadata type and its three persisted body spellings. - [App Install schema — System Protocol reference](/docs/references/system/app-install): Defines the schemas for installing marketplace apps into tenant databases. - [Auth Config schema — System Protocol reference](/docs/references/system/auth-config): Auth Config schemas of the ObjectStack System Protocol: AdvancedAuthConfig and 10 more — each property with its type, default and a TypeScript example. - [Book schema — System Protocol reference](/docs/references/system/book): Package Documentation Navigation — the book element. A book is the spine of a table of contents: an ordered set of groups (sections) plus identity and access. - [Cache schema — System Protocol reference](/docs/references/system/cache): Multi-tier caching strategy for application data. Supports Memory, Redis, Memcached, and CDN. - [Collaboration — System Protocol reference](/docs/references/system/collaboration): Real-Time Collaboration Protocol — Defines schemas for real-time collaborative editing in ObjectStack. - [Core Services — System Protocol reference](/docs/references/system/core-services): Defines the standard built-in services that constitute the ObjectStack Kernel. - [Deploy Bundle — System Protocol reference](/docs/references/system/deploy-bundle): Defines the schemas for metadata-driven deployment: Schema Push → Zod Validate → Diff → DDL Sync → Register. - [Dev Login schema — System Protocol reference](/docs/references/system/dev-login): Dev Login schemas of the ObjectStack System Protocol: DevLogin — each property with its type, default and a TypeScript example. - [Disaster Recovery — System Protocol reference](/docs/references/system/disaster-recovery): Disaster Recovery schemas of the ObjectStack System Protocol: BackupConfig and 7 more — each property with its type, default and a TypeScript example. - [Doc schema — System Protocol reference](/docs/references/system/doc): One doc item per Markdown file under the package's flat src/docs/ directory (no subdirectories — flatness is the contract that keeps cross-references stable). - [Email Config — System Protocol reference](/docs/references/system/email-config): Operator-facing configuration that selects the outbound email transport for the EmailServicePlugin. - [Email Template — System Protocol reference](/docs/references/system/email-template): Declarative template definition consumed by IEmailService.sendTemplate() to render outbound mail. - [Encryption schema — System Protocol reference](/docs/references/system/encryption): Encryption schemas of the ObjectStack System Protocol: EncryptionAlgorithm and 4 more — each property with its type, default and a TypeScript example. - [Environment Artifact — System Protocol](/docs/references/system/environment-artifact): THE single declaration of the environment artifact envelope. @objectstack/spec/system is now its ONLY entry point. - [Fate Supplement — System Protocol reference](/docs/references/system/fate-supplement): Fate Supplement schemas of the ObjectStack System Protocol — each property with its type, default and a TypeScript example. - [Http Server schema — System Protocol reference](/docs/references/system/http-server): Route-registration metadata, middleware declaration and the server-side lifecycle/status vocabulary for HTTP server implementations. - [System Protocol — complete schema reference](/docs/references/system): The ObjectStack System Protocol in 36 reference pages: every schema in @objectstack/spec with its properties, types, defaults and a TypeScript example. - [Job schema — System Protocol reference](/docs/references/system/job): Job schemas of the ObjectStack System Protocol: CronSchedule, IntervalSchedule, Job and 5 more — each property with its type, default and a TypeScript example. - [License schema — System Protocol reference](/docs/references/system/license): License schemas of the ObjectStack System Protocol: Feature, License, LicenseMetricType, Plan — each property with its type, default and a TypeScript example. - [Logging schema — System Protocol reference](/docs/references/system/logging): Logging Protocol - Comprehensive Observability Logging. Reference for ConsoleDestinationConfig and 13 more: every property with its type and default. - [Metadata Persistence — System Protocol](/docs/references/system/metadata-persistence): Metadata Persistence schemas of the ObjectStack System Protocol — each property with its type, default and a TypeScript example. - [Metrics schema — System Protocol reference](/docs/references/system/metrics): Metrics Protocol - Performance and Operational Metrics. Reference for HistogramBucketConfig and 13 more: every property with its type and default. - [Migration schema — System Protocol reference](/docs/references/system/migration): Migration protocol — the two kinds of migration, kept apart on purpose. - [Notification — System Protocol reference](/docs/references/system/notification): Notification schemas of the ObjectStack System Protocol: NotificationChannel — each property with its type, default and a TypeScript example. - [Object Storage — System Protocol reference](/docs/references/system/object-storage): Object Storage Protocol. Reference for AccessControlConfig, BucketConfig, FileMetadata, LifecycleAction and 11 more: every property with its type and default. - [Registry Config — System Protocol reference](/docs/references/system/registry-config): Defines the configuration for the ObjectStack Registry Service. Includes federation, synchronization, and storage settings. - [Search Engine — System Protocol reference](/docs/references/system/search-engine): Search Engine schemas of the ObjectStack System Protocol: AnalyzerConfig and 4 more — each property with its type, default and a TypeScript example. - [Security Context — System Protocol reference](/docs/references/system/security-context): Provides a central governance layer that correlates and unifies the four independent security subsystems it was designed against. - [Settings Client — System Protocol reference](/docs/references/system/settings-client): SettingsClient — reactive consumer contract for runtime settings. Reference for SettingsChangeEvent: every property with its type and default. - [Settings Manifest — System Protocol reference](/docs/references/system/settings-manifest): Declarative description of a single namespace of platform settings (e.g. mail, branding, feature_flags). - [Sms Config schema — System Protocol reference](/docs/references/system/sms-config): SMS Service Configuration — the stack definition's sms block. There was no SMS configuration schema in the spec before this file. - [Stack Server — System Protocol reference](/docs/references/system/stack-server): defineStack({ server }) — the authorable server-facing configuration. Reference for ServerRateLimitConfig and 2 more: every property with its type and default. - [Supplier Security — System Protocol reference](/docs/references/system/supplier-security): Defines schemas for supplier information security management including risk assessment, security requirements, monitoring, and change control. - [Tenant schema — System Protocol reference](/docs/references/system/tenant): Tenant Schema (Multi-Tenant Architecture) — Defines the tenant/tenancy model for ObjectStack SaaS deployments. - [Tracing schema — System Protocol reference](/docs/references/system/tracing): Tracing Protocol - Distributed Tracing & Observability. Reference for OpenTelemetryCompatibility and 17 more: every property with its type and default. - [Translation schema — System Protocol reference](/docs/references/system/translation): Translation schemas of the ObjectStack System Protocol — each property with its type, default and a TypeScript example. - [Worker schema — System Protocol reference](/docs/references/system/worker): Background task processing system with queues, priorities, and retry logic. - [18.0.0](/docs/releases/v18/18-0): The v18 GA release, published 2026-10-20: organization ownership is total (ADR-0131), so a database 17.x created takes the ownership ceremony before 18.0.0 serves it; protocol 18; a flow reads one expression dialect per slot; the security catalog is metadata; API keys expire; the CORS default admits no cross-origin caller. With its upgrade checklist, walked from 17.7.0. - [v18](/docs/releases/v18): The v18 line and its GA release, 18.0.0, which closes the `18.0.0-next.N` prerelease train and publishes to npm's `latest` tag. It carries ADR-0131 (organization ownership is total, with no NULL `organization_id`) and landed its breaking changes in stages, each with its own migration.