Skip to main content

Crate aster_forge_db

Crate aster_forge_db 

Source
Expand description

Shared database utilities for Aster services.

This crate contains framework-neutral SeaORM helpers: connection setup, retry policy, offset pagination, full-text search query helpers, whitelisted sorting, and transaction wrappers. Product migrations, entities, and repository-specific query logic intentionally remain outside this crate.

Re-exports§

pub use audit_log::AUDIT_LOG_ACTION_COLUMN;
pub use audit_log::AUDIT_LOG_ACTION_CREATED_ID_INDEX;
pub use audit_log::AUDIT_LOG_ACTION_CREATED_USER_INDEX;
pub use audit_log::AUDIT_LOG_ACTION_INDEX;
pub use audit_log::AUDIT_LOG_CREATED_AT_COLUMN;
pub use audit_log::AUDIT_LOG_CREATED_AT_INDEX;
pub use audit_log::AUDIT_LOG_CREATED_ID_INDEX;
pub use audit_log::AUDIT_LOG_DETAILS_COLUMN;
pub use audit_log::AUDIT_LOG_ENTITY_ID_COLUMN;
pub use audit_log::AUDIT_LOG_ENTITY_NAME_COLUMN;
pub use audit_log::AUDIT_LOG_ENTITY_TYPE_COLUMN;
pub use audit_log::AUDIT_LOG_ENTITY_TYPE_CREATED_ID_INDEX;
pub use audit_log::AUDIT_LOG_ID_COLUMN;
pub use audit_log::AUDIT_LOG_IP_ADDRESS_COLUMN;
pub use audit_log::AUDIT_LOG_USER_AGENT_COLUMN;
pub use audit_log::AUDIT_LOG_USER_CREATED_ID_INDEX;
pub use audit_log::AUDIT_LOG_USER_ID_COLUMN;
pub use audit_log::AUDIT_LOG_USER_ID_INDEX;
pub use audit_log::AUDIT_LOGS_TABLE;
pub use audit_log::AuditLogCreate;
pub use audit_log::AuditLogCursorSlice;
pub use audit_log::AuditLogDbStore;
pub use audit_log::AuditLogQuery;
pub use audit_log::count_audit_logs_created_between;
pub use audit_log::count_audit_logs_created_between_with_actions;
pub use audit_log::count_distinct_audit_log_users_created_between_with_actions;
pub use audit_log::create_audit_log_requests;
pub use audit_log::create_audit_log_row;
pub use audit_log::create_audit_log_rows;
pub use audit_log::create_audit_logs_action_created_id_index;
pub use audit_log::create_audit_logs_action_created_user_index;
pub use audit_log::create_audit_logs_action_index;
pub use audit_log::create_audit_logs_base_indexes;
pub use audit_log::create_audit_logs_created_at_index;
pub use audit_log::create_audit_logs_created_id_index;
pub use audit_log::create_audit_logs_entity_type_created_id_index;
pub use audit_log::create_audit_logs_query_indexes;
pub use audit_log::create_audit_logs_table;
pub use audit_log::create_audit_logs_user_created_id_index;
pub use audit_log::create_audit_logs_user_id_index;
pub use audit_log::delete_audit_logs_before;
pub use audit_log::drop_audit_logs_table;
pub use audit_log::find_audit_logs_with_filters_cursor;
pub use connection::DatabaseConfig;
pub use connection::DbHandles;
pub use connection::connect;
pub use connection::connect_reader_for_writer;
pub use connection::connect_reader_for_writer_with_metrics;
pub use connection::connect_with_metrics;
pub use mail_outbox::MAIL_OUTBOX_ATTEMPT_COUNT_COLUMN;
pub use mail_outbox::MAIL_OUTBOX_CREATED_AT_COLUMN;
pub use mail_outbox::MAIL_OUTBOX_DUE_INDEX;
pub use mail_outbox::MAIL_OUTBOX_ID_COLUMN;
pub use mail_outbox::MAIL_OUTBOX_LAST_ERROR_COLUMN;
pub use mail_outbox::MAIL_OUTBOX_NEXT_ATTEMPT_AT_COLUMN;
pub use mail_outbox::MAIL_OUTBOX_PAYLOAD_JSON_COLUMN;
pub use mail_outbox::MAIL_OUTBOX_PROCESSING_INDEX;
pub use mail_outbox::MAIL_OUTBOX_PROCESSING_STARTED_AT_COLUMN;
pub use mail_outbox::MAIL_OUTBOX_SENT_AT_COLUMN;
pub use mail_outbox::MAIL_OUTBOX_SENT_AT_INDEX;
pub use mail_outbox::MAIL_OUTBOX_STATUS_COLUMN;
pub use mail_outbox::MAIL_OUTBOX_TABLE;
pub use mail_outbox::MAIL_OUTBOX_TEMPLATE_CODE_COLUMN;
pub use mail_outbox::MAIL_OUTBOX_TO_ADDRESS_COLUMN;
pub use mail_outbox::MAIL_OUTBOX_TO_NAME_COLUMN;
pub use mail_outbox::MAIL_OUTBOX_UPDATED_AT_COLUMN;
pub use mail_outbox::MailOutboxCreate;
pub use mail_outbox::MailOutboxDbStore;
pub use mail_outbox::create_mail_outbox_due_index;
pub use mail_outbox::create_mail_outbox_processing_index;
pub use mail_outbox::create_mail_outbox_row;
pub use mail_outbox::create_mail_outbox_sent_at_index;
pub use mail_outbox::create_mail_outbox_table;
pub use mail_outbox::drop_mail_outbox_table;
pub use runtime_lease::RUNTIME_LEASE_CREATED_AT_COLUMN;
pub use runtime_lease::RUNTIME_LEASE_EXPIRES_AT_COLUMN;
pub use runtime_lease::RUNTIME_LEASE_ID_COLUMN;
pub use runtime_lease::RUNTIME_LEASE_LAST_RENEWED_AT_COLUMN;
pub use runtime_lease::RUNTIME_LEASE_OWNER_ID_COLUMN;
pub use runtime_lease::RUNTIME_LEASE_UPDATED_AT_COLUMN;
pub use runtime_lease::RUNTIME_LEASES_TABLE;
pub use runtime_lease::RuntimeLeaseDbStore;
pub use runtime_lease::create_runtime_leases_table;
pub use runtime_lease::drop_runtime_leases_table;
pub use scheduled_task::SCHEDULED_TASK_CLAIM_EXPIRES_AT_COLUMN;
pub use scheduled_task::SCHEDULED_TASK_CLAIM_OWNER_ID_COLUMN;
pub use scheduled_task::SCHEDULED_TASK_CREATED_AT_COLUMN;
pub use scheduled_task::SCHEDULED_TASK_DISPLAY_NAME_COLUMN;
pub use scheduled_task::SCHEDULED_TASK_ID_COLUMN;
pub use scheduled_task::SCHEDULED_TASK_LAST_CLAIMED_AT_COLUMN;
pub use scheduled_task::SCHEDULED_TASK_LAST_FINISHED_AT_COLUMN;
pub use scheduled_task::SCHEDULED_TASK_NAME_COLUMN;
pub use scheduled_task::SCHEDULED_TASK_NAMESPACE_COLUMN;
pub use scheduled_task::SCHEDULED_TASK_NAMESPACE_NAME_UNIQUE_INDEX;
pub use scheduled_task::SCHEDULED_TASK_NEXT_RUN_AT_COLUMN;
pub use scheduled_task::SCHEDULED_TASK_NEXT_RUN_INDEX;
pub use scheduled_task::SCHEDULED_TASK_UPDATED_AT_COLUMN;
pub use scheduled_task::SCHEDULED_TASKS_TABLE;
pub use scheduled_task::ScheduledTaskDbStore;
pub use scheduled_task::create_scheduled_tasks_namespace_name_unique_index;
pub use scheduled_task::create_scheduled_tasks_next_run_index;
pub use scheduled_task::create_scheduled_tasks_table;
pub use scheduled_task::drop_scheduled_tasks_table;
pub use system_config::PresentedSystemConfig;
pub use system_config::SystemConfigCursorSlice;
pub use system_config::SystemConfigDbBinding;
pub use system_config::SystemConfigDbStore;
pub use system_config::SystemConfigUpsert;
pub use system_config::present_system_config;
pub use system_config::SYSTEM_CONFIG_CATEGORY_COLUMN;
pub use system_config::SYSTEM_CONFIG_DESCRIPTION_COLUMN;
pub use system_config::SYSTEM_CONFIG_ID_COLUMN;
pub use system_config::SYSTEM_CONFIG_IS_SENSITIVE_COLUMN;
pub use system_config::SYSTEM_CONFIG_KEY_COLUMN;
pub use system_config::SYSTEM_CONFIG_KEY_UNIQUE_INDEX;
pub use system_config::SYSTEM_CONFIG_NAMESPACE_COLUMN;
pub use system_config::SYSTEM_CONFIG_REQUIRES_RESTART_COLUMN;
pub use system_config::SYSTEM_CONFIG_SOURCE_COLUMN;
pub use system_config::SYSTEM_CONFIG_TABLE;
pub use system_config::SYSTEM_CONFIG_UPDATED_AT_COLUMN;
pub use system_config::SYSTEM_CONFIG_UPDATED_BY_COLUMN;
pub use system_config::SYSTEM_CONFIG_VALUE_COLUMN;
pub use system_config::SYSTEM_CONFIG_VALUE_TYPE_COLUMN;
pub use system_config::SYSTEM_CONFIG_VISIBILITY_COLUMN;
pub use system_config::create_system_config_key_unique_index;
pub use system_config::create_system_config_table;
pub use system_config::drop_system_config_table;

Modules§

audit_log
Database-backed audit log table and base store.
connection
Database connection helpers and SQLite reader/writer pool setup.
mail_outbox
Database-backed mail outbox table and dispatch store.
pagination
SeaORM repository helpers for offset pagination.
retry
Retry helpers for transient database operations.
runtime_lease
Database-backed runtime lease store.
scheduled_task
Database-backed scheduled task catalog and claim store.
search_query
Shared search-query expression helpers.
sort
Shared repository helpers for applying whitelisted sort options.
system_config
Database-backed runtime system configuration store.
transaction
Transaction helpers with consistent error mapping and rollback tracing.

Structs§

DatabaseHealthComponent
Runtime component that registers the standard database health check only.
DatabaseRuntimeComponent
Runtime component that closes database handles during graceful shutdown.

Enums§

DatabaseErrorKind
Database failure classes that are stable enough for infrastructure retry decisions.
DbError
Errors returned by database helpers.

Constants§

DATABASE_COMPONENT
Stable component name used for database handles.
DATABASE_CONNECTIONS_SHUTDOWN_PHASE
Stable shutdown phase name for database handle closing.
DATABASE_HEALTH_CHECK
Stable health check name used for database ping checks.
DATABASE_HEALTH_CHECK_TIMEOUT
Default timeout for database readiness and diagnostics health checks.

Functions§

check_database_component
Runs the standard database ping health check.
database_component
Creates the database runtime component used by product entrypoints.
database_component_after
Creates the database runtime component with shutdown dependencies.
database_error_kind
Classifies driver-native database errors without relying on localized messages.
database_health_component
Creates the standard database health component.
database_health_options
Returns the standard database health check options.
drop_index_if_exists
Drops an index when it exists across all supported database backends.
ping_database
Pings the database connection used by the standard health check.
rename_mysql_index_if_exists
Renames a MySQL index when the source exists and the target does not.

Type Aliases§

Result
Result type returned by database helpers.