pub trait StorageConnection: HasSession + Sized + Send + Sync {
    type Database: Connection;
    type Authenticated: StorageConnection;

Show 18 methods fn admin(&self) -> Self::Database; fn database<DB: Schema>(&self, name: &str) -> Result<Self::Database, Error>; fn create_database_with_schema(
        &self,
        name: &str,
        schema: SchemaName,
        only_if_needed: bool
    ) -> Result<(), Error>; fn delete_database(&self, name: &str) -> Result<(), Error>; fn list_databases(&self) -> Result<Vec<Database>, Error>; fn list_available_schemas(&self) -> Result<Vec<SchemaName>, Error>; fn create_user(&self, username: &str) -> Result<u64, Error>; fn delete_user<'user, U: Nameable<'user, u64> + Send + Sync>(
        &self,
        user: U
    ) -> Result<(), Error>; fn set_user_password<'user, U: Nameable<'user, u64> + Send + Sync>(
        &self,
        user: U,
        password: SensitiveString
    ) -> Result<(), Error>; fn authenticate(
        &self,
        authentication: Authentication
    ) -> Result<Self::Authenticated, Error>; fn assume_identity(
        &self,
        identity: IdentityReference<'_>
    ) -> Result<Self::Authenticated, Error>; fn add_permission_group_to_user<'user, 'group, U: Nameable<'user, u64> + Send + Sync, G: Nameable<'group, u64> + Send + Sync>(
        &self,
        user: U,
        permission_group: G
    ) -> Result<(), Error>; fn remove_permission_group_from_user<'user, 'group, U: Nameable<'user, u64> + Send + Sync, G: Nameable<'group, u64> + Send + Sync>(
        &self,
        user: U,
        permission_group: G
    ) -> Result<(), Error>; fn add_role_to_user<'user, 'role, U: Nameable<'user, u64> + Send + Sync, R: Nameable<'role, u64> + Send + Sync>(
        &self,
        user: U,
        role: R
    ) -> Result<(), Error>; fn remove_role_from_user<'user, 'role, U: Nameable<'user, u64> + Send + Sync, R: Nameable<'role, u64> + Send + Sync>(
        &self,
        user: U,
        role: R
    ) -> Result<(), Error>; fn create_database<DB: Schema>(
        &self,
        name: &str,
        only_if_needed: bool
    ) -> Result<Self::Database, Error> { ... } fn authenticate_with_token(
        &self,
        id: u64,
        token: &SensitiveString
    ) -> Result<<Self::Authenticated as StorageConnection>::Authenticated, Error> { ... } fn authenticate_with_password<'name, User: Nameable<'name, u64>>(
        &self,
        user: User,
        password: SensitiveString
    ) -> Result<Self::Authenticated, Error> { ... }
}
Expand description

Functions for interacting with a multi-database BonsaiDb instance.

Required Associated Types

The type that represents a database for this implementation.

The StorageConnection type returned from authentication calls.

Required Methods

Returns the administration database.

Returns a reference to database name with schema DB.

Creates a database named name using the SchemaName schema.

Errors
  • Error::InvalidDatabaseName: name must begin with an alphanumeric character ([a-zA-Z0-9]), and all remaining characters must be alphanumeric, a period (.), or a hyphen (-).
  • Error::DatabaseNameAlreadyTaken: name was already used for a previous database name. Database names are case insensitive. Returned if only_if_needed is false.

Deletes a database named name.

Errors

Lists the databases in this storage.

Lists the SchemaNames registered with this storage.

Creates a user.

Deletes a user.

Sets a user’s password.

Authenticates using the active session, returning a connection with a new session upon success. The existing connection will remain usable with the existing authentication, if any.

Assumes the identity. If successful, the returned instance will have the permissions from identity.

Adds a user to a permission group.

Removes a user from a permission group.

Adds a user to a permission group.

Removes a user from a permission group.

Provided Methods

Creates a database named name with the Schema provided.

Errors
  • Error::InvalidDatabaseName: name must begin with an alphanumeric character ([a-zA-Z0-9]), and all remaining characters must be alphanumeric, a period (.), or a hyphen (-).
  • Error::DatabaseNameAlreadyTaken: name was already used for a previous database name. Database names are case insensitive. Returned if only_if_needed is false.

Authenticates using an AuthenticationToken. If successful, the returned instance will have the permissions from identity.

Authenticates a User using a password. If successful, the returned instance will have the permissions from identity.

Implementors