[package]
name = "assay-engine"
version = "0.5.4"
categories = ["asynchronous", "database", "web-programming::http-server"]
edition = "2024"
keywords = ["workflow", "auth", "oidc", "zanzibar", "postgres"]
license = "Apache-2.0"
repository = "https://github.com/developerinlondon/assay"
description = "Standalone workflow + auth + dashboard HTTP server on PostgreSQL 18 + SQLite. Embeddable as a library, or run as a binary."
[[bin]]
name = "assay-engine"
path = "src/bin/assay-engine.rs"
required-features = ["server"]
[lib]
name = "assay_engine"
path = "src/lib.rs"
[features]
default = [
"backend-postgres",
"backend-sqlite",
"server",
"auth-jwt",
"auth-session",
"auth-password",
"auth-passkey",
"auth-oidc",
"auth-oidc-provider",
"auth-zanzibar",
"vault",
]
auth-jwt = ["assay-auth/auth-jwt"]
auth-session = ["assay-auth/auth-session"]
auth-password = ["assay-auth/auth-password"]
auth-passkey = ["assay-auth/auth-passkey"]
auth-oidc = ["assay-auth/auth-oidc"]
auth-oidc-provider = ["assay-auth/auth-oidc-provider"]
auth-zanzibar = ["assay-auth/auth-zanzibar"]
vault = [
"dep:assay-vault",
"assay-vault/vault",
"vault-kv",
"vault-transit",
"vault-collections",
"vault-share",
"vault-bitwarden-compat",
"vault-sealing-shamir",
"vault-audit-forwarding",
"vault-dynamic-postgres",
]
vault-sealing-shamir = ["assay-vault?/vault-sealing-shamir"]
vault-audit-forwarding = ["assay-vault?/vault-audit-forwarding"]
vault-dynamic-postgres = ["assay-vault?/vault-dynamic-postgres"]
vault-kv = ["assay-vault?/vault-kv"]
vault-transit = ["assay-vault?/vault-transit"]
vault-collections = ["assay-vault?/vault-collections"]
vault-share = ["assay-vault?/vault-share"]
vault-bitwarden-compat = ["assay-vault?/vault-bitwarden-compat"]
vault-sealing-hsm = ["assay-vault?/vault-sealing-hsm"]
server = ["dep:clap"]
backend-postgres = [
"assay-workflow/backend-postgres",
"assay-auth/backend-postgres",
"assay-vault?/backend-postgres",
]
backend-sqlite = [
"assay-workflow/backend-sqlite",
"assay-auth/backend-sqlite",
"assay-vault?/backend-sqlite",
]
[dependencies]
assay-auth = { path = "../assay-auth", version = "0.6" }
assay-dashboard = { path = "../assay-dashboard", version = "0.4" }
assay-domain = { path = "../assay-domain", version = "0.2" }
assay-vault = { path = "../assay-vault", version = "0.4", optional = true, default-features = false }
assay-workflow = { path = "../assay-workflow", version = "0.4" }
axum = "0.8"
clap = { version = "4", features = ["derive", "env"], optional = true }
tokio = { version = "1", features = ["full"] }
tower-http = { version = "0.6", features = ["cors", "trace"] }
sqlx = { version = "0.8", features = ["runtime-tokio-rustls", "postgres", "sqlite"] }
uuid = { version = "1.18", features = ["v7", "serde"] }
url = "2"
anyhow = "1"
serde = { version = "1", features = ["derive"] }
serde_json = "1"
thiserror = "2"
toml = "0.9"
tracing = "0.1"
tracing-subscriber = { version = "0.3", features = ["env-filter", "json"] }
openssl = { version = "0.10", features = ["vendored"] }
[dev-dependencies]
base64 = "0.22"
reqwest = { version = "0.13", default-features = false, features = ["json", "rustls"] }
tempfile = "3"
tokio = { version = "1", features = ["full", "test-util"] }