What an audit entry records. The database checks action against these; a
value added here needs the check widened on existing databases, as
:permanent-delete did (BOU-682).
What an audit entry records. The database checks `action` against these; a value added here needs the check widened on existing databases, as `:permanent-delete` did (BOU-682).
Schema for AuthUser entity (public.auth_users table).
Contains global authentication credentials shared across all tenants. Used for login verification, MFA, and account security.
Part of schema-per-tenant multi-tenancy architecture (ADR-004):
Schema for AuthUser entity (public.auth_users table). Contains global authentication credentials shared across all tenants. Used for login verification, MFA, and account security. Part of schema-per-tenant multi-tenancy architecture (ADR-004): - Authentication data lives in public.auth_users (shared) - Profile data lives in tenant_<slug>.users (isolated)
Schema for create user API requests.
Schema for create user API requests.
false leaves /web/dashboard to the application; {:handler sym} serves
that Ring handler there. Either way users land there, not on the admin's
dashboard, which /web/dashboard redirects to by default.
`false` leaves /web/dashboard to the application; `{:handler sym}` serves
that Ring handler there. Either way users land there, not on the admin's
dashboard, which /web/dashboard redirects to by default.Regular expression for basic email validation.
Regular expression for basic email validation.
(explain-user user-data)Provides detailed validation errors for user data.
Provides detailed validation errors for user data.
(get-schema category schema-name)Retrieves a schema from the registry by category and name.
Retrieves a schema from the registry by category and name.
One group for import-groups!. Its grants are checked against the
declared :groups schemas afterwards.
One group for `import-groups!`. Its grants are checked against the declared `:groups` schemas afterwards.
What creating or renaming a group takes.
What creating or renaming a group takes.
:wagoe/user :groups: the permissions and the scope a grant may name, each
a Malli schema or a symbol naming one. Without them any keyword and any map
of EDN values is accepted.
`:wagoe/user :groups`: the permissions and the scope a grant may name, each a Malli schema or a symbol naming one. Without them any keyword and any map of EDN values is accepted.
Where / and /web send everyone. Not one of those two, query or fragment
aside: it would redirect to itself.
Where `/` and `/web` send everyone. Not one of those two, query or fragment aside: it would redirect to itself.
The page around the sign-in forms: a (fn [title body opts]), a symbol in EDN.
The page around the sign-in forms: a `(fn [title body opts])`, a symbol in EDN.
Where a user lands after signing in: paths by role (:default for the
rest), or a function of the user — a symbol in EDN. :multi so a bad value
gets one message, not one per alternative.
Where a user lands after signing in: paths by role (`:default` for the rest), or a function of the user — a symbol in EDN. `:multi` so a bad value gets one message, not one per alternative.
Schema for enabling MFA with verification.
Schema for enabling MFA with verification.
Response when MFA verification is required. Returned after successful password verification when user has MFA enabled.
Response when MFA verification is required. Returned after successful password verification when user has MFA enabled.
Schema for MFA setup initiation.
Schema for MFA setup initiation.
Schema for MFA setup response.
Schema for MFA setup response.
Schema for MFA status response.
Schema for MFA status response.
Schema for MFA code verification.
Schema for MFA code verification.
What creating or changing a managed role takes.
What creating or changing a managed role takes.
Registry of all user module schemas for easy access.
Registry of all user module schemas for easy access.
Schema for TenantUser entity (tenant_<slug>.users table).
Contains tenant-specific user profile and preferences. User can have different name/role/settings in different tenants.
Part of schema-per-tenant multi-tenancy architecture (ADR-004):
Note: Timestamps use :inst (java.time.Instant) internally.
Schema for TenantUser entity (tenant_<slug>.users table). Contains tenant-specific user profile and preferences. User can have different name/role/settings in different tenants. Part of schema-per-tenant multi-tenancy architecture (ADR-004): - Same user (id) can exist in multiple tenant schemas - Each tenant schema has isolated user profile data Note: Timestamps use :inst (java.time.Instant) internally.
Schema for update user API requests.
Schema for update user API requests.
Schema for User entity (merged AuthUser + TenantUser).
This is the unified user entity used in business logic. Combines authentication data (from public.auth_users) with tenant-specific profile data (from tenant_<slug>.users).
Persistence layer is responsible for:
Note: Timestamps use :inst (java.time.Instant) internally. The infrastructure layer handles conversion to/from strings for database storage.
Schema for User entity (merged AuthUser + TenantUser). This is the unified user entity used in business logic. Combines authentication data (from public.auth_users) with tenant-specific profile data (from tenant_<slug>.users). Persistence layer is responsible for: - Querying both tables and merging results - Splitting updates to correct table based on field - Maintaining referential integrity (auth_users.id = users.id) Note: Timestamps use :inst (java.time.Instant) internally. The infrastructure layer handles conversion to/from strings for database storage.
Transforms external API data to internal domain format.
NOTE: This transformer does NOT strip unknown keys. Request schemas should be :closed to strictly reject unknown keys.
Transforms external API data to internal domain format. NOTE: This transformer does NOT strip unknown keys. Request schemas should be :closed to strictly reject unknown keys.
Transforms internal domain data to external API format.
Transforms internal domain data to external API format.
(user-specific-camel->kebab value)Transforms user-specific camelCase API keys to kebab-case internal keys.
Transforms user-specific camelCase API keys to kebab-case internal keys.
(user-specific-kebab->camel value)Transforms user-specific kebab-case internal keys to camelCase API keys. Also removes sensitive fields (password-hash, mfa-secret, mfa-backup-codes) and null values for cleaner API responses.
Transforms user-specific kebab-case internal keys to camelCase API keys. Also removes sensitive fields (password-hash, mfa-secret, mfa-backup-codes) and null values for cleaner API responses.
Schema for User Audit Log entity - tracks all user-related actions for compliance and security.
Captures who did what, when, and what changed for full audit trail visibility.
Schema for User Audit Log entity - tracks all user-related actions for compliance and security. Captures who did what, when, and what changed for full audit trail visibility.
Schema for a group of users. Its grants apply to every member.
Schema for a group of users. Its grants apply to every member.
Schema for a permission a group holds, in a scope. Wagoe interprets neither: the application names its permissions and reads the scope. The scope is stored as EDN, so its values keep their types.
Schema for a permission a group holds, in a scope. Wagoe interprets neither: the application names its permissions and reads the scope. The scope is stored as EDN, so its values keep their types.
Schema for a user's membership of a group. Deleting either removes it.
Schema for a user's membership of a group. Deleting either removes it.
Schema for a role assigned to a group, in a scope ({} is everywhere). The role is named, not referenced: a code role has no row.
Schema for a role assigned to a group, in a scope ({} is everywhere). The
role is named, not referenced: a code role has no row.Schema for a link between a user and an OpenID Connect (issuer, subject).
Schema for a link between a user and an OpenID Connect (issuer, subject).
Schema for user responses (camelCase for API compatibility).
Schema for user responses (camelCase for API compatibility).
Schema for a managed role: a set of permissions an administrator composed. Code roles ship with modules and are not stored.
Schema for a managed role: a set of permissions an administrator composed. Code roles ship with modules and are not stored.
(validate-user user-data)Validates a user entity against the User schema.
Validates a user entity against the User schema.
(with-camel-twins m)m with a camelCase key beside each kebab-case one, holding the same value.
For maps nested in a response, which user-specific-kebab->camel leaves
alone. The kebab-case keys are deprecated and go in 2.0.
`m` with a camelCase key beside each kebab-case one, holding the same value. For maps nested in a response, which `user-specific-kebab->camel` leaves alone. The kebab-case keys are deprecated and go in 2.0.
cljdoc builds & hosts documentation for Clojure/Script libraries
| Ctrl+k | Jump to recent docs |
| ← | Move to previous article |
| → | Move to next article |
| Ctrl+/ | Jump to the search field |