models

package
v1.3.0 Latest Latest
Warning

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

Go to latest
Published: Dec 11, 2024 License: AGPL-3.0 Imports: 23 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func GenerateCertificate added in v0.9.0

func GenerateCertificate(serviceName string, privateKey *rsa.PrivateKey, currentTime time.Time) (string, error)

func NewFlowDB added in v1.0.0

func NewFlowDB(tx *pop.Connection) flowpilot.FlowDB

func TokenForFlowAPI added in v1.0.0

func TokenForFlowAPI(isFlow bool) func(*Token)

func TokenUserCreated added in v1.0.0

func TokenUserCreated(userCreated bool) func(*Token)

func TokenWithIdentityID added in v1.0.0

func TokenWithIdentityID(identityID uuid.UUID) func(*Token)

Types

type AuditLog

type AuditLog struct {
	ID                uuid.UUID    `db:"id" json:"id"`
	Type              AuditLogType `db:"type" json:"type"`
	Error             *string      `db:"error" json:"error,omitempty"`
	MetaHttpRequestId string       `db:"meta_http_request_id" json:"meta_http_request_id"`
	MetaSourceIp      string       `db:"meta_source_ip" json:"meta_source_ip"`
	MetaUserAgent     string       `db:"meta_user_agent" json:"meta_user_agent"`
	ActorUserId       *uuid.UUID   `db:"actor_user_id" json:"actor_user_id,omitempty"`
	ActorEmail        *string      `db:"actor_email" json:"actor_email,omitempty" mask:"email"`
	Details           slices.Map   `db:"details" json:"details"`
	CreatedAt         time.Time    `db:"created_at" json:"created_at"`
	UpdatedAt         time.Time    `db:"updated_at" json:"updated_at"`
}

func NewAuditLog added in v1.0.0

func NewAuditLog(auditLogType AuditLogType, requestMeta RequestMeta, details Details, user *User, logError error) (AuditLog, error)

type AuditLogType

type AuditLogType string
var (
	AuditLogUserLoggedOut AuditLogType = "user_logged_out"

	AuditLogPasswordSetSucceeded AuditLogType = "password_set_succeeded"
	AuditLogPasswordSetFailed    AuditLogType = "password_set_failed"

	AuditLogPasswordLoginSucceeded AuditLogType = "password_login_succeeded"
	AuditLogPasswordLoginFailed    AuditLogType = "password_login_failed"

	AuditLogPasscodeLoginInitSucceeded  AuditLogType = "passcode_login_init_succeeded"
	AuditLogPasscodeLoginInitFailed     AuditLogType = "passcode_login_init_failed"
	AuditLogPasscodeLoginFinalSucceeded AuditLogType = "passcode_login_final_succeeded"
	AuditLogPasscodeLoginFinalFailed    AuditLogType = "passcode_login_final_failed"

	AuditLogWebAuthnRegistrationInitSucceeded  AuditLogType = "webauthn_registration_init_succeeded"
	AuditLogWebAuthnRegistrationInitFailed     AuditLogType = "webauthn_registration_init_failed"
	AuditLogWebAuthnRegistrationFinalSucceeded AuditLogType = "webauthn_registration_final_succeeded"
	AuditLogWebAuthnRegistrationFinalFailed    AuditLogType = "webauthn_registration_final_failed"

	AuditLogWebAuthnAuthenticationInitSucceeded  AuditLogType = "webauthn_authentication_init_succeeded"
	AuditLogWebAuthnAuthenticationInitFailed     AuditLogType = "webauthn_authentication_init_failed"
	AuditLogWebAuthnAuthenticationFinalSucceeded AuditLogType = "webauthn_authentication_final_succeeded"
	AuditLogWebAuthnAuthenticationFinalFailed    AuditLogType = "webauthn_authentication_final_failed"

	AuditLogWebAuthnCredentialUpdated AuditLogType = "webauthn_credential_updated"
	AuditLogWebAuthnCredentialDeleted AuditLogType = "webauthn_credential_deleted"

	AuditLogThirdPartySignUpSucceeded    AuditLogType = "thirdparty_signup_succeeded"
	AuditLogThirdPartySignInSucceeded    AuditLogType = "thirdparty_signin_succeeded"
	AuditLogThirdPartyLinkingSucceeded   AuditLogType = "thirdparty_linking_succeeded"
	AuditLogThirdPartySignInSignUpFailed AuditLogType = "thirdparty_signin_signup_failed"

	AuditLogTokenExchangeSucceeded AuditLogType = "token_exchange_succeeded"
	AuditLogTokenExchangeFailed    AuditLogType = "token_exchange_failed"

	// Types used by old API and new/flow API
	AuditLogUserCreated         AuditLogType = "user_created"
	AuditLogEmailCreated        AuditLogType = "email_created"
	AuditLogEmailVerified       AuditLogType = "email_verified"
	AuditLogEmailDeleted        AuditLogType = "email_deleted"
	AuditLogPrimaryEmailChanged AuditLogType = "primary_email_changed"
	AuditLogUserDeleted         AuditLogType = "user_deleted"

	// New/flow API types
	AuditLogLoginSuccess       AuditLogType = "login_success"
	AuditLogLoginFailure       AuditLogType = "login_failure"
	AuditLogOTPCreated         AuditLogType = "otp_created"
	AuditLogPasskeyCreated     AuditLogType = "passkey_created"
	AuditLogPasskeyDeleted     AuditLogType = "passkey_deleted"
	AuditLogSecurityKeyCreated AuditLogType = "security_key_created"
	AuditLogUsernameChanged    AuditLogType = "username_changed"
	AuditLogUsernameDeleted    AuditLogType = "username_deleted"
	AuditLogPasswordChanged    AuditLogType = "password_changed"
	AuditLogPasswordDeleted    AuditLogType = "password_deleted"
)

type Details added in v1.0.0

type Details map[string]interface{}

type Email

type Email struct {
	ID           uuid.UUID     `db:"id" json:"id"`
	UserID       *uuid.UUID    `db:"user_id" json:"user_id,omitempty"` // TODO: should not be a pointer anymore
	Address      string        `db:"address" json:"address"`
	Verified     bool          `db:"verified" json:"verified"`
	PrimaryEmail *PrimaryEmail `has_one:"primary_emails" json:"primary_emails,omitempty"`
	User         *User         `belongs_to:"user" json:"user,omitempty"`
	Identities   Identities    `has_many:"identities" json:"identity,omitempty"`
	CreatedAt    time.Time     `db:"created_at" json:"created_at"`
	UpdatedAt    time.Time     `db:"updated_at" json:"updated_at"`
}

Email is used by pop to map your users database table to your go code.

func NewEmail

func NewEmail(userId *uuid.UUID, address string) *Email

func (*Email) IsPrimary

func (email *Email) IsPrimary() bool

func (*Email) Validate

func (email *Email) Validate(tx *pop.Connection) (*validate.Errors, error)

Validate gets run every time you call a "pop.Validate*" (pop.ValidateAndSave, pop.ValidateAndCreate, pop.ValidateAndUpdate) method.

type Emails

type Emails []Email

func (*Emails) GetEmailByAddress added in v0.10.0

func (emails *Emails) GetEmailByAddress(address string) *Email

func (*Emails) GetEmailById added in v0.10.0

func (emails *Emails) GetEmailById(emailId uuid.UUID) *Email

func (*Emails) GetPrimary

func (emails *Emails) GetPrimary() *Email

func (*Emails) GetVerified

func (emails *Emails) GetVerified() Emails

func (*Emails) HasUnverified added in v1.0.0

func (emails *Emails) HasUnverified() bool

type Flow added in v1.0.0

type Flow struct {
	ID        uuid.UUID `json:"id" db:"id"`
	Data      string    `json:"data" db:"data"`
	Version   int       `json:"version" db:"version"`
	CSRFToken string    `json:"csrf_token" db:"csrf_token"`
	ExpiresAt time.Time `json:"expires_at" db:"expires_at"`
	UpdatedAt time.Time `json:"updated_at" db:"updated_at"`
	CreatedAt time.Time `json:"created_at" db:"created_at"`
}

Flow is used by pop to map your flows database table to your go code.

func (*Flow) ToFlowpilotModel added in v1.0.0

func (f *Flow) ToFlowpilotModel() *flowpilot.FlowModel

func (*Flow) Validate added in v1.0.0

func (f *Flow) Validate(tx *pop.Connection) (*validate.Errors, error)

Validate gets run every time you call a "pop.validate*" (pop.ValidateAndSave, pop.ValidateAndCreate, pop.ValidateAndUpdate) method. This method is not required and may be deleted.

func (*Flow) ValidateCreate added in v1.0.0

func (f *Flow) ValidateCreate(tx *pop.Connection) (*validate.Errors, error)

ValidateCreate gets run every time you call "pop.ValidateAndCreate" method. This method is not required and may be deleted.

func (*Flow) ValidateUpdate added in v1.0.0

func (f *Flow) ValidateUpdate(tx *pop.Connection) (*validate.Errors, error)

ValidateUpdate gets run every time you call "pop.ValidateAndUpdate" method. This method is not required and may be deleted.

type FlowDB added in v1.0.0

type FlowDB struct {
	// contains filtered or unexported fields
}

func (FlowDB) CreateFlow added in v1.0.0

func (flowDB FlowDB) CreateFlow(flowModel flowpilot.FlowModel) error

func (FlowDB) GetFlow added in v1.0.0

func (flowDB FlowDB) GetFlow(flowID uuid.UUID) (*flowpilot.FlowModel, error)

func (FlowDB) UpdateFlow added in v1.0.0

func (flowDB FlowDB) UpdateFlow(flowModel flowpilot.FlowModel) error

type Flows added in v1.0.0

type Flows []Flow

Flows is not required by pop and may be deleted

type Identities added in v0.5.0

type Identities []Identity

func (Identities) GetIdentity added in v0.10.0

func (identities Identities) GetIdentity(providerName string, providerId string) *Identity

type Identity added in v0.5.0

type Identity struct {
	ID           uuid.UUID  `json:"id" db:"id"`
	ProviderID   string     `json:"provider_id" db:"provider_id"`
	ProviderName string     `json:"provider_name" db:"provider_name"`
	Data         slices.Map `json:"data" db:"data"`
	EmailID      uuid.UUID  `json:"email_id" db:"email_id"`
	Email        *Email     `json:"email,omitempty" belongs_to:"email"`
	CreatedAt    time.Time  `json:"created_at" db:"created_at"`
	UpdatedAt    time.Time  `json:"updated_at" db:"updated_at"`
}

Identity is used by pop to map your identities database table to your go code.

func NewIdentity added in v0.5.0

func NewIdentity(provider string, identityData map[string]interface{}, emailID uuid.UUID) (*Identity, error)

func (*Identity) Validate added in v0.5.0

func (i *Identity) Validate(tx *pop.Connection) (*validate.Errors, error)

Validate gets run every time you call a "pop.Validate*" (pop.ValidateAndSave, pop.ValidateAndCreate, pop.ValidateAndUpdate) method. This method is not required and may be deleted.

type Jwk

type Jwk struct {
	ID        int       `db:"id"`
	KeyData   string    `db:"key_data"`
	CreatedAt time.Time `db:"created_at"`
}

func (*Jwk) Validate

func (jwk *Jwk) Validate(tx *pop.Connection) (*validate.Errors, error)

Validate gets run every time you call a "pop.Validate*" (pop.ValidateAndSave, pop.ValidateAndCreate, pop.ValidateAndUpdate) method.

type OTPSecret added in v1.2.0

type OTPSecret struct {
	ID        uuid.UUID `db:"id"`
	UserID    uuid.UUID `db:"user_id"`
	Secret    string    `db:"secret"`
	CreatedAt time.Time `db:"created_at"`
	UpdatedAt time.Time `db:"updated_at"`
}

func NewOTPSecret added in v1.2.0

func NewOTPSecret(userID uuid.UUID, secret string) *OTPSecret

func (OTPSecret) TableName added in v1.2.0

func (otpSecret OTPSecret) TableName() string

func (*OTPSecret) Validate added in v1.2.0

func (otpSecret *OTPSecret) Validate(tx *pop.Connection) (*validate.Errors, error)

type Operation

type Operation string
var (
	WebauthnOperationRegistration   Operation = "registration"
	WebauthnOperationAuthentication Operation = "authentication"
)

type Passcode

type Passcode struct {
	ID        uuid.UUID  `db:"id"`
	UserId    *uuid.UUID `db:"user_id"`
	EmailID   *uuid.UUID `db:"email_id"`
	Ttl       int        `db:"ttl"` // in seconds
	Code      string     `db:"code"`
	TryCount  int        `db:"try_count"`
	CreatedAt time.Time  `db:"created_at"`
	UpdatedAt time.Time  `db:"updated_at"`
	Email     Email      `belongs_to:"email"`
}

Passcode is used by pop to map your passcodes database table to your go code.

func (*Passcode) Validate

func (passcode *Passcode) Validate(tx *pop.Connection) (*validate.Errors, error)

Validate gets run every time you call a "pop.Validate*" (pop.ValidateAndSave, pop.ValidateAndCreate, pop.ValidateAndUpdate) method.

type PasswordCredential

type PasswordCredential struct {
	ID        uuid.UUID `db:"id"`
	UserId    uuid.UUID `db:"user_id"`
	Password  string    `db:"password"`
	CreatedAt time.Time `db:"created_at"`
	UpdatedAt time.Time `db:"updated_at"`
}

func NewPasswordCredential added in v1.0.0

func NewPasswordCredential(userId uuid.UUID, password string) *PasswordCredential

func (*PasswordCredential) Validate

func (password *PasswordCredential) Validate(tx *pop.Connection) (*validate.Errors, error)

type PrimaryEmail

type PrimaryEmail struct {
	ID        uuid.UUID `db:"id" json:"id"`
	EmailID   uuid.UUID `db:"email_id" json:"email_id"`
	UserID    uuid.UUID `db:"user_id" json:"-"`
	Email     *Email    `belongs_to:"email" json:"email"`
	User      *User     `belongs_to:"user" json:"-"`
	CreatedAt time.Time `db:"created_at" json:"-"`
	UpdatedAt time.Time `db:"updated_at" json:"-"`
}

func NewPrimaryEmail

func NewPrimaryEmail(emailId uuid.UUID, userId uuid.UUID) *PrimaryEmail

func (*PrimaryEmail) Validate

func (primaryEmail *PrimaryEmail) Validate(tx *pop.Connection) (*validate.Errors, error)

Validate gets run every time you call a "pop.Validate*" (pop.ValidateAndSave, pop.ValidateAndCreate, pop.ValidateAndUpdate) method.

type RequestMeta added in v1.0.0

type RequestMeta struct {
	HttpRequestId string
	SourceIp      string
	UserAgent     string
}

type SamlCertificate added in v0.9.0

type SamlCertificate struct {
	ID            uuid.UUID `json:"id" db:"id"`
	CertData      string    `json:"cert_data" db:"cert_data"`
	CertKey       string    `json:"cert_key" db:"cert_key"`
	EncryptionKey string    `json:"encryption_key" db:"encryption_key"`
	CreatedAt     time.Time `json:"created_at" db:"created_at"`
	UpdatedAt     time.Time `json:"updated_at" db:"updated_at"`
}

SamlCertificate is used by pop to map your saml_certs database table to your go code.

func NewSamlCertificate added in v0.9.0

func NewSamlCertificate(serviceName string) (*SamlCertificate, error)

func (*SamlCertificate) DecryptCertKey added in v0.9.0

func (s *SamlCertificate) DecryptCertKey() ([]byte, error)

func (*SamlCertificate) Validate added in v0.9.0

func (s *SamlCertificate) Validate(_ *pop.Connection) (*validate.Errors, error)

Validate gets run every time you call a "pop.Validate*" (pop.ValidateAndSave, pop.ValidateAndCreate, pop.ValidateAndUpdate) method. This method is not required and may be deleted.

type SamlState added in v0.9.0

type SamlState struct {
	ID        uuid.UUID `db:"id"`
	Nonce     string    `db:"nonce"`
	State     string    `db:"state"`
	ExpiresAt time.Time `db:"expires_at"`
	CreatedAt time.Time `db:"created_at"`
	UpdatedAt time.Time `db:"updated_at"`
}

func NewSamlState added in v0.9.0

func NewSamlState(nonce string, state string) (*SamlState, error)

type Session added in v1.1.0

type Session struct {
	ID        uuid.UUID  `db:"id" json:"id"`
	UserID    uuid.UUID  `db:"user_id" json:"user_id"`
	UserAgent string     `db:"user_agent" json:"user_agent"`
	IpAddress string     `db:"ip_address" json:"ip_address"`
	CreatedAt time.Time  `db:"created_at" json:"created_at"`
	UpdatedAt time.Time  `db:"updated_at" json:"updated_at"`
	ExpiresAt *time.Time `db:"expires_at" json:"expires_at"`
	LastUsed  time.Time  `db:"last_used" json:"last_used"`
}

func (*Session) Validate added in v1.1.0

func (session *Session) Validate(tx *pop.Connection) (*validate.Errors, error)

type Token added in v0.6.0

type Token struct {
	ID          uuid.UUID  `db:"id"`
	UserID      uuid.UUID  `db:"user_id"`
	IdentityID  *uuid.UUID `db:"identity_id"`
	IsFlow      bool       `db:"is_flow"`
	Value       string     `db:"value"`
	UserCreated bool       `db:"user_created"`
	ExpiresAt   time.Time  `db:"expires_at"`
	CreatedAt   time.Time  `db:"created_at"`
	UpdatedAt   time.Time  `db:"updated_at"`
}

func NewToken added in v0.6.0

func NewToken(userID uuid.UUID, options ...func(*Token)) (*Token, error)

func (*Token) Validate added in v0.6.0

func (token *Token) Validate(tx *pop.Connection) (*validate.Errors, error)

type Transports

type Transports []WebauthnCredentialTransport

func (Transports) GetNames

func (transports Transports) GetNames() []string

type TrustedDevice added in v1.3.0

type TrustedDevice struct {
	ID          uuid.UUID `db:"id"`
	UserID      uuid.UUID `db:"user_id"`
	DeviceToken string    `db:"device_token"`
	ExpiresAt   time.Time `db:"expires_at"`
	CreatedAt   time.Time `db:"created_at"`
	UpdatedAt   time.Time `db:"updated_at"`
}

func (*TrustedDevice) Validate added in v1.3.0

func (trustedDevice *TrustedDevice) Validate(tx *pop.Connection) (*validate.Errors, error)

type User

type User struct {
	ID                  uuid.UUID           `db:"id" json:"id"`
	WebauthnCredentials WebauthnCredentials `has_many:"webauthn_credentials" json:"webauthn_credentials,omitempty"`
	Emails              Emails              `has_many:"emails" json:"-"`
	CreatedAt           time.Time           `db:"created_at" json:"created_at"`
	UpdatedAt           time.Time           `db:"updated_at" json:"updated_at"`
	Username            *Username           `has_one:"username" json:"username,omitempty"`
	OTPSecret           *OTPSecret          `has_one:"otp_secret" json:"-"`
	PasswordCredential  *PasswordCredential `has_one:"password_credentials" json:"-"`
}

User is used by pop to map your users database table to your go code.

func NewUser

func NewUser() User

func (*User) DeleteEmail added in v1.0.0

func (user *User) DeleteEmail(email Email)

func (*User) DeleteOTPSecret added in v1.2.0

func (user *User) DeleteOTPSecret()

func (*User) DeleteUsername added in v1.0.0

func (user *User) DeleteUsername()

func (*User) DeleteWebauthnCredential added in v1.0.0

func (user *User) DeleteWebauthnCredential(credentialId string)

func (*User) GetEmailByAddress added in v0.10.0

func (user *User) GetEmailByAddress(address string) *Email

func (*User) GetEmailById

func (user *User) GetEmailById(emailId uuid.UUID) *Email

func (*User) GetIdentities added in v1.0.0

func (user *User) GetIdentities() Identities

func (*User) GetPasskeys added in v1.2.0

func (user *User) GetPasskeys() WebauthnCredentials

func (*User) GetSecurityKeys added in v1.2.0

func (user *User) GetSecurityKeys() WebauthnCredentials

func (*User) GetUsername added in v1.0.0

func (user *User) GetUsername() *string

func (*User) GetWebauthnCredentialById added in v1.0.0

func (user *User) GetWebauthnCredentialById(credentialId string) *WebauthnCredential

func (*User) SetPrimaryEmail added in v1.0.0

func (user *User) SetPrimaryEmail(primary *PrimaryEmail)

func (*User) SetUsername added in v1.0.0

func (user *User) SetUsername(username *Username)

func (*User) UpdateEmail added in v1.0.0

func (user *User) UpdateEmail(email Email)

func (*User) Validate

func (user *User) Validate(tx *pop.Connection) (*validate.Errors, error)

Validate gets run every time you call a "pop.Validate*" (pop.ValidateAndSave, pop.ValidateAndCreate, pop.ValidateAndUpdate) method.

func (*User) WebAuthnCredentials added in v1.0.0

func (user *User) WebAuthnCredentials() []webauthn.Credential

func (*User) WebAuthnDisplayName added in v1.0.0

func (user *User) WebAuthnDisplayName() string

func (*User) WebAuthnID added in v1.0.0

func (user *User) WebAuthnID() []byte

func (*User) WebAuthnIcon added in v1.0.0

func (user *User) WebAuthnIcon() string

func (*User) WebAuthnName added in v1.0.0

func (user *User) WebAuthnName() string

type Username added in v1.0.0

type Username struct {
	ID        uuid.UUID `db:"id"`
	UserId    uuid.UUID `db:"user_id"`
	Username  string    `db:"username"`
	CreatedAt time.Time `db:"created_at"`
	UpdatedAt time.Time `db:"updated_at"`
}

func NewUsername added in v1.0.0

func NewUsername(userId uuid.UUID, username string) *Username

func (*Username) Validate added in v1.0.0

func (username *Username) Validate(tx *pop.Connection) (*validate.Errors, error)

type WebauthnCredential

type WebauthnCredential struct {
	ID              string                        `db:"id" json:"id"`
	Name            *string                       `db:"name" json:"name"`
	UserId          uuid.UUID                     `db:"user_id" json:"user_id"`
	PublicKey       string                        `db:"public_key" json:"public_key"`
	AttestationType string                        `db:"attestation_type" json:"attestation_type"`
	AAGUID          uuid.UUID                     `db:"aaguid" json:"aaguid"`
	SignCount       int                           `db:"sign_count" json:"sign_count"`
	LastUsedAt      *time.Time                    `db:"last_used_at" json:"last_used_at"`
	CreatedAt       time.Time                     `db:"created_at" json:"created_at"`
	UpdatedAt       time.Time                     `db:"updated_at" json:"updated_at"`
	Transports      Transports                    `has_many:"webauthn_credential_transports" json:"transports"`
	BackupEligible  bool                          `db:"backup_eligible" json:"backup_eligible"`
	BackupState     bool                          `db:"backup_state" json:"backup_state"`
	MFAOnly         bool                          `db:"mfa_only" json:"mfa_only"`
	UserHandleID    *uuid.UUID                    `db:"user_handle_id" json:"-"`
	UserHandle      *WebauthnCredentialUserHandle `belongs_to:"webauthn_credential_user_handle" fk_id:"webauthn_credential_user_handle_fkey" json:"user_handle,omitempty"`
}

WebauthnCredential is used by pop to map your webauthn_credentials database table to your go code.

func (*WebauthnCredential) GetWebauthnDescriptor added in v1.2.0

func (credential *WebauthnCredential) GetWebauthnDescriptor() (*protocol.CredentialDescriptor, error)

func (*WebauthnCredential) GetWebauthnTransports added in v1.2.0

func (credential *WebauthnCredential) GetWebauthnTransports() []protocol.AuthenticatorTransport

func (*WebauthnCredential) Validate

func (credential *WebauthnCredential) Validate(tx *pop.Connection) (*validate.Errors, error)

Validate gets run every time you call a "pop.Validate*" (pop.ValidateAndSave, pop.ValidateAndCreate, pop.ValidateAndUpdate) method.

type WebauthnCredentialTransport

type WebauthnCredentialTransport struct {
	ID                   uuid.UUID           `db:"id"`
	Name                 string              `db:"name"`
	WebauthnCredentialID string              `db:"webauthn_credential_id"`
	WebauthnCredential   *WebauthnCredential `belongs_to:"webauthn_credential"`
}

WebauthnCredentialTransport is used by pop to map your webauthn_credential_transport table to your go code.

func (*WebauthnCredentialTransport) Validate

func (transport *WebauthnCredentialTransport) Validate(tx *pop.Connection) (*validate.Errors, error)

Validate gets run every time you call a "pop.Validate*" (pop.ValidateAndSave, pop.ValidateAndCreate, pop.ValidateAndUpdate) method.

type WebauthnCredentialUserHandle added in v1.3.0

type WebauthnCredentialUserHandle struct {
	ID        uuid.UUID `db:"id" json:"id"`
	UserID    uuid.UUID `db:"user_id" json:"user_id"`
	Handle    string    `db:"handle" json:"handle"`
	CreatedAt time.Time `db:"created_at" json:"created_at"`
	UpdatedAt time.Time `db:"updated_at" json:"updated_at"`
}

func (*WebauthnCredentialUserHandle) Validate added in v1.3.0

func (userHandle *WebauthnCredentialUserHandle) Validate(tx *pop.Connection) (*validate.Errors, error)

Validate gets run every time you call a "pop.Validate*" (pop.ValidateAndSave, pop.ValidateAndCreate, pop.ValidateAndUpdate) method.

type WebauthnCredentials added in v1.0.0

type WebauthnCredentials []WebauthnCredential

func (WebauthnCredentials) GetWebauthnDescriptors added in v1.2.0

func (credentials WebauthnCredentials) GetWebauthnDescriptors() ([]protocol.CredentialDescriptor, error)

type WebauthnSessionData

type WebauthnSessionData struct {
	ID                 uuid.UUID                              `db:"id"`
	Challenge          string                                 `db:"challenge"`
	UserId             uuid.UUID                              `db:"user_id"`
	UserVerification   string                                 `db:"user_verification"`
	CreatedAt          time.Time                              `db:"created_at"`
	UpdatedAt          time.Time                              `db:"updated_at"`
	Operation          Operation                              `db:"operation"`
	AllowedCredentials []WebauthnSessionDataAllowedCredential `has_many:"webauthn_session_data_allowed_credentials"`
	ExpiresAt          nulls.Time                             `db:"expires_at"`
}

WebauthnSessionData is used by pop to map your webauthn_session_data database table to your go code.

func NewWebauthnSessionDataFrom added in v1.0.0

func NewWebauthnSessionDataFrom(sessionData *webauthn.SessionData, operation Operation) (*WebauthnSessionData, error)

func (*WebauthnSessionData) ToSessionData added in v1.0.0

func (sd *WebauthnSessionData) ToSessionData() *webauthn.SessionData

func (*WebauthnSessionData) Validate

func (sd *WebauthnSessionData) Validate(tx *pop.Connection) (*validate.Errors, error)

Validate gets run every time you call a "pop.Validate*" (pop.ValidateAndSave, pop.ValidateAndCreate, pop.ValidateAndUpdate) method.

type WebauthnSessionDataAllowedCredential

type WebauthnSessionDataAllowedCredential struct {
	ID                    uuid.UUID            `db:"id"`
	CredentialId          string               `db:"credential_id"`
	WebauthnSessionDataID uuid.UUID            `db:"webauthn_session_data_id"`
	CreatedAt             time.Time            `db:"created_at"`
	UpdatedAt             time.Time            `db:"updated_at"`
	WebauthnSessionData   *WebauthnSessionData `belongs_to:"webauthn_session_data"`
}

WebauthnSessionDataAllowedCredential is used by pop to map your webauthn_session_data_allowed_credential database table to your go code.

func (*WebauthnSessionDataAllowedCredential) Validate

func (credential *WebauthnSessionDataAllowedCredential) Validate(tx *pop.Connection) (*validate.Errors, error)

Validate gets run every time you call a "pop.Validate*" (pop.ValidateAndSave, pop.ValidateAndCreate, pop.ValidateAndUpdate) method.

type Webhook added in v0.10.0

type Webhook struct {
	ID            uuid.UUID     `json:"id" db:"id"`
	Callback      string        `json:"callback" db:"callback"`
	Enabled       bool          `json:"enabled" db:"enabled"`
	Failures      int           `json:"failures" db:"failures"`
	ExpiresAt     time.Time     `json:"expires_at" db:"expires_at"`
	WebhookEvents WebhookEvents `json:"events" has_many:"webhook_events"`
	CreatedAt     time.Time     `json:"created_at" db:"created_at"`
	UpdatedAt     time.Time     `json:"updated_at" db:"updated_at"`
}

Webhook is used by pop to map your webhooks database table to your go code.

func (*Webhook) Validate added in v0.10.0

func (w *Webhook) Validate(tx *pop.Connection) (*validate.Errors, error)

Validate gets run every time you call a "pop.Validate*" (pop.ValidateAndSave, pop.ValidateAndCreate, pop.ValidateAndUpdate) method. This method is not required and may be deleted.

type WebhookEvent added in v0.10.0

type WebhookEvent struct {
	ID        uuid.UUID `json:"id" db:"id"`
	Webhook   *Webhook  `json:"-" belongs_to:"webhook"`
	WebhookID uuid.UUID `json:"-" db:"webhook_id"`
	Event     string    `json:"event" db:"event"`
	CreatedAt time.Time `json:"-" db:"created_at"`
	UpdatedAt time.Time `json:"-" db:"updated_at"`
}

WebhookEvent is used by pop to map your webhook_events database table to your go code.

func (*WebhookEvent) Validate added in v0.10.0

func (w *WebhookEvent) Validate(tx *pop.Connection) (*validate.Errors, error)

Validate gets run every time you call a "pop.Validate*" (pop.ValidateAndSave, pop.ValidateAndCreate, pop.ValidateAndUpdate) method. This method is not required and may be deleted.

type WebhookEvents added in v0.10.0

type WebhookEvents []WebhookEvent

WebhookEvents is not required by pop and may be deleted

type Webhooks added in v0.10.0

type Webhooks []Webhook

Webhooks are not required by pop and may be deleted

Jump to

Keyboard shortcuts

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