CI / Check (pull_request) Successful in 5m44s
CI / Detect Changes (pull_request) Has been skipped
CI / Deploy Agent (pull_request) Has been skipped
CI / Deploy Dashboard (pull_request) Has been skipped
CI / Deploy Docs (pull_request) Has been skipped
CI / Deploy MCP (pull_request) Has been skipped
The shared, dependency-free vocabulary the control plane and the Werkbank execution runner agree on: Job (declarative — TOML on disk, JSON on the wire), JobType (plc-provision/qemu-boot/dast/pentest), Executor (shell/docker/k8s), JobStatus lifecycle, InputRef (blob/url — the artifact resolves on the runner, never through the control plane), JobRuntime, JobCollect, and JobResult (reusing Finding/DastFinding/SbomEntry so the runner produces exactly what the control plane persists). Lives in a mongodb/axum-feature-free module so the runner can depend on compliance-core without the server stack (verified: cargo check -p compliance-core --no-default-features). Tests round-trip through JSON and parse the exact plc-provision + qemu-boot TOML from the Werkbank design doc. First story of the Werkbank epic (sharang/werkbank#1); implements sharang/werkbank#2. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
57 lines
1.7 KiB
TOML
57 lines
1.7 KiB
TOML
[package]
|
|
name = "compliance-core"
|
|
version = "0.1.0"
|
|
edition = "2021"
|
|
|
|
[lints]
|
|
workspace = true
|
|
|
|
[features]
|
|
default = ["mongodb"]
|
|
mongodb = ["dep:mongodb"]
|
|
telemetry = [
|
|
"dep:opentelemetry",
|
|
"dep:opentelemetry_sdk",
|
|
"dep:opentelemetry-otlp",
|
|
"dep:opentelemetry-appender-tracing",
|
|
"dep:tracing-opentelemetry",
|
|
"dep:tracing-subscriber",
|
|
"dep:tracing",
|
|
]
|
|
# Pulls in the M7.1 Axum middleware + extractor. Consumers that don't
|
|
# embed an HTTP server (e.g. the wasm dashboard frontend) leave it off.
|
|
axum = [
|
|
"dep:axum",
|
|
"dep:jsonwebtoken",
|
|
"dep:reqwest",
|
|
"dep:tokio",
|
|
"dep:tracing",
|
|
]
|
|
|
|
[dependencies]
|
|
serde = { workspace = true }
|
|
serde_json = { workspace = true }
|
|
chrono = { workspace = true }
|
|
thiserror = { workspace = true }
|
|
sha2 = { workspace = true }
|
|
hex = { workspace = true }
|
|
uuid = { workspace = true }
|
|
secrecy = { workspace = true }
|
|
bson = { version = "2", features = ["chrono-0_4"] }
|
|
mongodb = { workspace = true, optional = true }
|
|
opentelemetry = { version = "0.29", optional = true }
|
|
opentelemetry_sdk = { version = "0.29", features = ["rt-tokio"], optional = true }
|
|
opentelemetry-otlp = { version = "0.29", features = ["http", "reqwest-rustls"], optional = true }
|
|
opentelemetry-appender-tracing = { version = "0.29", optional = true }
|
|
tracing-opentelemetry = { version = "0.30", optional = true }
|
|
tracing-subscriber = { workspace = true, optional = true }
|
|
tracing = { workspace = true, optional = true }
|
|
axum = { version = "0.8", optional = true }
|
|
jsonwebtoken = { version = "9", optional = true }
|
|
reqwest = { workspace = true, optional = true }
|
|
tokio = { workspace = true, optional = true }
|
|
|
|
[dev-dependencies]
|
|
# Parse the declarative TOML job specs in the Werkbank contract tests.
|
|
toml = "0.8"
|