Provisa / Environments
Dev, test and production never quite match.
Every change is applied by hand in each environment, they drift, and test data is either a risky copy of production or too thin to trust.
Each environment is a branch of the model
Analysts and developers make changes in their own environment and merge them back through a request someone approves. An environment can push to your git repository, so changes go through the release process you already run. Environments are available on a paid plan. Environments in the docs.
Each environment can carry its own data
Production's real rows, a pre-production copy with every sensitive column faked, or generated data for development. See the test-data demo.
Did that junior developer just take dev down again?
Or are you still waiting for someone to stand up the infrastructure? Everyone gets an isolated environment on their own desktop: no shared dev server to break, and no infrastructure to wait for. The same platform runs on a laptop and on a cluster.
Deploy anywhere
- Desktop installers. macOS, Windows, and Linux installers (the Linux installer covers Linux and NixOS), each with a one-click demo build that boots a sample stack. The macOS app is signed and notarized; for a signed install on Linux or Windows,
pip install provisainstalls the Sigstore-attested PyPI package. - Python wheel.
pip install "provisa[embedded]"installs the whole system, precompiled UI included, and works in an airgap over an Artifactory PyPI mirror, with no Docker, no JVM and no root. - Kubernetes and Helm. A production chart deploys the control plane, workers and engine, and the query tier scales horizontally.
- Cloud and VM with Terraform. Modules for AWS, Azure, and GCP stand up a VM or cluster deployment end to end.
Bring your own engine
The embedded profile runs an embedded PostgreSQL control plane and an embedded DuckDB engine. Bring your own engine with one env var: Trino, Databricks, Snowflake, Postgres, ClickHouse or Oracle. No release publishes until a CVE scan of its locked dependency set passes.