Command-line tools
geo-mlops-admin works on the DB directly; ./client connects to a running server
Required permission: Global admin
MLOps Central Platform has two command-line tools.
| Tool | Connects to | Who uses it | Use it for |
|---|---|---|---|
geo-mlops-admin | The DB directly (the server may be down) | Platform operators | Emergency recovery of accounts and roles, rebuilding the DB, filling the weights mirror |
geo-mlops-client (./client) | A running server over HTTP | Every user | Sign-in, large dataset uploads, scripts that call the API |
geo-mlops-admin
It reads the same environment variables as the app (GEO_MLOPS_*, especially GEO_MLOPS_DATABASE_URL) or .env. It has no connection options of its own. Call it with the ./admin script at the root of the server repository (the same as ./run geo-mlops-admin … or python -m geo_mlops.admin).
./admin --help
If you installed with containers, run it inside the app container (working directory /app).
docker compose exec app ./admin user list
user — accounts
./admin user create [email protected] --admin # account + global administrator
./admin user create [email protected] # generates and prints a password
./admin user create [email protected] --password '<your-secret>'
./admin user list # list accounts and roles
./admin user delete [email protected] --yes # delete permanently
There are also the --inactive (create as inactive) and --unverified (create with the email unverified) options.
admin — global administrators
./admin admin grant [email protected]
./admin admin revoke [email protected]
This is the emergency recovery tool for when no usable global administrator is left in the UI or nobody knows the password. There is no command that changes a password. Run admin grant on another account that can still sign in, or create a new administrator with user create <new email> --admin (it generates and prints a password).
role — tenant roles
./admin role grant [email protected] DEMO OPERATOR # grant or change a role
./admin role revoke [email protected] DEMO
The role is one of VIEWER, DEVELOPER, OPERATOR, APPROVER and ADMIN.
db reset — rebuild the database
./admin db reset --seed # drop everything, rebuild with migrations, then plant initial data
--seedplants the boot seed (bootstrap administrator and tenant) again after the rebuild and also creates the tenant namespaces. To skip the namespaces, use--no-cluster../admin-database-initializein the server repository is a script that runsdb reset --seed --yeswithout confirmation. It is for development environments only.
seed-demo — demo data
./admin seed-demo --tenant DEMO --days 30
Fills every screen of the bootstrap tenant (or the tenant chosen with --tenant) with demo data. Skips data that already exists.
weights — weights mirror
Uses only object storage and the catalog, without the DB. It runs right after installation, even before the DB is ready.
./admin weights list # catalog and mirror state (narrow with --framework)
./admin weights warm --framework rf-detr # download from the internet and store in the mirror (--model for one)
./admin weights warm --all
./admin weights push rf-detr-large ./rf-detr-large.pth --framework rf-detr # air-gapped: upload a file you brought in
./admin weights prune # delete old objects the catalog no longer points to (asks; --yes)
The same work in the UI is covered in Weights mirror.
edge — edge collected files
./admin edge reclaim # find raw edge uploads that no row points to; report only
./admin edge reclaim --apply # register what it found as collected files
./client — the user client
geo-mlops-client is a user tool that connects to a running server. When you sign in, it saves the JWT to ~/.geo-mlops.json (readable only by the owner) and reuses it for later commands. Call it with the ./client script in the server repository.
./client login [email protected] --base-url https://mlops.example.com --tenant DEMO
./client whoami
./client logout
- The server address is decided in this order:
--base-url→GEO_MLOPS_CLIENT_BASE_URL→ the last sign-in address → the defaulthttp://localhost:10000. - The tenant comes from
--tenant CODE,GEO_MLOPS_CLIENT_TENANT, or the default saved at sign-in. - Change the token file location with
--config PATHorGEO_MLOPS_CLIENT_CONFIG.
There are also check commands that work without signing in.
./client meta health # alive? version
./client meta readyz # ready, including the DB connection? (exit code 1 if there is a problem)
./client meta metrics # raw Prometheus metrics
Other APIs are called as <group> <action> (tenants, experiments, models, datasets, settings and so on). ./client <group> --help lists the actions.
./client models list
./client datasets upload-archive <dataset ID> ~/corpus --chunk-size 64M
./client training-weights upload my-ckpt ./best.pt --framework yolo --model yolo26n