CLI Reference
Run these commands from the product root unless noted otherwise.
In preflight_v2 and exported customer bundles, the chart path is chart/preflight.
Some standalone bundle copies also mirror the same chart at helm/glassbox-preflight.
Only the chart path changes.
Shared defaults
- Helm release name:
glassbox-preflight - Namespace examples in this page:
glassbox-preflight service.type=ClusterIPservice.port=8080app.authDisabled=falsestorage.type=pvcstorage.pvc.size=20Gistorage.pvc.accessMode=ReadWriteOnce- default runner image:
us-docker.pkg.dev/glassbox-bio-public/glassbox-bio-molecular-audit/glassbox-mol-audit:1.0.0
helm template glassbox-preflight chart/preflight
Syntax:
helm template glassbox-preflight chart/preflight [options]
Arguments:
glassbox-preflight: release name used for rendered object nameschart/preflight: chart path inpreflight_v2and exported bundles-f <values-file>: optional values overlay--set key=value: optional inline override
Defaults:
- renders the chart with the values declared in
chart/preflight/values.yaml - use
./helm/glassbox-preflightinstead ofchart/preflightonly when working from a standalone bundle that keeps that alternate path
Example:
helm template glassbox-preflight chart/preflight
helm upgrade --install glassbox-preflight chart/preflight
Syntax:
helm upgrade --install glassbox-preflight chart/preflight --namespace <ns> --create-namespace [options]
Arguments:
--namespace <ns>: target namespace--create-namespace: create the namespace if missing--set app.authToken=<token>: optional explicit API token--set image.repository=<repo>: optional image repo override--set image.tag=<tag>or--set image.digest=<digest>: optional image version override--set storage.type=pvc|gcs: optional storage mode override--set storage.pvc.size=<size>: optional PVC size override--set storage.pvc.accessMode=ReadWriteOnce|ReadWriteMany: optional access mode override--set app.runnerImage=<image>: optional core runner image override--set app.runnerServiceAccount=<ksa>: optional runtime Job service account override--set billing.enabled=true: optional metering enablement
Defaults:
- if
app.authTokenis omitted, the chart preserves an existing auth secret or generates a new one on first install - the default service is
ClusterIPon port8080 - the default shared storage contract is PVC-backed
Example:
export GBX_PREFLIGHT_TOKEN="change-me-before-real-use"
helm upgrade --install glassbox-preflight chart/preflight \
--namespace glassbox-preflight \
--create-namespace \
--set app.authToken="$GBX_PREFLIGHT_TOKEN"
kubectl get secret ... K8S_API_TOKENS
Syntax:
kubectl -n <ns> get secret <release>-preflight-auth -o jsonpath='{.data.K8S_API_TOKENS}' | base64 -d
Arguments:
<ns>: namespace used at install time<release>: Helm release name; with the default release it resolves toglassbox-preflight-preflight-auth
Defaults:
- use this only when
app.authTokenwas not supplied explicitly
Example:
kubectl -n glassbox-preflight get secret glassbox-preflight-preflight-auth \
-o jsonpath='{.data.K8S_API_TOKENS}' | base64 -d | jq -r '.[0].token'
kubectl rollout status deployment/glassbox-preflight-preflight
Syntax:
kubectl -n <ns> rollout status deployment/<release>-preflight
Arguments:
<ns>: namespace used at install time<release>: Helm release name; default examples useglassbox-preflight
Defaults:
- with the default release name, the Deployment name is
glassbox-preflight-preflight
Example:
kubectl -n glassbox-preflight rollout status deployment/glassbox-preflight-preflight
kubectl port-forward svc/glassbox-preflight-preflight 8080:8080
Syntax:
kubectl -n <ns> port-forward svc/<release>-preflight 8080:8080
Arguments:
<ns>: namespace used at install time<release>: Helm release name; default examples useglassbox-preflight
Defaults:
- forwards local port
8080to the in-cluster service port8080
Example:
kubectl -n glassbox-preflight port-forward svc/glassbox-preflight-preflight 8080:8080
curl /api/health
Syntax:
curl -fsSL http://127.0.0.1:8080/api/health
Arguments:
- none
Defaults:
- unauthenticated health probe
- expected response includes
{"status":"ok"}
Example:
curl -fsSL http://127.0.0.1:8080/api/health
curl /api/config
Syntax:
curl -fsSL http://127.0.0.1:8080/api/config
Arguments:
- none
Defaults:
- unauthenticated config probe
- expected response includes the current runtime wiring such as
inCluster, storage mode, and runner integration fields
Example:
curl -fsSL http://127.0.0.1:8080/api/config
curl /api/modules
Syntax:
curl -fsSL http://127.0.0.1:8080/api/modules
Arguments:
- none
Defaults:
- unauthenticated module registry read
- expected response includes the built-in
computationalmodule
Example:
curl -fsSL http://127.0.0.1:8080/api/modules
curl /api/runs/check
Syntax:
curl -fsSL -H "Authorization: Bearer $GBX_PREFLIGHT_TOKEN" \
"http://127.0.0.1:8080/api/runs/check?runId=<run_id>[&paths=<relpath1>,<relpath2>]"
Arguments:
runId: requiredpaths: optional comma-separated list of relative output paths to require
Defaults:
- requires auth unless the deployment explicitly disables token auth
- when
pathsis omitted, checks:results/combined_unified_computational_outputs.jsonresults/summary.json
Example:
curl -fsSL -H "Authorization: Bearer $GBX_PREFLIGHT_TOKEN" \
"http://127.0.0.1:8080/api/runs/check?runId=smoke-test"
curl POST /api/modules/computational/smoke
Syntax:
curl -fsSL -X POST \
-H "Authorization: Bearer $GBX_PREFLIGHT_TOKEN" \
-H "Content-Type: application/json" \
-d '{"namespace":"<ns>"}' \
"http://127.0.0.1:8080/api/modules/computational/smoke"
Arguments:
namespace: required JSON body field
Defaults:
- launches a short-lived Kubernetes Job
- with the shipped registry, the smoke command resolves to
python3 -m app.gbx_core_runner_v3 --help - verifies image pull, interpreter startup, and module CLI wiring without launching a scientific run
Example:
curl -fsSL -X POST \
-H "Authorization: Bearer $GBX_PREFLIGHT_TOKEN" \
-H "Content-Type: application/json" \
-d '{"namespace":"glassbox-preflight"}' \
"http://127.0.0.1:8080/api/modules/computational/smoke"
curl /api/modules/computational/status
Syntax:
curl -fsSL -H "Authorization: Bearer $GBX_PREFLIGHT_TOKEN" \
"http://127.0.0.1:8080/api/modules/computational/status?namespace=<ns>"
Arguments:
namespace: required query parameter
Defaults:
- returns the configured runner image, runner service account, and latest observed execution verification state for the module
Example:
curl -fsSL -H "Authorization: Bearer $GBX_PREFLIGHT_TOKEN" \
"http://127.0.0.1:8080/api/modules/computational/status?namespace=glassbox-preflight"
curl POST /api/pipeline/run
Syntax:
curl -fsSL -X POST \
-H "Authorization: Bearer $GBX_PREFLIGHT_TOKEN" \
-H "Content-Type: application/json" \
-d '{"projectId":"<project_id>","namespace":"<ns>"[,"runId":"<run_id>","moduleId":"computational","mode":"standard","gpuDocking":false]}' \
"http://127.0.0.1:8080/api/pipeline/run"
Arguments:
projectId: required JSON body fieldnamespace: required JSON body fieldrunId: optionalmoduleId: optional; defaults tocomputationalmode: optional; defaults tostandardgpuDocking: optional boolean; defaults tofalse
Defaults:
- requires
GBX_RUNNER_IMAGEandGBX_APP_FULLNAMEto be configured on the preflight server - if
runIdis omitted, the server generatesrun_<timestamp> - GPU scheduling is enabled only when
mode=deepandgpuDocking=true
Example:
curl -fsSL -X POST \
-H "Authorization: Bearer $GBX_PREFLIGHT_TOKEN" \
-H "Content-Type: application/json" \
-d '{"projectId":"test","namespace":"glassbox-preflight","mode":"standard"}' \
"http://127.0.0.1:8080/api/pipeline/run"
curl /api/k8s/pods
Syntax:
curl -fsSL -H "Authorization: Bearer $GBX_PREFLIGHT_TOKEN" \
"http://127.0.0.1:8080/api/k8s/pods?namespace=<ns>[&jobName=<job_name>][&label=<selector>][&context=<kubectl_context>]"
Arguments:
namespace: required query parameterjobName: optional query parameterlabel: optional query parametercontext: optional query parameter
Defaults:
- returns pod names, phases, containers, and start times
- use
jobNamewhen you want only the pods for one launched Job
Example:
curl -fsSL -H "Authorization: Bearer $GBX_PREFLIGHT_TOKEN" \
"http://127.0.0.1:8080/api/k8s/pods?namespace=glassbox-preflight"
curl /api/outputs/list
Syntax:
curl -fsSL -H "Authorization: Bearer $GBX_PREFLIGHT_TOKEN" \
"http://127.0.0.1:8080/api/outputs/list?runId=<run_id>[&prefix=<relative_prefix>]"
Arguments:
runId: required query parameterprefix: optional relative output prefix
Defaults:
- when
prefixis omitted, the response prefers the well-known top-level directories:results/thresholds/seal/repro_pack/
Example:
curl -fsSL -H "Authorization: Bearer $GBX_PREFLIGHT_TOKEN" \
"http://127.0.0.1:8080/api/outputs/list?runId=run_20260325T010203"
curl /api/outputs/download
Syntax:
curl -fsSL -H "Authorization: Bearer $GBX_PREFLIGHT_TOKEN" \
-o <local_file> \
"http://127.0.0.1:8080/api/outputs/download?runId=<run_id>&path=<relative_path>"
Arguments:
runId: required query parameterpath: required relative path under the run output root-o <local_file>: recommended local output filename
Defaults:
- downloads a single file under
GBX_OUTPUT_ROOT/<run_id>/
Example:
curl -fsSL -H "Authorization: Bearer $GBX_PREFLIGHT_TOKEN" \
-o summary.json \
"http://127.0.0.1:8080/api/outputs/download?runId=run_20260325T010203&path=results/summary.json"
curl /api/outputs/repro-pack.tgz
Syntax:
curl -fsSL -H "Authorization: Bearer $GBX_PREFLIGHT_TOKEN" \
-o repro_pack_<run_id>.tgz \
"http://127.0.0.1:8080/api/outputs/repro-pack.tgz?runId=<run_id>"
Arguments:
runId: required query parameter-o repro_pack_<run_id>.tgz: recommended local filename
Defaults:
- archives and streams the
repro_pack/directory for the run - returns
404if that directory does not exist yet
Example:
curl -fsSL -H "Authorization: Bearer $GBX_PREFLIGHT_TOKEN" \
-o repro_pack_run_20260325T010203.tgz \
"http://127.0.0.1:8080/api/outputs/repro-pack.tgz?runId=run_20260325T010203"
APP_BASE_URL=... ./apptest/tester/tester.sh
Syntax:
APP_BASE_URL=http://127.0.0.1:8080 ./apptest/tester/tester.sh
Arguments:
APP_BASE_URL: required environment variable pointing at the running preflight app
Defaults:
- checks
/api/health - checks
/api/config - checks
/api/modulesfor thecomputationalregistry entry
Example:
APP_BASE_URL=http://127.0.0.1:8080 ./apptest/tester/tester.sh