domain

package
v0.1.26 Latest Latest
Warning

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

Go to latest
Published: Jun 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"
	EmailTemplateOrganizationInvite EmailTemplate = "organization_invitation"
)

type Organization added in v0.1.24

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

	Name            string
	Kind            OrganizationKind
	CreatedByUserID *uuid.UUID
}

type OrganizationInvitation added in v0.1.24

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

	OrganizationID  uuid.UUID
	Email           string
	Role            OrganizationRole
	TokenHash       string
	InvitedByUserID *uuid.UUID

	ExpiresAt time.Time

	AcceptedAt       *time.Time
	AcceptedByUserID *uuid.UUID
	RevokedAt        *time.Time
	RevokedByUserID  *uuid.UUID
}

func (OrganizationInvitation) Status added in v0.1.24

type OrganizationInvitationStatus added in v0.1.24

type OrganizationInvitationStatus string
const (
	OrganizationInvitationStatusPending  OrganizationInvitationStatus = "pending"
	OrganizationInvitationStatusAccepted OrganizationInvitationStatus = "accepted"
	OrganizationInvitationStatusRevoked  OrganizationInvitationStatus = "revoked"
	OrganizationInvitationStatusExpired  OrganizationInvitationStatus = "expired"
)

type OrganizationKind added in v0.1.24

type OrganizationKind string
const (
	OrganizationKindPersonal OrganizationKind = "personal"
	OrganizationKindTeam     OrganizationKind = "team"
)

type OrganizationMember added in v0.1.25

type OrganizationMember struct {
	User       User
	Membership OrganizationMembership
}

type OrganizationMembership added in v0.1.24

type OrganizationMembership struct {
	OrganizationID uuid.UUID
	UserID         uuid.UUID

	Role OrganizationRole

	CreatedAt time.Time
	UpdatedAt time.Time
}

type OrganizationRole added in v0.1.24

type OrganizationRole string
const (
	OrganizationRoleOwner  OrganizationRole = "owner"
	OrganizationRoleAdmin  OrganizationRole = "admin"
	OrganizationRoleMember OrganizationRole = "member"
)

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
	InvitationID *uuid.UUID
}

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
	OrganizationID uuid.UUID
	TokenHash      string

	ExpiresAt  time.Time
	ConsumedAt *time.Time
}

type Session

type Session struct {
	ID                   uuid.UUID
	UserID               uuid.UUID
	ActiveOrganizationID 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