ObjectStackObjectStack

Router

Router protocol schemas

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

TypeScript Usage

import { ConflictResolutionStrategy, HttpMethod, RouteCategory, RouteDefinitionSchema, RouterConfigSchema } from '@objectstack/spec/api';
import type { ConflictResolutionStrategy, HttpMethod, RouteCategory, RouteDefinition, RouterConfig } from '@objectstack/spec/api';

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

ConflictResolutionStrategy

Allowed Values

  • error
  • priority
  • first-wins
  • last-wins

HttpMethod

HTTP method — the full routing vocabulary (api/* endpoints, router and REST-server routes). The narrower HttpMethodSubset is what view data sources may request.

Allowed Values

  • GET
  • POST
  • PUT
  • DELETE
  • PATCH
  • HEAD
  • OPTIONS

RouteCategory

Allowed Values

  • system
  • api
  • auth
  • static
  • webhook
  • plugin

RouteDefinition

Properties

PropertyTypeRequiredDescription
methodEnum<'GET' | 'POST' | 'PUT' | 'DELETE' | 'PATCH' | 'HEAD' | 'OPTIONS'>HTTP method — the full routing vocabulary (api/* endpoints, router and REST-server routes). The narrower HttpMethodSubset is what view data sources may request.
pathstringURL Path pattern
categoryEnum<'system' | 'api' | 'auth' | 'static' | 'webhook' | 'plugin'>
handlerstringUnique handler identifier
summarystringoptionalOpenAPI summary
descriptionstringoptionalOpenAPI description
publicbooleanIs publicly accessible
permissionsstring[]optionalRequired permissions
timeoutintegeroptionalExecution timeout in ms
rateLimitstringoptionalRate limit policy name

RouterConfig

Properties

PropertyTypeRequiredDescription
basePathstringGlobal API prefix
mounts{ data: string; metadata: string; auth: string; automation: string; … }
cors{ enabled: boolean; origins: string | string[]; methods?: Enum<'GET' | 'POST' | 'PUT' | 'DELETE' | 'PATCH' | 'HEAD' | 'OPTIONS'>[]; credentials: boolean; … }optional
staticMounts{ path: string; directory: string; cacheControl?: string }[]optional

On this page