Skip to main content
The platform challenge group scaffolds new challenges and manages their lifecycle on a running master. Its group help is Manage and scaffold challenges (base/src/platform_network/cli_app/main.py:61). There are two kinds of command here:
  • create runs locally and only writes files — no master required.
  • register, activate, deactivate, pull, restart call the master admin API and require a configured admin token.

platform challenge create

Scaffolds a new challenge repository from the built-in template (base/src/platform_network/cli_app/main.py:857-870).
Argument / OptionRequiredDefaultSource
slugyesbase/src/platform_network/cli_app/main.py:859
--outyes— (destination challenge repo path)base/src/platform_network/cli_app/main.py:860
namenoderived from slugbase/src/platform_network/cli_app/main.py:861
imagenononebase/src/platform_network/cli_app/main.py:862
versionno0.1.0base/src/platform_network/cli_app/main.py:863
overwritenoFalsebase/src/platform_network/cli_app/main.py:864
platform challenge create my-challenge --out ./my-challenge

Admin lifecycle commands

Each of these posts to the master admin API at master.registry_url with an X-Admin-Token header (base/src/platform_network/cli_app/main.py:99-100). They share the --config option, defaulting to config/master.example.yaml.
Creates a challenge record on the master via POST /v1/admin/challenges (base/src/platform_network/cli_app/main.py:881-891). The record version is taken from the image tag, or latest when the image has no tag (base/src/platform_network/cli_app/main.py:888).
Argument / OptionRequiredDefaultSource
slugyesbase/src/platform_network/cli_app/main.py:875
imageyesbase/src/platform_network/cli_app/main.py:876
emissionyes— (float)base/src/platform_network/cli_app/main.py:877
namenoslugbase/src/platform_network/cli_app/main.py:878
--confignoconfig/master.example.yamlbase/src/platform_network/cli_app/main.py:879
platform challenge register my-challenge ghcr.io/<org>/my-challenge:1.0.0 15
Toggle a registered challenge on or off. activate posts /v1/admin/challenges/{slug}/activate (base/src/platform_network/cli_app/main.py:894-898); deactivate posts /v1/admin/challenges/{slug}/deactivate (base/src/platform_network/cli_app/main.py:901-905).
Argument / OptionRequiredDefaultSource
slugyesbase/src/platform_network/cli_app/main.py:896, :903
--confignoconfig/master.example.yamlbase/src/platform_network/cli_app/main.py:896, :903
platform challenge activate my-challenge
platform challenge deactivate my-challenge
Triggers the master to pull the challenge’s image via POST /v1/admin/challenges/{slug}/pull (base/src/platform_network/cli_app/main.py:908-912).
Argument / OptionRequiredDefaultSource
slugyesbase/src/platform_network/cli_app/main.py:910
--confignoconfig/master.example.yamlbase/src/platform_network/cli_app/main.py:910
platform challenge pull my-challenge
Restarts the challenge runtime via POST /v1/admin/challenges/{slug}/restart (base/src/platform_network/cli_app/main.py:915-919).
Argument / OptionRequiredDefaultSource
slugyesbase/src/platform_network/cli_app/main.py:917
--confignoconfig/master.example.yamlbase/src/platform_network/cli_app/main.py:917
platform challenge restart my-challenge
The admin commands read the admin token from security.admin_token or security.admin_token_file (base/src/platform_network/cli_app/main.py:77-80). Set one of these before calling register, activate, deactivate, pull, or restart. See Settings reference.

Challenge integration

How a challenge plugs into the master and registry.

Create a challenge

The end-to-end guide to scaffolding and shipping a challenge.

Admin API

The admin routes these lifecycle commands call.