105 lines
3 KiB
TOML
105 lines
3 KiB
TOML
|
|
[package]
|
||
|
|
name = "audit"
|
||
|
|
version = "0.1.0"
|
||
|
|
edition = "2021"
|
||
|
|
rust-version = "1.75"
|
||
|
|
authors = ["Provctl Contributors"]
|
||
|
|
license = "MIT"
|
||
|
|
repository = "https://github.com/provctl"
|
||
|
|
|
||
|
|
description = "Automated security audit framework with SBOM, CVE scanning, and policy enforcement"
|
||
|
|
documentation = "https://docs.rs/audit"
|
||
|
|
keywords = ["audit", "security", "sbom", "vulnerability", "policy"]
|
||
|
|
categories = ["development-tools::debugging", "security"]
|
||
|
|
|
||
|
|
[dependencies]
|
||
|
|
# Core
|
||
|
|
serde = { version = "1", features = ["derive"] }
|
||
|
|
serde_json = "1.0"
|
||
|
|
serde_yaml = "0.9"
|
||
|
|
toml = "0.9"
|
||
|
|
thiserror = "2"
|
||
|
|
anyhow = "1"
|
||
|
|
tracing = "0.1"
|
||
|
|
tokio = { version = "1", features = ["sync"] }
|
||
|
|
|
||
|
|
# Time and ID
|
||
|
|
chrono = { version = "0.4", features = ["serde"] }
|
||
|
|
uuid = { version = "1", features = ["v4", "serde"] }
|
||
|
|
|
||
|
|
# SBOM formats (optional)
|
||
|
|
cyclonedx-bom = { version = "0.7", optional = true }
|
||
|
|
spdx-rs = { version = "0.5", optional = true }
|
||
|
|
|
||
|
|
# Policy engine (optional)
|
||
|
|
regorus = { version = "0.2", optional = true }
|
||
|
|
|
||
|
|
# HTTP for scanner APIs
|
||
|
|
reqwest = { version = "0.11", features = ["json"], optional = true }
|
||
|
|
|
||
|
|
# Async utilities
|
||
|
|
async-trait = "0.1"
|
||
|
|
|
||
|
|
# Process execution
|
||
|
|
which = "5.0"
|
||
|
|
|
||
|
|
# Crate integrations (optional)
|
||
|
|
#syntaxis-integration = { path = "../syntaxis-integration" }
|
||
|
|
valida = { path = "../valida", optional = true }
|
||
|
|
observability = { path = "../observability", optional = true }
|
||
|
|
gitops = { path = "../gitops", optional = true }
|
||
|
|
runtime = { path = "../runtime", optional = true }
|
||
|
|
encrypt = { path = "../encrypt", optional = true }
|
||
|
|
|
||
|
|
# Benchmarking
|
||
|
|
criterion = { version = "0.5", optional = true }
|
||
|
|
|
||
|
|
[dev-dependencies]
|
||
|
|
tokio = { version = "1", features = ["full"] }
|
||
|
|
tempfile = "3"
|
||
|
|
|
||
|
|
[features]
|
||
|
|
default = ["sbom-cyclonedx", "scanner-trivy", "valida-integration"]
|
||
|
|
|
||
|
|
# SBOM formats
|
||
|
|
sbom-cyclonedx = ["dep:cyclonedx-bom"]
|
||
|
|
sbom-spdx = ["dep:spdx-rs"]
|
||
|
|
sbom = ["sbom-cyclonedx", "sbom-spdx"]
|
||
|
|
|
||
|
|
# Vulnerability scanners
|
||
|
|
scanner-cargo-audit = []
|
||
|
|
scanner-trivy = ["dep:reqwest"]
|
||
|
|
scanner-grype = ["dep:reqwest"]
|
||
|
|
scanner-osv = ["dep:reqwest"]
|
||
|
|
scanner-full = ["scanner-cargo-audit", "scanner-trivy", "scanner-grype", "scanner-osv"]
|
||
|
|
|
||
|
|
# Policy engines
|
||
|
|
policy-opa = ["dep:regorus"]
|
||
|
|
policy-kyverno = []
|
||
|
|
policy = ["policy-opa"]
|
||
|
|
|
||
|
|
# Chaos engineering
|
||
|
|
chaos = []
|
||
|
|
chaos-mesh = ["chaos"]
|
||
|
|
chaos-litmus = ["chaos"]
|
||
|
|
|
||
|
|
# Benchmark
|
||
|
|
benchmark = ["dep:criterion"]
|
||
|
|
|
||
|
|
# Knowledge base
|
||
|
|
knowledge-docs = []
|
||
|
|
knowledge-rag = ["dep:reqwest"]
|
||
|
|
|
||
|
|
# Crate integrations
|
||
|
|
syntaxis-integration = []
|
||
|
|
valida-integration = ["dep:valida"]
|
||
|
|
observability-integration = ["dep:observability"]
|
||
|
|
gitops-integration = ["dep:gitops"]
|
||
|
|
runtime-integration = ["dep:runtime"]
|
||
|
|
encrypt-integration = ["dep:encrypt"]
|
||
|
|
#full-integration = ["syntaxis-integration", "valida-integration", "observability-integration", "gitops-integration", "runtime-integration", "encrypt-integration"]
|
||
|
|
full-integration = ["valida-integration", "observability-integration", "gitops-integration", "runtime-integration", "encrypt-integration"]
|
||
|
|
|
||
|
|
# All features
|
||
|
|
full = ["sbom", "scanner-full", "policy", "chaos", "benchmark", "knowledge-docs", "full-integration"]
|