Account Pages

Profile, devices/sessions and the admin user console

Once a user is signed in, three pages cover the whole account surface. ProfilePage owns their own profile, addresses, phones and files; DevicesPage manages their active sessions and device approvals; UsersPage is the admin console for managing everyone. All three are wired to the generated CRUD actions over the system tables (users, profiles, addresses, phones, files, sessions, roles), so they reflect exactly the schema Nucleus already manages.

Like every component in the library they take their actions as props, drive a Zustand store, support variants and callbacks, and never navigate for you. You pass the generated actions; the page owns the forms, the optimistic state and the loading skeletons.

ProfilePage#

The signed-in user's self-service profile. It hydrates from the ME action and exposes full CRUD for the profile and its related records, including avatar upload through the file proxy.

meActionEndpointAction<…, MeSuccessResponse>Optional

Loads the user, profile, addresses, phones and files in one call — the page renders from this single hydrate.

profile / address / phone CRUDadd* / update* / delete* actionsOptional

addProfileAction + updateProfileAction, and full add/update/delete actions for addresses and phones (AddressCard / PhoneCard sub-components). Each maps to the generated action for that system table.

file actions + fileProxyBasePathuploadFileAction / updateFileAction / deleteFileActionOptional

Avatar and document handling. uploadFileAction posts multipart to storage; fileProxyBasePath is where the stored file is served back from (onProfilePictureChanged fires on a new avatar).

variant + allow* toggles'default' | 'minimal' | 'compact'Optional

Layout variant plus allowProfileEdit / allowAddressEdit / allowPhoneEdit / allowFileUpload to render the page read-only or editable per section. changePasswordHref / devicesHref (or onChangePassword / onViewDevices) cross-link to the other account pages.

DevicesPage#

The user-facing view of the multi-device session model from Authentication. Each row is a SessionRecord — device, browser, OS, IP, last-active — with revoke controls and, optionally, the new-device approval queue.

sessionsActionSessionsActionOptional

Lists the user's active sessions (DeviceInfo = the session record). showStats renders an activeSessions / uniqueDevices / uniqueIpAddresses summary from sessionsStatsAction.

sessionRevokeAction / sessionRevokeAllActionrevokeOptional

Revoke one session by id (with an optional reason) or revoke all — excludeCurrent keeps the present session alive. allowRevokeCurrent / allowRevokeAll gate the buttons; revocation deletes the server-side refresh record so the device is signed out.

device approvalsessionsPending / approve / rejectOptional

When new-device approval is enabled, showPendingDevices lists devices awaiting approval; sessionApproveAction / sessionRejectAction act on a one-time token to admit or deny them.

UsersPage#

The admin user-management console. It joins each user with their profile, addresses, phones, files and roles into a UserWithDetails, and exposes lifecycle actions in a detail panel.

getUsersAction + related listsEndpointAction<ListResponse<…>>Optional

Lists users and (lazily) their profiles/addresses/phones/files/roles via the generated list actions, assembling the UserListItem + UserDetailPanel views.

UserDetailPanel lifecycleverify / lock / reset / magic-linkOptional

Per-user admin actions: verify email, lock / unlock the account, trigger a password reset or magic link, and assign / remove roles (addUserRoleAction / deleteUserRoleAction). Each calls the matching admin or auth action.

inviteinviteUserActionOptional

Invite a new user by email (the SetPasswordPage invite flow lands them). onUserInvited / onRoleAssigned / onUserUpdated callbacks let you refresh or toast.

Related sections