Plugins
Admin Plugin
This plugin provides administrative operations for managing users, accounts, sessions, and user impersonation. It enables system administrators to perform CRUD operations on users and accounts, manage user and session states (banning, revoking sessions), control impersonation activities and more.
[ plugins . admin ]
enabled = true
impersonation_max_expires_in = "15m"
import (
adminplugin " github.com/Authula/authula/plugins/admin "
adminplugintypes " github.com/Authula/authula/plugins/admin/types "
)
adminplugin. New ( adminplugintypes . AdminPluginConfig {
Enabled: true ,
ImpersonationMaxExpiresIn: 15 * time.Minute,
}),
Column Type id string actor_user_id string target_user_id string actor_session_id string impersonation_session_id string reason string started_at timestamp expires_at timestamp ended_at timestamp ended_by_user_id string created_at timestamp updated_at timestamp
Column Type user_id string banned boolean banned_at timestamp banned_until timestamp banned_reason string banned_by_user_id string created_at timestamp updated_at timestamp
Column Type session_id string revoked_at timestamp revoked_reason string revoked_by_user_id string impersonator_user_id string impersonation_reason string impersonation_expires_at timestamp created_at timestamp updated_at timestamp
Method Endpoint Description CreateUserPOST /admin/usersCreate a new user. GetAllUsersGET /admin/usersRetrieve all users with cursor-based pagination. GetUserByIDGET /admin/users/{user_id}Fetch a specific user by ID. UpdateUserPATCH /admin/users/{user_id}Update user. DeleteUserDELETE /admin/users/{user_id}Delete a user.
Method Endpoint Description CreateAccountPOST /admin/users/{user_id}/accountsCreate a new linked provider account for a user. GetUserAccountsGET /admin/users/{user_id}/accountsRetrieve all accounts associated with a user. GetAccountByIDGET /admin/accounts/{id}Fetch a specific account by ID. UpdateAccountPATCH /admin/accounts/{id}Update account details. DeleteAccountDELETE /admin/accounts/{id}Delete a user account and remove provider linkage.
Method Endpoint Description GetUserStateGET /admin/users/{user_id}/stateRetrieve user state including banned status and ban details. CreateUserStatePOST /admin/users/{user_id}/stateCreate user state. UpdateUserStatePATCH /admin/users/{user_id}/stateUpdate user state. DeleteUserStateDELETE /admin/users/{user_id}/stateDelete user state record. GetBannedUserStatesGET /admin/users/states/bannedRetrieve all banned users. BanUserPOST /admin/users/{user_id}/banBan a user with optional expiration time and reason. UnbanUserPOST /admin/users/{user_id}/unbanRemove ban from a user.
Method Endpoint Description GetSessionStateGET /admin/sessions/{session_id}/stateRetrieve session state including revocation status. CreateSessionStatePOST /admin/sessions/{session_id}/stateCreate session state. UpdateSessionStatePATCH /admin/sessions/{session_id}/stateUpdate session state. DeleteSessionStateDELETE /admin/sessions/{session_id}/stateDelete session state record. RevokeSessionPOST /admin/sessions/{session_id}/revokeRevoke a session with optional reason. GetRevokedSessionStatesGET /admin/sessions/states/revokedRetrieve all revoked sessions with session state. GetUserAdminSessionsGET /admin/users/{user_id}/sessionsRetrieve all sessions with session state for a user.
Method Endpoint Description GetAllImpersonationsGET /admin/impersonationsRetrieve all active impersonations. GetImpersonationByIDGET /admin/impersonations/{impersonation_id}Fetch a specific impersonation. StartImpersonationPOST /admin/impersonationsBegin impersonating a user as an admin with audit trail. StopImpersonationPOST /admin/impersonations/{impersonation_id}/stopEnd impersonation and restore original admin session.