ObjectStackObjectStack

Manifest

Manifest protocol schemas

Schema for the ObjectStack Manifest.

This defines the structure of a package configuration in the ObjectStack ecosystem.

All packages (apps, plugins, drivers, modules) must conform to this schema.

@example App Package


id: com.acme.crm

version: 1.0.0

type: app

name: Acme CRM

description: Customer Relationship Management system

permissions:

- system.user.read

- system.object.create

objects:

- "./src/objects/*.object.yml"

Source: packages/spec/src/kernel/manifest.zod.ts

TypeScript Usage

import { Manifest } from '@objectstack/spec/kernel';
import type { Manifest } from '@objectstack/spec/kernel';

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

Manifest

Properties

PropertyTypeRequiredDescription
idstringUnique package identifier (reverse domain style)
namespacestringoptionalShort namespace identifier for metadata scoping (e.g. "crm", "todo")
defaultDatasourcestringDefault datasource for all objects in this package
versionstringPackage version (semantic versioning)
typeEnum<'plugin' | 'ui' | 'driver' | 'server' | 'app' | 'theme' | 'agent' | 'objectql' | 'module' | 'gateway' | 'adapter'>Type of package
namestringHuman-readable package name
descriptionstringoptionalPackage description
permissionsstring[]optionalArray of required permission strings
objectsstring[]optionalGlob patterns for ObjectQL schemas files
datasourcesstring[]optionalGlob patterns for Datasource definitions
dependenciesRecord<string, string>optionalPackage dependencies
configurationObjectoptionalPlugin configuration settings
contributesObjectoptionalPlatform contributions
dataObject[]optionalInitial seed data (prefer top-level data field)
capabilitiesObjectoptionalPlugin capability declarations for interoperability
extensionsRecord<string, any>optionalExtension points and contributions
loadingObjectoptionalPlugin loading and runtime behavior configuration
engineObjectoptionalPlatform compatibility requirements

On this page