This section documents release 2026.10.10. Commands and values refer to that release unless a page says otherwise.
Architecture
Everything runs in one GKE Autopilot cluster, in two namespaces:Google Cloud services
How requests reach the platform
One hostname serves the web app, the API, the MCP server and realtime. The Gateway routes by path:
Zitadel is served on a second hostname of its own. Because the web app and the API share one origin, the browser’s calls from the web app to the API are same-origin requests.
The Gateway is GKE’s own Gateway API implementation, so the installation ships no ingress proxy. By default it creates an internal regional load balancer, reachable only from inside your network. See DNS and TLS for the other choices.
How sign-in works
Zitadel is the identity layer built into the installation. It federates to your own OIDC identity provider (Okta, Microsoft Entra ID, Google and others), so your users sign in with their existing accounts.- A user opens the web app and is sent to Zitadel’s sign-in page, which only accepts users of your organization.
- The user chooses your identity provider’s button and signs in there. Your provider redirects the browser back to Zitadel, and Zitadel completes the exchange with your provider from inside the cluster.
- The first time a person signs in, Zitadel creates their user (or links them by email to a user that already exists). They see nothing in Jedify until you give them a role.
- Zitadel issues a token to the web app. The API verifies it against Zitadel’s public keys and reads the user’s roles from Zitadel’s management API, inside the cluster.
How model calls flow
The application never calls a model provider directly. Every model call goes to the LiteLLM proxy in thejedify namespace. The proxy runs as its own Google service account, which holds one role, roles/aiplatform.user, and calls Vertex AI over Private Google Access.
The application asks for models by fixed names. The proxy maps each name to a Vertex AI model, so changing models is a values change, not an image change. You can also replace the bundled proxy with an OpenAI-compatible gateway you already run. See Model gateway.
Identities and permissions
OpenTofu creates three Google service accounts. Each Kubernetes ServiceAccount is bound to one of them through Workload Identity.
Firestore has no per-database data role, so
roles/datastore.user reaches every Firestore database in the project. That’s why the installation expects a project of its own.
Two roles
The install splits into two halves. One person or team can do both, but the split tells you which half to check when something fails.
Role B can’t verify Role A’s half. Helm can check that a Secret Manager object has been named, never that it exists or holds the right keys. So each missing piece fails in a known way:
Release artifacts and versioning
Jedify publishes each release to a private release registry in Google Artifact Registry and grants read access to a Google identity you name. One release is six artifacts under one version:
Versions are calendar versions:
<year>.<month>.<release within the month>, with no leading zero (October 2026’s tenth release is 2026.10.10). A version names a set of charts and images tested together. It makes no compatibility promise, so read Upgrades before moving between versions, and always move every artifact to the same version.
From 2026.10.2, every image is published for both arm64 and amd64. Releases 2026.10.1 and earlier publish Jedify’s own images for arm64 only.
What a self-hosted installation doesn’t support
- Context Graph Versioning. The git-backed version history of the Context Graph reaches its repositories through an Amazon S3 transport, which a Google Cloud installation doesn’t have. The rest of the application runs without it, and only that feature’s route returns an error, about a missing bucket name. See Context Graph Versioning.
- Sorting the semantic dimensions list by name. Firestore doesn’t support MongoDB collations, so that one sort returns an error. Every other sort works.
Next steps
Requirements
Project, permissions, network, DNS and TLS.
Install
OpenTofu, both charts and the Zitadel setup, step by step.
Identity and sign-in
Connect your identity provider and grant roles.
Troubleshooting
Symptoms, causes and fixes.