Once your runbook passes local tests, shipping it is two moves:Documentation Index
Fetch the complete documentation index at: https://docs.ntropii.com/llms.txt
Use this file to discover all available pages before exploring further.
- Push — upload a runbook artifact to Ntropii Workspace. This stores the version but does not run anything.
- Deploy — copy the version to Ntropii Tenant, where it can actually execute against the data plane.
Prerequisites
- A workflow registered in Workspace (
ntro workflow create— seentro workflow) - An entity bound to a tenant (Configure environment)
- Local tests passing for the runbook
Push a version
A “version” is a packaged runbook — the source tree plus arequirements.txt describing exactly which dependencies the worker should install alongside it.
- CLI
- From a coding agent (CLI shell-out)
The requirements.txt contract
When Workspace receives the artifact, the receiving Ntropii Tenant later creates a fresh virtual environment from the artifact’s requirements.txt and installs exactly those pinned versions. Two runbooks pinned to different SDK versions can run side-by-side without conflict.
This means:
- Pin everything that matters.
ntro==1.4.2, notntroorntro>=1.4. Pinning is what makes the runbook reproducible six months from now. - Pin the SDK extras. If the runbook uses
ntro.workflow, pinntro[workflow]==1.4.2. - Don’t pin development-only deps.
pytestand friends belong in a separate dev requirements file the worker doesn’t see.
requirements.txt you can lift as a starting point.
Deploy a version to a tenant
Pushing a version doesn’t activate it. To make a version executable for a tenant, deploy it:- CLI
- MCP (coding agent)
Versioning and rollback
Multiple versions of the same workflow can coexist in Workspace. Only one version is “active” per tenant at a time — the most recent successful deploy. Rollback is just a deploy of the previous version:Triggering a run after deploy
Deploy makes a version available. To actually execute it, trigger a run:workflow run returns a task ID. Use ntro run status to follow it, or watch in the Tenant UI.
A coding agent can do the same via the ntro_workflow_run MCP tool.
A typical first deploy
Test locally
ntro workflow test ./runbooks/nav-monthly --child ... --child ... — confirm HAPPY and REJECT_ALL both pass.Register the workflow if it's new
ntro workflow create --name nav-monthly --description "..." --schedule "0 8 5 * *" --timezone Europe/LondonPush the artifact
zip -r nav-monthly.zip . then ntro workflow push <workflow-id> ./nav-monthly.zip. Note the version ID.Deploy to one tenant
ntro workflow deploy --workflow <id> --version <version-id> --tenant <staging-tenant>. Poll deploy-status until ready.Trigger a smoke run
ntro workflow run nav-monthly --tenant <staging-tenant> --entity <test-entity> --period 2026-03 --wait. The --wait flag polls until the run completes.What’s deferred
Two pieces of the Notion plan’s “Deploy & Run” section are not in this version of the docs:- Observer & diagnostics — the in-flight monitoring and exception handling that watches running workflows for anomalies. The system exists; the docs are still being written.
- Private infrastructure — guidance on deploying Ntropii Tenant on your own AKS / Vercel / etc. for data sovereignty.
Related
Testing locally
Catch regressions before they ship.
Run inspection
ntro run status and friends — track what’s running and what’s pending.