Configuration
Global ~/.config/zectre/config.toml, per-directory .zectre state, and environment overrides.
Global config
Path: ~/.config/zectre/config.toml
api_url = "http://localhost:47080"
default_namespace = "default"
# catalog_url = "http://127.0.0.1:47100" # optional; overridden by ZECTRE_CATALOG_URLEnvironment variables
| Variable | Purpose |
|---|---|
ZECTRE_API_URL | Cluster API base URL |
ZECTRE_API_KEY | API key (overrides Bearer token when set) |
ZECTRE_CATALOG_URL | Catalog base for browser OAuth login |
ZECTRE_ACCESS_TOKEN | Bearer JWT (often from zectre login; also ~/.config/zectre/.access-token) |
ZECTRE_JWT_AUDIENCE | Audience when exchanging catalog OAuth (defaults to api_url) |
ZECTRE_CLUSTER_ID / ZECTRE_PROJECT_ID | Global overrides for link state |
TISH_COMPILER | Path to tish for Tish dev / build |
Per-project link state: .zectre/<clusterId>/
cluster.json— API base URL for this cluster alias.project.json—projectId,name,namespace.
Legacy root .zectre/project.json migrates into .zectre/default/ on next command.
Disambiguation: use --cluster, ZECTRE_CLUSTER_ID, or --api-url when multiple clusters exist. In CI, set ZECTRE_CLUSTER_ID explicitly.
Project manifest (zectre.yaml)
At the project root (so it stays versioned if .zectre/ is gitignored): deployment metadata (name, namespace, build, deploy, resources, networking). zectre dev / zectre build shell out to the tish binary for the default Tish workflow. For Docker deploys, set deploy.process_type: docker and deploy.image (or pass --image to zectre deploy) so the platform runs a container instead of a native binary.
name: my-app
namespace: production
build:
source: ./src/main.tish
features: [http, fs]
deploy:
replicas: 3
strategy: rolling
resources:
cpu: 100m
memory: 128Mi
networking:
port: 8080
protocol: httpInjected runtime env (on the platform)
| Variable | Meaning |
|---|---|
DEPLOYMENT_ID | Deployment UUID |
TASK_ID | Task instance UUID |