user

package
v1.4.1 Latest Latest
Warning

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

Go to latest
Published: Feb 14, 2025 License: AGPL-3.0 Imports: 19 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func NewExportCommand added in v0.9.0

func NewExportCommand() *cobra.Command

func NewGenerateCommand

func NewGenerateCommand() *cobra.Command

func NewImportCommand

func NewImportCommand() *cobra.Command

func NewUserCommand

func NewUserCommand() *cobra.Command

func RegisterCommands

func RegisterCommands(parent *cobra.Command)

Types

type Emails

type Emails []ImportOrExportEmail

Emails Array of email addresses

type ImportOTPSecret added in v1.3.0

type ImportOTPSecret struct {
	// Secret of the TOTP credential. TOTP credential must be generated for a period of 30 seconds and SHA1 hash algorithm.
	Secret string `json:"secret" yaml:"secret" validate:"required"`
	// CreatedAt optional timestamp when the otp secret was created. Will be set to the import date if not provided.
	CreatedAt *time.Time `json:"created_at,omitempty" yaml:"created_at" validate:"omitempty"`
	// UpdatedAt optional timestamp of the last update to the otp secret. Will be set to the import date if not provided.
	UpdatedAt *time.Time `json:"updated_at,omitempty" yaml:"updated_at" validate:"omitempty"`
}

type ImportOrExportEmail added in v0.9.0

type ImportOrExportEmail struct {
	// Address Valid email address
	Address string `json:"address" yaml:"address" jsonschema:"format=email" validate:"email"`
	// IsPrimary indicates if this is the primary email of the users. In the Emails array there has to be exactly one primary email.
	IsPrimary bool `json:"is_primary" yaml:"is_primary"`
	// IsVerified indicates if the email address was previously verified.
	IsVerified bool `json:"is_verified" yaml:"is_verified"`
}

ImportOrExportEmail The import/export format for a user's email

func (ImportOrExportEmail) JSONSchemaExtend added in v1.0.1

func (ImportOrExportEmail) JSONSchemaExtend(schema *jsonschema.Schema)

type ImportOrExportEntry added in v0.9.0

type ImportOrExportEntry struct {
	// UserID optional uuid.v4. If not provided a new one will be generated for the user
	UserID string `json:"user_id,omitempty" yaml:"user_id" validate:"omitempty,uuid4"`
	// Emails optional list of emails
	Emails Emails `json:"emails" yaml:"emails" jsonschema:"type=array,minItems=1" validate:"required_if=Username 0,unique=Address,dive"`
	// Username optional username of the user
	Username *string `json:"username,omitempty" yaml:"username" validate:"required_if=Emails 0,omitempty,gte=1"`
	// WebauthnCredentials optional list of WebAuthn credentials of a user. Includes passkeys and MFA credentials.
	WebauthnCredentials ImportWebauthnCredentials `json:"webauthn_credentials,omitempty" yaml:"webauthn_credentials" validate:"omitempty,unique=ID,dive"`
	// Password optional password.
	Password *ImportPasswordCredential `json:"password" yaml:"password" validate:"omitempty"`
	// OTPSecret optional TOTP secret for MFA.
	OTPSecret *ImportOTPSecret `json:"otp_secret" yaml:"otp_secret" validate:"omitempty"`
	// CreatedAt optional timestamp of the users' creation. Will be set to the import date if not provided.
	CreatedAt *time.Time `json:"created_at,omitempty" yaml:"created_at" validate:"omitempty"`
	// UpdatedAt optional timestamp of the last update to the user. Will be set to the import date if not provided.
	UpdatedAt *time.Time `json:"updated_at,omitempty" yaml:"updated_at" validate:"omitempty"`
}

ImportOrExportEntry represents a user to be imported/export to the Hanko database

func (ImportOrExportEntry) JSONSchemaExtend added in v1.0.1

func (ImportOrExportEntry) JSONSchemaExtend(schema *jsonschema.Schema)

type ImportOrExportList added in v0.9.0

type ImportOrExportList []ImportOrExportEntry

ImportOrExportList a list of ImportEntries

func (ImportOrExportList) JSONSchemaExtend added in v1.0.1

func (ImportOrExportList) JSONSchemaExtend(schema *jsonschema.Schema)

type ImportPasswordCredential added in v1.3.0

type ImportPasswordCredential struct {
	// Password hash of the password in bcrypt format.
	Password string `json:"password" yaml:"password" validate:"required,startswith=$2a$"`
	// CreatedAt optional timestamp when the password was created. Will be set to the import date if not provided.
	CreatedAt *time.Time `json:"created_at,omitempty" yaml:"created_at" validate:"omitempty"`
	// UpdatedAt optional timestamp of the last update to the password. Will be set to the import date if not provided.
	UpdatedAt *time.Time `json:"updated_at,omitempty" yaml:"updated_at" validate:"omitempty"`
}

type ImportWebauthnCredential added in v1.3.0

type ImportWebauthnCredential struct {
	// ID of the WebAuthn credential.
	ID string `json:"id" yaml:"id" validate:"required"`
	// Optional Name of the WebAuthn credential.
	Name *string `json:"name" yaml:"name" validate:"omitempty"`
	// The PublicKey of the credential.
	PublicKey string `json:"public_key" yaml:"public_key" validate:"required"`
	// The AttestationType the credential was created with.
	AttestationType string `json:"attestation_type" yaml:"attestation_type" validate:"required"`
	// Optional AAGUID of the authenticator on which the credential was created on.
	AAGUID uuid.UUID `json:"aaguid" yaml:"aaguid" validate:"omitempty,uuid4"`
	// Optional SignCount of the WebAuthn credential.
	SignCount int `json:"sign_count" yaml:"sign_count"`
	// LastUsedAt optional timestamp when the WebAuthn credential was last used.
	LastUsedAt *time.Time `json:"last_used_at" yaml:"last_used_at" validate:"omitempty"`
	// CreatedAt optional timestamp of the WebAuthn credentials' creation. Will be set to the import date if not provided.
	CreatedAt *time.Time `json:"created_at" yaml:"created_at" validate:"omitempty"`
	// UpdatedAt optional timestamp of the last update to the WebAuthn credential. Will be set to the import date if not provided.
	UpdatedAt *time.Time `json:"updated_at" yaml:"updated_at" validate:"omitempty"`
	// Optional list of supported Transports by the authenticator.
	Transports []string `json:"transports" yaml:"transports" validate:"omitempty,unique"`
	// BackupEligible flag indicates if the WebAuthn credential can be backed up (e.g. in Apple KeyChain, ...). If the information is not available set it to false.
	BackupEligible bool `json:"backup_eligible" yaml:"backup_eligible"`
	// BackupState flag indicates if the WebAuthn credential is backed up (e.g. in Apple KeyChain, ...). If the information is not available set it to false.
	BackupState bool `json:"backup_state" yaml:"backup_state"`
	// MFAOnly flag indicates if the WebAuthn credential can only be used in combination with another login factor (e.g. password, ...).
	MFAOnly bool `json:"mfa_only" yaml:"mfa_only"`
	// UserHandle optional user id which was used to create the credential with.
	// Populate only when user id was not an uuid v4 and the WebAuthn credential is not an MFAOnly credential.
	UserHandle *string `json:"user_handle" yaml:"user_handle" validate:"omitempty,excluded_if=MFAOnly true"`
}

type ImportWebauthnCredentials added in v1.3.0

type ImportWebauthnCredentials []ImportWebauthnCredential

type Importer added in v1.3.0

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

Jump to

Keyboard shortcuts

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