Read the cluster's operational posture level from the posture-current ConfigMap at ceremony grant time. Derive ShellClass via derive_shell_class() and stamp into the granted SessionScope. - Normal posture (5) -> ShellClass::System - Any DEFCON escalation -> ShellClass::Application - Fail-closed: missing ConfigMap -> Lockdown -> Application - posture_level_at_establishment stored for audit/breach comparison Signed-off-by: Tyler King <tking@guildhouse.dev> Signed-off-by: Tyler J King <tking727@gmail.com>
72 lines
1.7 KiB
TOML
72 lines
1.7 KiB
TOML
[package]
|
|
name = "bascule-gateway"
|
|
version = "0.1.0"
|
|
edition = "2021"
|
|
description = "Bascule governance gateway — cluster-side API gateway for governed access"
|
|
|
|
[[bin]]
|
|
name = "bascule-gateway"
|
|
path = "src/main.rs"
|
|
|
|
[dependencies]
|
|
bascule-core = { workspace = true }
|
|
bascule-proto = { workspace = true }
|
|
|
|
# Cross-workspace path deps — Guildhouse governance/ceremony primitives.
|
|
# Future: extract to standalone crates.
|
|
accord-core = { path = "../../guildhouse/services/accord-core" }
|
|
accord-opa = { path = "../../guildhouse/services/accord-opa" }
|
|
qm-core = { path = "../../guildhouse/services/qm-core" }
|
|
|
|
# Cross-workspace path dep — substrate governance types (for PostureLevel).
|
|
governance-types = { path = "../../substrate/crates/governance-types" }
|
|
|
|
# Kubernetes
|
|
kube = { workspace = true }
|
|
k8s-openapi = { workspace = true }
|
|
|
|
# gRPC
|
|
tonic = { workspace = true }
|
|
prost = { workspace = true }
|
|
prost-types = { workspace = true }
|
|
|
|
# Auth
|
|
jsonwebtoken = { workspace = true }
|
|
reqwest = { workspace = true }
|
|
|
|
# Database
|
|
sqlx = { workspace = true }
|
|
|
|
# Session cache
|
|
dashmap = { workspace = true }
|
|
|
|
# Async
|
|
tokio = { workspace = true }
|
|
async-trait = { workspace = true }
|
|
|
|
# Serialization
|
|
serde = { workspace = true }
|
|
serde_json = { workspace = true }
|
|
serde_json_canonicalizer = { workspace = true }
|
|
hex = { workspace = true }
|
|
sha2 = { workspace = true }
|
|
|
|
# Observability
|
|
tracing = { workspace = true }
|
|
tracing-subscriber = { workspace = true }
|
|
|
|
# HTTP (ceremony approval endpoints)
|
|
axum = { workspace = true }
|
|
tower-http = { workspace = true }
|
|
|
|
# Common
|
|
uuid = { workspace = true }
|
|
chrono = { workspace = true }
|
|
thiserror = { workspace = true }
|
|
anyhow = { workspace = true }
|
|
config = { workspace = true }
|
|
rustls = { workspace = true }
|
|
tokio-stream = "0.1"
|
|
|
|
[dev-dependencies]
|
|
tower = "0.5"
|