Skip to content

PocketIDUser

PocketIDUser is the Schema for the pocketidusers API.

PocketIDUser.spec

PocketIDUserSpec defines the desired state of PocketIDUser.

Validation rules:

  • userID is immutable
Field Type Required Default Description
userID string UserID is the optional user ID to use instead of one generated by Pocket-ID.
Pocket-ID only accepts a lowercase UUID and the ID is immutable once the user is created.
Pattern: ^[0-9a-f]\{8\}-[0-9a-f]\{4\}-[0-9a-f]\{4\}-[0-9a-f]\{4\}-[0-9a-f]\{12\}$
username object Username of the user. Defaults to the metadata.name. Can be a plain value or reference a secret.
firstName object First name of the user. Defaults to the username. Can be a plain value or reference a secret.
lastName object Last name of the user. Can be a plain value or reference a secret.
email object Email of the user. Defaults to "@placeholder.local". Can be a plain value or reference a secret.
displayName object DisplayName of the user. Defaults to the first name followed by the last name, if set. Can be a plain value or reference a secret.
instanceSelector LabelSelector InstanceSelector selects the PocketIDInstance to reconcile against.
If omitted, the controller expects exactly one instance in the cluster.
userInfoSecretRef LocalObjectReference UserInfoSecretRef references a single Secret containing sensitive user profile fields. Values from the secret are evaluated last, so spec.username will override the username key in this secret.
Keys: username, firstName, lastName, email, displayName
admin boolean false Set this user as an admin.
disabled boolean false Disabled indicates whether the user account is disabled.
locale string Locale is the user's preferred locale (e.g., "en", "de", "fr").
apiKeys []object APIKeys is a list of API keys to create for this user.
customClaims []object CustomClaims are additional claims to attach to this user. User claims take precedence over claims inherited from the user's groups.

PocketIDUser.spec.username

↩ PocketIDUser.spec

StringValue represents a value that can be either a plain string or from a secret.

Field Type Required Default Description
value string Plain text value.
valueFrom SecretKeySelector Source for the value from a secret.

PocketIDUser.spec.firstName

↩ PocketIDUser.spec

StringValue represents a value that can be either a plain string or from a secret.

Field Type Required Default Description
value string Plain text value.
valueFrom SecretKeySelector Source for the value from a secret.

PocketIDUser.spec.lastName

↩ PocketIDUser.spec

StringValue represents a value that can be either a plain string or from a secret.

Field Type Required Default Description
value string Plain text value.
valueFrom SecretKeySelector Source for the value from a secret.

PocketIDUser.spec.email

↩ PocketIDUser.spec

StringValue represents a value that can be either a plain string or from a secret.

Field Type Required Default Description
value string Plain text value.
valueFrom SecretKeySelector Source for the value from a secret.

PocketIDUser.spec.displayName

↩ PocketIDUser.spec

StringValue represents a value that can be either a plain string or from a secret.

Field Type Required Default Description
value string Plain text value.
valueFrom SecretKeySelector Source for the value from a secret.

PocketIDUser.spec.apiKeys[]

↩ PocketIDUser.spec

APIKeySpec defines the desired state of an API key.

Field Type Required Default Description
name string yes Name of the API key (3-50 characters).
MaxLength: 50
MinLength: 3
expiresAt string ExpiresAt is the expiration time in RFC3339 format (e.g., "2030-01-01T00:00:00Z").
Defaults to 1 year in the future.
description string Created by pocket-id-operator Description of the API key.
secretRef SecretKeySelector SecretRef references an existing Secret containing the API key token. If set, the operator will use this secret instead of creating a new one.

PocketIDUser.spec.customClaims[]

↩ PocketIDUser.spec

CustomClaim defines a custom claim key/value pair for a user or user group.

Field Type Required Default Description
key string yes Key is the claim key.
value string yes Value is the claim value.

PocketIDUser.status

PocketIDUserStatus defines the observed state of PocketIDUser.

Field Type Required Default Description
userID string UserID is the ID assigned by Pocket-ID.
userInfoSecretName string UserInfoSecretName is the name of the Secret storing user profile fields. The operator writes to "-user-data".
isAdmin boolean IsAdmin reflects whether the user is an admin in Pocket-ID.
disabled boolean Disabled reflects whether the user is disabled in Pocket-ID.
locale string Locale of the user from Pocket-ID.
emailVerified boolean EmailVerified reflects whether the user's email has been verified in Pocket-ID.
oneTimeLoginToken string OneTimeLoginToken is the one-time login token for a newly created user.
oneTimeLoginURL string OneTimeLoginURL is the login URL built from the one-time login token.
oneTimeLoginExpiresAt string OneTimeLoginExpiresAt is the RFC3339 timestamp when the login token expires.
apiKeys []object APIKeys reflects the observed state of each API key.
customClaims []object CustomClaims are the resolved custom claims on the user.
conditions Condition array Conditions represent the current state of the PocketIDUser resource.

PocketIDUser.status.apiKeys[]

↩ PocketIDUser.status

APIKeyStatus reflects the observed state of an API key from Pocket-ID.

Field Type Required Default Description
name string yes Name of the API key (matches spec).
id string ID assigned by Pocket-ID.
createdAt string CreatedAt timestamp from Pocket-ID.
expiresAt string ExpiresAt timestamp from Pocket-ID.
lastUsedAt string LastUsedAt timestamp from Pocket-ID.
secretName string SecretName where the API key token is stored.
secretKey string SecretKey within the secret containing the token.

PocketIDUser.status.customClaims[]

↩ PocketIDUser.status

CustomClaim defines a custom claim key/value pair for a user or user group.

Field Type Required Default Description
key string yes Key is the claim key.
value string yes Value is the claim value.