domain

package
v0.1.23 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 26, 2026 License: MIT Imports: 3 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type AdminAuditEvent added in v0.1.23

type AdminAuditEvent struct {
	ID uuid.UUID

	CreatedAt time.Time

	ActorUserID *uuid.UUID
	Action      string

	TargetUserID *uuid.UUID
	TargetEmail  *string
	Metadata     json.RawMessage

	IP        *string
	UserAgent *string
}

type AllowedEmail added in v0.1.13

type AllowedEmail struct {
	ID        uuid.UUID
	CreatedAt time.Time
	UpdatedAt time.Time
	Email     string
}

type AuthProvider

type AuthProvider struct {
	// ID is nil only before persistence.
	// After loading or creating a authProvider, ID is always non-nil.
	ID        uuid.UUID
	CreatedAt time.Time
	UpdatedAt time.Time

	UserID   uuid.UUID
	Provider Provider

	ProviderUserID *string
	PasswordHash   *string
}

type Challenge added in v0.1.12

type Challenge struct {
	ID uuid.UUID

	CreatedAt  time.Time
	UpdatedAt  time.Time
	ExpiresAt  time.Time
	ConsumedAt *time.Time

	Purpose      ChallengePurpose
	Email        string
	AttemptCount int
	MaxAttempts  int

	ResendCount int
	MaxResends  int
	LastSentAt  *time.Time
}

func (Challenge) HasAttemptsRemaining added in v0.1.12

func (c Challenge) HasAttemptsRemaining() bool

func (Challenge) IsConsumed added in v0.1.12

func (c Challenge) IsConsumed() bool

func (Challenge) IsExpired added in v0.1.12

func (c Challenge) IsExpired(now time.Time) bool

type ChallengePurpose added in v0.1.12

type ChallengePurpose string
const (
	ChallengePurposeSignup        ChallengePurpose = "signup"
	ChallengePurposePasswordReset ChallengePurpose = "password_reset"
	ChallengePurposeEmailChange   ChallengePurpose = "email_change"
)

type EmailJob added in v0.1.12

type EmailJob struct {
	ID          uuid.UUID
	ChallengeID *uuid.UUID

	CreatedAt time.Time
	UpdatedAt time.Time

	ToEmail             string
	Template            EmailTemplate
	TemplateData        []byte
	Status              EmailJobStatus
	AttemptCount        int
	ProcessingStartedAt *time.Time
	LastError           *string
	NextAttemptAt       time.Time
	SentAt              *time.Time
}

type EmailJobStatus added in v0.1.12

type EmailJobStatus string
const (
	EmailJobStatusPending    EmailJobStatus = "pending"
	EmailJobStatusProcessing EmailJobStatus = "processing"
	EmailJobStatusSent       EmailJobStatus = "sent"
	EmailJobStatusFailed     EmailJobStatus = "failed"
)

type EmailTemplate added in v0.1.12

type EmailTemplate string
const (
	EmailTemplateSignupCode        EmailTemplate = "signup_code"
	EmailTemplatePasswordResetCode EmailTemplate = "password_reset_code"
	EmailTemplateEmailChangeCode   EmailTemplate = "email_change_code"
)

type Passkey added in v0.1.21

type Passkey struct {
	ID        uuid.UUID
	UserID    uuid.UUID
	CreatedAt time.Time
	UpdatedAt time.Time

	CredentialID      []byte
	PublicKey         []byte
	AttestationType   string
	AttestationFormat string
	Transport         []string
	AAGUID            *uuid.UUID
	SignCount         uint32
	CloneWarning      bool
	Name              string
	LastUsedAt        *time.Time

	UserPresent    bool
	UserVerified   bool
	BackupEligible bool
	BackupState    bool
}

type PendingEmailChange added in v0.1.15

type PendingEmailChange struct {
	ID          uuid.UUID
	CreatedAt   time.Time
	ChallengeID uuid.UUID
	UserID      uuid.UUID
	OldEmail    string
	NewEmail    string
}

type PendingPasswordReset added in v0.1.14

type PendingPasswordReset struct {
	ID           uuid.UUID
	CreatedAt    time.Time
	ChallengeID  uuid.UUID
	UserID       uuid.UUID
	PasswordHash string
}
type PendingProviderLink struct {
	ID        uuid.UUID
	CreatedAt time.Time

	UserID      uuid.UUID
	SessionID   *uuid.UUID
	ChallengeID *uuid.UUID
	Provider    Provider

	ProviderUserID        *string
	ProviderEmail         *string
	ProviderEmailVerified bool
	Purpose               PendingProviderLinkPurpose

	ExpiresAt  time.Time
	ConsumedAt *time.Time
}

type PendingProviderLinkPurpose added in v0.1.19

type PendingProviderLinkPurpose string
const (
	PendingProviderLinkPurposeAuthenticatedLink PendingProviderLinkPurpose = "authenticated_link"
	PendingProviderLinkPurposeAccountRecovery   PendingProviderLinkPurpose = "account_recovery_link"
)

type PendingSignupAction added in v0.1.12

type PendingSignupAction struct {
	ID          uuid.UUID
	ChallengeID uuid.UUID

	CreatedAt time.Time
	UpdatedAt time.Time

	Email        string
	Username     string
	PasswordHash string
}

type Provider

type Provider string
const (
	ProviderPassword Provider = "password"
	ProviderGoogle   Provider = "google"
)

type RefreshToken

type RefreshToken struct {
	ID        uuid.UUID
	CreatedAt time.Time

	SessionID uuid.UUID
	TokenHash string

	ExpiresAt  time.Time
	ConsumedAt *time.Time
}

type Session

type Session struct {
	ID     uuid.UUID
	UserID uuid.UUID

	CreatedAt time.Time
	UpdatedAt time.Time

	ExpiresAt time.Time
	RevokedAt *time.Time

	UserAgent string
}

type User

type User struct {
	ID        uuid.UUID
	CreatedAt time.Time
	UpdatedAt time.Time

	DisabledAt *time.Time

	Email    string
	Username string
}

type VerificationCode added in v0.1.12

type VerificationCode struct {
	ID          uuid.UUID
	ChallengeID uuid.UUID

	CreatedAt time.Time
	ExpiresAt time.Time

	CodeHash string
}

type WebAuthnChallenge added in v0.1.21

type WebAuthnChallenge struct {
	ID        uuid.UUID
	CreatedAt time.Time

	UserID      *uuid.UUID
	Purpose     WebAuthnChallengePurpose
	Challenge   string
	SessionData []byte
	ExpiresAt   time.Time
	ConsumedAt  *time.Time
}

type WebAuthnChallengePurpose added in v0.1.21

type WebAuthnChallengePurpose string
const (
	WebAuthnChallengePurposeRegistration   WebAuthnChallengePurpose = "registration"
	WebAuthnChallengePurposeAuthentication WebAuthnChallengePurpose = "authentication"
)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL