Web-based admin interface for OpenDecree — schema-driven configuration management.
Alpha — This project is under active development. UI, configuration, and behavior may change without notice between versions.
# Install dependencies
npm install
# Start dev server (proxies /v1/* to localhost:8080)
npm run dev
# Run checks
npm run lint
npm run typecheck
npm test
npm run buildRequires a running OpenDecree server at localhost:8080 (REST gateway).
| Variable | Description | Default |
|---|---|---|
VITE_API_URL |
API base URL | "" (same origin) |
VITE_LAYOUT_MODE |
full, single-schema, or single-tenant |
full |
VITE_TENANT_ID |
Pre-selected tenant (single-tenant mode) | — |
VITE_SCHEMA_ID |
Pre-selected schema (single-schema mode) | — |
All user-facing text and feature flags are configurable via two JSON files. Edit them before building to white-label the UI.
Every string shown in the UI — page titles, button text, navigation items, empty states — is defined in this file. Override any key to rename concepts for your domain:
{
"nav.tenants": "Services",
"tenant.singular": "Service",
"tenant.plural": "Services",
"tenant.create": "Create Service",
"app.name": "MyCompany Config"
}Only include the keys you want to change — defaults are used for the rest.
Structural configuration:
{
"appName": "MyCompany Config",
"logoUrl": "/my-logo.svg",
"features": {
"schemas": true,
"audit": true,
"configVersions": true,
"fieldLocks": true,
"configImportExport": true
}
}Set features.schemas to false to hide schema management entirely (useful when embedding for non-admin users).
Edit the files in config/, then rebuild:
npm run buildNo code changes needed — the config files are read at build time.
React 19, Vite, React Router, TanStack Query, Tailwind CSS, Biome, Vitest.
API types auto-generated from the OpenAPI spec via openapi-typescript.
Head to OpenDecree Discussions — our community hub covers all OpenDecree repos.
Apache License 2.0 — see LICENSE.