Skip to main content

DatabaseOperations

Trait DatabaseOperations 

Source
pub trait DatabaseOperations: Send + Sync {
Show 28 methods // Required methods fn backend_name(&self) -> &'static str; fn local_artifact_format(&self) -> Option<&'static str>; fn ensure_database( &self, config: &DbBackendConfig, schema: &AppSchema, ) -> Result<(), DatabaseError>; fn update_user_password( &self, config: &DbBackendConfig, user_id: i64, password_hash: &str, ) -> Result<(), DatabaseError>; fn issue_session( &self, config: &DbBackendConfig, user_id: i64, session_token_hash: &str, expires_at: &str, ) -> Result<(), DatabaseError>; fn revoke_session( &self, config: &DbBackendConfig, session_token_hash: &str, ) -> Result<(), DatabaseError>; fn revoke_user_sessions( &self, config: &DbBackendConfig, user_id: i64, ) -> Result<(), DatabaseError>; fn append_rate_limit_event( &self, config: &DbBackendConfig, policy_key: &str, bucket_key: &str, outcome: &str, ) -> Result<(), DatabaseError>; fn admit_rate_limited_request( &self, config: &DbBackendConfig, policy_key: &str, bucket_key: &str, maximum: usize, window_seconds: u64, ) -> Result<bool, DatabaseError>; fn migration_ledger( &self, config: &DbBackendConfig, app_id: &str, ) -> Result<BTreeMap<String, String>, DatabaseError>; fn ready( &self, config: &DbBackendConfig, schema: &AppSchema, ) -> Result<(), DatabaseError>; fn field_exists( &self, config: &DbBackendConfig, schema: &AppSchema, entity_name: &str, field_name: &str, ) -> Result<bool, DatabaseError>; fn migrate( &self, config: &DbBackendConfig, schema: &AppSchema, migration: &Migration, ) -> Result<(), DatabaseError>; fn adopt_legacy_migration( &self, config: &DbBackendConfig, schema: &AppSchema, migration: &Migration, expected_legacy: &BTreeMap<String, String>, ) -> Result<(), DatabaseError>; fn query( &self, config: &DbBackendConfig, schema: &AppSchema, query: &Query, ) -> Result<Vec<Map<String, Value>>, DatabaseError>; fn aggregate( &self, config: &DbBackendConfig, schema: &AppSchema, query: &AggregateQuery, ) -> Result<Value, DatabaseError>; fn transact( &self, config: &DbBackendConfig, schema: &AppSchema, transaction: &Transaction, ) -> Result<TransactionResult, DatabaseError>; fn claim_one( &self, config: &DbBackendConfig, schema: &AppSchema, claim: &Claim, ) -> Result<Option<i64>, DatabaseError>; fn export_page( &self, config: &DbBackendConfig, schema: &AppSchema, entity: &str, after_identity: Option<Value>, limit: u32, ) -> Result<Vec<Record>, DatabaseError>; fn export_snapshot( &self, config: &DbBackendConfig, schema: &AppSchema, limits: SnapshotLimits, ) -> Result<Vec<Record>, DatabaseError>; fn restore_snapshot( &self, config: &DbBackendConfig, schema: &AppSchema, records: &[Record], limits: SnapshotLimits, counts: &[RestoreCount], ) -> Result<(), DatabaseError>; fn import_batch( &self, config: &DbBackendConfig, schema: &AppSchema, records: &[Record], ) -> Result<(), DatabaseError>; // Provided methods fn user_credentials( &self, config: &DbBackendConfig, schema: &AppSchema, username: &str, ) -> Result<Option<UserCredentials>, DatabaseError> { ... } fn active_session( &self, config: &DbBackendConfig, schema: &AppSchema, session_token_hash: &str, now_epoch_seconds: u64, ) -> Result<Option<ActiveSession>, DatabaseError> { ... } fn apply_contract( &self, config: &DbBackendConfig, contract: &AppDataContract, ) -> Result<(), DatabaseError> { ... } fn applied_migration_checksum( &self, config: &DbBackendConfig, app_id: &str, migration_id: &str, ) -> Result<Option<String>, DatabaseError> { ... } fn verify_contract( &self, config: &DbBackendConfig, contract: &AppDataContract, ) -> Result<(), DatabaseError> { ... } fn join_query( &self, config: &DbBackendConfig, schema: &AppSchema, request: &JoinedQuery, ) -> Result<Vec<JoinedRecord>, DatabaseError> { ... }
}
Expand description

Executable logical operations implemented by every registered adapter. App-facing services resolve this operation contract through the configured registry.

Required Methods§

Source

fn backend_name(&self) -> &'static str

Source

fn local_artifact_format(&self) -> Option<&'static str>

Identifies an adapter-owned local database artifact format for safe historical adoption. Remote storage returns None; callers must never infer a format from a backend name.

Source

fn ensure_database( &self, config: &DbBackendConfig, schema: &AppSchema, ) -> Result<(), DatabaseError>

Ensures one app-owned database namespace exists before applying its schema.

Source

fn update_user_password( &self, config: &DbBackendConfig, user_id: i64, password_hash: &str, ) -> Result<(), DatabaseError>

Replaces one user’s pre-hashed password. Missing users fail explicitly.

Source

fn issue_session( &self, config: &DbBackendConfig, user_id: i64, session_token_hash: &str, expires_at: &str, ) -> Result<(), DatabaseError>

Creates or replaces one browser session in authoritative storage.

Source

fn revoke_session( &self, config: &DbBackendConfig, session_token_hash: &str, ) -> Result<(), DatabaseError>

Revokes one browser session by token hash.

Source

fn revoke_user_sessions( &self, config: &DbBackendConfig, user_id: i64, ) -> Result<(), DatabaseError>

Revokes every browser session owned by one user.

Source

fn append_rate_limit_event( &self, config: &DbBackendConfig, policy_key: &str, bucket_key: &str, outcome: &str, ) -> Result<(), DatabaseError>

Records a bounded security admission outcome in authoritative storage.

Source

fn admit_rate_limited_request( &self, config: &DbBackendConfig, policy_key: &str, bucket_key: &str, maximum: usize, window_seconds: u64, ) -> Result<bool, DatabaseError>

Atomically counts and records one request in a moving security window.

Source

fn migration_ledger( &self, config: &DbBackendConfig, app_id: &str, ) -> Result<BTreeMap<String, String>, DatabaseError>

Source

fn ready( &self, config: &DbBackendConfig, schema: &AppSchema, ) -> Result<(), DatabaseError>

Source

fn field_exists( &self, config: &DbBackendConfig, schema: &AppSchema, entity_name: &str, field_name: &str, ) -> Result<bool, DatabaseError>

Reports whether a declared field exists in authoritative storage. Document backends report declared fields because records have no fixed columns.

Source

fn migrate( &self, config: &DbBackendConfig, schema: &AppSchema, migration: &Migration, ) -> Result<(), DatabaseError>

Source

fn adopt_legacy_migration( &self, config: &DbBackendConfig, schema: &AppSchema, migration: &Migration, expected_legacy: &BTreeMap<String, String>, ) -> Result<(), DatabaseError>

Stamps one logical migration over a fully verified populated database. Adapters must compare the complete historical ledger, inspect the physical schema, and write the logical marker atomically. A mismatch must never trigger the migration body against populated data.

Source

fn query( &self, config: &DbBackendConfig, schema: &AppSchema, query: &Query, ) -> Result<Vec<Map<String, Value>>, DatabaseError>

Source

fn aggregate( &self, config: &DbBackendConfig, schema: &AppSchema, query: &AggregateQuery, ) -> Result<Value, DatabaseError>

Source

fn transact( &self, config: &DbBackendConfig, schema: &AppSchema, transaction: &Transaction, ) -> Result<TransactionResult, DatabaseError>

Source

fn claim_one( &self, config: &DbBackendConfig, schema: &AppSchema, claim: &Claim, ) -> Result<Option<i64>, DatabaseError>

Source

fn export_page( &self, config: &DbBackendConfig, schema: &AppSchema, entity: &str, after_identity: Option<Value>, limit: u32, ) -> Result<Vec<Record>, DatabaseError>

Source

fn export_snapshot( &self, config: &DbBackendConfig, schema: &AppSchema, limits: SnapshotLimits, ) -> Result<Vec<Record>, DatabaseError>

Exports all declared entities from one consistent read transaction.

Source

fn restore_snapshot( &self, config: &DbBackendConfig, schema: &AppSchema, records: &[Record], limits: SnapshotLimits, counts: &[RestoreCount], ) -> Result<(), DatabaseError>

Replaces declared app records atomically after validating schema and preconditions. No partial import batch may become visible on failure.

Source

fn import_batch( &self, config: &DbBackendConfig, schema: &AppSchema, records: &[Record], ) -> Result<(), DatabaseError>

Provided Methods§

Source

fn user_credentials( &self, config: &DbBackendConfig, schema: &AppSchema, username: &str, ) -> Result<Option<UserCredentials>, DatabaseError>

Loads credentials for one username without deciding password policy.

Source

fn active_session( &self, config: &DbBackendConfig, schema: &AppSchema, session_token_hash: &str, now_epoch_seconds: u64, ) -> Result<Option<ActiveSession>, DatabaseError>

Resolves one unrevoked browser session against the supplied clock.

Source

fn apply_contract( &self, config: &DbBackendConfig, contract: &AppDataContract, ) -> Result<(), DatabaseError>

Applies an app-owned logical migration sequence through this backend. CreateEntity creates a table or collection as appropriate for the configured adapter; callers never select a vendor migration file.

Source

fn applied_migration_checksum( &self, config: &DbBackendConfig, app_id: &str, migration_id: &str, ) -> Result<Option<String>, DatabaseError>

Source

fn verify_contract( &self, config: &DbBackendConfig, contract: &AppDataContract, ) -> Result<(), DatabaseError>

Source

fn join_query( &self, config: &DbBackendConfig, schema: &AppSchema, request: &JoinedQuery, ) -> Result<Vec<JoinedRecord>, DatabaseError>

Executes a bounded two-entity join through the same logical reads on every backend.

Implementors§