systemprompt-database 0.32.2

PostgreSQL infrastructure for systemprompt.io AI governance. SQLx-backed pool, generic repository traits, and compile-time query verification. Part of the systemprompt.io AI governance pipeline.
Documentation
[package]
name = "systemprompt-database"
version.workspace = true
edition.workspace = true
rust-version.workspace = true
authors.workspace = true
license.workspace = true
repository.workspace = true
homepage.workspace = true
documentation.workspace = true
keywords.workspace = true
description = "PostgreSQL infrastructure for systemprompt.io AI governance. SQLx-backed pool, generic repository traits, and compile-time query verification. Part of the systemprompt.io AI governance pipeline."
categories = ["database", "api-bindings", "authentication"]
readme = "README.md"
include = ["src/**/*", "schema/**/*", "Cargo.toml", "README.md", "CHANGELOG.md", ".sqlx/**/*"]

[lints]
workspace = true

[dependencies]
# Core dependencies
tokio = { workspace = true }
thiserror = { workspace = true }
tracing = { workspace = true }
serde = { workspace = true }
serde_json = { workspace = true }
async-trait = { workspace = true }

# Database
sqlx = { workspace = true, features = ["postgres", "uuid"] }

# systemprompt.io dependencies
systemprompt-traits = { workspace = true }
systemprompt-identifiers = { workspace = true, features = ["sqlx"] }
systemprompt-models = { workspace = true }
systemprompt-extension = { workspace = true }

# Utilities
chrono = { workspace = true }
uuid = { workspace = true }
base64 = { workspace = true }
rust_decimal = { workspace = true }
rand = { workspace = true }
futures-util = { workspace = true }

# Extension registration
inventory = { workspace = true }

# SQL parsing: schema linter, cross-extension ALTER detection, seed classification
pg_query = { workspace = true }

[package.metadata.docs.rs]
all-features = true
rustdoc-args = ["--cfg", "docsrs"]

[package.metadata.cargo-machete]
# inventory: compile-time registration via register_extension!/submit_* macros (::inventory::submit!)
ignored = ["inventory"]