VIP - Verified Installation of Posit
An open-source, extensible test suite that validates Posit Team deployments are installed correctly and functioning properly.
VIP uses BDD-style tests (pytest-bdd + Playwright) to verify Connect, Workbench, and Package Manager deployments. Results can be viewed from the command-line output or compiled into an HTML report.
Documentation: https://posit-dev.github.io/vip/
Quick start
uv tool install posit-vip
vip install
vip verify --connect-url https://connect.example.com --interactive-auth
Reproducible install
uv tool install posit-vip resolves the newest versions each release allows. To
install the exact set a release was tested against, pass that release's
constraints file (attached to every GitHub release as constraints-<version>.txt):
uv tool install posit-vip \
-c https://github.com/posit-dev/vip/releases/download/vX.Y.Z/constraints-X.Y.Z.txt
Replace X.Y.Z with the release you are installing (see the
releases page).
For a fully pinned, batteries-included environment, use the container image,
which installs from the committed uv.lock:
docker run --rm -v "$PWD/vip.toml:/app/vip.toml" ghcr.io/posit-dev/vip:latest
On a headless server (no display), use --headless-auth instead:
vip verify --config vip.toml --headless-auth
Run a specific test by name:
vip verify --connect-url https://connect.example.com --filter test_login
With a configuration file:
cp vip.toml.example vip.toml # edit with your deployment details
vip verify --config vip.toml
Fast confidence check — skip the detailed/long-running checks:
vip verify --config vip.toml --basic
Uninstalling
To reverse what vip install (or just setup) did:
vip uninstall # dry run; prints the full plan including any sudo command
vip uninstall --yes # remove Playwright cache + manifest; prints the sudo command
# for any system packages so you can remove them yourself
uv tool uninstall posit-vip # remove vip itself once you're done
vip uninstall only removes packages and files that vip install recorded
in .vip-install.json; anything that was already on your machine before
running vip install is left alone.
If a Connect URL is configured (in vip.toml or via --connect-url),
vip uninstall chains vip cleanup first to remove _vip_test-tagged
content from Connect.
CLI commands
| Command | Description |
|---|---|
vip verify |
Run verification tests against a Posit Team deployment |
vip status |
Quick health check for each configured product |
vip cleanup |
Delete VIP _vip_test content from Connect |
vip report |
Render the HTML report from test results (requires Quarto CLI) |
vip auth |
Authentication tools (e.g. mint Connect API keys) |
vip version |
Print the vip version and the minimum supported Posit Team version |
vip --version |
Print the installed vip version |
Run vip --help or vip <command> --help for full usage details.
CI / pipeline integration
VIP emits machine-readable output for security-ops and CI/CD pipelines.
vip verify always writes report/results.json (and report/failures.json on
failures). Add JUnit XML and/or SARIF with --format:
vip verify --format json,junit,sarif
# report/results.json (always)
# report/junit.xml (--format junit) -> CI test dashboards
# report/results.sarif (--format sarif) -> GitHub code scanning / secops
The --ci preset bundles all three formats with concise tracebacks (--tb=short)
and overrides --format if both are given. Run it without --interactive-auth/
--headless-auth -- combining them is an error, since --ci is meant for
non-interactive pipelines:
vip verify --ci
Container
An official image is published to ghcr.io/posit-dev/vip. The entrypoint is the
vip CLI; the default subcommand is verify. Because docker run args replace
the default command (they do not append to it), name the verify subcommand
explicitly when passing verify flags:
# bare invocation runs `vip verify`:
docker run --rm -v "$PWD/vip.toml:/app/vip.toml" ghcr.io/posit-dev/vip
# CI preset (name the subcommand so args don't replace it):
docker run --rm -v "$PWD/vip.toml:/app/vip.toml" ghcr.io/posit-dev/vip verify --ci
# other subcommands are reachable too:
docker run --rm -v "$PWD/vip.toml:/app/vip.toml" ghcr.io/posit-dev/vip status --json
Development
See docs/development.md for dev setup, linting, and formatting.
For the test architecture and four-layer design, see docs/test-architecture.md.
License
MIT — see LICENSE.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file posit_vip-0.58.10.tar.gz.
File metadata
- Download URL: posit_vip-0.58.10.tar.gz
- Upload date:
- Size: 1.2 MB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/6.1.0 CPython/3.13.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
dd5b1ce2fd07440d97f0d7fef55f092f392881c9d5a40746c8a8b5a1ea979f11
|
|
| MD5 |
cc05678cbc2b1726c839489ede75bdd1
|
|
| BLAKE2b-256 |
97f7491d68c80861a91e54698be82dc5bbd67f8fc59bb61db3e8e79ba1e1f9d9
|
Provenance
The following attestation bundles were made for posit_vip-0.58.10.tar.gz:
Publisher:
publish.yml on posit-dev/vip
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
posit_vip-0.58.10.tar.gz -
Subject digest:
dd5b1ce2fd07440d97f0d7fef55f092f392881c9d5a40746c8a8b5a1ea979f11 - Sigstore transparency entry: 2281574246
- Sigstore integration time:
-
Permalink:
posit-dev/vip@c84b2185a9cbe5d9d9bb6525b32639c5ab770970 -
Branch / Tag:
refs/tags/v0.58.10 - Owner: https://github.com/posit-dev
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@c84b2185a9cbe5d9d9bb6525b32639c5ab770970 -
Trigger Event:
push
-
Statement type:
File details
Details for the file posit_vip-0.58.10-py3-none-any.whl.
File metadata
- Download URL: posit_vip-0.58.10-py3-none-any.whl
- Upload date:
- Size: 378.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/6.1.0 CPython/3.13.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9ce4824c1759d821ae27984bf6bb53de9193a67cb7abf6615f024814800bd6a8
|
|
| MD5 |
cf13ecdca30c86d75049a685a4ba73bc
|
|
| BLAKE2b-256 |
24270be0f5669e2cd00cf471e85902b50e270e17fd772ff370d593c1d03e38cf
|
Provenance
The following attestation bundles were made for posit_vip-0.58.10-py3-none-any.whl:
Publisher:
publish.yml on posit-dev/vip
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
posit_vip-0.58.10-py3-none-any.whl -
Subject digest:
9ce4824c1759d821ae27984bf6bb53de9193a67cb7abf6615f024814800bd6a8 - Sigstore transparency entry: 2281574299
- Sigstore integration time:
-
Permalink:
posit-dev/vip@c84b2185a9cbe5d9d9bb6525b32639c5ab770970 -
Branch / Tag:
refs/tags/v0.58.10 - Owner: https://github.com/posit-dev
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@c84b2185a9cbe5d9d9bb6525b32639c5ab770970 -
Trigger Event:
push
-
Statement type: