ObjectStackObjectStack

Discovery

Discovery protocol schemas

Service Status Enum

Describes the operational state of a service in the discovery response.

  • available – Fully operational: service is registered AND HTTP handler is verified.

  • registered – Route is declared in the dispatcher table but the HTTP handler has

not been verified (may 501 at runtime).

  • unavailable – Service is not installed / not registered in the kernel.

  • degraded – Partially working (e.g., in-memory fallback, missing persistence).

  • stub – Placeholder handler that always returns 501 Not Implemented.

Source: packages/spec/src/api/discovery.zod.ts

TypeScript Usage

import { ApiRoutes, Discovery, RouteHealthEntry, RouteHealthReport, ServiceInfo, WellKnownCapabilities } from '@objectstack/spec/api';
import type { ApiRoutes, Discovery, RouteHealthEntry, RouteHealthReport, ServiceInfo, WellKnownCapabilities } from '@objectstack/spec/api';

// Validate data
const result = ApiRoutes.parse(data);

ApiRoutes

Properties

PropertyTypeRequiredDescription
datastringe.g. /api/v1/data
metadatastringe.g. /api/v1/meta
discoverystringoptionale.g. /api/v1/discovery
uistringoptionale.g. /api/v1/ui
authstringoptionale.g. /api/v1/auth
automationstringoptionale.g. /api/v1/automation
storagestringoptionale.g. /api/v1/storage
analyticsstringoptionale.g. /api/v1/analytics
graphqlstringoptionale.g. /graphql
packagesstringoptionale.g. /api/v1/packages
workflowstringoptionale.g. /api/v1/workflow
realtimestringoptionale.g. /api/v1/realtime
notificationsstringoptionale.g. /api/v1/notifications
aistringoptionale.g. /api/v1/ai
i18nstringoptionale.g. /api/v1/i18n
feedstringoptionale.g. /api/v1/feed

Discovery

Properties

PropertyTypeRequiredDescription
namestring
versionstring
environmentEnum<'production' | 'sandbox' | 'development'>
routesObject
localeObject
servicesRecord<string, Object>Per-service availability map keyed by CoreServiceName
capabilitiesRecord<string, Object>optionalHierarchical capability descriptors for frontend intelligent adaptation
schemaDiscoveryObjectoptionalSchema discovery endpoints for API toolchain integration
metadataRecord<string, any>optionalCustom metadata key-value pairs for extensibility

RouteHealthEntry

Properties

PropertyTypeRequiredDescription
routestringRoute path pattern
methodEnum<'GET' | 'POST' | 'PUT' | 'DELETE' | 'PATCH' | 'HEAD' | 'OPTIONS'>HTTP method (GET, POST, etc.)
servicestringTarget service name
declaredbooleanWhether the route is declared in discovery/metadata
handlerRegisteredbooleanWhether the HTTP handler is registered
healthStatusEnum<'pass' | 'fail' | 'missing' | 'skip'>pass = handler responds, fail = 501/503, missing = no handler (404), skip = not checked
messagestringoptionalDiagnostic message

RouteHealthReport

Properties

PropertyTypeRequiredDescription
timestampstringISO 8601 timestamp of report generation
adapterstringAdapter or runtime that produced this report
totalDeclaredintegerTotal routes declared in discovery
totalRegisteredintegerRoutes with confirmed handler
totalMissingintegerRoutes missing a handler
routesObject[]Per-route health entries

ServiceInfo

Properties

PropertyTypeRequiredDescription
enabledboolean
statusEnum<'available' | 'registered' | 'unavailable' | 'degraded' | 'stub'>available = fully operational, registered = route declared but handler unverified, unavailable = not installed, degraded = partial, stub = placeholder that returns 501
handlerReadybooleanoptionalWhether the HTTP handler is confirmed to be mounted. Omitted = readiness unknown/unverified; true = handler mounted; false = handler missing or stub (likely 501).
routestringoptionale.g. /api/v1/analytics
providerstringoptionale.g. "objectql", "plugin-redis", "driver-memory"
versionstringoptionalSemantic version of the service implementation (e.g. "3.0.6")
messagestringoptionale.g. "Install plugin-workflow to enable"
rateLimitObjectoptionalRate limit and quota info for this service

WellKnownCapabilities

Well-known capability flags for frontend intelligent adaptation

Properties

PropertyTypeRequiredDescription
feedbooleanWhether the backend supports Feed / Chatter API
commentsbooleanWhether the backend supports comments (a subset of Feed)
automationbooleanWhether the backend supports Automation CRUD (flows, triggers)
cronbooleanWhether the backend supports cron scheduling
searchbooleanWhether the backend supports full-text search
exportbooleanWhether the backend supports async export
chunkedUploadbooleanWhether the backend supports chunked (multipart) uploads

On this page