feat(wfe): integrate workflow engine for up, seed, verify, bootstrap
Dispatch `sunbeam up`, `sunbeam seed`, `sunbeam verify`, and `sunbeam bootstrap` through WFE workflows instead of monolithic functions. Steps communicate via JSON workflow data and each workflow is persisted in a per-context SQLite database.
This commit is contained in:
87
Cargo.toml
87
Cargo.toml
@@ -1,4 +1,87 @@
|
||||
[package]
|
||||
name = "sunbeam"
|
||||
version = "1.1.2"
|
||||
edition = "2024"
|
||||
description = "Sunbeam Studios CLI"
|
||||
repository = "https://src.sunbeam.pt/studio/cli"
|
||||
license = "MIT"
|
||||
|
||||
[[bin]]
|
||||
name = "sunbeam"
|
||||
path = "src/main.rs"
|
||||
|
||||
[workspace]
|
||||
members = ["sunbeam-sdk", "sunbeam"]
|
||||
exclude = ["vendor"]
|
||||
members = ["sunbeam-sdk"]
|
||||
resolver = "3"
|
||||
|
||||
[dependencies]
|
||||
# Core
|
||||
thiserror = "2"
|
||||
tokio = { version = "1", features = ["full"] }
|
||||
clap = { version = "4", features = ["derive"] }
|
||||
serde = { version = "1", features = ["derive"] }
|
||||
serde_json = "1"
|
||||
serde_yaml = "0.9"
|
||||
tracing = "0.1"
|
||||
tracing-subscriber = { version = "0.3", features = ["env-filter"] }
|
||||
rustls = { version = "0.23", features = ["ring"] }
|
||||
|
||||
# Kubernetes
|
||||
kube = { version = "0.99", features = ["client", "runtime", "derive", "ws"] }
|
||||
k8s-openapi = { version = "0.24", features = ["v1_32"] }
|
||||
|
||||
# HTTP + TLS
|
||||
reqwest = { version = "0.12", default-features = false, features = ["json", "rustls-tls"] }
|
||||
bytes = "1"
|
||||
|
||||
# SSH
|
||||
russh = "0.46"
|
||||
russh-keys = "0.46"
|
||||
|
||||
# Crypto
|
||||
rsa = "0.9"
|
||||
pkcs8 = { version = "0.10", features = ["pem"] }
|
||||
pkcs1 = { version = "0.7", features = ["pem"] }
|
||||
sha2 = "0.10"
|
||||
hmac = "0.12"
|
||||
base64 = "0.22"
|
||||
rand = "0.8"
|
||||
aes-gcm = "0.10"
|
||||
argon2 = "0.5"
|
||||
indicatif = { version = "0.17", features = ["tokio"] }
|
||||
|
||||
# Certificate generation
|
||||
rcgen = "0.14"
|
||||
|
||||
# SMTP
|
||||
lettre = { version = "0.11", default-features = false, features = ["smtp-transport", "tokio1-rustls-tls", "builder", "hostname"] }
|
||||
|
||||
# Archive handling
|
||||
flate2 = "1"
|
||||
tar = "0.4"
|
||||
|
||||
# Async
|
||||
futures = "0.3"
|
||||
tokio-stream = "0.1"
|
||||
|
||||
# Utility
|
||||
tempfile = "3"
|
||||
dirs = "5"
|
||||
chrono = { version = "0.4", features = ["serde"] }
|
||||
|
||||
# Workflow engine
|
||||
wfe = { version = "1.6.2", registry = "sunbeam" }
|
||||
wfe-core = { version = "1.6.2", registry = "sunbeam", features = ["test-support"] }
|
||||
wfe-sqlite = { version = "1.6.2", registry = "sunbeam" }
|
||||
wfe-yaml = { version = "1.6.2", registry = "sunbeam" }
|
||||
async-trait = "0.1"
|
||||
|
||||
[dev-dependencies]
|
||||
wiremock = "0.6"
|
||||
|
||||
[build-dependencies]
|
||||
reqwest = { version = "0.12", default-features = false, features = ["blocking", "rustls-tls"] }
|
||||
sha2 = "0.10"
|
||||
flate2 = "1"
|
||||
tar = "0.4"
|
||||
chrono = "0.4"
|
||||
|
||||
Reference in New Issue
Block a user