rustio-admin-cli 0.18.4

Command-line tools for rustio-admin: project scaffolding, migrations, user management.
[package]
name = "rustio-admin-cli"
# Tracks the workspace minor. Bundled template pins new projects to
# `rustio-admin = "0.18.4"`. CI guards this in `.github/workflows/ci.yml`.
version = "0.18.4"
edition.workspace = true
rust-version.workspace = true
license.workspace = true
repository.workspace = true
homepage.workspace = true
authors.workspace = true
description = "Command-line tools for rustio-admin: project scaffolding, migrations, user management."
readme = "../../README.md"

[[bin]]
name = "rustio"
path = "src/main.rs"

[dependencies]
rustio-admin = { workspace = true }
# Theme engine (DESIGN_THEME). Build-time only — the `rustio theme
# generate` subcommand turns raw brand colors into a static tokens.css.
# Runtime CSS is the generated file; the library does not depend on
# this crate.
rio-theme = { path = "../rio-theme", version = "0.18.4" }

# CLI surface
clap      = { version = "4", features = ["derive"] }
rpassword = "7"

# DB + env (DATABASE_URL is read from .env when present)
sqlx      = { version = "0.8", default-features = false, features = ["runtime-tokio", "postgres", "chrono"] }
chrono    = { version = "0.4", default-features = false, features = ["clock", "std"] }
dotenvy   = "0.15"
tokio     = { version = "1", features = ["rt-multi-thread", "macros"] }
env_logger = "0.11"
log       = "0.4"
# R4 emergency-recovery audit metadata. The CLI assembles a
# `serde_json::Value` per command (`cli_operation`, `reason`,
# `os_actor`, `cli_invocation`, plus per-op fields) and hands it
# to the framework's `audit::record`. The crate is already in the
# transitive tree via rustio-admin; declaring it as a direct dep
# keeps the call site reviewable.
serde_json = "1"
# `rustio doctor email` opens a SMTP handshake against the
# configured server (and optionally sends a single test
# message). Matches the `lettre` feature set the
# clinic-appointments example ships with.
lettre = { version = "0.11", default-features = false, features = ["smtp-transport", "tokio1", "tokio1-rustls-tls", "builder", "hostname"] }

# Builder layer (DESIGN_BUILDER.md). These deps power the
# deterministic project compiler: canonical TOML emission, append-
# only event log, SchemaHash computation, and the redactor that
# prevents secrets from landing in `.rustio/history.jsonl`. The
# Builder is build-time only — none of these crates is reachable
# from runtime code in `rustio-admin`.
ulid = "1"
toml_edit = "0.22"
sha2 = "0.10"
unicode-normalization = "0.1"
serde = { version = "1", features = ["derive"] }