Skip to main content

Crate systemprompt_database

Crate systemprompt_database 

Source
Expand description

§systemprompt-database

PostgreSQL infrastructure for systemprompt.io: a thin SQLx-backed pool, generic repository traits, dynamic-query primitives for admin tooling, and lifecycle helpers (schema installation, extension migrations, validation).

§Public API surface

§Feature flags

This crate currently has no Cargo features; everything compiles unconditionally. The [package.metadata.docs.rs] block is in place so --all-features documentation builds remain stable as features are added.

§sqlx allowlist

Static SQL goes through the compile-time-verified sqlx::query! / query_as! / query_scalar! macros. Runtime/dynamic SQL is contained to two paths whose contract is dynamic SQL by design; the lint-sqlx gate allows runtime sqlx::query only there:

  • src/admin/ — admin CLI surfaces (introspection, restricted query executor) where the SQL is the user input.
  • src/services/postgres/ — the dyn-safe DatabaseProvider implementation, transaction wrapper, type-erased helpers and PostgreSQL schema introspection.

Every other call site uses verified macros.

Copyright (c) systemprompt.io — Business Source License 1.1. See https://systemprompt.io for licensing details.

Re-exports§

pub use extension::DatabaseExtension;
pub use models::ColumnInfo;
pub use models::DatabaseInfo;
pub use models::DatabaseQuery;
pub use models::DatabaseTransaction;
pub use models::IndexInfo;
pub use models::QueryResult;
pub use models::QueryRow;
pub use models::QuerySelector;
pub use models::TableInfo;
pub use services::BoxFuture;
pub use services::Database;
pub use services::DatabaseCliDisplay;
pub use services::DatabaseExt;
pub use services::DatabaseProvider;
pub use services::DbPool;
pub use services::PoolConfig;
pub use services::PostgresProvider;
pub use services::SqlExecutor;
pub use services::with_transaction_retry;
pub use error::DatabaseResult;
pub use lifecycle::AppliedMigration;
pub use lifecycle::BOOTSTRAP_ADVISORY_LOCK_KEY;
pub use lifecycle::BaselineStamp;
pub use lifecycle::BootstrapLockGuard;
pub use lifecycle::ChecksumDrift;
pub use lifecycle::DeferredForeignKey;
pub use lifecycle::ExpensiveStatement;
pub use lifecycle::ExtensionMigrationStatus;
pub use lifecycle::FkDeferralError;
pub use lifecycle::ForeignKeyDrift;
pub use lifecycle::FreshnessCheck;
pub use lifecycle::HOT_TABLES;
pub use lifecycle::MarkAppliedOutcome;
pub use lifecycle::MigrationConfig;
pub use lifecycle::MigrationCost;
pub use lifecycle::MigrationResult;
pub use lifecycle::MigrationService;
pub use lifecycle::MigrationStatus;
pub use lifecycle::OrphanMigrationLedger;
pub use lifecycle::OrphanedMigration;
pub use lifecycle::PendingMigration;
pub use lifecycle::RepairResult;
pub use lifecycle::ReplicaStatus;
pub use lifecycle::SchemaCurrency;
pub use lifecycle::SchemaInstallReport;
pub use lifecycle::SchemaResidue;
pub use lifecycle::SlotCollision;
pub use lifecycle::SplitCreateTable;
pub use lifecycle::TombstonedSlot;
pub use lifecycle::UndeclaredTable;
pub use lifecycle::audit_migration_cost;
pub use lifecycle::audit_one;
pub use lifecycle::audit_schema_residue;
pub use lifecycle::check_migration_references;
pub use lifecycle::check_trigger_routines;
pub use lifecycle::install_extension_schemas_full;
pub use lifecycle::is_retirement;
pub use lifecycle::replica_status;
pub use lifecycle::schema_currency;
pub use lifecycle::split_create_table_foreign_keys;
pub use lifecycle::validate_column_exists;
pub use lifecycle::validate_database_connection;
pub use lifecycle::validate_table_exists;
pub use lifecycle::validate_write_pool_is_primary;
pub use repository::CreateServiceInput;
pub use repository::INSTANCE_CLAIM_CLASS;
pub use repository::InstanceClaim;
pub use repository::InstanceClaimError;
pub use repository::PgDbPool;
pub use repository::ServiceConfig;
pub use repository::ServiceRepository;
pub use repository::UpsertServiceProcessInput;
pub use admin::AdminSql;
pub use admin::AdminSqlError;
pub use admin::DEFAULT_READONLY_ROW_LIMIT;
pub use admin::DatabaseAdminService;
pub use admin::IdentifierError;
pub use admin::QueryExecutor;
pub use admin::QueryExecutorError;
pub use admin::SafeIdentifier;

Modules§

admin
Admin-only database surface.
error
Result alias for the database crate’s public signatures.
extension
Extension registration for the database crate’s own schema.
lifecycle
Database lifecycle: extension schema installation, migrations, and connection/schema validation.
models
Data models exchanged across the database boundary.
repository
Repositories owned by the database crate itself.
resilience
Composable resilience primitives for outbound calls.
services
Service layer: provider abstraction, owned Database handle, transaction helpers, batch execution, and CLI display traits.

Enums§

DbValue
ServiceModule
ServiceStatus

Traits§

FromDbValue
ToDbValue

Functions§

parse_database_datetime

Type Aliases§

JsonRow