2026-03-21 14:34:15 +00:00
|
|
|
[package]
|
|
|
|
|
name = "sunbeam-sdk"
|
2026-03-21 22:29:13 +00:00
|
|
|
version = "1.0.0"
|
2026-03-21 14:34:15 +00:00
|
|
|
edition = "2024"
|
|
|
|
|
description = "Sunbeam SDK — reusable library for cluster management"
|
2026-03-21 15:17:47 +00:00
|
|
|
repository = "https://src.sunbeam.pt/studio/cli"
|
|
|
|
|
license = "MIT"
|
|
|
|
|
publish = ["sunbeam"]
|
2026-03-21 14:34:15 +00:00
|
|
|
|
|
|
|
|
[features]
|
feat: ServiceClient trait, HttpTransport, and SunbeamClient factory
Foundation layer for unified service client wrappers:
- AuthMethod enum (None, Bearer, Header, Token)
- ServiceClient trait with service_name(), base_url(), from_parts()
- HttpTransport with json(), json_opt(), send(), bytes() helpers
- SunbeamClient lazy factory with OnceLock-cached per-service clients
- Feature flags for all service modules (identity, gitea, matrix, etc.)
Bump: sunbeam-sdk v0.2.0
2026-03-21 20:11:22 +00:00
|
|
|
default = ["identity", "gitea"]
|
|
|
|
|
identity = []
|
|
|
|
|
gitea = []
|
|
|
|
|
pm = ["gitea"]
|
|
|
|
|
matrix = []
|
|
|
|
|
opensearch = []
|
|
|
|
|
s3 = []
|
|
|
|
|
livekit = []
|
|
|
|
|
monitoring = []
|
|
|
|
|
lasuite = []
|
|
|
|
|
build = []
|
|
|
|
|
cli = ["dep:clap"]
|
|
|
|
|
all = ["identity", "gitea", "pm", "matrix", "opensearch", "s3", "livekit", "monitoring", "lasuite", "build"]
|
|
|
|
|
integration = ["all"]
|
2026-03-21 14:34:15 +00:00
|
|
|
|
|
|
|
|
[dependencies]
|
|
|
|
|
# Core
|
|
|
|
|
thiserror = "2"
|
|
|
|
|
tokio = { version = "1", features = ["full"] }
|
|
|
|
|
clap = { version = "4", features = ["derive"], optional = true }
|
|
|
|
|
serde = { version = "1", features = ["derive"] }
|
|
|
|
|
serde_json = "1"
|
|
|
|
|
serde_yaml = "0.9"
|
|
|
|
|
tracing = "0.1"
|
|
|
|
|
|
|
|
|
|
# Kubernetes
|
|
|
|
|
kube = { version = "0.99", features = ["client", "runtime", "derive", "ws"] }
|
|
|
|
|
k8s-openapi = { version = "0.24", features = ["v1_32"] }
|
|
|
|
|
|
|
|
|
|
# HTTP + TLS
|
2026-03-21 22:29:13 +00:00
|
|
|
reqwest = { version = "0.12", default-features = false, features = ["json", "rustls-tls", "blocking"] }
|
feat: ServiceClient trait, HttpTransport, and SunbeamClient factory
Foundation layer for unified service client wrappers:
- AuthMethod enum (None, Bearer, Header, Token)
- ServiceClient trait with service_name(), base_url(), from_parts()
- HttpTransport with json(), json_opt(), send(), bytes() helpers
- SunbeamClient lazy factory with OnceLock-cached per-service clients
- Feature flags for all service modules (identity, gitea, matrix, etc.)
Bump: sunbeam-sdk v0.2.0
2026-03-21 20:11:22 +00:00
|
|
|
bytes = "1"
|
2026-03-21 14:34:15 +00:00
|
|
|
|
|
|
|
|
# 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"
|
|
|
|
|
|
|
|
|
|
# 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"] }
|
|
|
|
|
|
feat: ServiceClient trait, HttpTransport, and SunbeamClient factory
Foundation layer for unified service client wrappers:
- AuthMethod enum (None, Bearer, Header, Token)
- ServiceClient trait with service_name(), base_url(), from_parts()
- HttpTransport with json(), json_opt(), send(), bytes() helpers
- SunbeamClient lazy factory with OnceLock-cached per-service clients
- Feature flags for all service modules (identity, gitea, matrix, etc.)
Bump: sunbeam-sdk v0.2.0
2026-03-21 20:11:22 +00:00
|
|
|
[dev-dependencies]
|
|
|
|
|
wiremock = "0.6"
|
|
|
|
|
|
2026-03-21 14:34:15 +00:00
|
|
|
[build-dependencies]
|
2026-03-21 22:29:13 +00:00
|
|
|
reqwest = { version = "0.12", default-features = false, features = ["blocking", "rustls-tls"] }
|
2026-03-21 14:34:15 +00:00
|
|
|
sha2 = "0.10"
|
|
|
|
|
flate2 = "1"
|
|
|
|
|
tar = "0.4"
|
|
|
|
|
chrono = "0.4"
|