Implementation Status Matrix
Detailed status of protocol implementations across ObjectStack packages
Implementation Status Matrix
This document provides a comprehensive overview of which protocols from @objectstack/spec have been implemented in the ObjectStack packages.
Last Updated: June 2026
This matrix is generated from actual codebase analysis and represents the current implementation status.
Status Legend
| Symbol | Status | Description |
|---|---|---|
| β | Fully Implemented | Production-ready implementation with all core features |
| β οΈ | Partially Implemented | Basic implementation, missing advanced features |
| π§ | In Progress | Currently being developed |
| π | Planned | Scheduled for future implementation |
| β | Not Implemented | Protocol defined but not yet implemented |
Core Infrastructure (Kernel)
Runtime & Kernel
| Protocol | @objectstack/core | @objectstack/runtime | @objectstack/objectql | Status |
|---|---|---|---|---|
| Manifest | β | β | β | β Full |
| Context | β | β | β | β Full |
| Plugin | β | β | β | β Full |
| Plugin Lifecycle | β | β | β | β Full |
| Plugin Capability | β | β | β | β Full |
| Service Registry | β | β | β | β Full |
| Startup Orchestrator | β | β | β | β Full |
| Events | β | β | β | β Full |
Notes:
- Core package provides complete microkernel implementation
- Plugin system supports lifecycle hooks, dependency resolution, and service injection
- Event bus enables inter-plugin communication
- ObjectQL serves as the example kernel β a reference implementation that will be modularized into plugins
Data Infrastructure
| Protocol | @objectstack/objectql | @objectstack/runtime | @objectstack/driver-memory | Status |
|---|---|---|---|---|
| Driver | β | β | β οΈ | β Interface |
| Datasource | β | β | β | β Full |
| Data Engine | β | β | β | β Full |
| Query | β | β οΈ | β οΈ | β οΈ Partial |
| Filter | β | β οΈ | β οΈ | β οΈ Partial |
Notes:
- ObjectQL implements complete IDataEngine interface
- Memory driver is reference implementation (basic CRUD only)
- Advanced query features (aggregations, window functions) require production drivers
- Memory driver supports aggregations (groupBy, count, sum, avg, min, max)
Metadata Framework
Runtime Boundary β runtime metadata is file/artifact-backed and read-only at boot. Database-backed metadata persistence exists for explicitly configured control-plane services, not as an automatic runtime project-DB bridge.
- Metadata API (list types, list items, get item) is fully functional
- Metadata is loaded from config files or
dist/objectstack.jsonat startup and held in memory MetadataPluginno longer registerssys_metadata/sys_metadata_historyinto the runtime or auto-bridges ObjectQL toDatabaseLoader- Future: production Artifact API loader and durable local artifact cache
System Services
| Protocol | Implementation Package | Status | Notes |
|---|---|---|---|
| Logging | @objectstack/core | β | Cross-platform logger (browser + server) |
| API Registry | @objectstack/core | β | Central endpoint registry |
| Metrics | @objectstack/observability | β | Metrics exporters shipped (metrics-exporters.ts) |
| Tracing | @objectstack/observability | β οΈ | Error/exporter pipeline shipped (error-exporters.ts); full distributed tracing in progress |
| Audit | @objectstack/plugin-audit | β | Audit writers + audit objects shipped |
| Job | @objectstack/service-job | β | Job service with cron/db/interval adapters |
| Cache | β οΈ | β οΈ | HTTP caching implemented, in-memory cache partial |
| Translation | @objectstack/service-i18n | β | i18n/translation service with file adapter |
| Feature Flags | β | π | Planned |
| Encryption | β | π | Planned |
| Compliance | β | π | Planned |
| Masking | β | π | Planned |
| Notification | @objectstack/service-messaging, @objectstack/service-feed | π‘ | Framework pipeline shipped; objectui bell cut-over remains |
| Change Management | β | π | Planned |
| Collaboration | β | π | Planned |
Data Layer (ObjectQL)
Core Data Modeling
| Protocol | @objectstack/spec | @objectstack/objectql | @objectstack/client | Status |
|---|---|---|---|---|
| Field | β | β | β | β Full |
| Object | β | β | β | β Full |
| Validation | β | β οΈ | β | β οΈ Partial |
| Hook | β | β | β | β Full |
| Dataset | β | β | β | β Not Impl |
| Mapping | β | β | β | β Not Impl |
| Document | β | β | β | β Not Impl |
| External Lookup | β | β | β | β Not Impl |
Field Type Support:
| Field Type | Implementation | Notes |
|---|---|---|
| text, textarea, email, url, phone | β | Full support |
| number, currency, percent | β | Full support |
| boolean, checkbox | β | Full support |
| date, datetime, time | β | Full support |
| select, multiselect | β | Full support |
| lookup, master_detail | β | Full support in spec, partial in memory driver |
| formula | β | CEL-backed formula fields are implemented |
| summary | β | Server-side rollups for count/sum/min/max/avg on child records |
| json, array | β | Full support |
| file, image | π | Protocol defined, not implemented |
Query Engine
| Protocol | @objectstack/objectql | @objectstack/client | @objectstack/driver-memory | Status |
|---|---|---|---|---|
| Query AST | β | β | β οΈ | β Full |
| Query Builder | β | β | β | β Client |
| Filter Operators | β | β | β οΈ | β οΈ Partial |
| Aggregations | β | β | β | β Full |
| Joins | β | β | β | β οΈ Spec only |
| Sorting | β | β | β | β οΈ Spec only |
| Pagination | β | β | β | β Full |
| Window Functions | β | β | β | β Spec only |
| Subqueries | β | β | β | β Spec only |
Notes:
- Full query protocol is defined and implemented in ObjectQL engine
- Actual query capability depends on driver implementation
- Memory driver supports basic queries only
- Client SDK provides query builder utilities
API Layer (Transport)
HTTP & REST
| Protocol | @objectstack/rest | @objectstack/runtime | @objectstack/plugin-hono-server | @objectstack/client | Status |
|---|---|---|---|---|---|
| REST Server | β | β (re-export) | β | β | β Full |
| HTTP Server | β | β | β | β | β Full |
| Endpoint | β | β | β | β | β Full |
| Router | β | β | β | β | β Full |
| Discovery | β | β | β | β | β Full |
| Contract | β | β | β | β | β οΈ Partial |
| Protocol | β | β | β | β | β Full |
| Errors | β | β | β | β | β Full |
| HTTP Cache | β | β | β | β | β Full |
| Batch | β | β | β | β | β Full |
The data (/data), metadata (/meta), and batch endpoints are implemented in @objectstack/rest (rest-server.ts); @objectstack/runtime re-exports RestServer from that package and provides the underlying HTTP server/dispatcher.
REST Endpoints Implemented:
| Endpoint Pattern | Method | Purpose | Status |
|---|---|---|---|
/api/v1 | GET | API discovery | β |
/meta | GET | List metadata types | β |
/meta/{type} | GET | List items of type | β |
/meta/{type}/{name} | GET | Get specific metadata item | β |
/data/{object} | GET | List records | β |
/data/{object}/{id} | GET | Get single record | β |
/data/{object} | POST | Create record | β |
/data/{object}/{id} | PATCH | Update record | β |
/data/{object}/{id} | DELETE | Delete record | β |
/data/{object}/createMany | POST | Batch create | β |
/data/{object}/updateMany | POST | Batch update | β |
/data/{object}/deleteMany | POST | Batch delete | β |
/data/{object}/{id}/clone | POST | Clone a record (gated by enable.clone) | β |
/data/{object}/batch | POST | Atomic batch operations | β |
Advanced Protocols
| Protocol | Implementation | Status | Notes |
|---|---|---|---|
| Analytics | β | β | ObjectQL aggregation plus @objectstack/service-analytics dataset execution; analytics read scope auto-bridges to security.getReadFilter for RLS-aware dashboards/reports |
| OData | β | π | Protocol defined, not implemented |
| GraphQL | β | π | Protocol defined, not implemented |
| Realtime | @objectstack/service-realtime | β οΈ | Realtime service with in-memory adapter shipped; production adapters in progress |
| WebSocket | @objectstack/service-realtime | β οΈ | Transport provided via the realtime service in-memory adapter |
UI Layer (ObjectUI)
View System
| Protocol | @objectstack/spec | Implementation | Status |
|---|---|---|---|
| View | β | π‘ | π‘ Studio/ObjectUI renders authored metadata surfaces; general-purpose renderer coverage is still incomplete |
| ListView | β | π‘ | π‘ ObjectUI grid/list surfaces support per-view persistence, filters, row actions, density, galleries, and permission-aware affordances; full protocol parity is ongoing |
| FormView | β | π‘ | π‘ ObjectUI forms support live field rules (visibleWhen / readonlyWhen / requiredWhen), inline-grid row rules, and server-aligned required enforcement |
| Page | β | π‘ | π‘ Record-page authoring, page create flows, block canvas editing, slotted record pages, and selected page blocks are implemented in ObjectUI; full component catalogue remains in progress |
| App | β | π‘ | π‘ Navigation metadata is consumed by the console/app shell; full renderer parity remains in progress |
| Dashboard | β | π‘ | π‘ ObjectUI renders metric/chart/list/pivot/funnel/table widgets, drill-downs (group β records β record chain), type-aware cells, and dataset-bound widgets; Studio can author per-widget dataset bindings (dataset / dimensions / values) |
| Report | β | π‘ | π‘ ObjectUI renders spec-native tabular/summary/matrix/joined reports, chart/KPI blocks, drill-downs, and dataset-bound reports |
| Action | β | π‘ | π‘ ObjectUI supports row/global/header actions, action modal transport, parameter collection, visibility CEL, and nested action runners |
| Component | β | π‘ | π‘ Selected page/record components render in ObjectUI (record:alert, related lists, highlights, page blocks); catalogue parity remains in progress |
| Theme | β | β | β Spec only |
| Widget | β | π‘ | π‘ Dashboard/report/list/form widgets render in ObjectUI; custom widget manifest/runtime parity remains in progress |
| Chart | β | π‘ | π‘ Recharts-backed dashboard/report charts cover bar/line/pie/area/scatter/funnel/gauge/treemap/sankey with formatting and field-coverage guards |
Notes:
- All UI protocols are fully defined in spec
- Metadata API can retrieve UI definitions (views, apps, pages, dashboards, reports, actions)
- Active Studio/ObjectUI source lives in the sibling
../objectuirepo and is bundled intopackages/consolevia the objectui refresh workflow - Metadata-admin curated forms now merge server-only fields back into the save payload, so a Studio form that exposes only part of a metadata type should not strip newer protocol properties
- The 2026-05-08 β 2026-06-08 ObjectUI scan covered 910 non-merge frontend commits. The largest functional clusters were metadata-admin/Studio, master-detail forms, reports/dashboards, record detail/related lists, action transport, flow designer, developer/API pages, AI draft publishing, and i18n.
- React SDK provides data hooks; the cross-surface renderer is still being completed in ObjectUI rather than in this backend repo
Automation Layer
Plugin-Provided Service β The kernel does NOT include an automation engine. Flow, workflow, and approval services are provided by plugins β the flow engine ships in @objectstack/service-automation, with approval nodes in @objectstack/plugin-approvals.
| Protocol | @objectstack/spec | Kernel | Plugin Required | Status |
|---|---|---|---|---|
| Flow | β | β | β | β
@objectstack/service-automation |
| Workflow | β | β | β | β
@objectstack/service-automation |
| Approval | β | β | β | β
@objectstack/plugin-approvals |
| Webhook | β | β | β | β
@objectstack/plugin-webhooks |
| ETL | β | β | β | π Plugin |
| Sync | β | β | β | π Plugin |
| Trigger Registry | β | β | β | β
plugin-trigger-record-change / plugin-trigger-schedule |
Notes:
- Hook system is implemented in ObjectQL (beforeFind, afterInsert, etc.) β this is data-layer eventing, not workflow automation
- The flow/workflow engine ships in
@objectstack/service-automation(engine.ts, builtin nodes,plugin.ts); approvals, webhooks, and triggers ship asplugin-approvals,plugin-webhooks,plugin-trigger-record-change, andplugin-trigger-schedule - ETL and Sync protocols are defined but not yet implemented as plugins
- Discovery API reports automation service as
unavailableuntil a plugin is registered
Security Layer
Plugin-Provided Service β The kernel does NOT handle authentication or authorization. Security services must be provided by plugins (e.g., @objectstack/plugin-auth). The Discovery API reports auth as unavailable until a plugin is registered.
Auth Service (plugin-auth)
The auth service in CoreServiceName covers both authentication (identity) and authorization (permissions). There is no separate permission service β it is part of auth.
| Protocol | Area | @objectstack/spec | Kernel | Plugin Required | Status |
|---|---|---|---|---|---|
| Identity | Authentication | β | β | β | π Plugin |
| Auth Config | Authentication | β | β | β | π Plugin |
| Role | Authentication | β | β | β | π Plugin |
| Organization | Authentication | β | β | β | π Plugin |
| Policy | Authentication | β | β | β | π Plugin |
| SCIM | Authentication | β | β | β | π Plugin |
| Permission | Authorization | β | β Phase-1 | β | β
plugin-security |
| Sharing | Authorization | β | β | β | π Plugin |
| RLS | Authorization | β | β Phase-1 (tenant + owner) | β | β
plugin-security |
| Territory | Authorization | β | β | β | π Plugin |
Notes:
- All security protocols (identity + permission) are delivered by a single
authplugin β matchingCoreServiceName - Client SDK supports bearer token header β but token validation requires the auth plugin
- Auth route (
/auth/*) only appears in Discovery when the auth plugin is registered - Fine-grained authorization (RLS, sharing, territory) is internal to the auth plugin
- Phase-1 RBAC enforcement is live end-to-end: REST β ObjectQL β SecurityPlugin middleware now receives a populated
ExecutionContext(userId, tenantId, positions, permissions). Defaultmember_defaultpermission set ships a wildcard RLS ruleorganization_id == current_user.organization_idplus per-object overridessys_organization_self(id == current_user.organization_id) andsys_user_self(id == current_user.id) for the global tables that lack anorganization_idcolumn. The earliertenantFieldindirection (RLS expressions written against an abstracttenant_idcolumn then rewritten to the configured physical column at compile time) was removed β the placeholder, the column name, andRLSUserContext.organization_idare now the same name end-to-end. The legacyobjectql.registerTenantMiddleware(hardcodedwhere.tenant_idinjection that pre-dated SecurityPlugin) has been removed; SecurityPlugin is the sole authority for tenant isolation. Analytics now uses the same reusable read scope viasecurity.getReadFilter, so dataset-bound dashboards/reports do not bypass RLS. Verified cross-organization isolation onpnpm dev:crmacrosssys_organization,sys_member,sys_user,sys_user_permission_set,sys_position_permission_set. Anonymous traffic is denied by default (the ADR-0056 D2 default-deny flip landed:requireAuthdefaults totrue); an explicitrequireAuth: falseopt-out logs a boot-time warning, and public forms do not depend on any fall-open β they carry a declaration-derivedpublicFormGrant(ADR-0056 Option A). - OWD / sharing-model enforcement is live and proven end-to-end (ADR-0056):
private,public_read,public_read_write, andcontrolled_by_parentare enforced throughplugin-sharing+plugin-securityand verified by dogfood proofs over the real HTTP stack.object.sharingModelaccepts the canonical OWD vocabulary only (private/public_read/public_read_write/controlled_by_parent) β the legacyread/read_write/fullaliases were removed from the enum (ADR-0090 D4), and an unsetsharingModelon a custom object resolves toprivate(ADR-0090 D1). RLS owner policies resolvecurrent_user.emailin addition toid/organization_id/positions(#2054). Permission sets may declareisDefault: trueas the install-time suggestion to bind the set to the built-ineveryoneposition (ADR-0090 D5, superseding the ADR-0056 D7 fallback-profile mechanism).
AI Layer
The in-UI AI runtime below ships in ObjectOS, not in the
open-source framework. The agent / skill / tool schemas stay open in
@objectstack/spec/ai; the open-source framework exposes AI via
@objectstack/mcp (BYO-AI). The Implementation / Status columns
describe that separate runtime.
| Protocol | @objectstack/spec | Implementation | Status |
|---|---|---|---|
| Agent | β | ObjectOS runtime | β Agent runtime |
| Model Registry | β | ObjectOS runtime | β Model registry |
| RAG Pipeline | β | @objectstack/service-knowledge | β οΈ Knowledge service + knowledge-memory / knowledge-ragflow / embedder-openai plugins |
| NLQ | β | ObjectOS runtime | β οΈ Data-query tools |
| Conversation | β | ObjectOS runtime | β In-memory + ObjectQL conversation services |
| Agent Action | β | ObjectOS runtime | β οΈ Action/data/knowledge tools |
| Cost | β | β | β Spec only |
| Predictive | β | β | β Spec only |
| Orchestration | β | ObjectOS runtime | β οΈ Agent tool orchestration |
| Feedback Loop | β | ObjectOS runtime | β οΈ Eval harness |
| DevOps Agent | β | β | β Spec only |
Notes:
- Complete AI protocol suite defined
- The ObjectOS runtime ships agents, model registry, conversation, tools, skills, and an eval harness
- RAG/embedding is provided by
@objectstack/service-knowledgeplus theknowledge-memory,knowledge-ragflow, andembedder-openaiplugins (all open) - Cost tracking, predictive, and the DevOps agent protocols remain spec-only
Integration Layer
| Protocol | @objectstack/spec | Implementation | Status |
|---|---|---|---|
| Connector | β | connector-rest, connector-openapi, connector-mcp, connector-slack | β REST/OpenAPI/MCP/Slack connectors shipped |
| SaaS Connector | β | connector-slack | β οΈ Slack connector shipped; broader SaaS catalogue in progress |
| Database Connector | β | @objectstack/driver-sql, driver-mongodb | β Delivered via the database drivers |
| File Storage | β | @objectstack/service-storage | β File storage service with local + S3 adapters and storage routes |
| Message Queue | β | @objectstack/service-queue | β οΈ Queue service shipped |
| GitHub Connector | β | β | β Spec only |
| Vercel Connector | β | β | β Spec only |
QA & Testing
| Protocol | @objectstack/spec | @objectstack/core | @objectstack/verify | Status |
|---|---|---|---|---|
| Testing | β | β | β | β Full |
Features Implemented:
- TestSuite, TestScenario, TestStep schemas β
- HTTP adapter for testing β
- MSW integration for browser mocking β
- QA runner in core β
Implementation Roadmap
Phase 1: Core Infrastructure β COMPLETE
- Microkernel & Plugin System
- Logging System
- Service Registry
- Event Bus
- API Registry
Phase 2: Data Layer β COMPLETE
- ObjectQL Engine
- Schema Registry
- Protocol Implementation
- Basic Query Support
- CRUD Operations
- Hook System
Phase 3: API Layer β COMPLETE
- REST Server
- HTTP Server (Hono)
- Endpoint Generation
- Discovery API
- Metadata API
- Batch Operations
- HTTP Caching
Phase 4: Client SDKs β COMPLETE
- TypeScript Client
- React Hooks
- Query Builder
- Error Handling
Phase 5: Developer Tools β COMPLETE
- CLI Tools
- Config Validation
- Development Server
- Metadata Management
Phase 6: Advanced Features π§ IN PROGRESS
- Production Database Drivers β
@objectstack/driver-sql(PostgreSQL/MySQL dialects),@objectstack/driver-mongodb, and@objectstack/driver-sqlite-wasmship; additional dialect coverage ongoing - GraphQL API
- OData Support
- Realtime Subscriptions
- WebSocket Support
Phase 7: UI Layer π‘ IN PROGRESS
- UI Renderer
- Studio metadata-admin engine β generic metadata list/detail/edit surfaces, live preview, draft/publish/rollback, create-mode forms, server-side diagnostics, package scoping, and skew-safe curated inspectors
- Form conditional rules β ObjectUI supports
visibleWhen,readonlyWhen,requiredWhen, row-scoped inline-grid rules, and required-on-submit enforcement - Master-detail forms β inline subforms, spreadsheet-style line items, atomic batch create/edit, lookup auto-fill, line ordering, duplicate/reorder, and subtotal/tax/total stack
- Record detail + related lists β derived related lists, record-page assignment, action slots, system/audit sections, and opt-in reference rail
- Dashboard renderer/editor β widget layout persistence, drill-downs, pivot/funnel/table/list widgets, type-aware cells, and per-widget dataset binding authoring (
dataset,dimensions,values) - Report renderer/editor β spec-native summary/matrix/joined reports, chart/KPI blocks, drill-downs, dataset-bound reports, and i18n labels
- Flow/page designers β typed flow node config panels, simulator/debug runner, page block canvas, slotted record pages, and schema-driven block inspectors
- Action transport β row/global/header actions, modal parameter collection, visible CEL, popup-safe open actions, and nested action runner sharing
- Developer/admin console surfaces β Integrations & APIs, public forms, flow runs, approvals inbox, settings, marketplace/package management, AI draft review/publish
- List View Renderer full protocol parity
- Cross-surface UI Renderer full protocol parity
- Theme Engine
Phase 8: Automation (Plugin) π‘ IN PROGRESS
- Flow Engine Plugin
- Approval Node Plugin
- ETL Pipeline Plugin
- Trigger Registry Plugin
Phase 9: Security (Plugin) π‘ PHASE-1 LANDED
- Authentication Plugin (
@objectstack/plugin-auth, better-auth) - Authorization Plugin β
@objectstack/plugin-securityenforces CRUD/FLS/RLS in the ObjectQL middleware chain; REST β ObjectQL now propagatesExecutionContextend-to-end (Phase-1) - Row-Level Security β default
member_defaultpermission set applies a wildcardorganization_id == current_user.organization_idrule plus per-object overridessys_organization_self/sys_user_self. The earliertenantFieldrewrite indirection was removed: RLS column, placeholder, andRLSUserContext.organization_iduse the same canonical name end-to-end - Analytics RLS bridge β
@objectstack/service-analyticsauto-bridges tosecurity.getReadFilter(object, context)and fails closed when read-scope resolution cannot be safely applied - Multi-tenancy β verified cross-organization isolation on
pnpm dev:crm(Alice@OrgAlpha vs. Bob@OrgBeta only see their own records acrosssys_organization,sys_member,sys_user, andsys_*_permission_setlink tables) - Legacy
objectql.registerTenantMiddlewareremoved β SecurityPlugin is now the sole tenant-isolation authority - Organization-Wide Defaults / sharing model β
private,public_read,public_read_write, andcontrolled_by_parentenforced viaplugin-sharing+plugin-security, proven by dogfood over the real HTTP stack (ADR-0056). Canonical vocabulary only β legacy aliases removed from the enum (ADR-0090 D4); unset custom-object OWD resolves toprivate(ADR-0090 D1) - Sharing Rule evaluator β criteria rules re-evaluated on
afterInsert/afterUpdate(plugin-sharing/rule-hooks.ts); enforced recipients are user / position /unit_and_subordinates(business-unit-subtree widening, ADR-0057 D5 / ADR-0090 D3); owner-type rules and group/guest recipients remain[experimental β not enforced] - Everyone-baseline suggestion β a permission set may set
isDefault: trueas the install-time suggestion to bind it to the built-ineveryoneposition; resolved per-request as an additive baseline, no fallback cliff (ADR-0090 D5) - Default-deny for anonymous traffic β the global default-deny flip landed (ADR-0056 D2):
requireAuthdefaults totrue, explicitrequireAuth: falseopt-outs warn at boot, and public forms self-authorize viapublicFormGrant(Option A) - Studio RLS visual editor
- Per-userΓorg permission cache
- Audit UI / denied-access logging
Phase 10: AI Integration π PLANNED
- Agent Framework
- RAG Pipeline
- NLQ Engine
- Model Registry
Summary Statistics
Overall Implementation Status
| Category | Total Protocols | Status |
|---|---|---|
| Data | 16 | Core modeling, hooks, and query engine fully implemented; document/mapping/external-lookup still pending |
| UI | 10 | Studio/ObjectUI render most authored surfaces (π‘); full cross-surface renderer parity in progress |
| API | 14 | REST/HTTP/discovery/batch fully implemented; OData/GraphQL pending |
| System | 39 | Logging, audit, job, translation, metrics, notification implemented; several governance services pending |
| Auth (plugin) | 10 | Permission + RLS live (plugin-security); identity/sharing/territory still plugin-pending |
| Automation (plugin) | 7 | Flow, workflow, approval, webhook, and triggers implemented; ETL/Sync pending |
| AI | 12 | Agents, model registry, conversation, tools, RAG implemented (ObjectOS runtime + open knowledge plugins); cost/predictive/DevOps-agent pending |
| Integration | 7 | REST/OpenAPI/MCP/Slack connectors, file storage, and queue implemented; GitHub/Vercel connectors pending |
| QA | 1 | Fully implemented |
Implementation Coverage
Implementation spans every layer of the platform. Core infrastructure, data modeling, the REST API, client SDKs, security (Phase-1), automation, AI, and integration all have shipping implementations. Remaining gaps are concentrated in specific protocols (OData/GraphQL, cross-surface UI renderer parity, sharing/territory authorization, ETL/Sync, and a handful of governance and AI-cost services) rather than entire layers. Refer to the per-layer tables above for protocol-level status.
Core Functionality Status
| Feature Area | Status | Production Ready |
|---|---|---|
| Kernel & Plugins | β | Yes |
| Data Modeling | β | Yes |
| Query Engine | β οΈ | Partial (depends on driver) |
| REST API | β | Yes |
| Client SDKs | β | Yes |
| Metadata System | β οΈ | Partial (in-memory only, DB persistence pending) |
| HTTP Caching | β | Yes |
| Testing Tools | β | Yes |
| UI Rendering | β | No |
| Workflows | β | Yes (plugin: service-automation) |
| Security | β οΈ | Partial (Phase-1 RBAC/RLS via plugin-security) |
| AI Features | β οΈ | Partial (ObjectOS runtime + open knowledge plugins) |
Package Feature Matrix
| Feature | spec | core | objectql | runtime | client | client-react | cli | metadata | hono | memory | msw |
|---|---|---|---|---|---|---|---|---|---|---|---|
| Protocol Definitions | β | β | β | β | β | β | β | β | β | β | β |
| Microkernel | β | β | β | β | β | β | β | β | β | β | β |
| Plugin System | β | β | β | β | β | β | β | β | β | β | β |
| Service Registry | β | β | β | β | β | β | β | β | β | β | β |
| Event Bus | β | β | β | β | β | β | β | β | β | β | β |
| Logging | β | β | β | β | β | β | β | β | β | β | β |
| Schema Registry | β | β | β | β | β | β | β | β | β | β | β |
| ObjectQL Engine | β | β | β | β | β | β | β | β | β | β | β |
| Protocol Implementation | β | β | β | β | β | β | β | β | β | β | β |
| REST Server | β | β | β | β | β | β | β | β | β | β | β |
| Endpoint Generation | β | β | β | β | β | β | β | β | β | β | β |
| HTTP Server | β | β | β | β | β | β | β | β | β | β | β |
| Client SDK | β | β | β | β | β | β | β | β | β | β | β |
| Query Builder | β | β | β | β | β | β | β | β | β | β | β |
| React Hooks | β | β | β | β | β | β | β | β | β | β | β |
| CLI Commands | β | β | β | β | β | β | β | β | β | β | β |
| Config Validation | β | β | β | β | β | β | β | β | β | β | β |
| Metadata Loading | β | β | β | β | β | β | β | β | β | β | β |
| File Watching | β | β | β | β | β | β | β | β | β | β | β |
| Database Driver | β | β | β | β | β | β | β | β | β | β οΈ | β |
| API Mocking | β | β | β | β | β | β | β | β | β | β | β |
The REST server, endpoint generation, and data/meta/batch endpoints are implemented in the
@objectstack/restpackage (not shown as a column above);@objectstack/runtimere-exportsRestServerfrom it.