Universe persists API keys and other cluster state in a relational or document store selected throughDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/universeclouddev/Universe/llms.txt
Use this file to discover all available pages before exploring further.
./database.json. The file must sit in the same working directory as the JAR. All built-in providers use jOOQ for type-safe SQL without code generation, and H2 runs in MySQL compatibility mode so the same schema DDL works across both built-in providers.
Configuration File
Create or edit./database.json:
Field Reference
| Field | Type | Default | Description |
|---|---|---|---|
provider | string | "h2" | Database provider key. Built-ins: h2, mysql. Extension-provided: postgres, mongodb, redis. |
url | string | "universe.db" | H2 only. Database file name. The file is created under ./data/. |
host | string | "localhost" | MySQL / extension providers. Database server hostname. |
port | integer | 3306 | MySQL / extension providers. Database server port. |
database | string | "universe" | MySQL / extension providers. Schema or database name to connect to. |
username | string | "sa" | Database username. |
password | string | "" | Database password. |
Provider Reference
- H2 (Default)
- MySQL
- PostgreSQL
- MongoDB
- Redis
H2 is an embedded, file-based database that requires zero external infrastructure. It is the default provider and the best choice for single-node or development setups.The database file is created at
./data/universe.db relative to the working directory. H2 operates in MySQL compatibility mode (MODE=MySQL) so schema migrations written for MySQL will work without modification.No additional JAR or service is required. H2 is bundled with Universe.
SQL Schema
On startup Universe automatically creates theapi_keys table if it does not already exist:
DatabaseProvider connection.
Custom Providers via Extensions
You can register a custom database backend by implementing theDatabaseProvider interface from extensions/extension-api and dropping the JAR in ./extensions/.
Implement DatabaseProvider
Create a class that implements
DatabaseProvider with the connection and CRUD logic for your backend.Implement Extension and register
In your
Extension.onLoad(), obtain the injected DatabaseRegistry and register your provider under a unique key: