Skip to content

runtime auth

Validate platform credentials. The runtime never issues or stores them — see Authentication for the model.

runtime auth status
runtime auth login <provider>
runtime auth logout <provider>

Providers: github, gcp, kubernetes, openshift.

Missing GitHub token (exit 1):

authentication failed: no token found in $RUNTIME_GITHUB_TOKEN; export it (e.g. in ~/.zshrc: export RUNTIME_GITHUB_TOKEN=ghp_xxx) and open a new shell

runtime auth status

An unaudited health check across every enabled provider.

runtime auth status

Only providers with enabled: true in config.yaml are checked. A disabled provider costs nothing — no code path for it runs.

auth status is a diagnostic, not a prerequisite

There is no pre-flight auth check anywhere in the execution path. Nothing you run invokes auth status internally. Each execution validates the provider its operation needs, inline — so a capability's steps re-validate once per step. No session is established or reused.

For a fuller picture, including installed-binary checks and policy warnings, use runtime config validate.


runtime auth login <provider>

Validates one provider explicitly. Audited.

runtime auth login github
runtime auth login gcp
runtime auth login kubernetes
runtime auth login openshift

This is a validation, not an interactive login. The runtime never opens a browser and never starts a platform's login flow. If a session is missing or expired, the error names the command to run yourself:

gcloud auth application-default login
oc login --token=<token> --server=<url>
kubectl config use-context <name>

Per provider

export RUNTIME_GITHUB_TOKEN=ghp_your_personal_access_token
runtime auth login github

Validated against GET <base_url>/user.

gcloud auth application-default login
runtime auth login gcp

Validated via gcloud auth print-access-token; the subject comes from gcloud config get-value account.

kubectl config use-context <name>
runtime auth login kubernetes

Validated by reading the kubeconfig's current-context directly — no shell-out, no kubectl dependency for the check itself.

oc login --token=<token> --server=<server>
runtime auth login openshift

Validated via oc whoami.


runtime auth logout <provider>

Audited. What it actually does depends on whether there is a session to end:

Provider Behaviour
gcp Genuinely revokesgcloud auth application-default revoke
openshift Genuinely ends the sessionoc logout
github Prints guidance. A personal access token has no server-side session; revoke it in GitHub settings and unset the variable
kubernetes Prints guidance. A kubeconfig is a file, not a session
runtime auth logout gcp          # revokes ADC
runtime auth logout openshift    # ends the oc session
runtime auth logout github       # guidance only — still audited

The distinction is deliberate: the runtime will not pretend to revoke something it cannot revoke. Every attempt is audited either way.


Enabling a provider

All providers except github ship enabled: false. Enable one after logging in with the platform's own tooling:

authentication:
  gcp:
    enabled: true
    binary: gcloud

Or from the environment:

export RUNTIME_AUTHENTICATION_GCP_ENABLED=true

See config.yaml and GCP, Kubernetes, OpenShift.


Checking without side effects

runtime resolve auth login github

Confirms the command line resolves, without validating anything or writing an audit record.

Operational examples on this site were verified against Runtime 0.9.8. After bootstrap, the version-exact files in Runtime Home win.