Skip to main content
View as Markdown

JSON Schema

The Sovrium app schema describes the complete structure of an application configuration. It is published as a standard JSON Schema (Draft 2020-12), derived directly from the canonical Effect Schema (AppSchema) — so it can never drift from what the server actually decodes.

Three artifacts come off that single source of truth:

Artifact Format Generated by Use it for
JSON Schema JSON (Draft 2020-12) sovrium schema Editor autocomplete, CI validation
@sovrium/types TypeScript .d.ts npm package defineConfig() autocompletion in app.ts
AppSchema validator runtime decode sovrium validate Verifying a config file before deploy

Generating the schema

>_ terminal
# Print the JSON Schema to stdout
sovrium schema

# Write the JSON Schema to a file
sovrium schema --output app.schema.json

The document is self-contained, with a top-level $schema declaration, so any JSON-Schema-aware tool consumes it without further configuration. It takes no input beyond the Sovrium version — regenerate it in CI and diff the result, and any change you see is a real schema change.

Root properties at a glance

Every property except name is optional and layers on top.

Property Type Description
name string Application name (required)
version string App config version string
description string Human-readable description
tables object[] Data tables (see Tables Overview)
pages object[] Pages and their component trees
forms object[] Standalone forms
auth object Authentication and RBAC configuration
theme object Design tokens (colors, fonts, spacing)
components object[] Reusable components
automations object[] Trigger/action workflows
connections object[] External service connections
languages object Internationalization / i18n
analytics object Privacy-friendly analytics
agents object[] AI agents

The full reference is Schema Overview.

Schema URLs

Reference the hosted schema by URL from an editor, a CI pipeline, or a validation script.

Pin to a specific version for production stability. Replace <version> with the Sovrium version you target — the one sovrium --version prints:

code
https://sovrium.com/schema/app-<version>.json

A pinned URL is the one that keeps CI honest: the config is checked against the schema of the version you actually deploy, so upgrading Sovrium and adopting its new schema stay separate decisions.

Latest

Always points at the most recent version. Convenient in development; it can introduce breaking changes without warning.

code
https://sovrium.com/schema/app.json

Editor integration

Moved to Editor Setup.

TypeScript autocompletion with @sovrium/types

Moved to TypeScript Configs.

Validating a config file

Moved to Validating a Config.

Programmatic validation

Moved to Validating a Config.

Last updated August 28, 2026

This documentation was written with AI, so errors or outdated content are possible. Sovrium is in beta. Contributions and corrections are welcome.

Built with Sovrium