A catalog your teams publish to, templates that chain their products, five ways to order, a gateway for the APIs teams already run, a page that shows what everything did, a chat agent that answers from the docs, and one CLI to install and run it all. Here is each part, as it works today in 0.x.
Each team keeps its products in a catalog repository. The product.yaml says what the container's actions take and return, who may use them, how hard they may be pushed, and what to tell people when they fail. CI checks it, builds and scans the image, and publishes one signed release that every install pulls.
Every field: the catalog guide and product.schema.json.
A template names actions, never images, so it keeps working as products release. Its parameters become the form; each step's inputs are values, parameters, or another step's output. Every step still runs as its own product's identity, in its own team's namespace, whoever runs the template.
Products type their inputs and outputs (a project, a region, a database), so the cart can work out which step feeds which, what you already have, and what to ask once. Each step is still checked as if you ran it alone: a cart never lets you do more than you could step by step.
A Service in your namespace, a Cloud Run service or a Lambda function URL: add an api.yaml and its OpenAPI file to your catalog folder. The gateway answers at /<team>/<name>/, signs callers in as the console does, and forwards only what the spec describes, with a credential it mints per request. Nothing is stored.
One page with five tabs: Security checks, Metrics, Usage, Logs and the Audit log. Everyone can open it; what each person sees follows what they may see elsewhere.
Each check marked Enforced, Off here or Not yet, read from this install's settings; 7 days of refusals; every image with its last scan and SBOM.
Waiting and running now, wait to start at the 95th percentile, why steps failed, step times per product: from kernel-api's own tables.
Prometheus metrics from every component, with alerts and a Grafana dashboard, through your Prometheus Operator, GKE's or Amazon's managed Prometheus, or a bundled one.
Every change, allowed or refused, hash-chained; optionally copied to a bucket that refuses deletes and compared entry by entry.
Chain intactIt acts as the person asking, so it sees only what they may. Its only effect is a proposed cart, which they open and place themselves. A question that isn't about Vennir gets a fixed sentence; an answer resting on neither the docs it cites nor its tools' results is replaced.
The console is the one front door: Catalog, Runs, What runs made, APIs, Observe, your teams, and Admin, each page linking the guide that explains it. vennir installs it on kind, Google Cloud, AWS or a cluster you have, and keeps each environment as one folder of settings, never a secret.
Everything above is built. These are the gaps, from the repository's own list.
The full list: TODO.md. What is and isn't enforced: the security model.