pub mod error;
pub(crate) mod extension;
pub mod jobs;
pub(crate) mod models;
pub(crate) mod repository;
pub(crate) mod services;
pub use extension::UsersExtension;
pub use error::{Result, UserError, UserResult};
pub use models::{
AccountKind, ApiKeyLimits, NewApiKey, User, UserActivity, UserApiKey, UserCountBreakdown,
UserDeviceCert, UserExport, UserRole, UserSession, UserStats, UserStatus, UserWithSessions,
normalise_email,
};
pub use repository::{
ArchiveOutcome, ArchiveParams, ArchiveState, BanDuration, BanIpParams, BanIpWithMetadataParams,
BannedIp, BannedIpRepository, CreateApiKeyParams, EnrollDeviceCertParams,
MERGE_EXCLUDED_SECURITY_TABLES, MergeResult, NewServiceAccount, NewSsoLoginEvent, PurgeCount,
SessionRepository, SsoLoginEvent, SsoLoginEventRepository, UserRateLimitBucketRepository,
UserRepository, UsersRoleDirectory,
};
pub use services::{
API_KEY_PREFIX, ApiKeyService, DEVICE_FINGERPRINT_FOREIGN_USER, DemoteResult,
DeviceCertService, EnrollDeviceCertServiceParams, IssueApiKeyParams, OUTCOME_REFUSED,
OUTCOME_SUCCESS, PostgresAuthEventSink, PromoteResult, UpdateUserParams, UserAdminService,
UserService,
};
pub use systemprompt_traits::auth::{RoleProvider, UserProvider};
pub(crate) mod sessions;
pub use sessions::UsersAiSessionProvider;