Vennir runs DAGs of container steps as Kubernetes Jobs. Each step is a product your platform teams published and reviewed, running as its own identity with only its own team's secrets, and handing its outputs to the next.
Today the script that makes a project, the one that makes a database and the one that deploys an app live in three repos with three sets of credentials. Vennir makes each one a product, and lets anyone chain them, without handing anyone the keys.
Each team keeps its products in a catalog repository. CI builds, tests, scans and signs every image, then publishes one signed release that every install pulls.
Add actions to a cart, and Vennir plans the order: which step feeds which, what to reuse, what to ask once. Or run a template, call the API, or let a bot order for your storefront.
The scheduler starts each step as a Kubernetes Job once the steps before it finish, passes their outputs in, retries what's safe to retry, and waits for an approval where one is needed.
The console checks every rule, and admission policies in the cluster check them again, so going around the console gets you nowhere. Each refusal comes back with a code that says why.
INFO lines to everyone who can see the run; the rest to the step's own team. Credentials are redacted before anything is kept.
A product says what its error codes mean, what to do, and whether a retry is safe, right on the failed step.
Waits, failures and step times from Vennir's own tables, and Prometheus alerts when you want them: your operator, a bundled one, or your cloud's managed service.
The project, the database, the service: recorded with what depends on what, so nothing is deleted out from under something else.
vennir asks a few questions, checks your tools and your cloud sign-in, and shows an approval screen with everything it will create and an estimate from your cloud's own prices. Then it installs, and can sleep, wake, back up and restore what it made.
A kind cluster, a local registry, the console and a first team; make catalog-publish then adds the sample products, one in five languages.