continuo-validation-runner
The slim, continuo-owned validation harness. It dispatches on VALIDATION_OP
(build_from_sql / clone_from_prod / ensure_schema / drop_schema), fetches
a node's candidate SQL from S3 when relevant, discovers the single installed
engine adapter (entry-point group continuo_validation.adapters), runs the
corresponding warehouse DDL through it, and prints exactly one sentinel-framed
result block on stdout.
It depends on continuo-validation-contract (the port + result-block) and, at
image-build time, on exactly one continuo-validation-<engine> library —
Dockerfile.postgres bakes in continuo-validation-postgres. Inside the
shipped images, the contract, the runner, and the engine adapter all install
from this repo's own workspace paths (contract/, runner/,
adapters/<engine>/) in a single pip transaction at image build time, not
from PyPI — see the Dockerfile comments for why. The container entrypoint is
python /validation_runner.py, which continuo's executor invokes.
python -m continuo_validation_runner reaches the identical main and is
convenient for local invocation, but it is not the image contract on its
own — an image built around this package standalone (e.g. for an engine
this repo doesn't ship) has more to satisfy than that one command. This
package is also published to PyPI as continuo-validation-runner for
exactly that use; see the bring-your-own-adapter section of the main
README
for the full image contract.
Job, not a service
This is not one of continuo's long-running services — see the service list at
github.com/carolsimone/continuo. It
ships as a container image (continuo-validation-<engine>) that
executor-controller dispatches as a one-shot Kubernetes Job
(BackoffLimit: 0, RestartPolicy: Never) per node or per schema op. The
process reads VALIDATION_OP, runs it once, prints one result block, and
exits — there is no process to keep alive, no gRPC/HTTP surface, and no owned
datastore.
Its entire behavior is the four ops dispatched through the ValidationAdapter
port (see continuo-validation-contract)
plus the sentinel result-block wire format. Because that surface is small and
fixed, this runner itself is very unlikely to need changes: adding support for
a new warehouse engine means adding a new continuo-validation-<engine>
adapter package and pointing VALIDATION_IMAGE at an image built from it, not
editing this code.
The sentinel result-block format is frozen: continuo's Go package
pkg/validationresult parses it, so changing it is a coordinated, versioned
event across both repos, not a local edit.
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 continuo_validation_runner-0.1.0.tar.gz.
File metadata
- Download URL: continuo_validation_runner-0.1.0.tar.gz
- Upload date:
- Size: 10.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
eafa897b5f762f7e1f5619bc26862cc5bf6cafc802b987eb2517abc047a87994
|
|
| MD5 |
a9e81aad9e5f521c489dacf7efdbde58
|
|
| BLAKE2b-256 |
bca53264c202ae1c22e65398256ce2577a04cbb8b3288d4a5aa9d21635b06aa6
|
Provenance
The following attestation bundles were made for continuo_validation_runner-0.1.0.tar.gz:
Publisher:
publish-pypi.yml on carolsimone/continuo-validation
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
continuo_validation_runner-0.1.0.tar.gz -
Subject digest:
eafa897b5f762f7e1f5619bc26862cc5bf6cafc802b987eb2517abc047a87994 - Sigstore transparency entry: 2339538781
- Sigstore integration time:
-
Permalink:
carolsimone/continuo-validation@af493845685074bc2e618123d6495be140a78a66 -
Branch / Tag:
refs/tags/pypi-runner-v0.1.0 - Owner: https://github.com/carolsimone
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-pypi.yml@af493845685074bc2e618123d6495be140a78a66 -
Trigger Event:
push
-
Statement type:
File details
Details for the file continuo_validation_runner-0.1.0-py3-none-any.whl.
File metadata
- Download URL: continuo_validation_runner-0.1.0-py3-none-any.whl
- Upload date:
- Size: 6.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d7cea7c235d335440d207f2331631ddc018c0b56a2ae0e3265f57d3ad0f12713
|
|
| MD5 |
e3f145afbfa61791f395f4f5f6471966
|
|
| BLAKE2b-256 |
fcd57faa5eb67a1fde750a6e266f25eb60a7ee8c9b8a73b55e7d4a1f44404344
|
Provenance
The following attestation bundles were made for continuo_validation_runner-0.1.0-py3-none-any.whl:
Publisher:
publish-pypi.yml on carolsimone/continuo-validation
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
continuo_validation_runner-0.1.0-py3-none-any.whl -
Subject digest:
d7cea7c235d335440d207f2331631ddc018c0b56a2ae0e3265f57d3ad0f12713 - Sigstore transparency entry: 2339538800
- Sigstore integration time:
-
Permalink:
carolsimone/continuo-validation@af493845685074bc2e618123d6495be140a78a66 -
Branch / Tag:
refs/tags/pypi-runner-v0.1.0 - Owner: https://github.com/carolsimone
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-pypi.yml@af493845685074bc2e618123d6495be140a78a66 -
Trigger Event:
push
-
Statement type: