[workspace] members = [".", "migration", "client-wasm"] [package] name = "barycenter" version = "0.2.0-alpha.15" edition = "2021" license = "MIT OR Apache-2.0" description = "OpenID Connect IdP with federation, property storage, and auto-registration the center of gravity between multiple objects." repository = "https://github.com/CloudNebulaProject/barycenter" homepage = "https://github.com/CloudNebulaProject/barycenter" documentation = "https://github.com/CloudNebulaProject/barycenter/blob/main/README.md" keywords = ["openid", "oauth2", "identity", "authentication", "oidc"] categories = ["authentication", "web-programming"] [lib] name = "barycenter" path = "src/lib.rs" [dependencies] axum = { version = "0.8", features = ["json", "form"] } tokio = { version = "1", features = ["full"] } tracing = "0.1" tracing-subscriber = { version = "0.3", features = ["env-filter", "fmt"] } clap = { version = "4", features = ["derive"] } miette = { version = "7", features = ["fancy"] } thiserror = "1" config = "0.14" serde = { version = "1", features = ["derive"] } serde_json = "1" serde_with = "3" # SeaORM for SQLite and PostgreSQL sea-orm = { version = "1", default-features = false, features = ["sqlx-sqlite", "sqlx-postgres", "runtime-tokio-rustls", "macros"] } sea-orm-migration = { version = "1", features = ["sqlx-sqlite", "sqlx-postgres", "runtime-tokio-rustls"] } migration = { path = "migration" } # JOSE / JWKS & JWT josekit = "0.10" # WebAuthn / Passkeys webauthn-rs = { version = "0.5", features = ["danger-allow-state-serialisation"] } uuid = { version = "1", features = ["v4", "serde"] } chrono = { version = "0.4", features = ["serde", "clock"] } time = "0.3" rand = "0.8" base64ct = { version = "1", features = ["alloc"] } anyhow = "1" sha2 = "0.10" serde_urlencoded = "0.7" # Password hashing argon2 = "0.5" # Rate limiting tower = "0.5" tower_governor = "0.4" tower-http = { version = "0.6", features = ["fs"] } # Validation regex = "1" url = "2" # GraphQL Admin API seaography = { version = "1", features = ["with-decimal", "with-chrono", "with-uuid"] } async-graphql = "7" async-graphql-axum = "7" # Background job scheduler tokio-cron-scheduler = "0.13" bincode = "2.0.1" [dev-dependencies] # Existing OIDC/OAuth testing openidconnect = { version = "4", features = ["reqwest-blocking"] } oauth2 = "5" reqwest = { version = "0.12", features = ["blocking", "json", "cookies"] } urlencoding = "2" # New test utilities tempfile = "3" # Temp SQLite databases for test isolation tokio-test = "0.4" # Async test utilities assert_matches = "1" # Pattern matching assertions pretty_assertions = "1" # Better assertion output with color diffs test-log = "0.2" # Capture tracing logs in tests serde_cbor = "0.11" # CBOR encoding for WebAuthn mocks [profile.release] debug = 1 # cargo-release configuration [package.metadata.release] # Skip publishing to crates.io publish = false # Ensure version is updated in Cargo.toml pre-release-commit-message = "chore: release {{version}}" # Create a git tag tag-message = "chore: release {{version}}" tag-name = "v{{version}}" # Push changes and tags push = true # Require branch to be main allow-branch = ["main"] # Run tests before releasing pre-release-replacements = [ { file = "CHANGELOG.md", search = "## \\[Unreleased\\]", replace = "## [Unreleased]\n\n## [{{version}}] - {{date}}", exactly = 1 }, { file = "deploy/helm/barycenter/Chart.yaml", search = "version: .*", replace = "version: {{version}}" }, { file = "deploy/helm/barycenter/Chart.yaml", search = "appVersion: .*", replace = "appVersion: \"{{version}}\"" }, ]