Skip to main content
The platform db group manages the master database schema, and platform registry inspects the live registry served to validators. Their group help is Database helpers and Registry helpers respectively (base/src/platform_network/cli_app/main.py:62-63).

Database commands

Applies all pending Alembic migrations, upgrading the master database to head (base/src/platform_network/cli_app/main.py:922-927). The runtime database URL comes from database.url in your config (base/src/platform_network/cli_app/main.py:926-927).
OptionDefaultSource
--configconfig/master.example.yamlbase/src/platform_network/cli_app/main.py:923
platform db migrate --config /etc/platform/master.yaml
The underlying helper upgrades to revision head by default (base/src/platform_network/db/migrations.py:21-26). A matching downgrade helper targets -1 (one revision back) but is not exposed as a CLI command (base/src/platform_network/db/migrations.py:29-34).
Generates a new Alembic revision with autogenerate=True from the current models (base/src/platform_network/cli_app/main.py:930-940).
ArgumentRequiredSource
messageyesbase/src/platform_network/cli_app/main.py:931
platform db revision "add challenge routes"

Registry command

Fetches the active challenge registry from validator.registry_url and prints it as indented JSON (base/src/platform_network/cli_app/main.py:943-948).
OptionDefaultSource
--configconfig/validator.example.yamlbase/src/platform_network/cli_app/main.py:944
platform registry print --config /etc/platform/validator.yaml

Database tables

The master schema is defined as SQLAlchemy models (base/src/platform_network/db/models.py). platform db migrate creates and maintains these tables.
TablePurposeSource
challengesRegistered challenges and their lifecycle status, emission percent, version, and metadata.base/src/platform_network/db/models.py:58
challenge_imagesContainer image coordinates (registry, repository, tag, digest, pull policy) per challenge.base/src/platform_network/db/models.py:145
challenge_authHashed auth and broker tokens for a challenge’s internal endpoints.base/src/platform_network/db/models.py:172
challenge_resourcesNamed runtime resource values requested by a challenge.base/src/platform_network/db/models.py:201
challenge_volumesDocker volume mounts requested by a challenge.base/src/platform_network/db/models.py:226
challenge_secretsFile secrets mounted into a challenge container.base/src/platform_network/db/models.py:252
challenge_envEnvironment variable definitions (encrypted values, secret flag) for a challenge.base/src/platform_network/db/models.py:278
challenge_capabilitiesNamed capabilities advertised by a challenge.base/src/platform_network/db/models.py:304
challenge_routesPublic route prefixes exposed by a challenge through the proxy.base/src/platform_network/db/models.py:329
challenge_health_eventsHistorical health and version observations per challenge.base/src/platform_network/db/models.py:356
miner_request_noncesReplay protection for signed miner uploads accepted by the proxy.base/src/platform_network/db/models.py:387

Challenge status values

The challenges.status column uses the ChallengeStatus enum (base/src/platform_network/db/models.py:30-36).
ValueSource
activebase/src/platform_network/db/models.py:33
inactivebase/src/platform_network/db/models.py:34
disabledbase/src/platform_network/db/models.py:35
draftbase/src/platform_network/db/models.py:36
New challenges default to draft and must be activated before validators evaluate them (base/src/platform_network/db/models.py:78-79). See the Challenge CLI for activate / deactivate.

Database architecture

The schema and tables these migrations create and maintain.

Proxy API

The public /v1/registry read this CLI mirrors.