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, ApiKeyKind, 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, DeclaredUserRow, DeclaredUserWrite,
EnrollDeviceCertParams, EnsuredServiceAccount, MERGE_EXCLUDED_SECURITY_TABLES, MergeResult,
NewServiceAccount, NewSsoLoginEvent, PurgeCount, SessionRepository,
SessionTrafficRollupRepository, SsoLoginEvent, SsoLoginEventRepository,
UserRateLimitBucketRepository, UserRepository, UsersRoleDirectory,
};
pub use services::{
API_KEY_PREFIX, ApiKeyLifetime, ApiKeyService, DEVICE_FINGERPRINT_FOREIGN_USER, DemoteResult,
DeviceCertService, EnrollDeviceCertServiceParams, EnsuredApiKey, 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;