Skip to main content

Configure vvctl

The vvctl tool uses several configuration files to manage users, servers, and contexts.

Configuration Files

The tool uses the following folders by default:

Operating SystemConfig folderData folder
macOS / LinuxXDG_CONFIG_HOME/vvctl (fallback ~/.config/vvctl)XDG_DATA_HOME/vvctl (fallback ~/.local/share/vvctl)
Windows%APPDATA%\\vvctl%LOCALAPPDATA%\\vvctl

The following example shows a config.yml configuration file:

###
# - name: name_of_the_user_entry
# user:
# token: API token (personal, namespace, or workspace)
# namespace: The name of the namespace. Required for Self-Managed.
# workspace: The name of the workspace. Required for Managed Service with a Workspace API token.
# email: The email address for the Managed Service account.
# password: The password for the Managed Service account.
users: []
###
# - name: name_of_the_server_entry
# server:
# host: The URL to the Ververica Unified Streaming Data Platform instance.

servers: []
###
# - name: name_of_the_context
# context:
# user: reference_to_existing_user
# server: reference_to_existing_server
contexts: []

current-context: null
warning_permissions: true
agent_version: 1.9.2-1
agent_charts: oci://registry.ververica.cloud/agent-charts/vv-agent
agent_name: vv-agent

where

PropertyDescription
usersA list of user accounts.
serversA list of server instances.
contextsA list of contexts that associate a user with a server.
current-contextThe context currently in use.
warning_permissionsWhen true, vvctl checks config file permissions (600) and warns you if they don't match.
agent_*Parameters for the BYOC agent installation. Leave these at their default values.

Contexts

The vvctl tool uses contexts to connect to the three deployment options of the Ververica Unified Streaming Data Platform: Managed Service, Bring Your Own Cloud (BYOC), and Self-Managed.

A context is defined by a user and a server.

User

A user represents an account on the Ververica Unified Streaming Data Platform and contains the following properties:

PropertyDescription
tokenAn API token (personal, namespace, or workspace).
namespaceThe name of the namespace. Required for Self-Managed instances.
workspaceThe name of the workspace. Required for Managed Service instances using a workspace API token.
emailThe email address associated with the account.
passwordThe password associated with the account.

Server

A server represents an instance of the Ververica Unified Streaming Data Platform.

PropertyDescription
hostThe URL of the Ververica Unified Streaming Data Platform instance.

An example of a contexts configuration could be

servers:
- name: vvp
server:
host: https://vvp.internal.ververica.cloud
- name: vvc
server:
host: https://app.ververica.cloud
users:
- name: qa-team
user:
email: qa-team@ververica.com
password: qa-pass
- name: frontend-team-ws-dev
user:
email: frontend-team@ververica.com
token: token-vvc
workspace: es223ysdf2j34
contexts:
- name: qa-vvp
context:
server: vvp
user: qa-team
- name: qa-vvc
context:
server: vvc
user: qa-team
- name: frontend-vvc-ws-dev
context:
server: vvc
user: frontend-team-ws-dev
current-context: qa-vvc

Notes:

  • If no context is defined, the CLI uses the Managed Service server and prompts you to enter your login credentials.
  • The server name vvc is reserved for the built-in Managed Service server. Defining a server with this name will fail. A built-in context, vvc (built-in), is available and always points to https://app.ververica.cloud.
  • You can use the VV_CONFIG environment variable to point to an alternate configuration file for project-specific setups:
❯ cat ./ververica-config.yml
servers:
- name: vvp
server:
host: https://vvp.internal.ververica.cloud
users:
- name: dev-ns-default
user:
email: dev@ververica.com
token: token-vvc
namespace: default
contexts:
- name: dev
context:
server: vvp
user: dev-ns-default
current-context: dev

❯ VV_CONFIG=./ververica-config.yml vvctl get deployments

Configuration Commands

Use the config command to manage contexts, servers, and users.

Get Contexts (get-contexts)

Lists one or all contexts, or shows the current context.

Syntax

vvctl config get-contexts [NAME | --current] [--output=table|yaml|json]

Parameters

  • NAME (optional): Show a single context by name.
  • --current (optional): Show only the current context.
  • --output (optional): Specify the output format: table (default), yaml, or json.

Examples

vvctl config get-contexts
vvctl config get-contexts vvp-stage-ns-default-viewer
vvctl config get-contexts --current
vvctl config get-contexts --output=yaml

Show Current Context (current-context)

Prints the name of the active context.

Syntax

vvctl config current-context

Examples

vvctl config current-context
# Output: vvc-stage

Switch Context (use-context)

Sets the current-context in the configuration file.

Syntax

vvctl config use-context NAME

Parameters

  • NAME (required): The name of the context to switch to.

Examples

vvctl config use-context vvp-stage-ns-default-viewer

Get Servers (get-servers)

Lists server entries from the configuration.

Syntax

vvctl config get-servers [--output=table|yaml|json]

Parameters

  • --output (optional): Specify the output format: table (default), yaml, or json.

Examples

vvctl config get-servers
vvctl config get-servers --output=json

Get Users (get-users)

Lists user entries without exposing secrets (tokens or passwords are never shown).

Syntax

vvctl config get-users [--output=table|yaml|json]

Parameters

  • --output (optional): Specify the output format: table (default), yaml, or json.

Examples

vvctl config get-users
vvctl config get-users --output=yaml

Set Context (set-context)

Creates or updates a context entry (merges if it exists). You can also import contexts from a file.

Syntax

vvctl config set-context [NAME | --current | --file FILE] [--server=SERVER_NAME] [--user=USER_NAME]

Parameters

  • NAME (optional): The name of the context to create or update.
  • --current (optional): Apply changes to the current context.
  • --file FILE (optional): Import or merge contexts (and related users, servers, and current-context) from another configuration file.
  • --server=SERVER_NAME (optional): The server reference for the context.
  • --user=USER_NAME (optional): The user reference for the context.

Examples

# Create a new context
vvctl config set-context local-vvp --user=local-admin --server=local-server

# Import contexts/users/servers from another file
vvctl config set-context --file ./local_vvp_config.yml

# Modify the current context (e.g., swap user)
vvctl config set-context --current --user=qa-team-credentials

Set Server (set-server)

Creates or updates a server entry (merges if it exists).

Syntax

vvctl config set-server NAME --host=HOST_URL

Parameters

  • NAME (required): The name of the server entry.
  • --host (required): The host URL (Ververica Platform Public API-compatible base URL).

Examples

vvctl config set-server local-vvp --host=http://127.0.0.1:8585

Set User (set-user)

Creates or updates a user authentication entry (merges if it exists).

Syntax

vvctl config set-user NAME \
[--token=TOKEN] \
[--namespace=NAMESPACE] \
[--workspace=WORKSPACE] \
[--email=EMAIL] \
[--password=PASSWORD]

Parameters

  • NAME (required): The name of the user entry.
  • --token (optional): API token, Personal Access Token (PAT), or console token.
  • --namespace (optional): The namespace (mandatory for Ververica Platform tokens; also used for Ververica Cloud multi-namespace cases).
  • --workspace (optional): The workspace (mandatory for Ververica Cloud workspace tokens).
  • --email (optional): Ververica Cloud login email.
  • --password (optional): Ververica Cloud login password (if omitted, the CLI prompts for it on 401 Unauthorized errors).

Examples

# Credentials-based user
vvctl config set-user local-admin --email=admin@local --password=l0ca1

# Token user for VVP namespace
vvctl config set-user stage-default-editor-token --token=ey... --namespace=default

# Token user for VVC workspace
vvctl config set-user stage-ws-e2e-editor-token --token=ey... --workspace=e2e-test-connectors

# Token user for VVC workspace + namespace
vvctl config set-user stage-ws-dev-ns-frontend-editor-token --token=ey... --workspace=dev-ws --namespace=frontend-ns

Delete User (delete-user)

Removes a user entry. This command returns an error if the user is referenced by any context.

Syntax

vvctl config delete-user NAME

Parameters

  • NAME (required): The name of the user entry to delete.

Examples

vvctl config delete-user local-admin

Delete Server (delete-server)

Removes a server entry. This command returns an error if the server is referenced by any context.

Syntax

vvctl config delete-server NAME

Parameters

  • NAME (required): The name of the server entry to delete.

Examples

vvctl config delete-server localhost

Delete Context (delete-context)

Removes a context entry.

Syntax

vvctl config delete-context NAME

Parameters

  • NAME (required): The name of the context to delete.

Examples

vvctl config delete-context local-dev-admin

View Config (view)

Shows the effective configuration (default output is YAML). Secrets are masked unless --raw is specified.

Syntax

vvctl config view [--raw] [--minify] [--output=yaml|json]

Parameters

  • --raw (optional): Include sensitive fields (token, password) instead of masking with ***.
  • --minify (optional): Show only what current-context uses (that context, plus referenced server, user, and root fields).
  • --output (optional): Specify the output format: yaml (default) or json.

Examples

vvctl config view
vvctl config view --output=json
vvctl config view --minify
vvctl config view --raw

Use Environment Variables

You can set environment variables to provide default values for certain options. Environment variables take priority and override values in the configuration file.

Environment VariableDescription
VV_API_TOKENThe API token used for authentication.
VV_EMAIL and VV_PASSWORDThe email address and password used for authentication.
VV_WORKSPACEThe default workspace ID.
VV_NAMESPACEThe default namespace ID.
VV_CONFIGThe path to the configuration file you want to use.