- Reference
- CLI
CLI
The javo binary in the image runs every component and the admin commands. Run the admin commands in the pod that holds the database: deploy/javo with SQLite, deploy/javo-controller with Postgres (add --database-engine=postgres --database-dsn-file=/etc/javo-db/dsn). The image has no shell, so call the binary directly:
kubectl -n javo-system exec deploy/javo -- /javo user add alice --password-file - > alice.passwordSome commands (netprobe, runner, source-check, storage prepare, storage probe-step) are run by the platform’s own pods, not by people.
Usage: javo [command]
Available Commands: backup Backups in the S3-compatible bucket: database copies and home folders clear-execstack Clear the executable-stack request of the shared libraries under DIR (used by the environment install step) completion Generate the autocompletion script for the specified shell controller Run the workspace controller db Migrate, back up and restore the database env-kernels Offer the Jupyter kernels of an installed environment under its name (used by the environment install step) gateway Serve the API, the UI and the app proxy help Help about any command home Home folders whose owners are gone import Bring data in from other systems netprobe Entrypoints of the NetworkPolicy enforcement probe pods openapi Print the gateway's OpenAPI 3.1 document pod-files Copy the platform's pod files to --to (the init container step; the image has no cp) runner Run one job run from the spec in JAVO_RUN secrets Manage the keys of people's secrets server Run the gateway and the controller in one process source-check Check the clone git-sync made and report its commit storage Check and test cluster storage user Manage local accounts and remove people
Flags: -h, --help help for javo
Use "javo [command] --help" for more information about a command.javo backup
Section titled “javo backup”Backups in the S3-compatible bucket: database copies and home folders
Usage: javo backup [command]
Available Commands: db The database copies in the bucket restore Bring home folders back from a backup; the person's apps stop meanwhile restore-run Restore a full backup for everyone or one person (the restore job runs this; parameters from, person, mode) run Back up the database, every home folder and every shared folder to the bucket (the backup job runs this) snapshots List the backups of a person's home folder, newest first status Say how the database copies and every home folder's backups stand
Flags: --config string platform config file (rendered by Helm into ConfigMap javo-config) (default "/etc/javo/config.yaml") --database-dsn-file string file holding the Postgres connection string --database-engine string database engine: sqlite or postgres (default "sqlite") --database-path string SQLite database file (default "/var/lib/javo/javo.db") -h, --help help for backup
Use "javo backup [command] --help" for more information about a command.javo backup db
Section titled “javo backup db”The database copies in the bucket
Usage: javo backup db [command]
Available Commands: copy Copy a database backup file to the bucket (the Postgres backup CronJob runs this) fetch Download a database copy from the bucket into file list List the database copies in the bucket, newest first
Flags: -h, --help help for db
Global Flags: --config string platform config file (rendered by Helm into ConfigMap javo-config) (default "/etc/javo/config.yaml") --database-dsn-file string file holding the Postgres connection string --database-engine string database engine: sqlite or postgres (default "sqlite") --database-path string SQLite database file (default "/var/lib/javo/javo.db")
Use "javo backup db [command] --help" for more information about a command.javo backup db copy
Section titled “javo backup db copy”Copy a database backup file to the bucket (the Postgres backup CronJob runs this)
Usage: javo backup db copy [file] [flags]
Flags: -h, --help help for copy --keep int copies kept in the bucket (default 7) --newest-in string copy the newest backup file (javo-*.dump or javo-*.db) in this directory
Global Flags: --config string platform config file (rendered by Helm into ConfigMap javo-config) (default "/etc/javo/config.yaml") --database-dsn-file string file holding the Postgres connection string --database-engine string database engine: sqlite or postgres (default "sqlite") --database-path string SQLite database file (default "/var/lib/javo/javo.db")javo backup db fetch
Section titled “javo backup db fetch”Download a copy, then restore it as the Backups page of the admin guide shows (javo db restore for SQLite, pg_restore for Postgres).
Usage: javo backup db fetch <copy id|latest> <file> [flags]
Flags: -h, --help help for fetch
Global Flags: --config string platform config file (rendered by Helm into ConfigMap javo-config) (default "/etc/javo/config.yaml") --database-dsn-file string file holding the Postgres connection string --database-engine string database engine: sqlite or postgres (default "sqlite") --database-path string SQLite database file (default "/var/lib/javo/javo.db")javo backup db list
Section titled “javo backup db list”List the database copies in the bucket, newest first
Usage: javo backup db list [flags]
Flags: -h, --help help for list
Global Flags: --config string platform config file (rendered by Helm into ConfigMap javo-config) (default "/etc/javo/config.yaml") --database-dsn-file string file holding the Postgres connection string --database-engine string database engine: sqlite or postgres (default "sqlite") --database-path string SQLite database file (default "/var/lib/javo/javo.db")javo backup restore
Section titled “javo backup restore”Asks the controller to restore each person's home (or, with --all, every home) from the backup named by --snapshot. Watch it with javo backup status or on Settings, Backups.
Usage: javo backup restore [person...] --snapshot <id|latest> [flags]
Flags: --all every home folder (disaster recovery) -h, --help help for restore --mode string replace: the home becomes as it was; beside: into a restored-<date> folder (default "replace") --snapshot string a backup id from javo backup snapshots, or latest (default "latest")
Global Flags: --config string platform config file (rendered by Helm into ConfigMap javo-config) (default "/etc/javo/config.yaml") --database-dsn-file string file holding the Postgres connection string --database-engine string database engine: sqlite or postgres (default "sqlite") --database-path string SQLite database file (default "/var/lib/javo/javo.db")javo backup restore-run
Section titled “javo backup restore-run”Restore a full backup for everyone or one person (the restore job runs this; parameters from, person, mode)
Usage: javo backup restore-run [flags]
Flags: -h, --help help for restore-run --poll duration how often to look again (default 5s)
Global Flags: --config string platform config file (rendered by Helm into ConfigMap javo-config) (default "/etc/javo/config.yaml") --database-dsn-file string file holding the Postgres connection string --database-engine string database engine: sqlite or postgres (default "sqlite") --database-path string SQLite database file (default "/var/lib/javo/javo.db")javo backup run
Section titled “javo backup run”Back up the database, every home folder and every shared folder to the bucket (the backup job runs this)
Usage: javo backup run [flags]
Flags: -h, --help help for run --poll duration how often to look again (default 5s)
Global Flags: --config string platform config file (rendered by Helm into ConfigMap javo-config) (default "/etc/javo/config.yaml") --database-dsn-file string file holding the Postgres connection string --database-engine string database engine: sqlite or postgres (default "sqlite") --database-path string SQLite database file (default "/var/lib/javo/javo.db")javo backup snapshots
Section titled “javo backup snapshots”List the backups of a person's home folder, newest first
Usage: javo backup snapshots <person> [flags]
Flags: -h, --help help for snapshots
Global Flags: --config string platform config file (rendered by Helm into ConfigMap javo-config) (default "/etc/javo/config.yaml") --database-dsn-file string file holding the Postgres connection string --database-engine string database engine: sqlite or postgres (default "sqlite") --database-path string SQLite database file (default "/var/lib/javo/javo.db")javo backup status
Section titled “javo backup status”Say how the database copies and every home folder's backups stand
Usage: javo backup status [flags]
Flags: -h, --help help for status
Global Flags: --config string platform config file (rendered by Helm into ConfigMap javo-config) (default "/etc/javo/config.yaml") --database-dsn-file string file holding the Postgres connection string --database-engine string database engine: sqlite or postgres (default "sqlite") --database-path string SQLite database file (default "/var/lib/javo/javo.db")javo clear-execstack
Section titled “javo clear-execstack”Clear the executable-stack request of the shared libraries under DIR (used by the environment install step)
Usage: javo clear-execstack DIR [flags]
Flags: -h, --help help for clear-execstackjavo controller
Section titled “javo controller”Run the workspace controller
Usage: javo controller [flags]
Flags: --app-role-binding strings bind a ClusterRole to a service account in every workspace namespace (clusterrole=namespace/serviceaccount, repeatable) --backup-claim string make this claim in the release namespace, if missing, for the Postgres backup CronJob's dumps; never changed or deleted after; empty makes none --backup-claim-size string size of the --backup-claim claim (default "5Gi") --backup-claim-storage-class string storage class of the --backup-claim claim; empty uses the cluster default --config string platform config file (rendered by Helm into ConfigMap javo-config) (default "/etc/javo/config.yaml") --database-dsn-file string file holding the Postgres connection string --database-engine string database engine: sqlite or postgres (default "sqlite") --database-path string SQLite database file (default "/var/lib/javo/javo.db") --egress-allow-cidrs strings if set, the only address ranges app and job pods may reach, besides DNS, the gateway and their own namespace --egress-deny-cidrs strings address ranges app and job pods may not reach; empty denies none (default [169.254.169.254/32,fd00:ec2::254/128]) --gateway-namespace string namespace of the gateway pods, the only ones allowed to reach apps --gateway-pod-labels stringToString labels of the gateway pods (key=value,...) (default []) --health-probe-bind-address string health probe address (default ":8082") -h, --help help for controller --image-pull-secret strings Secret in the release namespace the runner image is pulled with; copied into every namespace the controller runs pods in (repeatable) --metrics-bind-address string metrics endpoint address (default ":8081") --namespace string the release namespace, where API token records are kept (default $POD_NAMESPACE) --netprobe-control-url string URL of the gateway's health endpoint; the NetworkPolicy probe's dialer must reach it; required to run the controller --netprobe-interval duration how often the NetworkPolicy enforcement probe runs (it also runs at start) (default 6h0m0s) --netprobe-timeout duration how long one probe may take before its result is Unknown (default 2m0s) --network-policy keep the default-deny NetworkPolicies in every workspace namespace (default true) --notifications-config-map string ConfigMap with notifications-engine services, templates, triggers and subscriptions (default "javo-notifications") --notifications-namespace string namespace holding the failure-notice ConfigMap and Secret; empty turns failure notices off --notifications-secret string Secret with the service credentials the ConfigMap refers to as $key (default "javo-notifications") --public-host string host (and port, if not the default) browsers reach the gateway at; templates read it as .Host, e.g. for a websocket origin check --ready-timeout duration how long a running app may stay unready before it is reported as not answering (default 3m0s) --runner-image string image whose /javo binary job pods copy in to run the job runner (the chart's own image); required to run the controller --secret-fingerprint-key-create make the --secret-fingerprint-key-secret Secret, immutable with a new random key, when it does not exist; never changed afterwards --secret-fingerprint-key-secret string Secret in the release namespace whose key "key" holds the 32-byte key of the fingerprints the controller makes of people's secret values and the gateway looks for in app logs before they go to a model, read at start; empty: those log lines are not sent --secrets-key-create make the --secrets-key-secret Secret, immutable with a new random key, when it does not exist; never changed afterwards --secrets-key-file string file holding the 32-byte key-encryption key of people's secrets; empty (and no --secrets-key-secret): apps that get secrets do not start --secrets-key-secret string Secret in the release namespace whose key kek holds the 32-byte key-encryption key of people's secrets, read at start --sizes-file string YAML file with the app sizes users pick from ({default, sizes: [{name, displayName, cpu, memory}]}); empty offers none and keeps template resources --workspace-namespace string namespace holding apps and their pods (default "javo-apps")javo db
Section titled “javo db”Migrate, back up and restore the database
Usage: javo db [command]
Available Commands: backup Write a consistent copy of the SQLite database to a new file restore Replace the SQLite database with a backup upgrade Migrate the schema
Flags: --database-dsn-file string file holding the Postgres connection string --database-engine string database engine: sqlite or postgres (default "sqlite") --database-path string SQLite database file (default "/var/lib/javo/javo.db") -h, --help help for db
Use "javo db [command] --help" for more information about a command.javo db backup
Section titled “javo db backup”Copies the live SQLite database to <file>, which must not exist. It is safe while the server runs. With Postgres the chart's backup CronJob runs pg_dump instead (see the Backups page of the admin guide).
Usage: javo db backup <file> [flags]
Flags: -h, --help help for backup
Global Flags: --database-dsn-file string file holding the Postgres connection string --database-engine string database engine: sqlite or postgres (default "sqlite") --database-path string SQLite database file (default "/var/lib/javo/javo.db")javo db restore
Section titled “javo db restore”Replaces the SQLite database with <file>. Scale the server to 0 first: it refuses while any process has the database open. The database it replaces is kept as <database>.before-restore. Every restored app waits, held under the backup's file name, until a platform admin releases the restored apps under Settings, Backups (or POST /api/admin/restores/{name}/release), so they do not all start at once. For Postgres use pg_restore (see the Backups page of the admin guide).
Usage: javo db restore <file> [flags]
Flags: -h, --help help for restore
Global Flags: --database-dsn-file string file holding the Postgres connection string --database-engine string database engine: sqlite or postgres (default "sqlite") --database-path string SQLite database file (default "/var/lib/javo/javo.db")javo db upgrade
Section titled “javo db upgrade”Brings the database schema up to date. The chart runs it in an init container before the server starts.
Usage: javo db upgrade [flags]
Flags: -h, --help help for upgrade
Global Flags: --database-dsn-file string file holding the Postgres connection string --database-engine string database engine: sqlite or postgres (default "sqlite") --database-path string SQLite database file (default "/var/lib/javo/javo.db")javo env-kernels
Section titled “javo env-kernels”Offer the Jupyter kernels of an installed environment under its name (used by the environment install step)
Usage: javo env-kernels [flags]
Flags: --activate string the environment's activation script -h, --help help for env-kernels --name string the environment's name, shown for its kernels --notice string file that gets a plain-words note when the environment has no kernel --prefix string the installed environment's prefix --to string the Jupyter data folder to write the kernels tojavo gateway
Section titled “javo gateway”Serve the API, the UI and the app proxy
Usage: javo gateway [flags]
Flags: --config string platform config file (rendered by Helm into ConfigMap javo-config) (default "/etc/javo/config.yaml") --database-dsn-file string file holding the Postgres connection string --database-engine string database engine: sqlite or postgres (default "sqlite") --database-path string SQLite database file (default "/var/lib/javo/javo.db") --files-idle-after duration how long a user's file picker pod is kept after their last request from the UI (default 10m0s) --files-image string rclone image for file picker pods, pinned by digest (default "rclone/rclone:1.75.2@sha256:2687085f718d3c628f7fdfb77c52a1d344332aed543110bb88088f2c70d43eb5") -h, --help help for gateway --listen string address to listen on (default ":8080") --namespace string the release namespace, where API token records are kept (default $POD_NAMESPACE) --secret-fingerprint-key-create make the --secret-fingerprint-key-secret Secret, immutable with a new random key, when it does not exist; never changed afterwards --secret-fingerprint-key-secret string Secret in the release namespace whose key "key" holds the 32-byte key of the fingerprints the controller makes of people's secret values and the gateway looks for in app logs before they go to a model, read at start; empty: those log lines are not sent --secure-cookies mark the session cookie Secure even when urls.scheme is http (it always is with https) --sessions-key-create make the --sessions-key-secret Secret, immutable with a new random key, when it does not exist; never changed afterwards --sessions-key-secret string Secret in the release namespace whose key "key" holds the 32-byte key that seals each session's identity provider tokens in the database, read at start; empty: a key made at start, so a restart signs everyone out --sizes-file string YAML file with the app sizes users pick from ({default, sizes: [{name, displayName, cpu, memory}]}); empty offers none and keeps template resources --templates-dir string directory of built-in template files (*.yaml) to install into the database at start --trusted-proxies strings CIDRs of reverse proxies whose X-Forwarded-For is believed for the client address (login rate limits) --ui-dir string directory with the built UI (default "/ui") --workspace-namespace string namespace holding apps and their pods (default "javo-apps")javo home
Section titled “javo home”Home folders whose owners are gone
Usage: javo home [command]
Available Commands: prune Forget the homes whose owner has no account and whose files are gone
Flags: --database-dsn-file string file holding the Postgres connection string --database-engine string database engine: sqlite or postgres (default "sqlite") --database-path string SQLite database file (default "/var/lib/javo/javo.db") -h, --help help for home
Use "javo home [command] --help" for more information about a command.javo home prune
Section titled “javo home prune”A home is an orphan when its owner was a local account that no longer exists and its claim is gone: it holds nothing, yet it is still listed and asked to be backed up. Without --yes this only lists them. Homes of people who sign in through an identity provider, and homes with files, are never touched.
Usage: javo home prune --orphans [--yes] [flags]
Flags: -h, --help help for prune --orphans the homes whose owner has no account and no claim --yes forget them; without it they are only listed
Global Flags: --database-dsn-file string file holding the Postgres connection string --database-engine string database engine: sqlite or postgres (default "sqlite") --database-path string SQLite database file (default "/var/lib/javo/javo.db")javo import
Section titled “javo import”Bring data in from other systems
Usage: javo import [command]
Available Commands: jupyterhub-homes Copy the home folders of a JupyterHub install (the data science pack) into people's Javo homes
Flags: -h, --help help for import
Use "javo import [command] --help" for more information about a command.javo import jupyterhub-homes
Section titled “javo import jupyterhub-homes”Each claim-<user> claim in --from-namespace is matched to the Javo person whose username or email is the JupyterHub username, and its files are copied into a folder of that person's home (--into), owned by the person. The JupyterHub claims are only read. People without a match are skipped, or created with --create-people from a --subjects file. A home whose JupyterHub server or Javo apps run is left for later. Run it again to carry on after a stop or a failure; homes already imported are skipped.
Usage: javo import jupyterhub-homes --from-namespace <namespace> [flags]
Flags: --config string platform config file (rendered by Helm into ConfigMap javo-config) (default "/etc/javo/config.yaml") --create-people create the people who have no Javo account yet, from --subjects --database-dsn-file string file holding the Postgres connection string --database-engine string database engine: sqlite or postgres (default "sqlite") --database-path string SQLite database file (default "/var/lib/javo/javo.db") --dry-run say what would be done and change nothing --from-namespace string the namespace JupyterHub keeps its home claims in -h, --help help for jupyterhub-homes --image string the javo image the copy Jobs run (default $JAVO_IMAGE) --into string the folder of each home the files go to; . is the home itself, where files with the same name are replaced (default "jupyterhub") --no-wait take one step for each home and return; run again to carry on --parallel int how many homes are copied at a time (default 4) --stuck-after duration give up on a home that waits this long for anything but a running copy (default 6m0s) --subjects string CSV file of username,subject[,email] lines (each user's subject at the identity provider); - for standard input --user stringArray import only this JupyterHub user (repeatable)javo netprobe
Section titled “javo netprobe”Entrypoints of the NetworkPolicy enforcement probe pods
Usage: javo netprobe [command]
Available Commands: dial Request the control and target URLs and record which answered listen Answer 200 to every request
Flags: -h, --help help for netprobe
Use "javo netprobe [command] --help" for more information about a command.javo netprobe dial
Section titled “javo netprobe dial”Request the control and target URLs and record which answered
Usage: javo netprobe dial [flags]
Flags: --control string URL that must answer (the gateway) -h, --help help for dial --message-file string where the outcome is written for the controller to read (default "/dev/termination-log") --target string URL the cluster must refuse (the listener) --timeout duration wait per request (default 3s)javo netprobe listen
Section titled “javo netprobe listen”Answer 200 to every request
Usage: javo netprobe listen [flags]
Flags: --addr string address to listen on (default ":8080") -h, --help help for listenjavo openapi
Section titled “javo openapi”Print the gateway's OpenAPI 3.1 document
Usage: javo openapi [flags]
Flags: -h, --help help for openapijavo pod-files
Section titled “javo pod-files”Copy the platform's pod files to --to (the init container step; the image has no cp)
Usage: javo pod-files [flags]
Flags: --from string folder of this image that holds the files (default "/opt/javo-files") -h, --help help for pod-files --to string destination folderjavo runner
Section titled “javo runner”Run one job run from the spec in JAVO_RUN
Usage: javo runner [flags] javo runner [command]
Available Commands: install Copy this binary to --to (the init container step; the image has no cp)
Flags: -h, --help help for runner --home string the user's home directory (default "/home/user") --termination-log string file Kubernetes reads as the termination message (default "/dev/termination-log")
Use "javo runner [command] --help" for more information about a command.javo runner install
Section titled “javo runner install”Copy this binary to --to (the init container step; the image has no cp)
Usage: javo runner install [flags]
Flags: -h, --help help for install --to string destination pathjavo secrets
Section titled “javo secrets”Manage the keys of people's secrets
Usage: javo secrets [command]
Available Commands: rotate Add a new data key and encrypt every stored secret value again with it
Flags: --database-dsn-file string file holding the Postgres connection string --database-engine string database engine: sqlite or postgres (default "sqlite") --database-path string SQLite database file (default "/var/lib/javo/javo.db") -h, --help help for secrets
Use "javo secrets [command] --help" for more information about a command.javo secrets rotate
Section titled “javo secrets rotate”Adds a key to the data keyset and makes it the one new values use, then encrypts every stored value again under it. No value changes and no app restarts. Values encrypted before keep working while it runs; running it again is safe. A key file that does not open the stored keyset changes nothing.
Usage: javo secrets rotate [flags]
Flags: -h, --help help for rotate --key-file string the key-encryption key file --key-secret string the Secret holding the key-encryption key under kek (the chart's is javo-secrets-key, or secrets.existingKeySecret) --namespace string namespace of --key-secret (default $POD_NAMESPACE)
Global Flags: --database-dsn-file string file holding the Postgres connection string --database-engine string database engine: sqlite or postgres (default "sqlite") --database-path string SQLite database file (default "/var/lib/javo/javo.db")javo server
Section titled “javo server”Run the gateway and the controller in one process
Usage: javo server [flags]
Flags: --app-role-binding strings bind a ClusterRole to a service account in every workspace namespace (clusterrole=namespace/serviceaccount, repeatable) --backup-claim string make this claim in the release namespace, if missing, for the Postgres backup CronJob's dumps; never changed or deleted after; empty makes none --backup-claim-size string size of the --backup-claim claim (default "5Gi") --backup-claim-storage-class string storage class of the --backup-claim claim; empty uses the cluster default --backup-dir string directory the scheduled backups are written to --backup-keep int how many scheduled backups to keep (default 7) --backup-schedule string cron schedule of SQLite backups taken by this process (empty: none) --components strings what to run: gateway, controller or both (default [gateway,controller]) --config string platform config file (rendered by Helm into ConfigMap javo-config) (default "/etc/javo/config.yaml") --database-dsn-file string file holding the Postgres connection string --database-engine string database engine: sqlite or postgres (default "sqlite") --database-path string SQLite database file (default "/var/lib/javo/javo.db") --egress-allow-cidrs strings if set, the only address ranges app and job pods may reach, besides DNS, the gateway and their own namespace --egress-deny-cidrs strings address ranges app and job pods may not reach; empty denies none (default [169.254.169.254/32,fd00:ec2::254/128]) --files-idle-after duration how long a user's file picker pod is kept after their last request from the UI (default 10m0s) --files-image string rclone image for file picker pods, pinned by digest (default "rclone/rclone:1.75.2@sha256:2687085f718d3c628f7fdfb77c52a1d344332aed543110bb88088f2c70d43eb5") --gateway-namespace string namespace of the gateway pods, the only ones allowed to reach apps --gateway-pod-labels stringToString labels of the gateway pods (key=value,...) (default []) --health-probe-bind-address string health probe address (default ":8082") -h, --help help for server --image-pull-secret strings Secret in the release namespace the runner image is pulled with; copied into every namespace the controller runs pods in (repeatable) --listen string address to listen on (default ":8080") --metrics-bind-address string metrics endpoint address (default ":8081") --namespace string the release namespace, where API token records are kept (default $POD_NAMESPACE) --netprobe-control-url string URL of the gateway's health endpoint; the NetworkPolicy probe's dialer must reach it; required to run the controller --netprobe-interval duration how often the NetworkPolicy enforcement probe runs (it also runs at start) (default 6h0m0s) --netprobe-timeout duration how long one probe may take before its result is Unknown (default 2m0s) --network-policy keep the default-deny NetworkPolicies in every workspace namespace (default true) --notifications-config-map string ConfigMap with notifications-engine services, templates, triggers and subscriptions (default "javo-notifications") --notifications-namespace string namespace holding the failure-notice ConfigMap and Secret; empty turns failure notices off --notifications-secret string Secret with the service credentials the ConfigMap refers to as $key (default "javo-notifications") --public-host string host (and port, if not the default) browsers reach the gateway at; templates read it as .Host, e.g. for a websocket origin check --ready-timeout duration how long a running app may stay unready before it is reported as not answering (default 3m0s) --runner-image string image whose /javo binary job pods copy in to run the job runner (the chart's own image); required to run the controller --secret-fingerprint-key-create make the --secret-fingerprint-key-secret Secret, immutable with a new random key, when it does not exist; never changed afterwards --secret-fingerprint-key-secret string Secret in the release namespace whose key "key" holds the 32-byte key of the fingerprints the controller makes of people's secret values and the gateway looks for in app logs before they go to a model, read at start; empty: those log lines are not sent --secrets-key-create make the --secrets-key-secret Secret, immutable with a new random key, when it does not exist; never changed afterwards --secrets-key-file string file holding the 32-byte key-encryption key of people's secrets; empty (and no --secrets-key-secret): apps that get secrets do not start --secrets-key-secret string Secret in the release namespace whose key kek holds the 32-byte key-encryption key of people's secrets, read at start --secure-cookies mark the session cookie Secure even when urls.scheme is http (it always is with https) --sessions-key-create make the --sessions-key-secret Secret, immutable with a new random key, when it does not exist; never changed afterwards --sessions-key-secret string Secret in the release namespace whose key "key" holds the 32-byte key that seals each session's identity provider tokens in the database, read at start; empty: a key made at start, so a restart signs everyone out --sizes-file string YAML file with the app sizes users pick from ({default, sizes: [{name, displayName, cpu, memory}]}); empty offers none and keeps template resources --templates-dir string directory of built-in template files (*.yaml) to install into the database at start --trusted-proxies strings CIDRs of reverse proxies whose X-Forwarded-For is believed for the client address (login rate limits) --ui-dir string directory with the built UI (default "/ui") --workspace-namespace string namespace holding apps and their pods (default "javo-apps")javo source-check
Section titled “javo source-check”Check the clone git-sync made and report its commit
Usage: javo source-check [flags]
Flags: --file string file inside that folder the app opens -h, --help help for source-check --link string git-sync's link to the checked out commit --path string folder inside the repository the app runs from --termination-log string file Kubernetes reads as the termination message (default "/dev/termination-log")javo storage
Section titled “javo storage”Check and test cluster storage
Usage: javo storage [command]
Available Commands: copy Copy a home to a new volume and check the copy (used by the home mode-change Job) folder Declare, list and remove the folders groups share home-size Set the size of a person's home, such as 20Gi (grows the claim where the storage allows it) migrate Plan, schedule and watch the move of homes to the chosen storage mode prepare Ready a new home volume: set the root's mode and check the user can write it (used by the prepare Jobs) probe-step Run one step of the storage probe against a volume (used by the probe Jobs) report Say what storage the cluster offers and what is in use verify Run the two-node probe on a StorageClass and print each step as it happens
Flags: --database-dsn-file string file holding the Postgres connection string --database-engine string database engine: sqlite or postgres (default "sqlite") --database-path string SQLite database file (default "/var/lib/javo/javo.db") -h, --help help for storage
Use "javo storage [command] --help" for more information about a command.javo storage copy
Section titled “javo storage copy”Copy a home to a new volume and check the copy (used by the home mode-change Job)
Usage: javo storage copy [flags]
Flags: -h, --help help for copy --new string the new claim (default "/new") --old string the old home, mounted read-only (default "/old") --termination-log string file Kubernetes reads as the termination message (default "/dev/termination-log")
Global Flags: --database-dsn-file string file holding the Postgres connection string --database-engine string database engine: sqlite or postgres (default "sqlite") --database-path string SQLite database file (default "/var/lib/javo/javo.db")javo storage folder
Section titled “javo storage folder”Declare, list and remove the folders groups share
Usage: javo storage folder [command]
Available Commands: add Give a group a shared folder (the group as the identity provider names it, such as /org/data-science) list List the shared folders and whether each is ready remove Stop offering a shared folder; its claim and files stay
Flags: -h, --help help for folder --namespace string namespace the folder's claim is in (the apps namespace) (default "javo-apps")
Global Flags: --database-dsn-file string file holding the Postgres connection string --database-engine string database engine: sqlite or postgres (default "sqlite") --database-path string SQLite database file (default "/var/lib/javo/javo.db")
Use "javo storage folder [command] --help" for more information about a command.javo storage folder add
Section titled “javo storage folder add”Give a group a shared folder (the group as the identity provider names it, such as /org/data-science)
Usage: javo storage folder add <group> [flags]
Flags: -h, --help help for add --name string the folder's name, which names its claim (default: the group's directory) --size string capacity, such as 50Gi (default: storage.sharedFolders.defaultSize) --storage-class string StorageClass of the claim (default: chosen by the platform)
Global Flags: --database-dsn-file string file holding the Postgres connection string --database-engine string database engine: sqlite or postgres (default "sqlite") --database-path string SQLite database file (default "/var/lib/javo/javo.db") --namespace string namespace the folder's claim is in (the apps namespace) (default "javo-apps")javo storage folder list
Section titled “javo storage folder list”List the shared folders and whether each is ready
Usage: javo storage folder list [flags]
Flags: -h, --help help for list
Global Flags: --database-dsn-file string file holding the Postgres connection string --database-engine string database engine: sqlite or postgres (default "sqlite") --database-path string SQLite database file (default "/var/lib/javo/javo.db") --namespace string namespace the folder's claim is in (the apps namespace) (default "javo-apps")javo storage folder remove
Section titled “javo storage folder remove”Stop offering a shared folder; its claim and files stay
Usage: javo storage folder remove <name> [flags]
Flags: -h, --help help for remove
Global Flags: --database-dsn-file string file holding the Postgres connection string --database-engine string database engine: sqlite or postgres (default "sqlite") --database-path string SQLite database file (default "/var/lib/javo/javo.db") --namespace string namespace the folder's claim is in (the apps namespace) (default "javo-apps")javo storage home-size
Section titled “javo storage home-size”Set the size of a person's home, such as 20Gi (grows the claim where the storage allows it)
Usage: javo storage home-size <person> <size> [flags]
Flags: -h, --help help for home-size --namespace string namespace the home is in (default "javo-apps")
Global Flags: --database-dsn-file string file holding the Postgres connection string --database-engine string database engine: sqlite or postgres (default "sqlite") --database-path string SQLite database file (default "/var/lib/javo/javo.db")javo storage migrate
Section titled “javo storage migrate”Changing the storage mode never touches an existing home. Schedule the move when it suits users: each home is copied to new storage, checked, and only then switched.
Usage: javo storage migrate [command]
Available Commands: plan Say which homes would move and how much space they ask for retry Try the move again for the homes whose copy failed schedule Schedule the move: users see a banner from now, apps stop when the time comes status Show where each home's move stands, and how to watch a running copy
Flags: -h, --help help for migrate
Global Flags: --database-dsn-file string file holding the Postgres connection string --database-engine string database engine: sqlite or postgres (default "sqlite") --database-path string SQLite database file (default "/var/lib/javo/javo.db")
Use "javo storage migrate [command] --help" for more information about a command.javo storage migrate plan
Section titled “javo storage migrate plan”Say which homes would move and how much space they ask for
Usage: javo storage migrate plan [flags]
Flags: -h, --help help for plan
Global Flags: --database-dsn-file string file holding the Postgres connection string --database-engine string database engine: sqlite or postgres (default "sqlite") --database-path string SQLite database file (default "/var/lib/javo/javo.db")javo storage migrate retry
Section titled “javo storage migrate retry”Try the move again for the homes whose copy failed
Usage: javo storage migrate retry [flags]
Flags: -h, --help help for retry
Global Flags: --database-dsn-file string file holding the Postgres connection string --database-engine string database engine: sqlite or postgres (default "sqlite") --database-path string SQLite database file (default "/var/lib/javo/javo.db")javo storage migrate schedule
Section titled “javo storage migrate schedule”Schedule the move: users see a banner from now, apps stop when the time comes
Usage: javo storage migrate schedule --at <RFC3339 time> [flags]
Flags: --at string when the move starts, RFC 3339 -h, --help help for schedule
Global Flags: --database-dsn-file string file holding the Postgres connection string --database-engine string database engine: sqlite or postgres (default "sqlite") --database-path string SQLite database file (default "/var/lib/javo/javo.db")javo storage migrate status
Section titled “javo storage migrate status”Show where each home's move stands, and how to watch a running copy
Usage: javo storage migrate status [flags]
Flags: -h, --help help for status
Global Flags: --database-dsn-file string file holding the Postgres connection string --database-engine string database engine: sqlite or postgres (default "sqlite") --database-path string SQLite database file (default "/var/lib/javo/javo.db")javo storage prepare
Section titled “javo storage prepare”Ready a new home volume: set the root's mode and check the user can write it (used by the prepare Jobs)
Usage: javo storage prepare [flags]
Flags: --dir string directory the volume is mounted at --gid int group of that user -h, --help help for prepare --mode string octal mode of the volume root, 02775 for setgid (default "0775") --no-mkdir fail when the directory does not exist instead of creating it --uid int user who must be able to write the volume root (default 501)
Global Flags: --database-dsn-file string file holding the Postgres connection string --database-engine string database engine: sqlite or postgres (default "sqlite") --database-path string SQLite database file (default "/var/lib/javo/javo.db")javo storage probe-step
Section titled “javo storage probe-step”Run one step of the storage probe against a volume (used by the probe Jobs)
Usage: javo storage probe-step [flags]
Flags: --dir string directory the volume is mounted at -h, --help help for probe-step --step string write, check or confirm
Global Flags: --database-dsn-file string file holding the Postgres connection string --database-engine string database engine: sqlite or postgres (default "sqlite") --database-path string SQLite database file (default "/var/lib/javo/javo.db")javo storage report
Section titled “javo storage report”Say what storage the cluster offers and what is in use
Usage: javo storage report [flags]
Flags: -h, --help help for report
Global Flags: --database-dsn-file string file holding the Postgres connection string --database-engine string database engine: sqlite or postgres (default "sqlite") --database-path string SQLite database file (default "/var/lib/javo/javo.db")javo storage verify
Section titled “javo storage verify”Asks the controller to probe the class: a shared claim, then a write, a check on another node and a confirm back on the first. The probe costs a small volume for a few minutes, so it only runs when you ask. Exits non-zero when the probe fails.
Usage: javo storage verify <storage-class> [flags]
Flags: -h, --help help for verify --timeout duration how long the probe may take (default 5m0s)
Global Flags: --database-dsn-file string file holding the Postgres connection string --database-engine string database engine: sqlite or postgres (default "sqlite") --database-path string SQLite database file (default "/var/lib/javo/javo.db")javo user
Section titled “javo user”Manage local accounts and remove people
Usage: javo user [command]
Available Commands: add Create a local account with a generated password remove Remove a person (local account or single sign-on): end their sessions, revoke their API tokens, delete their secrets and forget their home
Flags: --database-dsn-file string file holding the Postgres connection string --database-engine string database engine: sqlite or postgres (default "sqlite") --database-path string SQLite database file (default "/var/lib/javo/javo.db") -h, --help help for user
Use "javo user [command] --help" for more information about a command.javo user add
Section titled “javo user add”Creates a local account with a random 24-byte password. The argon2id hash goes into the database; the password is written (mode 0600) to --password-file and never printed. With --password-file - it goes to standard output alone, for a pod without a shell: kubectl exec deploy/javo -- /javo user add alice --password-file - > alice.password
Usage: javo user add <name> [flags]
Flags: --force replace an existing user and password file; ends their sessions and revokes their API tokens --group stringArray group the account belongs to, as an identity provider would emit it (repeatable) -h, --help help for add --password-file string file to write the generated password to (mode 0600); - for standard output
Global Flags: --database-dsn-file string file holding the Postgres connection string --database-engine string database engine: sqlite or postgres (default "sqlite") --database-path string SQLite database file (default "/var/lib/javo/javo.db")javo user remove
Section titled “javo user remove”Finds the person by identity name (such as alice-1a2b3c4d), by local account name, or by the username or email they sign in with (ignoring case). When more than one person matches, nothing is removed and the command lists them; rerun with the identity name of the one to remove.
A local account is deleted, so it cannot sign in again. Someone who signs in through the identity provider can sign in again, as the same person, until the provider stops them.
While the person has apps or jobs nothing is removed, unless --delete-apps-and-jobs deletes them too.
The person's home folder is forgotten: it is no longer listed or backed up. Its files stay on their claim, and the same person coming back gets them back, unless --delete-home deletes them too.
Usage: javo user remove <identity name | username | email> [flags]
Flags: --delete-apps-and-jobs also delete the person's apps (with their previews) and jobs; without it the command refuses while they have any --delete-home also delete the home folder's files (its claims); they cannot be brought back except from a backup -h, --help help for remove
Global Flags: --database-dsn-file string file holding the Postgres connection string --database-engine string database engine: sqlite or postgres (default "sqlite") --database-path string SQLite database file (default "/var/lib/javo/javo.db")