Documentation
¶
Index ¶
- Variables
- func NewDatabaseRetryStorage(repo NotificationQueueRepository) notification.RetryStorage
- func NewEnvironmentRepository(db *bun.DB) *environmentRepository
- func NewFormsRepository(db *bun.DB) forms.Repository
- func NewNotificationRepository(db *bun.DB) notification.Repository
- func NewVerificationRepository(db *bun.DB) *verificationRepository
- func NewWebhookRepository(db *bun.DB) webhook.Repository
- type APIKeyRepository
- func (r *APIKeyRepository) CleanupExpiredAPIKeys(ctx context.Context) (int, error)
- func (r *APIKeyRepository) CountAPIKeys(ctx context.Context, appID xid.ID, envID *xid.ID, orgID *xid.ID, ...) (int, error)
- func (r *APIKeyRepository) CreateAPIKey(ctx context.Context, apiKey *schema.APIKey) error
- func (r *APIKeyRepository) DeactivateAPIKey(ctx context.Context, id xid.ID) error
- func (r *APIKeyRepository) DeleteAPIKey(ctx context.Context, id xid.ID) error
- func (r *APIKeyRepository) FindAPIKeyByID(ctx context.Context, id xid.ID) (*schema.APIKey, error)
- func (r *APIKeyRepository) FindAPIKeyByPrefix(ctx context.Context, prefix string) (*schema.APIKey, error)
- func (r *APIKeyRepository) ListAPIKeys(ctx context.Context, filter *apikey.ListAPIKeysFilter) (*pagination.PageResponse[*schema.APIKey], error)
- func (r *APIKeyRepository) UpdateAPIKey(ctx context.Context, apiKey *schema.APIKey) error
- func (r *APIKeyRepository) UpdateAPIKeyUsage(ctx context.Context, id xid.ID, ip, userAgent string) error
- type APIKeyRoleRepository
- func (r *APIKeyRoleRepository) AssignRole(ctx context.Context, apiKeyID, roleID xid.ID, orgID *xid.ID, createdBy *xid.ID) error
- func (r *APIKeyRoleRepository) BulkAssignRoles(ctx context.Context, apiKeyID xid.ID, roleIDs []xid.ID, orgID *xid.ID, ...) error
- func (r *APIKeyRoleRepository) BulkUnassignRoles(ctx context.Context, apiKeyID xid.ID, roleIDs []xid.ID, orgID *xid.ID) error
- func (r *APIKeyRoleRepository) GetAPIKeysWithRole(ctx context.Context, roleID xid.ID, orgID *xid.ID) ([]*schema.APIKey, error)
- func (r *APIKeyRoleRepository) GetCreatorPermissions(ctx context.Context, creatorID xid.ID, orgID *xid.ID) ([]*schema.Permission, error)
- func (r *APIKeyRoleRepository) GetCreatorRoles(ctx context.Context, creatorID xid.ID, orgID *xid.ID) ([]*schema.Role, error)
- func (r *APIKeyRoleRepository) GetPermissions(ctx context.Context, apiKeyID xid.ID, orgID *xid.ID) ([]*schema.Permission, error)
- func (r *APIKeyRoleRepository) GetRoles(ctx context.Context, apiKeyID xid.ID, orgID *xid.ID) ([]*schema.Role, error)
- func (r *APIKeyRoleRepository) HasRole(ctx context.Context, apiKeyID, roleID xid.ID, orgID *xid.ID) (bool, error)
- func (r *APIKeyRoleRepository) ReplaceRoles(ctx context.Context, apiKeyID xid.ID, roleIDs []xid.ID, orgID *xid.ID, ...) error
- func (r *APIKeyRoleRepository) UnassignRole(ctx context.Context, apiKeyID, roleID xid.ID, orgID *xid.ID) error
- type AppRepository
- func (r *AppRepository) AddTeamMember(ctx context.Context, tm *schema.TeamMember) error
- func (r *AppRepository) CountApps(ctx context.Context) (int, error)
- func (r *AppRepository) CountMembers(ctx context.Context, appID xid.ID) (int, error)
- func (r *AppRepository) CountTeamMembers(ctx context.Context, teamID xid.ID) (int, error)
- func (r *AppRepository) CountTeams(ctx context.Context, appID xid.ID) (int, error)
- func (r *AppRepository) CreateApp(ctx context.Context, app *schema.App) error
- func (r *AppRepository) CreateInvitation(ctx context.Context, inv *schema.Invitation) error
- func (r *AppRepository) CreateMember(ctx context.Context, member *schema.Member) error
- func (r *AppRepository) CreateTeam(ctx context.Context, team *schema.Team) error
- func (r *AppRepository) DeleteApp(ctx context.Context, id xid.ID) error
- func (r *AppRepository) DeleteExpiredInvitations(ctx context.Context) (int, error)
- func (r *AppRepository) DeleteInvitation(ctx context.Context, id xid.ID) error
- func (r *AppRepository) DeleteMember(ctx context.Context, id xid.ID) error
- func (r *AppRepository) DeleteTeam(ctx context.Context, id xid.ID) error
- func (r *AppRepository) FindAppByID(ctx context.Context, id xid.ID) (*schema.App, error)
- func (r *AppRepository) FindAppBySlug(ctx context.Context, slug string) (*schema.App, error)
- func (r *AppRepository) FindInvitationByID(ctx context.Context, id xid.ID) (*schema.Invitation, error)
- func (r *AppRepository) FindInvitationByToken(ctx context.Context, token string) (*schema.Invitation, error)
- func (r *AppRepository) FindMember(ctx context.Context, appID, userID xid.ID) (*schema.Member, error)
- func (r *AppRepository) FindMemberByID(ctx context.Context, id xid.ID) (*schema.Member, error)
- func (r *AppRepository) FindTeamByID(ctx context.Context, id xid.ID) (*schema.Team, error)
- func (r *AppRepository) FindTeamByName(ctx context.Context, appID xid.ID, name string) (*schema.Team, error)
- func (r *AppRepository) GetPlatformApp(ctx context.Context) (*schema.App, error)
- func (r *AppRepository) IsTeamMember(ctx context.Context, teamID, memberID xid.ID) (bool, error)
- func (r *AppRepository) ListApps(ctx context.Context, filter *app.ListAppsFilter) (*pagination.PageResponse[*schema.App], error)
- func (r *AppRepository) ListInvitations(ctx context.Context, filter *app.ListInvitationsFilter) (*pagination.PageResponse[*schema.Invitation], error)
- func (r *AppRepository) ListMemberTeams(ctx context.Context, filter *app.ListMemberTeamsFilter) (*pagination.PageResponse[*schema.Team], error)
- func (r *AppRepository) ListMembers(ctx context.Context, filter *app.ListMembersFilter) (*pagination.PageResponse[*schema.Member], error)
- func (r *AppRepository) ListMembersByUser(ctx context.Context, userID xid.ID) ([]*schema.Member, error)
- func (r *AppRepository) ListTeamMembers(ctx context.Context, filter *app.ListTeamMembersFilter) (*pagination.PageResponse[*schema.TeamMember], error)
- func (r *AppRepository) ListTeams(ctx context.Context, filter *app.ListTeamsFilter) (*pagination.PageResponse[*schema.Team], error)
- func (r *AppRepository) RemoveTeamMember(ctx context.Context, teamID, memberID xid.ID) error
- func (r *AppRepository) UpdateApp(ctx context.Context, app *schema.App) error
- func (r *AppRepository) UpdateInvitation(ctx context.Context, inv *schema.Invitation) error
- func (r *AppRepository) UpdateMember(ctx context.Context, member *schema.Member) error
- func (r *AppRepository) UpdateTeam(ctx context.Context, team *schema.Team) error
- type AuditRepository
- func (r *AuditRepository) Count(ctx context.Context, filter *audit.ListEventsFilter) (int64, error)
- func (r *AuditRepository) Create(ctx context.Context, e *schema.AuditEvent) error
- func (r *AuditRepository) DeleteOlderThan(ctx context.Context, filter *audit.DeleteFilter, before time.Time) (int64, error)
- func (r *AuditRepository) Get(ctx context.Context, id xid.ID) (*schema.AuditEvent, error)
- func (r *AuditRepository) GetOldestEvent(ctx context.Context, filter *audit.ListEventsFilter) (*schema.AuditEvent, error)
- func (r *AuditRepository) GetStatisticsByAction(ctx context.Context, filter *audit.StatisticsFilter) ([]*audit.ActionStatistic, error)
- func (r *AuditRepository) GetStatisticsByActionAndUser(ctx context.Context, filter *audit.StatisticsFilter) ([]*audit.ActionUserStatistic, error)
- func (r *AuditRepository) GetStatisticsByDate(ctx context.Context, filter *audit.StatisticsFilter) ([]*audit.DateStatistic, error)
- func (r *AuditRepository) GetStatisticsByDay(ctx context.Context, filter *audit.StatisticsFilter) ([]*audit.DayStatistic, error)
- func (r *AuditRepository) GetStatisticsByHour(ctx context.Context, filter *audit.StatisticsFilter) ([]*audit.HourStatistic, error)
- func (r *AuditRepository) GetStatisticsByIPAddress(ctx context.Context, filter *audit.StatisticsFilter) ([]*audit.IPStatistic, error)
- func (r *AuditRepository) GetStatisticsByResource(ctx context.Context, filter *audit.StatisticsFilter) ([]*audit.ResourceStatistic, error)
- func (r *AuditRepository) GetStatisticsByResourceAndAction(ctx context.Context, filter *audit.StatisticsFilter) ([]*audit.ResourceActionStatistic, error)
- func (r *AuditRepository) GetStatisticsByUser(ctx context.Context, filter *audit.StatisticsFilter) ([]*audit.UserStatistic, error)
- func (r *AuditRepository) GetTimeSeries(ctx context.Context, filter *audit.TimeSeriesFilter) ([]*audit.TimeSeriesPoint, error)
- func (r *AuditRepository) GetUniqueIPCount(ctx context.Context, filter *audit.StatisticsFilter) (int64, error)
- func (r *AuditRepository) List(ctx context.Context, filter *audit.ListEventsFilter) (*pagination.PageResponse[*schema.AuditEvent], error)
- func (r *AuditRepository) Search(ctx context.Context, query *audit.SearchQuery) (*audit.SearchResponse, error)
- func (r *AuditRepository) SearchPostgreSQL(ctx context.Context, query *audit.SearchQuery) (*audit.SearchResponse, error)
- func (r *AuditRepository) SearchSQLite(ctx context.Context, query *audit.SearchQuery) (*audit.SearchResponse, error)
- type AuthorizationCodeRepository
- func (r *AuthorizationCodeRepository) Create(ctx context.Context, code *schema.AuthorizationCode) error
- func (r *AuthorizationCodeRepository) DeleteBySession(ctx context.Context, sessionID xid.ID) error
- func (r *AuthorizationCodeRepository) DeleteExpired(ctx context.Context) error
- func (r *AuthorizationCodeRepository) FindByCode(ctx context.Context, code string) (*schema.AuthorizationCode, error)
- func (r *AuthorizationCodeRepository) FindByCodeWithContext(ctx context.Context, code string, appID, envID xid.ID, orgID *xid.ID) (*schema.AuthorizationCode, error)
- func (r *AuthorizationCodeRepository) FindBySession(ctx context.Context, sessionID xid.ID) ([]*schema.AuthorizationCode, error)
- func (r *AuthorizationCodeRepository) FindByUserAndClient(ctx context.Context, userID xid.ID, clientID string) ([]*schema.AuthorizationCode, error)
- func (r *AuthorizationCodeRepository) MarkAsUsed(ctx context.Context, code string) error
- type DatabaseRetryStorage
- func (s *DatabaseRetryStorage) Delete(ctx context.Context, id xid.ID) error
- func (s *DatabaseRetryStorage) Dequeue(ctx context.Context, limit int) ([]*notification.RetryItem, error)
- func (s *DatabaseRetryStorage) Enqueue(ctx context.Context, item *notification.RetryItem) error
- func (s *DatabaseRetryStorage) GetStats(ctx context.Context) (*notification.RetryStats, error)
- func (s *DatabaseRetryStorage) MarkFailed(ctx context.Context, item *notification.RetryItem) error
- func (s *DatabaseRetryStorage) Update(ctx context.Context, item *notification.RetryItem) error
- type DeviceRepository
- func (r *DeviceRepository) CountDevices(ctx context.Context, userID xid.ID) (int, error)
- func (r *DeviceRepository) CreateDevice(ctx context.Context, d *schema.Device) error
- func (r *DeviceRepository) DeleteDevice(ctx context.Context, id xid.ID) error
- func (r *DeviceRepository) DeleteDeviceByFingerprint(ctx context.Context, userID xid.ID, fingerprint string) error
- func (r *DeviceRepository) FindDeviceByFingerprint(ctx context.Context, userID xid.ID, fingerprint string) (*schema.Device, error)
- func (r *DeviceRepository) FindDeviceByID(ctx context.Context, id xid.ID) (*schema.Device, error)
- func (r *DeviceRepository) ListDevices(ctx context.Context, filter *device.ListDevicesFilter) (*pagination.PageResponse[*schema.Device], error)
- func (r *DeviceRepository) UpdateDevice(ctx context.Context, d *schema.Device) error
- type EmailOTPRepository
- func (r *EmailOTPRepository) Consume(ctx context.Context, rec *schema.EmailOTP, now time.Time) error
- func (r *EmailOTPRepository) Create(ctx context.Context, email, otp string, expiresAt time.Time) error
- func (r *EmailOTPRepository) FindByEmail(ctx context.Context, email string, now time.Time) (*schema.EmailOTP, error)
- func (r *EmailOTPRepository) IncrementAttempts(ctx context.Context, rec *schema.EmailOTP) error
- type FormSubmissionStats
- type IdentityVerificationRepository
- func (r *IdentityVerificationRepository) CountVerificationsByUser(ctx context.Context, appID xid.ID, userID xid.ID, since time.Time) (int, error)
- func (r *IdentityVerificationRepository) CreateDocument(ctx context.Context, document *schema.IdentityVerificationDocument) error
- func (r *IdentityVerificationRepository) CreateSession(ctx context.Context, session *schema.IdentityVerificationSession) error
- func (r *IdentityVerificationRepository) CreateUserVerificationStatus(ctx context.Context, status *schema.UserVerificationStatus) error
- func (r *IdentityVerificationRepository) CreateVerification(ctx context.Context, verification *schema.IdentityVerification) error
- func (r *IdentityVerificationRepository) DeleteDocument(ctx context.Context, appID xid.ID, id string) error
- func (r *IdentityVerificationRepository) DeleteSession(ctx context.Context, appID xid.ID, id string) error
- func (r *IdentityVerificationRepository) DeleteUserVerificationStatus(ctx context.Context, appID xid.ID, orgID xid.ID, userID xid.ID) error
- func (r *IdentityVerificationRepository) DeleteVerification(ctx context.Context, appID xid.ID, id string) error
- func (r *IdentityVerificationRepository) GetBlockedUsers(ctx context.Context, appID xid.ID, limit, offset int) ([]*schema.UserVerificationStatus, error)
- func (r *IdentityVerificationRepository) GetDocumentByID(ctx context.Context, appID xid.ID, id string) (*schema.IdentityVerificationDocument, error)
- func (r *IdentityVerificationRepository) GetDocumentsByVerificationID(ctx context.Context, appID xid.ID, verificationID string) ([]*schema.IdentityVerificationDocument, error)
- func (r *IdentityVerificationRepository) GetDocumentsForDeletion(ctx context.Context, appID xid.ID, before time.Time, limit int) ([]*schema.IdentityVerificationDocument, error)
- func (r *IdentityVerificationRepository) GetExpiredSessions(ctx context.Context, appID xid.ID, before time.Time, limit int) ([]*schema.IdentityVerificationSession, error)
- func (r *IdentityVerificationRepository) GetExpiredVerifications(ctx context.Context, appID xid.ID, before time.Time, limit int) ([]*schema.IdentityVerification, error)
- func (r *IdentityVerificationRepository) GetLatestVerificationByUser(ctx context.Context, appID xid.ID, userID xid.ID) (*schema.IdentityVerification, error)
- func (r *IdentityVerificationRepository) GetProviderStats(ctx context.Context, appID xid.ID, provider string, from, to time.Time) (map[string]interface{}, error)
- func (r *IdentityVerificationRepository) GetSessionByID(ctx context.Context, appID xid.ID, id string) (*schema.IdentityVerificationSession, error)
- func (r *IdentityVerificationRepository) GetSessionsByUserID(ctx context.Context, appID xid.ID, userID xid.ID, limit, offset int) ([]*schema.IdentityVerificationSession, error)
- func (r *IdentityVerificationRepository) GetUserVerificationStatus(ctx context.Context, appID xid.ID, orgID xid.ID, userID xid.ID) (*schema.UserVerificationStatus, error)
- func (r *IdentityVerificationRepository) GetUsersByVerificationLevel(ctx context.Context, appID xid.ID, level string, limit, offset int) ([]*schema.UserVerificationStatus, error)
- func (r *IdentityVerificationRepository) GetUsersRequiringReverification(ctx context.Context, appID xid.ID, limit int) ([]*schema.UserVerificationStatus, error)
- func (r *IdentityVerificationRepository) GetVerificationByID(ctx context.Context, appID xid.ID, id string) (*schema.IdentityVerification, error)
- func (r *IdentityVerificationRepository) GetVerificationByProviderCheckID(ctx context.Context, appID xid.ID, providerCheckID string) (*schema.IdentityVerification, error)
- func (r *IdentityVerificationRepository) GetVerificationStats(ctx context.Context, appID xid.ID, orgID xid.ID, from, to time.Time) (map[string]interface{}, error)
- func (r *IdentityVerificationRepository) GetVerificationsByOrgID(ctx context.Context, appID xid.ID, orgID xid.ID, limit, offset int) ([]*schema.IdentityVerification, error)
- func (r *IdentityVerificationRepository) GetVerificationsByStatus(ctx context.Context, appID xid.ID, status string, limit, offset int) ([]*schema.IdentityVerification, error)
- func (r *IdentityVerificationRepository) GetVerificationsByType(ctx context.Context, appID xid.ID, verificationType string, limit, offset int) ([]*schema.IdentityVerification, error)
- func (r *IdentityVerificationRepository) GetVerificationsByUserID(ctx context.Context, appID xid.ID, userID xid.ID, limit, offset int) ([]*schema.IdentityVerification, error)
- func (r *IdentityVerificationRepository) UpdateDocument(ctx context.Context, document *schema.IdentityVerificationDocument) error
- func (r *IdentityVerificationRepository) UpdateSession(ctx context.Context, session *schema.IdentityVerificationSession) error
- func (r *IdentityVerificationRepository) UpdateUserVerificationStatus(ctx context.Context, status *schema.UserVerificationStatus) error
- func (r *IdentityVerificationRepository) UpdateVerification(ctx context.Context, verification *schema.IdentityVerification) error
- type ImpersonationRepository
- func (r *ImpersonationRepository) Create(ctx context.Context, session *schema.ImpersonationSession) error
- func (r *ImpersonationRepository) CreateAuditEvent(ctx context.Context, event *schema.ImpersonationAuditEvent) error
- func (r *ImpersonationRepository) ExpireOldSessions(ctx context.Context) (int, error)
- func (r *ImpersonationRepository) Get(ctx context.Context, id xid.ID, appID xid.ID) (*schema.ImpersonationSession, error)
- func (r *ImpersonationRepository) GetActive(ctx context.Context, impersonatorID xid.ID, appID xid.ID) (*schema.ImpersonationSession, error)
- func (r *ImpersonationRepository) GetBySessionID(ctx context.Context, sessionID xid.ID) (*schema.ImpersonationSession, error)
- func (r *ImpersonationRepository) ListAuditEvents(ctx context.Context, filter *impersonation.ListAuditEventsFilter) (*pagination.PageResponse[*schema.ImpersonationAuditEvent], error)
- func (r *ImpersonationRepository) ListSessions(ctx context.Context, filter *impersonation.ListSessionsFilter) (*pagination.PageResponse[*schema.ImpersonationSession], error)
- func (r *ImpersonationRepository) Update(ctx context.Context, session *schema.ImpersonationSession) error
- type InvitationRepository
- func (r *InvitationRepository) Create(ctx context.Context, invitation *schema.Invitation) error
- func (r *InvitationRepository) Delete(ctx context.Context, id xid.ID) error
- func (r *InvitationRepository) DeleteExpired(ctx context.Context) error
- func (r *InvitationRepository) FindByID(ctx context.Context, id xid.ID) (*schema.Invitation, error)
- func (r *InvitationRepository) FindByToken(ctx context.Context, token string) (*schema.Invitation, error)
- func (r *InvitationRepository) ListByApp(ctx context.Context, appID xid.ID, limit, offset int) ([]*schema.Invitation, error)
- func (r *InvitationRepository) Update(ctx context.Context, invitation *schema.Invitation) error
- type JWTKeyRepository
- func (r *JWTKeyRepository) CleanupExpiredJWTKeys(ctx context.Context) (int64, error)
- func (r *JWTKeyRepository) CountJWTKeys(ctx context.Context, appID xid.ID) (int, error)
- func (r *JWTKeyRepository) CreateJWTKey(ctx context.Context, key *schema.JWTKey) error
- func (r *JWTKeyRepository) DeactivateJWTKey(ctx context.Context, id xid.ID) error
- func (r *JWTKeyRepository) DeleteJWTKey(ctx context.Context, id xid.ID) error
- func (r *JWTKeyRepository) FindJWTKeyByID(ctx context.Context, id xid.ID) (*schema.JWTKey, error)
- func (r *JWTKeyRepository) FindJWTKeyByKeyID(ctx context.Context, keyID string, appID xid.ID) (*schema.JWTKey, error)
- func (r *JWTKeyRepository) FindPlatformJWTKeyByKeyID(ctx context.Context, keyID string) (*schema.JWTKey, error)
- func (r *JWTKeyRepository) ListJWTKeys(ctx context.Context, filter *jwt.ListJWTKeysFilter) (*pagination.PageResponse[*schema.JWTKey], error)
- func (r *JWTKeyRepository) ListPlatformJWTKeys(ctx context.Context, filter *jwt.ListJWTKeysFilter) (*pagination.PageResponse[*schema.JWTKey], error)
- func (r *JWTKeyRepository) UpdateJWTKey(ctx context.Context, key *schema.JWTKey) error
- func (r *JWTKeyRepository) UpdateJWTKeyUsage(ctx context.Context, keyID string) error
- type MFARepository
- func (r *MFARepository) CleanupExpiredChallenges(ctx context.Context) (int, error)
- func (r *MFARepository) CleanupExpiredDevices(ctx context.Context) (int, error)
- func (r *MFARepository) CleanupExpiredSessions(ctx context.Context) (int, error)
- func (r *MFARepository) CleanupOldAttempts(ctx context.Context, olderThan time.Time) (int, error)
- func (r *MFARepository) CompleteSession(ctx context.Context, sessionID xid.ID) error
- func (r *MFARepository) CountFailedAttempts(ctx context.Context, userID xid.ID, since time.Time) (int, error)
- func (r *MFARepository) CreateAttempt(ctx context.Context, attempt *schema.MFAAttempt) error
- func (r *MFARepository) CreateBypass(ctx context.Context, bypass *schema.MFABypass) error
- func (r *MFARepository) CreateChallenge(ctx context.Context, challenge *schema.MFAChallenge) error
- func (r *MFARepository) CreateFactor(ctx context.Context, factor *schema.MFAFactor) error
- func (r *MFARepository) CreateRiskAssessment(ctx context.Context, assessment *schema.MFARiskAssessment) error
- func (r *MFARepository) CreateSession(ctx context.Context, session *schema.MFASession) error
- func (r *MFARepository) CreateTrustedDevice(ctx context.Context, device *schema.MFATrustedDevice) error
- func (r *MFARepository) DB() *bun.DB
- func (r *MFARepository) DeleteFactor(ctx context.Context, factorID xid.ID) error
- func (r *MFARepository) DeleteTrustedDevice(ctx context.Context, deviceID xid.ID) error
- func (r *MFARepository) GetActiveBypass(ctx context.Context, appID, userID xid.ID) (*schema.MFABypass, error)
- func (r *MFARepository) GetChallenge(ctx context.Context, challengeID xid.ID) (*schema.MFAChallenge, error)
- func (r *MFARepository) GetFactor(ctx context.Context, factorID xid.ID) (*schema.MFAFactor, error)
- func (r *MFARepository) GetLatestRiskAssessment(ctx context.Context, userID xid.ID) (*schema.MFARiskAssessment, error)
- func (r *MFARepository) GetPolicy(ctx context.Context, appID xid.ID, orgID *xid.ID) (*schema.MFAPolicy, error)
- func (r *MFARepository) GetRecentAttempts(ctx context.Context, userID xid.ID, since time.Time) ([]*schema.MFAAttempt, error)
- func (r *MFARepository) GetRiskAssessmentBySession(ctx context.Context, sessionID xid.ID) (*schema.MFARiskAssessment, error)
- func (r *MFARepository) GetSession(ctx context.Context, sessionID xid.ID) (*schema.MFASession, error)
- func (r *MFARepository) GetSessionByToken(ctx context.Context, token string) (*schema.MFASession, error)
- func (r *MFARepository) GetTrustedDevice(ctx context.Context, userID xid.ID, deviceID string) (*schema.MFATrustedDevice, error)
- func (r *MFARepository) IncrementChallengeAttempts(ctx context.Context, challengeID xid.ID) error
- func (r *MFARepository) ListTrustedDevices(ctx context.Context, userID xid.ID) ([]*schema.MFATrustedDevice, error)
- func (r *MFARepository) ListUserFactors(ctx context.Context, userID xid.ID, statusFilter ...string) ([]*schema.MFAFactor, error)
- func (r *MFARepository) RevokeBypass(ctx context.Context, bypassID, revokedBy xid.ID) error
- func (r *MFARepository) UpdateChallenge(ctx context.Context, challenge *schema.MFAChallenge) error
- func (r *MFARepository) UpdateDeviceLastUsed(ctx context.Context, deviceID xid.ID) error
- func (r *MFARepository) UpdateFactor(ctx context.Context, factor *schema.MFAFactor) error
- func (r *MFARepository) UpdateFactorLastUsed(ctx context.Context, factorID xid.ID) error
- func (r *MFARepository) UpdateSession(ctx context.Context, session *schema.MFASession) error
- func (r *MFARepository) UpdateTrustedDevice(ctx context.Context, device *schema.MFATrustedDevice) error
- func (r *MFARepository) UpsertPolicy(ctx context.Context, policy *schema.MFAPolicy) error
- type MagicLinkRepository
- func (r *MagicLinkRepository) Consume(ctx context.Context, rec *schema.MagicLink, now time.Time) error
- func (r *MagicLinkRepository) Create(ctx context.Context, email, token string, appID xid.ID, ...) error
- func (r *MagicLinkRepository) FindByToken(ctx context.Context, token string, appID xid.ID, userOrganizationID *xid.ID, ...) (*schema.MagicLink, error)
- type MemberRepository
- func (r *MemberRepository) CountByApp(ctx context.Context, appID xid.ID) (int, error)
- func (r *MemberRepository) Create(ctx context.Context, member *schema.Member) error
- func (r *MemberRepository) Delete(ctx context.Context, id xid.ID) error
- func (r *MemberRepository) DeleteByUserID(ctx context.Context, userID xid.ID) error
- func (r *MemberRepository) FindByID(ctx context.Context, id xid.ID) (*schema.Member, error)
- func (r *MemberRepository) FindByUserAndApp(ctx context.Context, userID, appID xid.ID) (*schema.Member, error)
- func (r *MemberRepository) ListByApp(ctx context.Context, appID xid.ID, role *schema.MemberRole, ...) ([]*schema.Member, int64, error)
- func (r *MemberRepository) ListByUser(ctx context.Context, userID xid.ID) ([]*schema.Member, error)
- func (r *MemberRepository) Update(ctx context.Context, member *schema.Member) error
- type NotificationQueueRepository
- type OAuthClientRepository
- func (r *OAuthClientRepository) Create(ctx context.Context, c *schema.OAuthClient) error
- func (r *OAuthClientRepository) Delete(ctx context.Context, id xid.ID) error
- func (r *OAuthClientRepository) ExistsByClientID(ctx context.Context, clientID string) (bool, error)
- func (r *OAuthClientRepository) FindByClientID(ctx context.Context, clientID string) (*schema.OAuthClient, error)
- func (r *OAuthClientRepository) FindByClientIDWithContext(ctx context.Context, appID, envID xid.ID, orgID *xid.ID, clientID string) (*schema.OAuthClient, error)
- func (r *OAuthClientRepository) FindByID(ctx context.Context, id xid.ID) (*schema.OAuthClient, error)
- func (r *OAuthClientRepository) ListByApp(ctx context.Context, appID, envID xid.ID, limit, offset int) ([]*schema.OAuthClient, int, error)
- func (r *OAuthClientRepository) ListByOrg(ctx context.Context, appID, envID, orgID xid.ID, limit, offset int) ([]*schema.OAuthClient, int, error)
- func (r *OAuthClientRepository) Update(ctx context.Context, c *schema.OAuthClient) error
- type OAuthConsentRepository
- func (r *OAuthConsentRepository) Create(ctx context.Context, consent *schema.OAuthConsent) error
- func (r *OAuthConsentRepository) Delete(ctx context.Context, id xid.ID) error
- func (r *OAuthConsentRepository) DeleteByUserAndClient(ctx context.Context, userID xid.ID, clientID string) error
- func (r *OAuthConsentRepository) DeleteExpired(ctx context.Context) error
- func (r *OAuthConsentRepository) FindByUserAndClient(ctx context.Context, userID xid.ID, clientID string, appID, envID xid.ID, ...) (*schema.OAuthConsent, error)
- func (r *OAuthConsentRepository) HasValidConsent(ctx context.Context, userID xid.ID, clientID string, requiredScopes []string, ...) (bool, error)
- func (r *OAuthConsentRepository) ListByUser(ctx context.Context, userID xid.ID, appID, envID xid.ID, orgID *xid.ID) ([]*schema.OAuthConsent, error)
- func (r *OAuthConsentRepository) Update(ctx context.Context, consent *schema.OAuthConsent) error
- type OAuthTokenRepository
- func (r *OAuthTokenRepository) Create(ctx context.Context, token *schema.OAuthToken) error
- func (r *OAuthTokenRepository) DeleteExpired(ctx context.Context) error
- func (r *OAuthTokenRepository) FindByAccessToken(ctx context.Context, accessToken string) (*schema.OAuthToken, error)
- func (r *OAuthTokenRepository) FindByJTI(ctx context.Context, jti string) (*schema.OAuthToken, error)
- func (r *OAuthTokenRepository) FindByRefreshToken(ctx context.Context, refreshToken string) (*schema.OAuthToken, error)
- func (r *OAuthTokenRepository) FindByUserAndClient(ctx context.Context, userID xid.ID, clientID string) ([]*schema.OAuthToken, error)
- func (r *OAuthTokenRepository) FindByUserInOrg(ctx context.Context, userID xid.ID, appID, envID xid.ID, orgID *xid.ID) ([]*schema.OAuthToken, error)
- func (r *OAuthTokenRepository) RevokeAllForClient(ctx context.Context, clientID string) error
- func (r *OAuthTokenRepository) RevokeAllForUser(ctx context.Context, userID xid.ID, appID, envID xid.ID, orgID *xid.ID) error
- func (r *OAuthTokenRepository) RevokeByJTI(ctx context.Context, jti string) error
- func (r *OAuthTokenRepository) RevokeByRefreshToken(ctx context.Context, refreshToken string) error
- func (r *OAuthTokenRepository) RevokeBySession(ctx context.Context, sessionID xid.ID) error
- func (r *OAuthTokenRepository) RevokeToken(ctx context.Context, accessToken string) error
- func (r *OAuthTokenRepository) Update(ctx context.Context, token *schema.OAuthToken) error
- func (r *OAuthTokenRepository) UpdateRefreshToken(ctx context.Context, accessToken, newRefreshToken string, ...) error
- type PermissionRepository
- func (r *PermissionRepository) Create(ctx context.Context, perm *schema.Permission) error
- func (r *PermissionRepository) CreateCustomPermission(ctx context.Context, name, description, category string, orgID xid.ID) (*schema.Permission, error)
- func (r *PermissionRepository) Delete(ctx context.Context, permissionID xid.ID) error
- func (r *PermissionRepository) FindByID(ctx context.Context, permissionID xid.ID) (*schema.Permission, error)
- func (r *PermissionRepository) FindByName(ctx context.Context, name string, appID xid.ID, orgID *xid.ID) (*schema.Permission, error)
- func (r *PermissionRepository) ListByApp(ctx context.Context, appID xid.ID) ([]*schema.Permission, error)
- func (r *PermissionRepository) ListByCategory(ctx context.Context, category string, appID xid.ID) ([]*schema.Permission, error)
- func (r *PermissionRepository) ListByOrg(ctx context.Context, orgID xid.ID) ([]*schema.Permission, error)
- func (r *PermissionRepository) Update(ctx context.Context, perm *schema.Permission) error
- type PhoneRepository
- func (r *PhoneRepository) Consume(ctx context.Context, rec *schema.PhoneVerification, now time.Time) error
- func (r *PhoneRepository) Create(ctx context.Context, phone, code string, appID xid.ID, ...) error
- func (r *PhoneRepository) FindByPhone(ctx context.Context, phone string, appID xid.ID, userOrganizationID *xid.ID, ...) (*schema.PhoneVerification, error)
- func (r *PhoneRepository) IncrementAttempts(ctx context.Context, rec *schema.PhoneVerification) error
- type PolicyRepository
- func (r *PolicyRepository) Create(ctx context.Context, expression string) error
- func (r *PolicyRepository) Delete(ctx context.Context, id xid.ID) error
- func (r *PolicyRepository) List(ctx context.Context) ([]schema.Policy, error)
- func (r *PolicyRepository) ListAll(ctx context.Context) ([]string, error)
- func (r *PolicyRepository) Update(ctx context.Context, id xid.ID, expression string) error
- type Repo
- func (r *Repo) APIKey() *APIKeyRepository
- func (r *Repo) App() *AppRepository
- func (r *Repo) Audit() *AuditRepository
- func (r *Repo) AuthorizationCode() *AuthorizationCodeRepository
- func (r *Repo) Device() *DeviceRepository
- func (r *Repo) EmailOTP() *EmailOTPRepository
- func (r *Repo) Environment() environment.Repository
- func (r *Repo) Forms() forms.Repository
- func (r *Repo) IdentityVerification() *IdentityVerificationRepository
- func (r *Repo) Impersonation() *ImpersonationRepository
- func (r *Repo) JWTKey() *JWTKeyRepository
- func (r *Repo) MFA() *MFARepository
- func (r *Repo) MagicLink() *MagicLinkRepository
- func (r *Repo) Notification() notification.Repository
- func (r *Repo) OAuthClient() *OAuthClientRepository
- func (r *Repo) OAuthToken() *OAuthTokenRepository
- func (r *Repo) Organization() organization.OrganizationRepository
- func (r *Repo) OrganizationInvitation() organization.InvitationRepository
- func (r *Repo) OrganizationMember() organization.MemberRepository
- func (r *Repo) OrganizationTeam() organization.TeamRepository
- func (r *Repo) Permission() *PermissionRepository
- func (r *Repo) Phone() *PhoneRepository
- func (r *Repo) Policy() *PolicyRepository
- func (r *Repo) Role() *RoleRepository
- func (r *Repo) RolePermission() *RolePermissionRepository
- func (r *Repo) SSOProvider() *SSOProviderRepository
- func (r *Repo) Security() *SecurityRepository
- func (r *Repo) Session() *SessionRepository
- func (r *Repo) SocialAccount() SocialAccountRepository
- func (r *Repo) SocialProviderConfig() SocialProviderConfigRepository
- func (r *Repo) TwoFA() *TwoFARepository
- func (r *Repo) User() *UserRepository
- func (r *Repo) UserBan() *UserBanRepository
- func (r *Repo) UserRole() *UserRoleRepository
- func (r *Repo) Verification() *verificationRepository
- func (r *Repo) Webhook() webhook.Repository
- type Repository
- type RolePermissionRepository
- func (r *RolePermissionRepository) AssignPermission(ctx context.Context, roleID, permissionID xid.ID) error
- func (r *RolePermissionRepository) GetPermissionRoles(ctx context.Context, permissionID xid.ID) ([]*schema.Role, error)
- func (r *RolePermissionRepository) GetRolePermissions(ctx context.Context, roleID xid.ID) ([]*schema.Permission, error)
- func (r *RolePermissionRepository) ReplaceRolePermissions(ctx context.Context, roleID xid.ID, permissionIDs []xid.ID) error
- func (r *RolePermissionRepository) UnassignPermission(ctx context.Context, roleID, permissionID xid.ID) error
- type RoleRepository
- func (r *RoleRepository) CloneRole(ctx context.Context, templateID xid.ID, orgID xid.ID, customName *string) (*schema.Role, error)
- func (r *RoleRepository) Create(ctx context.Context, role *schema.Role) error
- func (r *RoleRepository) Delete(ctx context.Context, roleID xid.ID) error
- func (r *RoleRepository) FindByID(ctx context.Context, roleID xid.ID) (*schema.Role, error)
- func (r *RoleRepository) FindByNameAndApp(ctx context.Context, name string, appID xid.ID) (*schema.Role, error)
- func (r *RoleRepository) FindByNameAppEnv(ctx context.Context, name string, appID, envID xid.ID) (*schema.Role, error)
- func (r *RoleRepository) FindDuplicateRoles(ctx context.Context) ([]schema.Role, error)
- func (r *RoleRepository) GetOrgRoleWithPermissions(ctx context.Context, roleID xid.ID) (*schema.Role, error)
- func (r *RoleRepository) GetOrgRoles(ctx context.Context, orgID, envID xid.ID) ([]*schema.Role, error)
- func (r *RoleRepository) GetOwnerRole(ctx context.Context, appID, envID xid.ID) (*schema.Role, error)
- func (r *RoleRepository) GetRoleTemplates(ctx context.Context, appID, envID xid.ID) ([]*schema.Role, error)
- func (r *RoleRepository) ListByOrg(ctx context.Context, orgID *string) ([]schema.Role, error)
- func (r *RoleRepository) Update(ctx context.Context, role *schema.Role) error
- type SSOProviderRepository
- func (r *SSOProviderRepository) Create(ctx context.Context, p *schema.SSOProvider) error
- func (r *SSOProviderRepository) Delete(ctx context.Context, id xid.ID) error
- func (r *SSOProviderRepository) FindByDomain(ctx context.Context, domain string) ([]*schema.SSOProvider, error)
- func (r *SSOProviderRepository) FindByProviderID(ctx context.Context, providerID string) (*schema.SSOProvider, error)
- func (r *SSOProviderRepository) List(ctx context.Context) ([]*schema.SSOProvider, error)
- func (r *SSOProviderRepository) Upsert(ctx context.Context, p *schema.SSOProvider) error
- type SecurityRepository
- type SessionRepository
- func (r *SessionRepository) CleanupExpiredSessions(ctx context.Context) (int, error)
- func (r *SessionRepository) CountSessions(ctx context.Context, appID xid.ID, userID *xid.ID) (int, error)
- func (r *SessionRepository) CreateSession(ctx context.Context, s *schema.Session) error
- func (r *SessionRepository) FindSessionByID(ctx context.Context, id xid.ID) (*schema.Session, error)
- func (r *SessionRepository) FindSessionByRefreshToken(ctx context.Context, refreshToken string) (*schema.Session, error)
- func (r *SessionRepository) FindSessionByToken(ctx context.Context, token string) (*schema.Session, error)
- func (r *SessionRepository) ListSessions(ctx context.Context, filter *session.ListSessionsFilter) (*pagination.PageResponse[*schema.Session], error)
- func (r *SessionRepository) RefreshSessionTokens(ctx context.Context, id xid.ID, newAccessToken string, ...) error
- func (r *SessionRepository) RevokeSession(ctx context.Context, token string) error
- func (r *SessionRepository) RevokeSessionByID(ctx context.Context, id xid.ID) error
- func (r *SessionRepository) UpdateSessionExpiry(ctx context.Context, id xid.ID, expiresAt time.Time) error
- type SocialAccountRepository
- type SocialProviderConfigRepository
- type TeamRepository
- func (r *TeamRepository) AddMember(ctx context.Context, teamID, memberID xid.ID, role string) error
- func (r *TeamRepository) CountByApp(ctx context.Context, appID xid.ID) (int, error)
- func (r *TeamRepository) CountTeamMembers(ctx context.Context, teamID xid.ID) (int, error)
- func (r *TeamRepository) Create(ctx context.Context, team *schema.Team) error
- func (r *TeamRepository) Delete(ctx context.Context, id xid.ID) error
- func (r *TeamRepository) FindByExternalID(ctx context.Context, appID xid.ID, externalID string) (*schema.Team, error)
- func (r *TeamRepository) FindByID(ctx context.Context, id xid.ID) (*schema.Team, error)
- func (r *TeamRepository) ListByApp(ctx context.Context, appID xid.ID, limit, offset int) ([]*schema.Team, int64, error)
- func (r *TeamRepository) ListMembers(ctx context.Context, teamID xid.ID) ([]*schema.Member, error)
- func (r *TeamRepository) RemoveMember(ctx context.Context, teamID, memberID xid.ID) error
- func (r *TeamRepository) Update(ctx context.Context, team *schema.Team) error
- type TwoFARepository
- func (r *TwoFARepository) CreateBackupCodes(ctx context.Context, userID xid.ID, hashes []string) error
- func (r *TwoFARepository) CreateOTPCode(ctx context.Context, userID xid.ID, codeHash string, expiresAt time.Time) error
- func (r *TwoFARepository) DB() *bun.DB
- func (r *TwoFARepository) DisableSecret(ctx context.Context, userID xid.ID) error
- func (r *TwoFARepository) GetSecret(ctx context.Context, userID xid.ID) (*schema.TwoFASecret, error)
- func (r *TwoFARepository) IsTrustedDevice(ctx context.Context, userID xid.ID, deviceID string, now time.Time) (bool, error)
- func (r *TwoFARepository) MarkTrustedDevice(ctx context.Context, userID xid.ID, deviceID string, expiresAt time.Time) error
- func (r *TwoFARepository) UpsertSecret(ctx context.Context, userID xid.ID, method, secret string, enabled bool) error
- func (r *TwoFARepository) VerifyAndUseBackupCode(ctx context.Context, userID xid.ID, hash string) (bool, error)
- func (r *TwoFARepository) VerifyOTPCode(ctx context.Context, userID xid.ID, codeHash string, now time.Time, ...) (bool, error)
- type UserBanRepository
- func (r *UserBanRepository) CreateBan(ctx context.Context, ban *schema.UserBan) error
- func (r *UserBanRepository) FindActiveBan(ctx context.Context, userID string) (*schema.UserBan, error)
- func (r *UserBanRepository) FindBanByID(ctx context.Context, banID string) (*schema.UserBan, error)
- func (r *UserBanRepository) FindBansByUser(ctx context.Context, userID string) ([]*schema.UserBan, error)
- func (r *UserBanRepository) UpdateBan(ctx context.Context, ban *schema.UserBan) error
- type UserRepository
- func (r *UserRepository) CountUsers(ctx context.Context, filter *core.CountUsersFilter) (int, error)
- func (r *UserRepository) Create(ctx context.Context, user *schema.User) error
- func (r *UserRepository) Delete(ctx context.Context, id xid.ID) error
- func (r *UserRepository) FindByAppAndEmail(ctx context.Context, appID xid.ID, email string) (*schema.User, error)
- func (r *UserRepository) FindByEmail(ctx context.Context, email string) (*schema.User, error)
- func (r *UserRepository) FindByID(ctx context.Context, id xid.ID) (*schema.User, error)
- func (r *UserRepository) FindByUsername(ctx context.Context, username string) (*schema.User, error)
- func (r *UserRepository) ListUsers(ctx context.Context, filter *core.ListUsersFilter) (*pagination.PageResponse[*schema.User], error)
- func (r *UserRepository) Update(ctx context.Context, user *schema.User) error
- type UserRoleRepository
- func (r *UserRoleRepository) Assign(ctx context.Context, userID, roleID, orgID xid.ID) error
- func (r *UserRoleRepository) AssignAppLevel(ctx context.Context, userID, roleID, appID xid.ID) error
- func (r *UserRoleRepository) AssignBatch(ctx context.Context, userID xid.ID, roleIDs []xid.ID, orgID xid.ID) error
- func (r *UserRoleRepository) AssignBulk(ctx context.Context, userIDs []xid.ID, roleID xid.ID, orgID xid.ID) (map[xid.ID]error, error)
- func (r *UserRoleRepository) ClearUserRolesInApp(ctx context.Context, userID, appID xid.ID) error
- func (r *UserRoleRepository) ClearUserRolesInOrg(ctx context.Context, userID, orgID xid.ID) error
- func (r *UserRoleRepository) CopyRoles(ctx context.Context, userID, sourceOrgID, targetOrgID xid.ID, roleIDs []xid.ID) error
- func (r *UserRoleRepository) ListAllUserRolesInApp(ctx context.Context, appID, envID xid.ID) ([]schema.UserRole, error)
- func (r *UserRoleRepository) ListAllUserRolesInOrg(ctx context.Context, orgID, envID xid.ID) ([]schema.UserRole, error)
- func (r *UserRoleRepository) ListRolesForUser(ctx context.Context, userID xid.ID, orgID *xid.ID) ([]schema.Role, error)
- func (r *UserRoleRepository) ListRolesForUserInApp(ctx context.Context, userID, appID, envID xid.ID) ([]schema.Role, error)
- func (r *UserRoleRepository) ListRolesForUserInOrg(ctx context.Context, userID, orgID, envID xid.ID) ([]schema.Role, error)
- func (r *UserRoleRepository) ReplaceUserRoles(ctx context.Context, userID, orgID xid.ID, newRoleIDs []xid.ID) error
- func (r *UserRoleRepository) TransferRoles(ctx context.Context, userID, sourceOrgID, targetOrgID xid.ID, roleIDs []xid.ID) error
- func (r *UserRoleRepository) Unassign(ctx context.Context, userID, roleID, orgID xid.ID) error
- func (r *UserRoleRepository) UnassignBatch(ctx context.Context, userID xid.ID, roleIDs []xid.ID, orgID xid.ID) error
- func (r *UserRoleRepository) UnassignBulk(ctx context.Context, userIDs []xid.ID, roleID xid.ID, orgID xid.ID) (map[xid.ID]error, error)
- type UsernameRepository
- func (r *UsernameRepository) CheckPasswordInHistory(ctx context.Context, userID xid.ID, password string, limit int) (bool, error)
- func (r *UsernameRepository) CleanupExpiredLockouts(ctx context.Context) error
- func (r *UsernameRepository) CleanupOldFailedAttempts(ctx context.Context, before time.Time) error
- func (r *UsernameRepository) CleanupOldPasswordHistory(ctx context.Context, userID xid.ID, keepCount int) error
- func (r *UsernameRepository) ClearFailedAttempts(ctx context.Context, username string, appID xid.ID) error
- func (r *UsernameRepository) GetFailedAttempts(ctx context.Context, username string, appID xid.ID, since time.Time) (int, error)
- func (r *UsernameRepository) GetPasswordHistory(ctx context.Context, userID xid.ID, limit int) ([]string, error)
- func (r *UsernameRepository) IsAccountLocked(ctx context.Context, userID xid.ID) (bool, *time.Time, error)
- func (r *UsernameRepository) LockAccount(ctx context.Context, userID xid.ID, duration time.Duration, reason string) error
- func (r *UsernameRepository) RecordFailedAttempt(ctx context.Context, username string, appID xid.ID, ip, ua string) error
- func (r *UsernameRepository) SavePasswordHistory(ctx context.Context, userID xid.ID, passwordHash string) error
- func (r *UsernameRepository) UnlockAccount(ctx context.Context, userID xid.ID) error
Constants ¶
This section is empty.
Variables ¶
var ErrSearchNotSupported = audit.InvalidFilter("search", "full-text search not supported for this database")
Functions ¶
func NewDatabaseRetryStorage ¶ added in v0.0.7
func NewDatabaseRetryStorage(repo NotificationQueueRepository) notification.RetryStorage
NewDatabaseRetryStorage creates a new database-backed retry storage
func NewEnvironmentRepository ¶
NewEnvironmentRepository creates a new environment repository
func NewFormsRepository ¶
func NewFormsRepository(db *bun.DB) forms.Repository
NewFormsRepository creates a new forms repository
func NewNotificationRepository ¶
func NewNotificationRepository(db *bun.DB) notification.Repository
NewNotificationRepository creates a new notification repository
func NewVerificationRepository ¶ added in v0.0.6
NewVerificationRepository creates a new verification repository
func NewWebhookRepository ¶
func NewWebhookRepository(db *bun.DB) webhook.Repository
NewWebhookRepository creates a new webhook repository
Types ¶
type APIKeyRepository ¶
type APIKeyRepository struct {
// contains filtered or unexported fields
}
APIKeyRepository handles API key database operations Updated for V2 architecture: App → Environment → Organization
func NewAPIKeyRepository ¶
func NewAPIKeyRepository(db *bun.DB) *APIKeyRepository
NewAPIKeyRepository creates a new API key repository
func (*APIKeyRepository) CleanupExpiredAPIKeys ¶
func (r *APIKeyRepository) CleanupExpiredAPIKeys(ctx context.Context) (int, error)
CleanupExpiredAPIKeys removes expired API keys
func (*APIKeyRepository) CountAPIKeys ¶
func (r *APIKeyRepository) CountAPIKeys(ctx context.Context, appID xid.ID, envID *xid.ID, orgID *xid.ID, userID *xid.ID) (int, error)
CountAPIKeys counts API keys with flexible filtering
func (*APIKeyRepository) CreateAPIKey ¶
CreateAPIKey creates a new API key
func (*APIKeyRepository) DeactivateAPIKey ¶
DeactivateAPIKey deactivates an API key without deleting it
func (*APIKeyRepository) DeleteAPIKey ¶
DeleteAPIKey soft deletes an API key
func (*APIKeyRepository) FindAPIKeyByID ¶
FindAPIKeyByID finds an API key by ID
func (*APIKeyRepository) FindAPIKeyByPrefix ¶
func (r *APIKeyRepository) FindAPIKeyByPrefix(ctx context.Context, prefix string) (*schema.APIKey, error)
FindAPIKeyByPrefix finds an API key by prefix
func (*APIKeyRepository) ListAPIKeys ¶
func (r *APIKeyRepository) ListAPIKeys(ctx context.Context, filter *apikey.ListAPIKeysFilter) (*pagination.PageResponse[*schema.APIKey], error)
ListAPIKeys lists API keys with filtering and pagination
func (*APIKeyRepository) UpdateAPIKey ¶
UpdateAPIKey updates an API key
func (*APIKeyRepository) UpdateAPIKeyUsage ¶
func (r *APIKeyRepository) UpdateAPIKeyUsage(ctx context.Context, id xid.ID, ip, userAgent string) error
UpdateAPIKeyUsage updates the usage statistics for an API key
type APIKeyRoleRepository ¶
type APIKeyRoleRepository struct {
// contains filtered or unexported fields
}
APIKeyRoleRepository handles API key to role assignments
func NewAPIKeyRoleRepository ¶
func NewAPIKeyRoleRepository(db *bun.DB) *APIKeyRoleRepository
NewAPIKeyRoleRepository creates a new API key role repository
func (*APIKeyRoleRepository) AssignRole ¶
func (r *APIKeyRoleRepository) AssignRole(ctx context.Context, apiKeyID, roleID xid.ID, orgID *xid.ID, createdBy *xid.ID) error
AssignRole assigns a role to an API key
func (*APIKeyRoleRepository) BulkAssignRoles ¶
func (r *APIKeyRoleRepository) BulkAssignRoles(ctx context.Context, apiKeyID xid.ID, roleIDs []xid.ID, orgID *xid.ID, createdBy *xid.ID) error
BulkAssignRoles assigns multiple roles to an API key in a single transaction
func (*APIKeyRoleRepository) BulkUnassignRoles ¶
func (r *APIKeyRoleRepository) BulkUnassignRoles(ctx context.Context, apiKeyID xid.ID, roleIDs []xid.ID, orgID *xid.ID) error
BulkUnassignRoles removes multiple roles from an API key in a single transaction
func (*APIKeyRoleRepository) GetAPIKeysWithRole ¶
func (r *APIKeyRoleRepository) GetAPIKeysWithRole(ctx context.Context, roleID xid.ID, orgID *xid.ID) ([]*schema.APIKey, error)
GetAPIKeysWithRole retrieves all API keys that have a specific role
func (*APIKeyRoleRepository) GetCreatorPermissions ¶
func (r *APIKeyRoleRepository) GetCreatorPermissions(ctx context.Context, creatorID xid.ID, orgID *xid.ID) ([]*schema.Permission, error)
GetCreatorPermissions retrieves the permissions of the user who created the API key
func (*APIKeyRoleRepository) GetCreatorRoles ¶
func (r *APIKeyRoleRepository) GetCreatorRoles(ctx context.Context, creatorID xid.ID, orgID *xid.ID) ([]*schema.Role, error)
GetCreatorRoles retrieves the roles of the user who created the API key
func (*APIKeyRoleRepository) GetPermissions ¶
func (r *APIKeyRoleRepository) GetPermissions(ctx context.Context, apiKeyID xid.ID, orgID *xid.ID) ([]*schema.Permission, error)
GetPermissions retrieves all permissions for an API key through its roles
func (*APIKeyRoleRepository) GetRoles ¶
func (r *APIKeyRoleRepository) GetRoles(ctx context.Context, apiKeyID xid.ID, orgID *xid.ID) ([]*schema.Role, error)
GetRoles retrieves all roles assigned to an API key
func (*APIKeyRoleRepository) HasRole ¶
func (r *APIKeyRoleRepository) HasRole(ctx context.Context, apiKeyID, roleID xid.ID, orgID *xid.ID) (bool, error)
HasRole checks if an API key has a specific role
func (*APIKeyRoleRepository) ReplaceRoles ¶
func (r *APIKeyRoleRepository) ReplaceRoles(ctx context.Context, apiKeyID xid.ID, roleIDs []xid.ID, orgID *xid.ID, createdBy *xid.ID) error
ReplaceRoles replaces all roles for an API key with a new set (in a transaction)
func (*APIKeyRoleRepository) UnassignRole ¶
func (r *APIKeyRoleRepository) UnassignRole(ctx context.Context, apiKeyID, roleID xid.ID, orgID *xid.ID) error
UnassignRole removes a role from an API key (soft delete)
type AppRepository ¶
type AppRepository struct {
// contains filtered or unexported fields
}
AppRepository is a Bun-backed implementation of app repository
func NewAppRepository ¶
func NewAppRepository(db *bun.DB) *AppRepository
func (*AppRepository) AddTeamMember ¶
func (r *AppRepository) AddTeamMember(ctx context.Context, tm *schema.TeamMember) error
AddTeamMember adds a member to a team
func (*AppRepository) CountApps ¶
func (r *AppRepository) CountApps(ctx context.Context) (int, error)
CountApps returns total number of apps
func (*AppRepository) CountMembers ¶
CountMembers returns the total number of members in an app
func (*AppRepository) CountTeamMembers ¶
CountTeamMembers returns the total number of members in a team
func (*AppRepository) CountTeams ¶
CountTeams returns the total number of teams in an app
func (*AppRepository) CreateInvitation ¶
func (r *AppRepository) CreateInvitation(ctx context.Context, inv *schema.Invitation) error
CreateInvitation creates an invitation
func (*AppRepository) CreateMember ¶
CreateMember creates a new member
func (*AppRepository) CreateTeam ¶
CreateTeam creates a new team
func (*AppRepository) DeleteExpiredInvitations ¶
func (r *AppRepository) DeleteExpiredInvitations(ctx context.Context) (int, error)
DeleteExpiredInvitations deletes expired invitations
func (*AppRepository) DeleteInvitation ¶
DeleteInvitation deletes an invitation
func (*AppRepository) DeleteMember ¶
DeleteMember deletes a member
func (*AppRepository) DeleteTeam ¶
DeleteTeam deletes a team
func (*AppRepository) FindAppByID ¶
func (*AppRepository) FindAppBySlug ¶
func (*AppRepository) FindInvitationByID ¶
func (r *AppRepository) FindInvitationByID(ctx context.Context, id xid.ID) (*schema.Invitation, error)
FindInvitationByID finds an invitation by ID
func (*AppRepository) FindInvitationByToken ¶
func (r *AppRepository) FindInvitationByToken(ctx context.Context, token string) (*schema.Invitation, error)
FindInvitationByToken finds an invitation by token
func (*AppRepository) FindMember ¶
func (r *AppRepository) FindMember(ctx context.Context, appID, userID xid.ID) (*schema.Member, error)
FindMember finds a member by app ID and user ID (for IsUserMember)
func (*AppRepository) FindMemberByID ¶
FindMemberByID finds a member by ID
func (*AppRepository) FindTeamByID ¶
FindTeamByID finds a team by ID
func (*AppRepository) FindTeamByName ¶
func (r *AppRepository) FindTeamByName(ctx context.Context, appID xid.ID, name string) (*schema.Team, error)
FindTeamByName finds a team by name within an app
func (*AppRepository) GetPlatformApp ¶
func (*AppRepository) IsTeamMember ¶
IsTeamMember checks if a member is part of a team
func (*AppRepository) ListApps ¶
func (r *AppRepository) ListApps(ctx context.Context, filter *app.ListAppsFilter) (*pagination.PageResponse[*schema.App], error)
func (*AppRepository) ListInvitations ¶
func (r *AppRepository) ListInvitations(ctx context.Context, filter *app.ListInvitationsFilter) (*pagination.PageResponse[*schema.Invitation], error)
ListInvitations lists invitations by app with optional status filter and pagination
func (*AppRepository) ListMemberTeams ¶
func (r *AppRepository) ListMemberTeams(ctx context.Context, filter *app.ListMemberTeamsFilter) (*pagination.PageResponse[*schema.Team], error)
ListMemberTeams lists all teams a member belongs to with pagination
func (*AppRepository) ListMembers ¶
func (r *AppRepository) ListMembers(ctx context.Context, filter *app.ListMembersFilter) (*pagination.PageResponse[*schema.Member], error)
ListMembers lists members by app with optional filters and pagination
func (*AppRepository) ListMembersByUser ¶
func (r *AppRepository) ListMembersByUser(ctx context.Context, userID xid.ID) ([]*schema.Member, error)
ListMembersByUser lists all memberships for a user across all apps
func (*AppRepository) ListTeamMembers ¶
func (r *AppRepository) ListTeamMembers(ctx context.Context, filter *app.ListTeamMembersFilter) (*pagination.PageResponse[*schema.TeamMember], error)
ListTeamMembers lists members of a team
func (*AppRepository) ListTeams ¶
func (r *AppRepository) ListTeams(ctx context.Context, filter *app.ListTeamsFilter) (*pagination.PageResponse[*schema.Team], error)
ListTeams lists teams by app with pagination
func (*AppRepository) RemoveTeamMember ¶
RemoveTeamMember removes a member from a team
func (*AppRepository) UpdateInvitation ¶
func (r *AppRepository) UpdateInvitation(ctx context.Context, inv *schema.Invitation) error
UpdateInvitation updates an invitation
func (*AppRepository) UpdateMember ¶
UpdateMember updates a member
func (*AppRepository) UpdateTeam ¶
UpdateTeam updates a team
type AuditRepository ¶
type AuditRepository struct {
// contains filtered or unexported fields
}
AuditRepository implements core audit repository using Bun
func NewAuditRepository ¶
func NewAuditRepository(db *bun.DB) *AuditRepository
NewAuditRepository creates a new audit repository
func (*AuditRepository) Count ¶ added in v0.0.9
func (r *AuditRepository) Count(ctx context.Context, filter *audit.ListEventsFilter) (int64, error)
Count returns the count of audit events matching the filter
func (*AuditRepository) Create ¶
func (r *AuditRepository) Create(ctx context.Context, e *schema.AuditEvent) error
Create creates a new audit event
func (*AuditRepository) DeleteOlderThan ¶ added in v0.0.9
func (r *AuditRepository) DeleteOlderThan(ctx context.Context, filter *audit.DeleteFilter, before time.Time) (int64, error)
DeleteOlderThan deletes audit events older than the specified time
func (*AuditRepository) Get ¶
func (r *AuditRepository) Get(ctx context.Context, id xid.ID) (*schema.AuditEvent, error)
Get retrieves an audit event by ID
func (*AuditRepository) GetOldestEvent ¶ added in v0.0.9
func (r *AuditRepository) GetOldestEvent(ctx context.Context, filter *audit.ListEventsFilter) (*schema.AuditEvent, error)
GetOldestEvent retrieves the oldest audit event matching the filter
func (*AuditRepository) GetStatisticsByAction ¶ added in v0.0.9
func (r *AuditRepository) GetStatisticsByAction(ctx context.Context, filter *audit.StatisticsFilter) ([]*audit.ActionStatistic, error)
GetStatisticsByAction returns aggregated statistics grouped by action
func (*AuditRepository) GetStatisticsByActionAndUser ¶ added in v0.0.9
func (r *AuditRepository) GetStatisticsByActionAndUser(ctx context.Context, filter *audit.StatisticsFilter) ([]*audit.ActionUserStatistic, error)
GetStatisticsByActionAndUser returns event counts grouped by action and user
func (*AuditRepository) GetStatisticsByDate ¶ added in v0.0.9
func (r *AuditRepository) GetStatisticsByDate(ctx context.Context, filter *audit.StatisticsFilter) ([]*audit.DateStatistic, error)
GetStatisticsByDate returns daily event counts for a date range
func (*AuditRepository) GetStatisticsByDay ¶ added in v0.0.9
func (r *AuditRepository) GetStatisticsByDay(ctx context.Context, filter *audit.StatisticsFilter) ([]*audit.DayStatistic, error)
GetStatisticsByDay returns event distribution by day of week
func (*AuditRepository) GetStatisticsByHour ¶ added in v0.0.9
func (r *AuditRepository) GetStatisticsByHour(ctx context.Context, filter *audit.StatisticsFilter) ([]*audit.HourStatistic, error)
GetStatisticsByHour returns event distribution by hour of day (0-23)
func (*AuditRepository) GetStatisticsByIPAddress ¶ added in v0.0.9
func (r *AuditRepository) GetStatisticsByIPAddress(ctx context.Context, filter *audit.StatisticsFilter) ([]*audit.IPStatistic, error)
GetStatisticsByIPAddress returns event counts grouped by IP address
func (*AuditRepository) GetStatisticsByResource ¶ added in v0.0.9
func (r *AuditRepository) GetStatisticsByResource(ctx context.Context, filter *audit.StatisticsFilter) ([]*audit.ResourceStatistic, error)
GetStatisticsByResource returns aggregated statistics grouped by resource
func (*AuditRepository) GetStatisticsByResourceAndAction ¶ added in v0.0.9
func (r *AuditRepository) GetStatisticsByResourceAndAction(ctx context.Context, filter *audit.StatisticsFilter) ([]*audit.ResourceActionStatistic, error)
GetStatisticsByResourceAndAction returns event counts grouped by resource and action
func (*AuditRepository) GetStatisticsByUser ¶ added in v0.0.9
func (r *AuditRepository) GetStatisticsByUser(ctx context.Context, filter *audit.StatisticsFilter) ([]*audit.UserStatistic, error)
GetStatisticsByUser returns aggregated statistics grouped by user
func (*AuditRepository) GetTimeSeries ¶ added in v0.0.9
func (r *AuditRepository) GetTimeSeries(ctx context.Context, filter *audit.TimeSeriesFilter) ([]*audit.TimeSeriesPoint, error)
GetTimeSeries returns event counts over time with configurable intervals
func (*AuditRepository) GetUniqueIPCount ¶ added in v0.0.9
func (r *AuditRepository) GetUniqueIPCount(ctx context.Context, filter *audit.StatisticsFilter) (int64, error)
GetUniqueIPCount returns the count of unique IP addresses
func (*AuditRepository) List ¶
func (r *AuditRepository) List(ctx context.Context, filter *audit.ListEventsFilter) (*pagination.PageResponse[*schema.AuditEvent], error)
List returns paginated audit events with optional filters
func (*AuditRepository) Search ¶ added in v0.0.8
func (r *AuditRepository) Search(ctx context.Context, query *audit.SearchQuery) (*audit.SearchResponse, error)
Search performs full-text search on audit events (implements audit.SearchRepository)
func (*AuditRepository) SearchPostgreSQL ¶ added in v0.0.8
func (r *AuditRepository) SearchPostgreSQL(ctx context.Context, query *audit.SearchQuery) (*audit.SearchResponse, error)
SearchPostgreSQL performs PostgreSQL tsvector full-text search
func (*AuditRepository) SearchSQLite ¶ added in v0.0.8
func (r *AuditRepository) SearchSQLite(ctx context.Context, query *audit.SearchQuery) (*audit.SearchResponse, error)
SearchSQLite performs SQLite FTS5 full-text search (placeholder for SQLite support)
type AuthorizationCodeRepository ¶
type AuthorizationCodeRepository struct {
// contains filtered or unexported fields
}
AuthorizationCodeRepository handles authorization code persistence
func NewAuthorizationCodeRepository ¶
func NewAuthorizationCodeRepository(db *bun.DB) *AuthorizationCodeRepository
NewAuthorizationCodeRepository creates a new authorization code repository
func (*AuthorizationCodeRepository) Create ¶
func (r *AuthorizationCodeRepository) Create(ctx context.Context, code *schema.AuthorizationCode) error
Create stores a new authorization code
func (*AuthorizationCodeRepository) DeleteBySession ¶
DeleteBySession removes authorization codes associated with a session
func (*AuthorizationCodeRepository) DeleteExpired ¶
func (r *AuthorizationCodeRepository) DeleteExpired(ctx context.Context) error
DeleteExpired removes expired authorization codes
func (*AuthorizationCodeRepository) FindByCode ¶
func (r *AuthorizationCodeRepository) FindByCode(ctx context.Context, code string) (*schema.AuthorizationCode, error)
FindByCode retrieves an authorization code by its code value
func (*AuthorizationCodeRepository) FindByCodeWithContext ¶
func (r *AuthorizationCodeRepository) FindByCodeWithContext(ctx context.Context, code string, appID, envID xid.ID, orgID *xid.ID) (*schema.AuthorizationCode, error)
FindByCodeWithContext retrieves an authorization code with context filtering
func (*AuthorizationCodeRepository) FindBySession ¶
func (r *AuthorizationCodeRepository) FindBySession(ctx context.Context, sessionID xid.ID) ([]*schema.AuthorizationCode, error)
FindBySession retrieves authorization codes for a specific session
func (*AuthorizationCodeRepository) FindByUserAndClient ¶
func (r *AuthorizationCodeRepository) FindByUserAndClient(ctx context.Context, userID xid.ID, clientID string) ([]*schema.AuthorizationCode, error)
FindByUserAndClient retrieves authorization codes for a specific user and client
func (*AuthorizationCodeRepository) MarkAsUsed ¶
func (r *AuthorizationCodeRepository) MarkAsUsed(ctx context.Context, code string) error
MarkAsUsed marks an authorization code as used
type DatabaseRetryStorage ¶ added in v0.0.7
type DatabaseRetryStorage struct {
// contains filtered or unexported fields
}
DatabaseRetryStorage implements notification.RetryStorage using the database repository
func (*DatabaseRetryStorage) Dequeue ¶ added in v0.0.7
func (s *DatabaseRetryStorage) Dequeue(ctx context.Context, limit int) ([]*notification.RetryItem, error)
Dequeue retrieves items ready for retry
func (*DatabaseRetryStorage) Enqueue ¶ added in v0.0.7
func (s *DatabaseRetryStorage) Enqueue(ctx context.Context, item *notification.RetryItem) error
Enqueue adds an item to the retry queue
func (*DatabaseRetryStorage) GetStats ¶ added in v0.0.7
func (s *DatabaseRetryStorage) GetStats(ctx context.Context) (*notification.RetryStats, error)
GetStats returns queue statistics
func (*DatabaseRetryStorage) MarkFailed ¶ added in v0.0.7
func (s *DatabaseRetryStorage) MarkFailed(ctx context.Context, item *notification.RetryItem) error
MarkFailed marks an item as permanently failed
func (*DatabaseRetryStorage) Update ¶ added in v0.0.7
func (s *DatabaseRetryStorage) Update(ctx context.Context, item *notification.RetryItem) error
Update updates an item's retry state
type DeviceRepository ¶
type DeviceRepository struct {
// contains filtered or unexported fields
}
DeviceRepository implements core device repository using Bun
func NewDeviceRepository ¶
func NewDeviceRepository(db *bun.DB) *DeviceRepository
NewDeviceRepository creates a new device repository
func (*DeviceRepository) CountDevices ¶
CountDevices counts devices for a user
func (*DeviceRepository) CreateDevice ¶
CreateDevice creates a new device
func (*DeviceRepository) DeleteDevice ¶
DeleteDevice soft deletes a device by ID
func (*DeviceRepository) DeleteDeviceByFingerprint ¶
func (r *DeviceRepository) DeleteDeviceByFingerprint(ctx context.Context, userID xid.ID, fingerprint string) error
DeleteDeviceByFingerprint soft deletes a device by user ID and fingerprint
func (*DeviceRepository) FindDeviceByFingerprint ¶
func (r *DeviceRepository) FindDeviceByFingerprint(ctx context.Context, userID xid.ID, fingerprint string) (*schema.Device, error)
FindDeviceByFingerprint finds a device by user ID and fingerprint
func (*DeviceRepository) FindDeviceByID ¶
FindDeviceByID finds a device by ID
func (*DeviceRepository) ListDevices ¶
func (r *DeviceRepository) ListDevices(ctx context.Context, filter *device.ListDevicesFilter) (*pagination.PageResponse[*schema.Device], error)
ListDevices lists devices with filtering and pagination
func (*DeviceRepository) UpdateDevice ¶
UpdateDevice updates a device
type EmailOTPRepository ¶
type EmailOTPRepository struct {
// contains filtered or unexported fields
}
EmailOTPRepository provides persistence for Email OTP entities
func NewEmailOTPRepository ¶
func NewEmailOTPRepository(db *bun.DB) *EmailOTPRepository
func (*EmailOTPRepository) Consume ¶
func (r *EmailOTPRepository) Consume(ctx context.Context, rec *schema.EmailOTP, now time.Time) error
Consume marks OTP as consumed by expiring now
func (*EmailOTPRepository) Create ¶
func (r *EmailOTPRepository) Create(ctx context.Context, email, otp string, expiresAt time.Time) error
Create stores a new email OTP record
func (*EmailOTPRepository) FindByEmail ¶
func (r *EmailOTPRepository) FindByEmail(ctx context.Context, email string, now time.Time) (*schema.EmailOTP, error)
FindByEmail returns the latest active OTP record for an email
func (*EmailOTPRepository) IncrementAttempts ¶
IncrementAttempts increments attempts count
type FormSubmissionStats ¶
type FormSubmissionStats struct {
Total int `json:"total"`
ByStatus map[string]int `json:"byStatus"`
}
FormSubmissionStats represents submission statistics for a form
type IdentityVerificationRepository ¶
type IdentityVerificationRepository struct {
// contains filtered or unexported fields
}
IdentityVerificationRepository implements the identity verification repository
func NewIdentityVerificationRepository ¶
func NewIdentityVerificationRepository(db *bun.DB) *IdentityVerificationRepository
NewIdentityVerificationRepository creates a new identity verification repository
func (*IdentityVerificationRepository) CountVerificationsByUser ¶
func (r *IdentityVerificationRepository) CountVerificationsByUser(ctx context.Context, appID xid.ID, userID xid.ID, since time.Time) (int, error)
CountVerificationsByUser counts verifications for a user since a given time with V2 context filtering
func (*IdentityVerificationRepository) CreateDocument ¶
func (r *IdentityVerificationRepository) CreateDocument(ctx context.Context, document *schema.IdentityVerificationDocument) error
CreateDocument creates a new document record
func (*IdentityVerificationRepository) CreateSession ¶
func (r *IdentityVerificationRepository) CreateSession(ctx context.Context, session *schema.IdentityVerificationSession) error
CreateSession creates a new session record
func (*IdentityVerificationRepository) CreateUserVerificationStatus ¶
func (r *IdentityVerificationRepository) CreateUserVerificationStatus(ctx context.Context, status *schema.UserVerificationStatus) error
CreateUserVerificationStatus creates a new user verification status
func (*IdentityVerificationRepository) CreateVerification ¶
func (r *IdentityVerificationRepository) CreateVerification(ctx context.Context, verification *schema.IdentityVerification) error
CreateVerification creates a new verification record
func (*IdentityVerificationRepository) DeleteDocument ¶
func (r *IdentityVerificationRepository) DeleteDocument(ctx context.Context, appID xid.ID, id string) error
DeleteDocument soft deletes a document record with V2 context filtering
func (*IdentityVerificationRepository) DeleteSession ¶
func (r *IdentityVerificationRepository) DeleteSession(ctx context.Context, appID xid.ID, id string) error
DeleteSession deletes a session record with V2 context filtering
func (*IdentityVerificationRepository) DeleteUserVerificationStatus ¶
func (r *IdentityVerificationRepository) DeleteUserVerificationStatus(ctx context.Context, appID xid.ID, orgID xid.ID, userID xid.ID) error
DeleteUserVerificationStatus deletes a user verification status with V2 context filtering
func (*IdentityVerificationRepository) DeleteVerification ¶
func (r *IdentityVerificationRepository) DeleteVerification(ctx context.Context, appID xid.ID, id string) error
DeleteVerification deletes a verification record with V2 context filtering
func (*IdentityVerificationRepository) GetBlockedUsers ¶
func (r *IdentityVerificationRepository) GetBlockedUsers(ctx context.Context, appID xid.ID, limit, offset int) ([]*schema.UserVerificationStatus, error)
GetBlockedUsers retrieves blocked users with V2 context filtering
func (*IdentityVerificationRepository) GetDocumentByID ¶
func (r *IdentityVerificationRepository) GetDocumentByID(ctx context.Context, appID xid.ID, id string) (*schema.IdentityVerificationDocument, error)
GetDocumentByID retrieves a document by ID with V2 context filtering
func (*IdentityVerificationRepository) GetDocumentsByVerificationID ¶
func (r *IdentityVerificationRepository) GetDocumentsByVerificationID(ctx context.Context, appID xid.ID, verificationID string) ([]*schema.IdentityVerificationDocument, error)
GetDocumentsByVerificationID retrieves all documents for a verification with V2 context filtering
func (*IdentityVerificationRepository) GetDocumentsForDeletion ¶
func (r *IdentityVerificationRepository) GetDocumentsForDeletion(ctx context.Context, appID xid.ID, before time.Time, limit int) ([]*schema.IdentityVerificationDocument, error)
GetDocumentsForDeletion retrieves documents that should be deleted with V2 context filtering
func (*IdentityVerificationRepository) GetExpiredSessions ¶
func (r *IdentityVerificationRepository) GetExpiredSessions(ctx context.Context, appID xid.ID, before time.Time, limit int) ([]*schema.IdentityVerificationSession, error)
GetExpiredSessions retrieves expired sessions with V2 context filtering
func (*IdentityVerificationRepository) GetExpiredVerifications ¶
func (r *IdentityVerificationRepository) GetExpiredVerifications(ctx context.Context, appID xid.ID, before time.Time, limit int) ([]*schema.IdentityVerification, error)
GetExpiredVerifications retrieves expired verifications with V2 context filtering
func (*IdentityVerificationRepository) GetLatestVerificationByUser ¶
func (r *IdentityVerificationRepository) GetLatestVerificationByUser(ctx context.Context, appID xid.ID, userID xid.ID) (*schema.IdentityVerification, error)
GetLatestVerificationByUser retrieves the most recent verification for a user with V2 context filtering
func (*IdentityVerificationRepository) GetProviderStats ¶
func (r *IdentityVerificationRepository) GetProviderStats(ctx context.Context, appID xid.ID, provider string, from, to time.Time) (map[string]interface{}, error)
GetProviderStats retrieves provider-specific statistics with V2 context filtering
func (*IdentityVerificationRepository) GetSessionByID ¶
func (r *IdentityVerificationRepository) GetSessionByID(ctx context.Context, appID xid.ID, id string) (*schema.IdentityVerificationSession, error)
GetSessionByID retrieves a session by ID with V2 context filtering
func (*IdentityVerificationRepository) GetSessionsByUserID ¶
func (r *IdentityVerificationRepository) GetSessionsByUserID(ctx context.Context, appID xid.ID, userID xid.ID, limit, offset int) ([]*schema.IdentityVerificationSession, error)
GetSessionsByUserID retrieves all sessions for a user with V2 context filtering
func (*IdentityVerificationRepository) GetUserVerificationStatus ¶
func (r *IdentityVerificationRepository) GetUserVerificationStatus(ctx context.Context, appID xid.ID, orgID xid.ID, userID xid.ID) (*schema.UserVerificationStatus, error)
GetUserVerificationStatus retrieves the verification status for a user with V2 context filtering
func (*IdentityVerificationRepository) GetUsersByVerificationLevel ¶
func (r *IdentityVerificationRepository) GetUsersByVerificationLevel(ctx context.Context, appID xid.ID, level string, limit, offset int) ([]*schema.UserVerificationStatus, error)
GetUsersByVerificationLevel retrieves users by verification level with V2 context filtering
func (*IdentityVerificationRepository) GetUsersRequiringReverification ¶
func (r *IdentityVerificationRepository) GetUsersRequiringReverification(ctx context.Context, appID xid.ID, limit int) ([]*schema.UserVerificationStatus, error)
GetUsersRequiringReverification retrieves users requiring re-verification with V2 context filtering
func (*IdentityVerificationRepository) GetVerificationByID ¶
func (r *IdentityVerificationRepository) GetVerificationByID(ctx context.Context, appID xid.ID, id string) (*schema.IdentityVerification, error)
GetVerificationByID retrieves a verification by ID with V2 context filtering
func (*IdentityVerificationRepository) GetVerificationByProviderCheckID ¶
func (r *IdentityVerificationRepository) GetVerificationByProviderCheckID(ctx context.Context, appID xid.ID, providerCheckID string) (*schema.IdentityVerification, error)
GetVerificationByProviderCheckID retrieves a verification by provider check ID with V2 context filtering
func (*IdentityVerificationRepository) GetVerificationStats ¶
func (r *IdentityVerificationRepository) GetVerificationStats(ctx context.Context, appID xid.ID, orgID xid.ID, from, to time.Time) (map[string]interface{}, error)
GetVerificationStats retrieves verification statistics with V2 context filtering
func (*IdentityVerificationRepository) GetVerificationsByOrgID ¶
func (r *IdentityVerificationRepository) GetVerificationsByOrgID(ctx context.Context, appID xid.ID, orgID xid.ID, limit, offset int) ([]*schema.IdentityVerification, error)
GetVerificationsByOrgID retrieves all verifications for an organization with V2 context filtering
func (*IdentityVerificationRepository) GetVerificationsByStatus ¶
func (r *IdentityVerificationRepository) GetVerificationsByStatus(ctx context.Context, appID xid.ID, status string, limit, offset int) ([]*schema.IdentityVerification, error)
GetVerificationsByStatus retrieves verifications by status with V2 context filtering
func (*IdentityVerificationRepository) GetVerificationsByType ¶
func (r *IdentityVerificationRepository) GetVerificationsByType(ctx context.Context, appID xid.ID, verificationType string, limit, offset int) ([]*schema.IdentityVerification, error)
GetVerificationsByType retrieves verifications by type with V2 context filtering
func (*IdentityVerificationRepository) GetVerificationsByUserID ¶
func (r *IdentityVerificationRepository) GetVerificationsByUserID(ctx context.Context, appID xid.ID, userID xid.ID, limit, offset int) ([]*schema.IdentityVerification, error)
GetVerificationsByUserID retrieves all verifications for a user with V2 context filtering
func (*IdentityVerificationRepository) UpdateDocument ¶
func (r *IdentityVerificationRepository) UpdateDocument(ctx context.Context, document *schema.IdentityVerificationDocument) error
UpdateDocument updates a document record
func (*IdentityVerificationRepository) UpdateSession ¶
func (r *IdentityVerificationRepository) UpdateSession(ctx context.Context, session *schema.IdentityVerificationSession) error
UpdateSession updates a session record
func (*IdentityVerificationRepository) UpdateUserVerificationStatus ¶
func (r *IdentityVerificationRepository) UpdateUserVerificationStatus(ctx context.Context, status *schema.UserVerificationStatus) error
UpdateUserVerificationStatus updates a user verification status
func (*IdentityVerificationRepository) UpdateVerification ¶
func (r *IdentityVerificationRepository) UpdateVerification(ctx context.Context, verification *schema.IdentityVerification) error
UpdateVerification updates a verification record
type ImpersonationRepository ¶
type ImpersonationRepository struct {
// contains filtered or unexported fields
}
ImpersonationRepository implements the impersonation repository using Bun Updated for V2 architecture: App → Environment → Organization
func NewImpersonationRepository ¶
func NewImpersonationRepository(db *bun.DB) *ImpersonationRepository
NewImpersonationRepository creates a new impersonation repository
func (*ImpersonationRepository) Create ¶
func (r *ImpersonationRepository) Create(ctx context.Context, session *schema.ImpersonationSession) error
Create creates a new impersonation session
func (*ImpersonationRepository) CreateAuditEvent ¶
func (r *ImpersonationRepository) CreateAuditEvent(ctx context.Context, event *schema.ImpersonationAuditEvent) error
CreateAuditEvent creates an audit event
func (*ImpersonationRepository) ExpireOldSessions ¶
func (r *ImpersonationRepository) ExpireOldSessions(ctx context.Context) (int, error)
ExpireOldSessions expires sessions that have passed their expiry time
func (*ImpersonationRepository) Get ¶
func (r *ImpersonationRepository) Get(ctx context.Context, id xid.ID, appID xid.ID) (*schema.ImpersonationSession, error)
Get retrieves an impersonation session by ID and app (column organization_id contains appID)
func (*ImpersonationRepository) GetActive ¶
func (r *ImpersonationRepository) GetActive(ctx context.Context, impersonatorID xid.ID, appID xid.ID) (*schema.ImpersonationSession, error)
GetActive retrieves the active impersonation session for an impersonator Note: appID maps to column organization_id (V2 architecture)
func (*ImpersonationRepository) GetBySessionID ¶
func (r *ImpersonationRepository) GetBySessionID(ctx context.Context, sessionID xid.ID) (*schema.ImpersonationSession, error)
GetBySessionID retrieves an impersonation session by the session ID
func (*ImpersonationRepository) ListAuditEvents ¶
func (r *ImpersonationRepository) ListAuditEvents(ctx context.Context, filter *impersonation.ListAuditEventsFilter) (*pagination.PageResponse[*schema.ImpersonationAuditEvent], error)
ListAuditEvents retrieves audit events with pagination and filtering Note: filter.AppID maps to column organization_id (V2 architecture)
func (*ImpersonationRepository) ListSessions ¶
func (r *ImpersonationRepository) ListSessions(ctx context.Context, filter *impersonation.ListSessionsFilter) (*pagination.PageResponse[*schema.ImpersonationSession], error)
ListSessions retrieves impersonation sessions with pagination and filtering Note: filter.AppID maps to column organization_id (V2 architecture)
func (*ImpersonationRepository) Update ¶
func (r *ImpersonationRepository) Update(ctx context.Context, session *schema.ImpersonationSession) error
Update updates an impersonation session
type InvitationRepository ¶
type InvitationRepository struct {
// contains filtered or unexported fields
}
InvitationRepository handles invitation data access using schema models
func NewInvitationRepository ¶
func NewInvitationRepository(db *bun.DB) *InvitationRepository
NewInvitationRepository creates a new invitation repository
func (*InvitationRepository) Create ¶
func (r *InvitationRepository) Create(ctx context.Context, invitation *schema.Invitation) error
Create creates a new invitation
func (*InvitationRepository) DeleteExpired ¶
func (r *InvitationRepository) DeleteExpired(ctx context.Context) error
DeleteExpired deletes expired invitations
func (*InvitationRepository) FindByID ¶
func (r *InvitationRepository) FindByID(ctx context.Context, id xid.ID) (*schema.Invitation, error)
FindByID finds an invitation by ID
func (*InvitationRepository) FindByToken ¶
func (r *InvitationRepository) FindByToken(ctx context.Context, token string) (*schema.Invitation, error)
FindByToken finds an invitation by token
func (*InvitationRepository) ListByApp ¶
func (r *InvitationRepository) ListByApp(ctx context.Context, appID xid.ID, limit, offset int) ([]*schema.Invitation, error)
ListByApp lists invitations by app with pagination
func (*InvitationRepository) Update ¶
func (r *InvitationRepository) Update(ctx context.Context, invitation *schema.Invitation) error
Update updates an invitation
type JWTKeyRepository ¶
type JWTKeyRepository struct {
// contains filtered or unexported fields
}
JWTKeyRepository handles JWT key database operations
func NewJWTKeyRepository ¶
func NewJWTKeyRepository(db *bun.DB) *JWTKeyRepository
NewJWTKeyRepository creates a new JWT key repository
func (*JWTKeyRepository) CleanupExpiredJWTKeys ¶
func (r *JWTKeyRepository) CleanupExpiredJWTKeys(ctx context.Context) (int64, error)
CleanupExpiredJWTKeys removes expired JWT keys
func (*JWTKeyRepository) CountJWTKeys ¶
CountJWTKeys counts JWT keys for an app
func (*JWTKeyRepository) CreateJWTKey ¶
CreateJWTKey creates a new JWT key
func (*JWTKeyRepository) DeactivateJWTKey ¶
DeactivateJWTKey deactivates a JWT key
func (*JWTKeyRepository) DeleteJWTKey ¶
DeleteJWTKey soft deletes a JWT key
func (*JWTKeyRepository) FindJWTKeyByID ¶
FindJWTKeyByID finds a JWT key by ID
func (*JWTKeyRepository) FindJWTKeyByKeyID ¶
func (r *JWTKeyRepository) FindJWTKeyByKeyID(ctx context.Context, keyID string, appID xid.ID) (*schema.JWTKey, error)
FindJWTKeyByKeyID finds a JWT key by key ID and app ID
func (*JWTKeyRepository) FindPlatformJWTKeyByKeyID ¶
func (r *JWTKeyRepository) FindPlatformJWTKeyByKeyID(ctx context.Context, keyID string) (*schema.JWTKey, error)
FindPlatformJWTKeyByKeyID finds a platform JWT key by key ID
func (*JWTKeyRepository) ListJWTKeys ¶
func (r *JWTKeyRepository) ListJWTKeys(ctx context.Context, filter *jwt.ListJWTKeysFilter) (*pagination.PageResponse[*schema.JWTKey], error)
ListJWTKeys lists JWT keys with pagination and filtering
func (*JWTKeyRepository) ListPlatformJWTKeys ¶
func (r *JWTKeyRepository) ListPlatformJWTKeys(ctx context.Context, filter *jwt.ListJWTKeysFilter) (*pagination.PageResponse[*schema.JWTKey], error)
ListPlatformJWTKeys lists platform JWT keys with pagination
func (*JWTKeyRepository) UpdateJWTKey ¶
UpdateJWTKey updates a JWT key
func (*JWTKeyRepository) UpdateJWTKeyUsage ¶
func (r *JWTKeyRepository) UpdateJWTKeyUsage(ctx context.Context, keyID string) error
UpdateJWTKeyUsage updates the usage statistics for a JWT key
type MFARepository ¶
type MFARepository struct {
// contains filtered or unexported fields
}
MFARepository provides persistence for MFA entities
func NewMFARepository ¶
func NewMFARepository(db *bun.DB) *MFARepository
NewMFARepository creates a new MFA repository
func (*MFARepository) CleanupExpiredChallenges ¶
func (r *MFARepository) CleanupExpiredChallenges(ctx context.Context) (int, error)
CleanupExpiredChallenges removes expired challenges
func (*MFARepository) CleanupExpiredDevices ¶
func (r *MFARepository) CleanupExpiredDevices(ctx context.Context) (int, error)
CleanupExpiredDevices removes expired trusted devices
func (*MFARepository) CleanupExpiredSessions ¶
func (r *MFARepository) CleanupExpiredSessions(ctx context.Context) (int, error)
CleanupExpiredSessions removes expired sessions
func (*MFARepository) CleanupOldAttempts ¶
CleanupOldAttempts removes old attempt records
func (*MFARepository) CompleteSession ¶
CompleteSession marks a session as completed
func (*MFARepository) CountFailedAttempts ¶
func (r *MFARepository) CountFailedAttempts(ctx context.Context, userID xid.ID, since time.Time) (int, error)
CountFailedAttempts counts failed attempts within a time window
func (*MFARepository) CreateAttempt ¶
func (r *MFARepository) CreateAttempt(ctx context.Context, attempt *schema.MFAAttempt) error
CreateAttempt creates a new MFA attempt record
func (*MFARepository) CreateBypass ¶
CreateBypass creates a new MFA bypass
func (*MFARepository) CreateChallenge ¶
func (r *MFARepository) CreateChallenge(ctx context.Context, challenge *schema.MFAChallenge) error
CreateChallenge creates a new MFA challenge
func (*MFARepository) CreateFactor ¶
CreateFactor creates a new MFA factor
func (*MFARepository) CreateRiskAssessment ¶
func (r *MFARepository) CreateRiskAssessment(ctx context.Context, assessment *schema.MFARiskAssessment) error
CreateRiskAssessment creates a new risk assessment
func (*MFARepository) CreateSession ¶
func (r *MFARepository) CreateSession(ctx context.Context, session *schema.MFASession) error
CreateSession creates a new MFA session
func (*MFARepository) CreateTrustedDevice ¶
func (r *MFARepository) CreateTrustedDevice(ctx context.Context, device *schema.MFATrustedDevice) error
CreateTrustedDevice creates a new trusted device
func (*MFARepository) DB ¶
func (r *MFARepository) DB() *bun.DB
DB returns the underlying database connection
func (*MFARepository) DeleteFactor ¶
DeleteFactor deletes a factor
func (*MFARepository) DeleteTrustedDevice ¶
DeleteTrustedDevice deletes a trusted device
func (*MFARepository) GetActiveBypass ¶
func (r *MFARepository) GetActiveBypass(ctx context.Context, appID, userID xid.ID) (*schema.MFABypass, error)
GetActiveBypass retrieves an active bypass for a user
func (*MFARepository) GetChallenge ¶
func (r *MFARepository) GetChallenge(ctx context.Context, challengeID xid.ID) (*schema.MFAChallenge, error)
GetChallenge retrieves a challenge by ID
func (*MFARepository) GetLatestRiskAssessment ¶
func (r *MFARepository) GetLatestRiskAssessment(ctx context.Context, userID xid.ID) (*schema.MFARiskAssessment, error)
GetLatestRiskAssessment retrieves the most recent risk assessment for a user
func (*MFARepository) GetPolicy ¶
func (r *MFARepository) GetPolicy(ctx context.Context, appID xid.ID, orgID *xid.ID) (*schema.MFAPolicy, error)
GetPolicy retrieves the MFA policy for an app/organization
func (*MFARepository) GetRecentAttempts ¶
func (r *MFARepository) GetRecentAttempts(ctx context.Context, userID xid.ID, since time.Time) ([]*schema.MFAAttempt, error)
GetRecentAttempts retrieves recent attempts for rate limiting
func (*MFARepository) GetRiskAssessmentBySession ¶
func (r *MFARepository) GetRiskAssessmentBySession(ctx context.Context, sessionID xid.ID) (*schema.MFARiskAssessment, error)
GetRiskAssessmentBySession retrieves risk assessment for a session
func (*MFARepository) GetSession ¶
func (r *MFARepository) GetSession(ctx context.Context, sessionID xid.ID) (*schema.MFASession, error)
GetSession retrieves a session by ID
func (*MFARepository) GetSessionByToken ¶
func (r *MFARepository) GetSessionByToken(ctx context.Context, token string) (*schema.MFASession, error)
GetSessionByToken retrieves a session by token
func (*MFARepository) GetTrustedDevice ¶
func (r *MFARepository) GetTrustedDevice(ctx context.Context, userID xid.ID, deviceID string) (*schema.MFATrustedDevice, error)
GetTrustedDevice retrieves a trusted device
func (*MFARepository) IncrementChallengeAttempts ¶
IncrementChallengeAttempts increments the attempt counter
func (*MFARepository) ListTrustedDevices ¶
func (r *MFARepository) ListTrustedDevices(ctx context.Context, userID xid.ID) ([]*schema.MFATrustedDevice, error)
ListTrustedDevices retrieves all trusted devices for a user
func (*MFARepository) ListUserFactors ¶
func (r *MFARepository) ListUserFactors(ctx context.Context, userID xid.ID, statusFilter ...string) ([]*schema.MFAFactor, error)
ListUserFactors retrieves all factors for a user
func (*MFARepository) RevokeBypass ¶
RevokeBypass revokes an MFA bypass
func (*MFARepository) UpdateChallenge ¶
func (r *MFARepository) UpdateChallenge(ctx context.Context, challenge *schema.MFAChallenge) error
UpdateChallenge updates a challenge
func (*MFARepository) UpdateDeviceLastUsed ¶
UpdateDeviceLastUsed updates the last used timestamp
func (*MFARepository) UpdateFactor ¶
UpdateFactor updates a factor
func (*MFARepository) UpdateFactorLastUsed ¶
UpdateFactorLastUsed updates the last used timestamp
func (*MFARepository) UpdateSession ¶
func (r *MFARepository) UpdateSession(ctx context.Context, session *schema.MFASession) error
UpdateSession updates a session
func (*MFARepository) UpdateTrustedDevice ¶
func (r *MFARepository) UpdateTrustedDevice(ctx context.Context, device *schema.MFATrustedDevice) error
UpdateTrustedDevice updates a trusted device
func (*MFARepository) UpsertPolicy ¶
UpsertPolicy creates or updates an MFA policy
type MagicLinkRepository ¶
type MagicLinkRepository struct {
// contains filtered or unexported fields
}
MagicLinkRepository provides persistence for Magic Links
func NewMagicLinkRepository ¶
func NewMagicLinkRepository(db *bun.DB) *MagicLinkRepository
func (*MagicLinkRepository) Consume ¶
func (r *MagicLinkRepository) Consume(ctx context.Context, rec *schema.MagicLink, now time.Time) error
Consume marks link as expired by setting expiresAt to now
type MemberRepository ¶
type MemberRepository struct {
// contains filtered or unexported fields
}
MemberRepository handles member data access using schema models
func NewMemberRepository ¶
func NewMemberRepository(db *bun.DB) *MemberRepository
NewMemberRepository creates a new member repository
func (*MemberRepository) CountByApp ¶
CountByApp returns the total number of members in an app
func (*MemberRepository) DeleteByUserID ¶
DeleteByUserID deletes all memberships for a user
func (*MemberRepository) FindByUserAndApp ¶
func (r *MemberRepository) FindByUserAndApp(ctx context.Context, userID, appID xid.ID) (*schema.Member, error)
FindByUserAndApp finds a member by user and app ID
func (*MemberRepository) ListByApp ¶
func (r *MemberRepository) ListByApp(ctx context.Context, appID xid.ID, role *schema.MemberRole, status *schema.MemberStatus, limit, offset int) ([]*schema.Member, int64, error)
ListByApp lists members by app with pagination and optional filters
func (*MemberRepository) ListByUser ¶
ListByUser lists apps a user is a member of
type NotificationQueueRepository ¶ added in v0.0.7
type NotificationQueueRepository interface {
// Enqueue adds an item to the retry queue
Enqueue(ctx context.Context, item *schema.NotificationQueue) error
// Dequeue retrieves items ready for retry
Dequeue(ctx context.Context, limit int) ([]*schema.NotificationQueue, error)
// Update updates an item's retry state
Update(ctx context.Context, item *schema.NotificationQueue) error
// Delete removes an item from the queue
Delete(ctx context.Context, id xid.ID) error
// MarkFailed marks an item as permanently failed
MarkFailed(ctx context.Context, id xid.ID, lastError string) error
// MarkSucceeded marks an item as succeeded
MarkSucceeded(ctx context.Context, id xid.ID) error
// GetStats returns queue statistics
GetStats(ctx context.Context) (*schema.NotificationQueueStats, error)
// GetByID retrieves a queue item by ID
GetByID(ctx context.Context, id xid.ID) (*schema.NotificationQueue, error)
// CleanupOld removes old completed/failed items
CleanupOld(ctx context.Context, olderThan time.Time) error
}
NotificationQueueRepository defines the interface for notification queue operations
func NewNotificationQueueRepository ¶ added in v0.0.7
func NewNotificationQueueRepository(db *bun.DB) NotificationQueueRepository
NewNotificationQueueRepository creates a new notification queue repository
type OAuthClientRepository ¶
type OAuthClientRepository struct {
// contains filtered or unexported fields
}
OAuthClientRepository provides persistence for OAuth client registrations
func NewOAuthClientRepository ¶
func NewOAuthClientRepository(db *bun.DB) *OAuthClientRepository
func (*OAuthClientRepository) Create ¶
func (r *OAuthClientRepository) Create(ctx context.Context, c *schema.OAuthClient) error
Create inserts a new OAuthClient record
func (*OAuthClientRepository) ExistsByClientID ¶
func (r *OAuthClientRepository) ExistsByClientID(ctx context.Context, clientID string) (bool, error)
ExistsByClientID checks if a client with the given client_id exists
func (*OAuthClientRepository) FindByClientID ¶
func (r *OAuthClientRepository) FindByClientID(ctx context.Context, clientID string) (*schema.OAuthClient, error)
FindByClientID returns an OAuthClient by client_id (no context filtering)
func (*OAuthClientRepository) FindByClientIDWithContext ¶
func (r *OAuthClientRepository) FindByClientIDWithContext(ctx context.Context, appID, envID xid.ID, orgID *xid.ID, clientID string) (*schema.OAuthClient, error)
FindByClientIDWithContext returns an OAuthClient with org hierarchy support Tries org-specific client first, then falls back to app-level
func (*OAuthClientRepository) FindByID ¶
func (r *OAuthClientRepository) FindByID(ctx context.Context, id xid.ID) (*schema.OAuthClient, error)
FindByID returns an OAuthClient by ID
func (*OAuthClientRepository) ListByApp ¶
func (r *OAuthClientRepository) ListByApp(ctx context.Context, appID, envID xid.ID, limit, offset int) ([]*schema.OAuthClient, int, error)
ListByApp returns all clients for an app and environment
func (*OAuthClientRepository) ListByOrg ¶
func (r *OAuthClientRepository) ListByOrg(ctx context.Context, appID, envID, orgID xid.ID, limit, offset int) ([]*schema.OAuthClient, int, error)
ListByOrg returns all org-specific clients
func (*OAuthClientRepository) Update ¶
func (r *OAuthClientRepository) Update(ctx context.Context, c *schema.OAuthClient) error
Update updates an existing OAuth client
type OAuthConsentRepository ¶
type OAuthConsentRepository struct {
// contains filtered or unexported fields
}
OAuthConsentRepository handles OAuth consent persistence
func NewOAuthConsentRepository ¶
func NewOAuthConsentRepository(db *bun.DB) *OAuthConsentRepository
NewOAuthConsentRepository creates a new OAuth consent repository
func (*OAuthConsentRepository) Create ¶
func (r *OAuthConsentRepository) Create(ctx context.Context, consent *schema.OAuthConsent) error
Create stores a new consent decision
func (*OAuthConsentRepository) DeleteByUserAndClient ¶
func (r *OAuthConsentRepository) DeleteByUserAndClient(ctx context.Context, userID xid.ID, clientID string) error
DeleteByUserAndClient removes consent for a specific user and client
func (*OAuthConsentRepository) DeleteExpired ¶
func (r *OAuthConsentRepository) DeleteExpired(ctx context.Context) error
DeleteExpired removes expired consents
func (*OAuthConsentRepository) FindByUserAndClient ¶
func (r *OAuthConsentRepository) FindByUserAndClient(ctx context.Context, userID xid.ID, clientID string, appID, envID xid.ID, orgID *xid.ID) (*schema.OAuthConsent, error)
FindByUserAndClient retrieves consent for a user and client
func (*OAuthConsentRepository) HasValidConsent ¶
func (r *OAuthConsentRepository) HasValidConsent(ctx context.Context, userID xid.ID, clientID string, requiredScopes []string, appID, envID xid.ID, orgID *xid.ID) (bool, error)
HasValidConsent checks if user has valid consent for client with required scopes
func (*OAuthConsentRepository) ListByUser ¶
func (r *OAuthConsentRepository) ListByUser(ctx context.Context, userID xid.ID, appID, envID xid.ID, orgID *xid.ID) ([]*schema.OAuthConsent, error)
ListByUser retrieves all consents for a user
func (*OAuthConsentRepository) Update ¶
func (r *OAuthConsentRepository) Update(ctx context.Context, consent *schema.OAuthConsent) error
Update updates an existing consent
type OAuthTokenRepository ¶
type OAuthTokenRepository struct {
// contains filtered or unexported fields
}
OAuthTokenRepository handles OAuth token persistence
func NewOAuthTokenRepository ¶
func NewOAuthTokenRepository(db *bun.DB) *OAuthTokenRepository
NewOAuthTokenRepository creates a new OAuth token repository
func (*OAuthTokenRepository) Create ¶
func (r *OAuthTokenRepository) Create(ctx context.Context, token *schema.OAuthToken) error
Create stores a new OAuth token
func (*OAuthTokenRepository) DeleteExpired ¶
func (r *OAuthTokenRepository) DeleteExpired(ctx context.Context) error
DeleteExpired removes expired tokens
func (*OAuthTokenRepository) FindByAccessToken ¶
func (r *OAuthTokenRepository) FindByAccessToken(ctx context.Context, accessToken string) (*schema.OAuthToken, error)
FindByAccessToken retrieves a token by its access token value
func (*OAuthTokenRepository) FindByJTI ¶
func (r *OAuthTokenRepository) FindByJTI(ctx context.Context, jti string) (*schema.OAuthToken, error)
FindByJTI retrieves a token by its JWT ID
func (*OAuthTokenRepository) FindByRefreshToken ¶
func (r *OAuthTokenRepository) FindByRefreshToken(ctx context.Context, refreshToken string) (*schema.OAuthToken, error)
FindByRefreshToken retrieves a token by its refresh token value
func (*OAuthTokenRepository) FindByUserAndClient ¶
func (r *OAuthTokenRepository) FindByUserAndClient(ctx context.Context, userID xid.ID, clientID string) ([]*schema.OAuthToken, error)
FindByUserAndClient retrieves tokens for a specific user and client
func (*OAuthTokenRepository) FindByUserInOrg ¶
func (r *OAuthTokenRepository) FindByUserInOrg(ctx context.Context, userID xid.ID, appID, envID xid.ID, orgID *xid.ID) ([]*schema.OAuthToken, error)
FindByUserInOrg retrieves all active tokens for a user in an organization
func (*OAuthTokenRepository) RevokeAllForClient ¶
func (r *OAuthTokenRepository) RevokeAllForClient(ctx context.Context, clientID string) error
RevokeAllForClient revokes all tokens for a client
func (*OAuthTokenRepository) RevokeAllForUser ¶
func (r *OAuthTokenRepository) RevokeAllForUser(ctx context.Context, userID xid.ID, appID, envID xid.ID, orgID *xid.ID) error
RevokeAllForUser revokes all tokens for a user in an org
func (*OAuthTokenRepository) RevokeByJTI ¶
func (r *OAuthTokenRepository) RevokeByJTI(ctx context.Context, jti string) error
RevokeByJTI marks a token as revoked by JWT ID
func (*OAuthTokenRepository) RevokeByRefreshToken ¶
func (r *OAuthTokenRepository) RevokeByRefreshToken(ctx context.Context, refreshToken string) error
RevokeByRefreshToken marks a token as revoked by refresh token
func (*OAuthTokenRepository) RevokeBySession ¶
RevokeBySession revokes all tokens associated with a session (cascade revocation)
func (*OAuthTokenRepository) RevokeToken ¶
func (r *OAuthTokenRepository) RevokeToken(ctx context.Context, accessToken string) error
RevokeToken marks a token as revoked
func (*OAuthTokenRepository) Update ¶
func (r *OAuthTokenRepository) Update(ctx context.Context, token *schema.OAuthToken) error
Update updates an existing OAuth token
func (*OAuthTokenRepository) UpdateRefreshToken ¶
func (r *OAuthTokenRepository) UpdateRefreshToken(ctx context.Context, accessToken, newRefreshToken string, refreshExpiresAt *time.Time) error
UpdateRefreshToken updates the refresh token for an existing token
type PermissionRepository ¶
type PermissionRepository struct {
// contains filtered or unexported fields
}
PermissionRepository provides basic CRUD for permissions
func NewPermissionRepository ¶
func NewPermissionRepository(db *bun.DB) *PermissionRepository
func (*PermissionRepository) Create ¶
func (r *PermissionRepository) Create(ctx context.Context, perm *schema.Permission) error
func (*PermissionRepository) CreateCustomPermission ¶
func (r *PermissionRepository) CreateCustomPermission(ctx context.Context, name, description, category string, orgID xid.ID) (*schema.Permission, error)
func (*PermissionRepository) FindByID ¶
func (r *PermissionRepository) FindByID(ctx context.Context, permissionID xid.ID) (*schema.Permission, error)
func (*PermissionRepository) FindByName ¶
func (*PermissionRepository) ListByApp ¶
func (r *PermissionRepository) ListByApp(ctx context.Context, appID xid.ID) ([]*schema.Permission, error)
func (*PermissionRepository) ListByCategory ¶
func (r *PermissionRepository) ListByCategory(ctx context.Context, category string, appID xid.ID) ([]*schema.Permission, error)
func (*PermissionRepository) ListByOrg ¶
func (r *PermissionRepository) ListByOrg(ctx context.Context, orgID xid.ID) ([]*schema.Permission, error)
func (*PermissionRepository) Update ¶
func (r *PermissionRepository) Update(ctx context.Context, perm *schema.Permission) error
type PhoneRepository ¶
type PhoneRepository struct {
// contains filtered or unexported fields
}
PhoneRepository provides persistence for phone verification codes
func NewPhoneRepository ¶
func NewPhoneRepository(db *bun.DB) *PhoneRepository
func (*PhoneRepository) Consume ¶
func (r *PhoneRepository) Consume(ctx context.Context, rec *schema.PhoneVerification, now time.Time) error
Consume marks code as consumed by expiring now
func (*PhoneRepository) Create ¶
func (r *PhoneRepository) Create(ctx context.Context, phone, code string, appID xid.ID, userOrganizationID *xid.ID, expiresAt time.Time) error
Create stores a new phone verification record with app and optional org scoping
func (*PhoneRepository) FindByPhone ¶
func (r *PhoneRepository) FindByPhone(ctx context.Context, phone string, appID xid.ID, userOrganizationID *xid.ID, now time.Time) (*schema.PhoneVerification, error)
FindByPhone returns the latest active verification for a phone, scoped to app and optional org
func (*PhoneRepository) IncrementAttempts ¶
func (r *PhoneRepository) IncrementAttempts(ctx context.Context, rec *schema.PhoneVerification) error
IncrementAttempts increments attempts count
type PolicyRepository ¶
type PolicyRepository struct {
// contains filtered or unexported fields
}
PolicyRepository implements rbac.PolicyRepository using Bun
func NewPolicyRepository ¶
func NewPolicyRepository(db *bun.DB) *PolicyRepository
func (*PolicyRepository) Create ¶
func (r *PolicyRepository) Create(ctx context.Context, expression string) error
type Repo ¶
type Repo struct {
// contains filtered or unexported fields
}
func (*Repo) Audit ¶
func (r *Repo) Audit() *AuditRepository
func (*Repo) AuthorizationCode ¶
func (r *Repo) AuthorizationCode() *AuthorizationCodeRepository
func (*Repo) Device ¶
func (r *Repo) Device() *DeviceRepository
func (*Repo) EmailOTP ¶
func (r *Repo) EmailOTP() *EmailOTPRepository
func (*Repo) Environment ¶
func (r *Repo) Environment() environment.Repository
func (*Repo) IdentityVerification ¶
func (r *Repo) IdentityVerification() *IdentityVerificationRepository
Identity & Verification
func (*Repo) JWTKey ¶
func (r *Repo) JWTKey() *JWTKeyRepository
func (*Repo) MFA ¶
func (r *Repo) MFA() *MFARepository
func (*Repo) MagicLink ¶
func (r *Repo) MagicLink() *MagicLinkRepository
func (*Repo) Notification ¶
func (r *Repo) Notification() notification.Repository
func (*Repo) OAuthClient ¶
func (r *Repo) OAuthClient() *OAuthClientRepository
func (*Repo) Organization ¶
func (r *Repo) Organization() organization.OrganizationRepository
Organization repositories
func (*Repo) OrganizationInvitation ¶
func (r *Repo) OrganizationInvitation() organization.InvitationRepository
func (*Repo) OrganizationMember ¶
func (r *Repo) OrganizationMember() organization.MemberRepository
func (*Repo) OrganizationTeam ¶
func (r *Repo) OrganizationTeam() organization.TeamRepository
func (*Repo) Permission ¶
func (r *Repo) Permission() *PermissionRepository
func (*Repo) Policy ¶
func (r *Repo) Policy() *PolicyRepository
func (*Repo) Role ¶
func (r *Repo) Role() *RoleRepository
func (*Repo) RolePermission ¶ added in v0.0.3
func (r *Repo) RolePermission() *RolePermissionRepository
func (*Repo) SSOProvider ¶
func (r *Repo) SSOProvider() *SSOProviderRepository
func (*Repo) Security ¶
func (r *Repo) Security() *SecurityRepository
func (*Repo) Session ¶
func (r *Repo) Session() *SessionRepository
func (*Repo) SocialAccount ¶
func (r *Repo) SocialAccount() SocialAccountRepository
func (*Repo) SocialProviderConfig ¶ added in v0.0.3
func (r *Repo) SocialProviderConfig() SocialProviderConfigRepository
func (*Repo) UserBan ¶
func (r *Repo) UserBan() *UserBanRepository
func (*Repo) UserRole ¶
func (r *Repo) UserRole() *UserRoleRepository
func (*Repo) Verification ¶ added in v0.0.6
func (r *Repo) Verification() *verificationRepository
func (*Repo) Webhook ¶
func (r *Repo) Webhook() webhook.Repository
type Repository ¶
type Repository interface {
// Core repositories
User() *UserRepository
Session() *SessionRepository
SocialAccount() SocialAccountRepository
// Authentication & Security
APIKey() *APIKeyRepository
Audit() *AuditRepository
Device() *DeviceRepository
JWTKey() *JWTKeyRepository
Role() *RoleRepository
Security() *SecurityRepository
Policy() *PolicyRepository
Permission() *PermissionRepository
RolePermission() *RolePermissionRepository
UserRole() *UserRoleRepository
UserBan() *UserBanRepository
Notification() notification.Repository
// OAuth & SSO
OAuthToken() *OAuthTokenRepository
OAuthClient() *OAuthClientRepository
AuthorizationCode() *AuthorizationCodeRepository
SSOProvider() *SSOProviderRepository
SocialProviderConfig() SocialProviderConfigRepository
// Multi-factor Authentication
TwoFA() *TwoFARepository
MFA() *MFARepository
EmailOTP() *EmailOTPRepository
// Authentication Methods
Phone() *PhoneRepository
MagicLink() *MagicLinkRepository
// Identity & Verification
IdentityVerification() *IdentityVerificationRepository
Verification() *verificationRepository
// App & Environment
App() *AppRepository
Environment() environment.Repository
// Impersonation
Impersonation() *ImpersonationRepository
// Forms & Webhooks
Forms() forms.Repository
Webhook() webhook.Repository
// Organization repositories
Organization() organization.OrganizationRepository
OrganizationMember() organization.MemberRepository
OrganizationTeam() organization.TeamRepository
OrganizationInvitation() organization.InvitationRepository
}
func NewRepo ¶
func NewRepo(db *bun.DB) Repository
type RolePermissionRepository ¶
type RolePermissionRepository struct {
// contains filtered or unexported fields
}
RolePermissionRepository handles role-permission relationships
func NewRolePermissionRepository ¶
func NewRolePermissionRepository(db *bun.DB) *RolePermissionRepository
func (*RolePermissionRepository) AssignPermission ¶
func (*RolePermissionRepository) GetPermissionRoles ¶
func (*RolePermissionRepository) GetRolePermissions ¶
func (r *RolePermissionRepository) GetRolePermissions(ctx context.Context, roleID xid.ID) ([]*schema.Permission, error)
func (*RolePermissionRepository) ReplaceRolePermissions ¶
func (*RolePermissionRepository) UnassignPermission ¶
type RoleRepository ¶
type RoleRepository struct {
// contains filtered or unexported fields
}
RoleRepository provides basic CRUD for roles
func NewRoleRepository ¶
func NewRoleRepository(db *bun.DB) *RoleRepository
func (*RoleRepository) CloneRole ¶
func (r *RoleRepository) CloneRole(ctx context.Context, templateID xid.ID, orgID xid.ID, customName *string) (*schema.Role, error)
CloneRole clones a role template for an organization
func (*RoleRepository) FindByNameAndApp ¶
func (r *RoleRepository) FindByNameAndApp(ctx context.Context, name string, appID xid.ID) (*schema.Role, error)
FindByNameAndApp finds a role by name within an app (deprecated, use FindByNameAppEnv)
func (*RoleRepository) FindByNameAppEnv ¶ added in v0.0.5
func (r *RoleRepository) FindByNameAppEnv(ctx context.Context, name string, appID, envID xid.ID) (*schema.Role, error)
FindByNameAppEnv finds a role by name, app, and environment
func (*RoleRepository) FindDuplicateRoles ¶ added in v0.0.5
FindDuplicateRoles identifies roles that would violate the new uniqueness constraints
func (*RoleRepository) GetOrgRoleWithPermissions ¶
func (r *RoleRepository) GetOrgRoleWithPermissions(ctx context.Context, roleID xid.ID) (*schema.Role, error)
GetOrgRoleWithPermissions gets a role with its permissions loaded
func (*RoleRepository) GetOrgRoles ¶
func (r *RoleRepository) GetOrgRoles(ctx context.Context, orgID, envID xid.ID) ([]*schema.Role, error)
GetOrgRoles gets all roles specific to an organization
func (*RoleRepository) GetOwnerRole ¶
func (r *RoleRepository) GetOwnerRole(ctx context.Context, appID, envID xid.ID) (*schema.Role, error)
GetOwnerRole gets the role marked as the owner role for an app
func (*RoleRepository) GetRoleTemplates ¶
func (r *RoleRepository) GetRoleTemplates(ctx context.Context, appID, envID xid.ID) ([]*schema.Role, error)
GetRoleTemplates gets all role templates for an app (templates have organization_id = NULL and is_template = true)
type SSOProviderRepository ¶
type SSOProviderRepository struct {
// contains filtered or unexported fields
}
SSOProviderRepository provides persistence for SSO provider configurations with multi-tenant scoping
func NewSSOProviderRepository ¶
func NewSSOProviderRepository(db *bun.DB) *SSOProviderRepository
func (*SSOProviderRepository) Create ¶
func (r *SSOProviderRepository) Create(ctx context.Context, p *schema.SSOProvider) error
Create inserts a new SSOProvider record
func (*SSOProviderRepository) FindByDomain ¶
func (r *SSOProviderRepository) FindByDomain(ctx context.Context, domain string) ([]*schema.SSOProvider, error)
FindByDomain returns SSO providers matching a domain within the tenant scope
func (*SSOProviderRepository) FindByProviderID ¶
func (r *SSOProviderRepository) FindByProviderID(ctx context.Context, providerID string) (*schema.SSOProvider, error)
FindByProviderID returns an SSOProvider by ProviderID within the tenant scope
func (*SSOProviderRepository) List ¶
func (r *SSOProviderRepository) List(ctx context.Context) ([]*schema.SSOProvider, error)
List returns all SSO providers within the tenant scope
func (*SSOProviderRepository) Upsert ¶
func (r *SSOProviderRepository) Upsert(ctx context.Context, p *schema.SSOProvider) error
Upsert creates or updates an SSOProvider by ProviderID within the tenant scope
type SecurityRepository ¶
type SecurityRepository struct {
// contains filtered or unexported fields
}
SecurityRepository implements core security repository using Bun
func NewSecurityRepository ¶
func NewSecurityRepository(db *bun.DB) *SecurityRepository
func (*SecurityRepository) Create ¶
func (r *SecurityRepository) Create(ctx context.Context, e *core.SecurityEvent) error
type SessionRepository ¶
type SessionRepository struct {
// contains filtered or unexported fields
}
SessionRepository is a Bun-backed implementation of core session repository
func NewSessionRepository ¶
func NewSessionRepository(db *bun.DB) *SessionRepository
func (*SessionRepository) CleanupExpiredSessions ¶
func (r *SessionRepository) CleanupExpiredSessions(ctx context.Context) (int, error)
CleanupExpiredSessions removes expired sessions
func (*SessionRepository) CountSessions ¶
func (r *SessionRepository) CountSessions(ctx context.Context, appID xid.ID, userID *xid.ID) (int, error)
CountSessions counts sessions for an app and optionally a user
func (*SessionRepository) CreateSession ¶
CreateSession inserts a new session
func (*SessionRepository) FindSessionByID ¶
func (r *SessionRepository) FindSessionByID(ctx context.Context, id xid.ID) (*schema.Session, error)
FindSessionByID retrieves a session by id
func (*SessionRepository) FindSessionByRefreshToken ¶ added in v0.0.3
func (r *SessionRepository) FindSessionByRefreshToken(ctx context.Context, refreshToken string) (*schema.Session, error)
FindSessionByRefreshToken retrieves a session by refresh token
func (*SessionRepository) FindSessionByToken ¶
func (r *SessionRepository) FindSessionByToken(ctx context.Context, token string) (*schema.Session, error)
FindSessionByToken retrieves a session by token
func (*SessionRepository) ListSessions ¶
func (r *SessionRepository) ListSessions(ctx context.Context, filter *session.ListSessionsFilter) (*pagination.PageResponse[*schema.Session], error)
ListSessions lists sessions with filtering and pagination
func (*SessionRepository) RefreshSessionTokens ¶ added in v0.0.3
func (r *SessionRepository) RefreshSessionTokens(ctx context.Context, id xid.ID, newAccessToken string, accessTokenExpiresAt time.Time, newRefreshToken string, refreshTokenExpiresAt time.Time) error
RefreshSessionTokens updates both access and refresh tokens for a session
func (*SessionRepository) RevokeSession ¶
func (r *SessionRepository) RevokeSession(ctx context.Context, token string) error
RevokeSession deletes a session by token
func (*SessionRepository) RevokeSessionByID ¶
RevokeSessionByID deletes a session by id
func (*SessionRepository) UpdateSessionExpiry ¶ added in v0.0.3
func (r *SessionRepository) UpdateSessionExpiry(ctx context.Context, id xid.ID, expiresAt time.Time) error
UpdateSessionExpiry updates the expiry time of a session (for sliding window renewal)
type SocialAccountRepository ¶
type SocialAccountRepository interface {
Create(ctx context.Context, account *schema.SocialAccount) error
FindByID(ctx context.Context, id xid.ID) (*schema.SocialAccount, error)
FindByUserAndProvider(ctx context.Context, userID xid.ID, provider string) (*schema.SocialAccount, error)
FindByProviderAndProviderID(ctx context.Context, provider, providerID string, appID xid.ID, userOrganizationID *xid.ID) (*schema.SocialAccount, error)
FindByUser(ctx context.Context, userID xid.ID) ([]*schema.SocialAccount, error)
Update(ctx context.Context, account *schema.SocialAccount) error
Delete(ctx context.Context, id xid.ID) error
Unlink(ctx context.Context, userID xid.ID, provider string) error
}
SocialAccountRepository handles social account persistence
func NewSocialAccountRepository ¶
func NewSocialAccountRepository(db *bun.DB) SocialAccountRepository
type SocialProviderConfigRepository ¶ added in v0.0.3
type SocialProviderConfigRepository interface {
// Create creates a new social provider config
Create(ctx context.Context, config *schema.SocialProviderConfig) error
// FindByID finds a config by ID
FindByID(ctx context.Context, id xid.ID) (*schema.SocialProviderConfig, error)
// FindByProvider finds a config by app, environment, and provider name
FindByProvider(ctx context.Context, appID, envID xid.ID, providerName string) (*schema.SocialProviderConfig, error)
// ListByEnvironment lists all configs for an environment
ListByEnvironment(ctx context.Context, appID, envID xid.ID) ([]*schema.SocialProviderConfig, error)
// ListEnabledByEnvironment lists only enabled configs for an environment
ListEnabledByEnvironment(ctx context.Context, appID, envID xid.ID) ([]*schema.SocialProviderConfig, error)
// Update updates an existing config
Update(ctx context.Context, config *schema.SocialProviderConfig) error
// Delete soft-deletes a config by ID
Delete(ctx context.Context, id xid.ID) error
// HardDelete permanently deletes a config
HardDelete(ctx context.Context, id xid.ID) error
// SetEnabled enables or disables a provider
SetEnabled(ctx context.Context, id xid.ID, enabled bool) error
// CountByEnvironment counts providers for an environment
CountByEnvironment(ctx context.Context, appID, envID xid.ID) (int, error)
// ExistsByProvider checks if a provider config exists for the environment
ExistsByProvider(ctx context.Context, appID, envID xid.ID, providerName string) (bool, error)
}
SocialProviderConfigRepository handles social provider config persistence
func NewSocialProviderConfigRepository ¶ added in v0.0.3
func NewSocialProviderConfigRepository(db *bun.DB) SocialProviderConfigRepository
NewSocialProviderConfigRepository creates a new social provider config repository
type TeamRepository ¶
type TeamRepository struct {
// contains filtered or unexported fields
}
TeamRepository handles team data access using schema models
func NewTeamRepository ¶
func NewTeamRepository(db *bun.DB) *TeamRepository
NewTeamRepository creates a new team repository
func (*TeamRepository) CountByApp ¶
CountByApp returns the total number of teams in an app
func (*TeamRepository) CountTeamMembers ¶
CountTeamMembers returns the total number of members in a team
func (*TeamRepository) FindByExternalID ¶ added in v0.0.2
func (r *TeamRepository) FindByExternalID(ctx context.Context, appID xid.ID, externalID string) (*schema.Team, error)
FindByExternalID finds a team by external ID (for SCIM lookups)
func (*TeamRepository) ListByApp ¶
func (r *TeamRepository) ListByApp(ctx context.Context, appID xid.ID, limit, offset int) ([]*schema.Team, int64, error)
ListByApp lists teams by app with pagination
func (*TeamRepository) ListMembers ¶
ListMembers lists members of a team
func (*TeamRepository) RemoveMember ¶
RemoveMember removes a member from a team
type TwoFARepository ¶
type TwoFARepository struct {
// contains filtered or unexported fields
}
TwoFARepository provides persistence for 2FA entities
func NewTwoFARepository ¶
func NewTwoFARepository(db *bun.DB) *TwoFARepository
func (*TwoFARepository) CreateBackupCodes ¶
func (r *TwoFARepository) CreateBackupCodes(ctx context.Context, userID xid.ID, hashes []string) error
CreateBackupCodes stores hashed backup codes
func (*TwoFARepository) CreateOTPCode ¶
func (r *TwoFARepository) CreateOTPCode(ctx context.Context, userID xid.ID, codeHash string, expiresAt time.Time) error
OTP codes
func (*TwoFARepository) DB ¶
func (r *TwoFARepository) DB() *bun.DB
DB returns the underlying database connection for advanced operations
func (*TwoFARepository) DisableSecret ¶
DisableSecret disables 2FA for a user
func (*TwoFARepository) GetSecret ¶
func (r *TwoFARepository) GetSecret(ctx context.Context, userID xid.ID) (*schema.TwoFASecret, error)
GetSecret returns a user's 2FA secret
func (*TwoFARepository) IsTrustedDevice ¶
func (*TwoFARepository) MarkTrustedDevice ¶
func (r *TwoFARepository) MarkTrustedDevice(ctx context.Context, userID xid.ID, deviceID string, expiresAt time.Time) error
Trusted devices
func (*TwoFARepository) UpsertSecret ¶
func (r *TwoFARepository) UpsertSecret(ctx context.Context, userID xid.ID, method, secret string, enabled bool) error
UpsertSecret sets or updates a user's 2FA secret
func (*TwoFARepository) VerifyAndUseBackupCode ¶
func (r *TwoFARepository) VerifyAndUseBackupCode(ctx context.Context, userID xid.ID, hash string) (bool, error)
VerifyAndUseBackupCode verifies a backup code hash and marks it used
type UserBanRepository ¶
type UserBanRepository struct {
// contains filtered or unexported fields
}
UserBanRepository implements the user.BanRepository interface using Bun ORM
func NewUserBanRepository ¶
func NewUserBanRepository(db *bun.DB) *UserBanRepository
NewUserBanRepository creates a new user ban repository
func (*UserBanRepository) FindActiveBan ¶
func (r *UserBanRepository) FindActiveBan(ctx context.Context, userID string) (*schema.UserBan, error)
FindActiveBan finds an active ban for a user
func (*UserBanRepository) FindBanByID ¶
FindBanByID finds a ban by its ID
func (*UserBanRepository) FindBansByUser ¶
func (r *UserBanRepository) FindBansByUser(ctx context.Context, userID string) ([]*schema.UserBan, error)
FindBansByUser finds all bans for a user (active and inactive)
type UserRepository ¶
type UserRepository struct {
// contains filtered or unexported fields
}
UserRepository is a Bun-backed implementation of core user repository
func NewUserRepository ¶
func NewUserRepository(db *bun.DB) *UserRepository
NewUserRepository creates a new user repository
func (*UserRepository) CountUsers ¶
func (r *UserRepository) CountUsers(ctx context.Context, filter *core.CountUsersFilter) (int, error)
CountUsers counts users with filtering
func (*UserRepository) FindByAppAndEmail ¶
func (r *UserRepository) FindByAppAndEmail(ctx context.Context, appID xid.ID, email string) (*schema.User, error)
FindByAppAndEmail finds a user by app ID and email (app-scoped search)
func (*UserRepository) FindByEmail ¶
FindByEmail finds a user by email (global search, not app-scoped)
func (*UserRepository) FindByUsername ¶
FindByUsername finds a user by username
func (*UserRepository) ListUsers ¶
func (r *UserRepository) ListUsers(ctx context.Context, filter *core.ListUsersFilter) (*pagination.PageResponse[*schema.User], error)
ListUsers lists users with pagination and filtering
type UserRoleRepository ¶
type UserRoleRepository struct {
// contains filtered or unexported fields
}
UserRoleRepository manages user-role assignments
func NewUserRoleRepository ¶
func NewUserRoleRepository(db *bun.DB) *UserRoleRepository
func (*UserRoleRepository) AssignAppLevel ¶ added in v0.0.7
func (r *UserRoleRepository) AssignAppLevel(ctx context.Context, userID, roleID, appID xid.ID) error
AssignAppLevel assigns a role at app-level (not org-scoped)
func (*UserRoleRepository) AssignBatch ¶ added in v0.0.7
func (r *UserRoleRepository) AssignBatch(ctx context.Context, userID xid.ID, roleIDs []xid.ID, orgID xid.ID) error
AssignBatch assigns multiple roles to a single user in an organization
func (*UserRoleRepository) AssignBulk ¶ added in v0.0.7
func (r *UserRoleRepository) AssignBulk(ctx context.Context, userIDs []xid.ID, roleID xid.ID, orgID xid.ID) (map[xid.ID]error, error)
AssignBulk assigns a single role to multiple users in an organization
func (*UserRoleRepository) ClearUserRolesInApp ¶ added in v0.0.7
ClearUserRolesInApp removes all roles from a user in an app
func (*UserRoleRepository) ClearUserRolesInOrg ¶ added in v0.0.7
ClearUserRolesInOrg removes all roles from a user in an organization
func (*UserRoleRepository) CopyRoles ¶ added in v0.0.7
func (r *UserRoleRepository) CopyRoles(ctx context.Context, userID, sourceOrgID, targetOrgID xid.ID, roleIDs []xid.ID) error
CopyRoles duplicates roles from one org to another (insert only)
func (*UserRoleRepository) ListAllUserRolesInApp ¶ added in v0.0.7
func (r *UserRoleRepository) ListAllUserRolesInApp(ctx context.Context, appID, envID xid.ID) ([]schema.UserRole, error)
ListAllUserRolesInApp lists all user-role assignments in an app across all orgs (admin view)
func (*UserRoleRepository) ListAllUserRolesInOrg ¶ added in v0.0.7
func (r *UserRoleRepository) ListAllUserRolesInOrg(ctx context.Context, orgID, envID xid.ID) ([]schema.UserRole, error)
ListAllUserRolesInOrg lists all user-role assignments in an organization (admin view)
func (*UserRoleRepository) ListRolesForUser ¶
func (r *UserRoleRepository) ListRolesForUser(ctx context.Context, userID xid.ID, orgID *xid.ID) ([]schema.Role, error)
ListRolesForUser returns roles assigned to a user, optionally filtered by org
func (*UserRoleRepository) ListRolesForUserInApp ¶ added in v0.0.7
func (r *UserRoleRepository) ListRolesForUserInApp(ctx context.Context, userID, appID, envID xid.ID) ([]schema.Role, error)
ListRolesForUserInApp gets roles for a specific user across all orgs in an app with environment filter
func (*UserRoleRepository) ListRolesForUserInOrg ¶ added in v0.0.7
func (r *UserRoleRepository) ListRolesForUserInOrg(ctx context.Context, userID, orgID, envID xid.ID) ([]schema.Role, error)
ListRolesForUserInOrg gets roles for a specific user in an organization with environment filter
func (*UserRoleRepository) ReplaceUserRoles ¶ added in v0.0.7
func (r *UserRoleRepository) ReplaceUserRoles(ctx context.Context, userID, orgID xid.ID, newRoleIDs []xid.ID) error
ReplaceUserRoles atomically replaces all user roles in an org with a new set
func (*UserRoleRepository) TransferRoles ¶ added in v0.0.7
func (r *UserRoleRepository) TransferRoles(ctx context.Context, userID, sourceOrgID, targetOrgID xid.ID, roleIDs []xid.ID) error
TransferRoles moves roles from one org to another (delete + insert in transaction)
func (*UserRoleRepository) Unassign ¶
Unassign removes a user-role assignment within an organization
type UsernameRepository ¶
type UsernameRepository struct {
// contains filtered or unexported fields
}
UsernameRepository handles username plugin-specific database operations
func NewUsernameRepository ¶
func NewUsernameRepository(db *bun.DB) *UsernameRepository
NewUsernameRepository creates a new username repository
func (*UsernameRepository) CheckPasswordInHistory ¶
func (r *UsernameRepository) CheckPasswordInHistory(ctx context.Context, userID xid.ID, password string, limit int) (bool, error)
CheckPasswordInHistory checks if a password matches any in the user's history
func (*UsernameRepository) CleanupExpiredLockouts ¶
func (r *UsernameRepository) CleanupExpiredLockouts(ctx context.Context) error
CleanupExpiredLockouts removes expired lockouts
func (*UsernameRepository) CleanupOldFailedAttempts ¶
CleanupOldFailedAttempts removes failed attempts older than the specified duration
func (*UsernameRepository) CleanupOldPasswordHistory ¶
func (r *UsernameRepository) CleanupOldPasswordHistory(ctx context.Context, userID xid.ID, keepCount int) error
CleanupOldPasswordHistory removes old password history entries beyond the limit
func (*UsernameRepository) ClearFailedAttempts ¶
func (r *UsernameRepository) ClearFailedAttempts(ctx context.Context, username string, appID xid.ID) error
ClearFailedAttempts removes all failed attempts for a username
func (*UsernameRepository) GetFailedAttempts ¶
func (r *UsernameRepository) GetFailedAttempts(ctx context.Context, username string, appID xid.ID, since time.Time) (int, error)
GetFailedAttempts returns the number of failed attempts for a username within a time window
func (*UsernameRepository) GetPasswordHistory ¶
func (r *UsernameRepository) GetPasswordHistory(ctx context.Context, userID xid.ID, limit int) ([]string, error)
GetPasswordHistory retrieves the most recent password hashes for a user
func (*UsernameRepository) IsAccountLocked ¶
func (r *UsernameRepository) IsAccountLocked(ctx context.Context, userID xid.ID) (bool, *time.Time, error)
IsAccountLocked checks if a user account is currently locked Returns true if locked, the locked_until time, and any error
func (*UsernameRepository) LockAccount ¶
func (r *UsernameRepository) LockAccount(ctx context.Context, userID xid.ID, duration time.Duration, reason string) error
LockAccount locks a user account for a specified duration
func (*UsernameRepository) RecordFailedAttempt ¶
func (r *UsernameRepository) RecordFailedAttempt(ctx context.Context, username string, appID xid.ID, ip, ua string) error
RecordFailedAttempt records a failed login attempt
func (*UsernameRepository) SavePasswordHistory ¶
func (r *UsernameRepository) SavePasswordHistory(ctx context.Context, userID xid.ID, passwordHash string) error
SavePasswordHistory saves a password hash to history
func (*UsernameRepository) UnlockAccount ¶
UnlockAccount removes all active lockouts for a user
Source Files
¶
- apikey.go
- apikey_role.go
- app.go
- audit.go
- authorization_code.go
- device.go
- emailotp.go
- environment.go
- forms.go
- identity_verification.go
- impersonation.go
- invitation.go
- jwt_key.go
- magiclink.go
- member.go
- mfa.go
- notification.go
- notification_queue.go
- oauth_client.go
- oauth_consent.go
- oauth_token.go
- permission.go
- phone.go
- policy.go
- repo.go
- role.go
- role_permission.go
- security.go
- session.go
- social_account.go
- social_provider_config.go
- sso_provider.go
- team.go
- twofa.go
- user.go
- user_ban.go
- user_role.go
- username.go
- verification.go
- webhook.go