feat(server): add tenant management, health checks, and database export/import APIs

This commit is contained in:
2026-05-02 10:52:23 +00:00
parent 2042b345aa
commit c9f1a5dddc
10 changed files with 1207 additions and 4 deletions
+21
View File
@@ -282,6 +282,27 @@ impl AuthEngine {
.collect()
}
pub fn list_users(&self) -> Vec<AuthenticatedUser> {
let users = self.users.read().unwrap_or_else(|poisoned| poisoned.into_inner());
let mut result: Vec<AuthenticatedUser> = users
.values()
.map(AuthUser::to_authenticated_user)
.collect();
result.sort_by(|a, b| a.database.cmp(&b.database).then(a.username.cmp(&b.username)));
result
}
pub fn drop_users_for_database(&self, database: &str) -> Result<usize, AuthError> {
let mut users = self.users.write().unwrap_or_else(|poisoned| poisoned.into_inner());
let before = users.len();
users.retain(|_, user| user.database != database);
let dropped = before.saturating_sub(users.len());
if dropped > 0 {
self.persist_locked(&users)?;
}
Ok(dropped)
}
pub fn start_scram_sha256(
&self,
database: &str,