Skip to content

hopsworks.core.env_var_api #

EnvVarsApi #

Manage user account environment variables in Hopsworks.

Account env vars are encrypted at rest and automatically injected into every runtime the user starts (jobs, deployments, apps, Jupyter, terminal). Per-runtime env vars override account-level on collision.

Example
import hopsworks
hopsworks.login()
api = hopsworks.get_env_vars_api()

api.create_env_var("OPENAI_API_KEY", "sk-...")
api.create_env_var("HF_TOKEN", "hf_...")

# Print only names — values are typically credentials, don't log them.
for v in api.get_env_vars():
    print(v.name)

api.delete_env_var("OPENAI_API_KEY")

create_env_var #

create_env_var(
    name: str,
    value: str | None = None,
    secret_name: str | None = None,
    visibility: str | None = None,
    project_id_scope: int | None = None,
) -> env_var.EnvVar

Add a new account-level env var.

Example
api.create_env_var("OPENAI_API_KEY", "sk-...")
api.create_env_var("OPENAI_API_KEY", secret_name="my_secret")
PARAMETER DESCRIPTION
name

Variable name. Must match ^[A-Za-z_][A-Za-z0-9_]*$ and not be reserved by the platform (API_KEY, HOPS_*, HOPSWORKS_*, etc — see ReservedEnvVars in the backend).

TYPE: str

value

Variable value. Up to 8192 characters. Ignored when secret_name is provided.

TYPE: str | None DEFAULT: None

secret_name

Name of an existing secret to back the env var with.

TYPE: str | None DEFAULT: None

visibility

Visibility of the env var. Use PROJECT to share it with a project, or PRIVATE to keep it account-scoped.

TYPE: str | None DEFAULT: None

project_id_scope

Project ID scope for a project-shared env var. Required when creating a project-shared env var.

TYPE: int | None DEFAULT: None

RETURNS DESCRIPTION
env_var.EnvVar

The created EnvVar.

RAISES DESCRIPTION
hopsworks.client.exceptions.RestAPIError

ENV_VAR_RESERVED_NAME, ENV_VAR_INVALID_NAME, ENV_VAR_VALUE_TOO_LARGE, or ENV_VAR_LIMIT_EXCEEDED (default cap is 64 vars per user).

delete #

delete(name: str) -> None

Alias for delete_env_var.

Kept for parity with SecretsApi.delete. New code should prefer delete_env_var.

PARAMETER DESCRIPTION
name

Variable name to remove.

TYPE: str

delete_all #

delete_all() -> None

Remove all account-level env vars for the authenticated user.

Returns silently if there are none.

Example
api.delete_all()
assert api.get_env_vars() == []

delete_env_var #

delete_env_var(name: str) -> None

Remove a single env var from the account.

Example
api.delete_env_var("OPENAI_API_KEY")
PARAMETER DESCRIPTION
name

Variable name to remove.

TYPE: str

RAISES DESCRIPTION
hopsworks.client.exceptions.RestAPIError

ENV_VAR_NOT_FOUND if no env var with that name exists.

get #

get(name: str) -> str | None

Return just the value of an env var, or None if missing.

Convenience wrapper around get_env_var.

Example
api.get("OPENAI_API_KEY")  # -> "sk-..." or None
PARAMETER DESCRIPTION
name

Variable name.

TYPE: str

RETURNS DESCRIPTION
str | None

The env var's value, or None when no var with that name exists.

get_env_var #

get_env_var(name: str) -> env_var.EnvVar | None

Look up a single env var by name.

Returns None when no env var with that name exists, instead of raising — convenient for "set if missing" patterns.

PARAMETER DESCRIPTION
name

Variable name (e.g. "OPENAI_API_KEY").

TYPE: str

RETURNS DESCRIPTION
env_var.EnvVar | None

The matching EnvVar, or None.

get_env_vars #

get_env_vars(
    include_value: bool = True,
) -> list[env_var.EnvVar]

Return all account-level env vars for the authenticated user.

The backend omits values from the list response by default to reduce accidental exposure (UI, logs, proxies). The SDK opts back in here so existing callers see EnvVar.value populated; pass include_value=False if you only need names (e.g. building a UI list before drilling into a single var). Secret-backed env vars are returned with secret_name and secret_backed metadata.

PARAMETER DESCRIPTION
include_value

When False, the returned EnvVars have no value set. Default True preserves the existing behavior.

TYPE: bool DEFAULT: True

RETURNS DESCRIPTION
list[env_var.EnvVar]

List of EnvVar objects, possibly empty.

set_env_var #

set_env_var(
    name: str,
    value: str | None = None,
    secret_name: str | None = None,
    visibility: str | None = None,
    project_id_scope: int | None = None,
) -> env_var.EnvVar

Upsert: create the env var if missing, else update its value.

Example
# Idempotent — safe to call from setup scripts
api.set_env_var("HF_TOKEN", os.environ["HF_TOKEN"])
api.set_env_var("HF_TOKEN", secret_name="my_secret")
PARAMETER DESCRIPTION
name

Variable name.

TYPE: str

value

Variable value. Ignored when secret_name is provided.

TYPE: str | None DEFAULT: None

secret_name

Name of an existing secret to back the env var with.

TYPE: str | None DEFAULT: None

visibility

Visibility of the env var. Use PROJECT to share it with a project, or PRIVATE to keep it account-scoped.

TYPE: str | None DEFAULT: None

project_id_scope

Project ID scope for a project-shared env var.

TYPE: int | None DEFAULT: None

RETURNS DESCRIPTION
env_var.EnvVar

The created or updated EnvVar.

update_env_var #

update_env_var(
    name: str,
    value: str | None = None,
    secret_name: str | None = None,
    visibility: str | None = None,
    project_id_scope: int | None = None,
) -> env_var.EnvVar

Replace the value of an existing env var.

Use set_env_var to upsert (create-if-missing) instead.

PARAMETER DESCRIPTION
name

Variable name. Must already exist.

TYPE: str

value

New value. Up to 8192 characters. Ignored when secret_name is provided.

TYPE: str | None DEFAULT: None

secret_name

Name of an existing secret to repoint the env var to.

TYPE: str | None DEFAULT: None

visibility

Visibility of the env var. Use PROJECT to share it with a project, or PRIVATE to keep it account-scoped.

TYPE: str | None DEFAULT: None

project_id_scope

Project ID scope for a project-shared env var.

TYPE: int | None DEFAULT: None

RETURNS DESCRIPTION
env_var.EnvVar

The updated EnvVar.

RAISES DESCRIPTION
hopsworks.client.exceptions.RestAPIError

ENV_VAR_NOT_FOUND if no env var with that name exists.