You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The ObjectStack Capabilities Schema describes what features and functionalities are available in a running ObjectStack instance. This information is critical for:
Frontends: Knowing which UI components to render
AI Agents: Understanding platform constraints for code generation
API Clients: Discovering available endpoints and features
Development Tools: IDE support and validation
Architecture Overview
ObjectStack capabilities are organized into three subsystems that correspond to the three-layer architecture:
The Data Layer capabilities define what query operations, data types, and business logic features are supported.
Query Operations
Capability
Default
Description
queryFilters
true
WHERE clause filtering
queryAggregations
true
GROUP BY and aggregation functions (COUNT, SUM, AVG)
querySorting
true
ORDER BY sorting
queryPagination
true
LIMIT/OFFSET pagination
queryWindowFunctions
false
Window functions (ROW_NUMBER, RANK, LAG, LEAD)
querySubqueries
false
Nested SELECT statements
queryDistinct
true
SELECT DISTINCT
queryHaving
false
HAVING clause for aggregations
queryJoins
false
SQL-style joins
Advanced Data Features
Capability
Default
Description
fullTextSearch
false
Full-text search capabilities
vectorSearch
false
Vector embeddings and similarity search (RAG/AI)
geoSpatial
false
Geospatial queries and location fields
Field Type Support
Capability
Default
Description
jsonFields
true
JSON field types
arrayFields
false
Array field types
Data Validation & Logic
Capability
Default
Description
validationRules
true
Validation rule engine
workflows
true
Workflow automation
triggers
true
Database triggers
formulas
true
Formula fields
Transaction & Performance
Capability
Default
Description
transactions
true
Database transaction support
bulkOperations
true
Bulk create/update/delete
transactionalBatch
—
Surfaced in discovery (client.capabilities.transactionalBatch, #3298): true iff the atomic cross-object batch route (POST {basePath}/batch, ADR-0034) is mounted and the engine can honour a transaction. Lets clients negotiate client.data.batchTransaction(...) at connect time instead of probing 404/405/501.
Driver Support
Capability
Description
supportedDrivers
Array of available database drivers (e.g., ['postgresql', 'mongodb', 'sqlite'])
ObjectUI Capabilities
The User Interface Layer capabilities define what UI components and views are available.
View Types
Capability
Default
Description
listView
true
List/grid views
formView
true
Form views
kanbanView
false
Kanban board views
calendarView
false
Calendar views
ganttView
false
Gantt chart views
Analytics & Reporting
Capability
Default
Description
dashboards
true
Dashboard creation
reports
true
Report generation
charts
true
Chart widgets
Customization
Capability
Default
Description
customPages
true
Custom page creation
customThemes
false
Custom theme creation
customComponents
false
Custom UI components/widgets
Actions & Interactions
Capability
Default
Description
customActions
true
Custom button actions
screenFlows
false
Interactive screen flows
Responsive & Accessibility
Capability
Default
Description
mobileOptimized
false
Mobile-optimized UI
accessibility
false
WCAG accessibility support
ObjectStack Capabilities
The System Layer capabilities define runtime, API, security, and platform service features.
// Helper: Check if a capability is enabledfunctionhasCapability(capabilities: ObjectStackCapabilities,subsystem: 'data'|'ui'|'system',capability: string): boolean{constsubsystemCaps=capabilities[subsystem]asany;returnsubsystemCaps?.[capability]===true;}// Check if vector search is availableif(hasCapability(capabilities,'data','vectorSearch')){console.log('✅ Vector search is available for RAG workflows');}// Check if GraphQL API is enabledif(hasCapability(capabilities,'system','graphqlApi')){console.log('✅ GraphQL endpoint is available');}// Check if Kanban view is supportedif(hasCapability(capabilities,'ui','kanbanView')){console.log('✅ Kanban boards are available');}
Discovery Endpoint
The REST server exposes a discovery document at the API base path (/api/v1) and
at /api/v1/discovery. The response follows the DiscoverySchema
(@objectstack/spec), where routes is a flat map of service-name → route-path and
services is the single source of truth for per-service availability:
Discover which services are available (via services)
Resolve endpoint paths without hardcoding URLs (via routes)
Adapt UI based on availability
Validate API requests
Best Practices
1. Progressive Enhancement
Design your application to gracefully handle missing capabilities:
// Good: Check before using advanced featuresif(capabilities.data.vectorSearch){awaitperformSemanticSearch(query);}else{awaitperformTextSearch(query);// Fallback}
2. AI Agent Guidance
When generating code, AI agents should respect capability constraints:
// AI Agent checks capabilities before generating codeif(!capabilities.data.queryWindowFunctions){// Don't generate ROW_NUMBER queries// Use alternative implementation}
3. Environment-Specific Configuration
Use different capability sets for different environments: