Skip to content

Identity Module

Christian KASSE edited this page Apr 2, 2026 · 2 revisions

Identity Module

Authentication, user management, roles, permissions, tenants, branches, API keys, and session management.

Accessor: client.identity

Available Resources

Resource Accessor Description
Auth client.identity.auth Authentication (login, register, tokens)
Users client.identity.users User management
Roles client.identity.roles Role-based access control
Permissions client.identity.permissions Permission definitions
Tenants client.identity.tenants Multi-tenant management
Companies client.identity.companies Company profiles
Branches client.identity.branches Branch/location management
Profiles client.identity.profiles User profiles
Sessions client.identity.sessions Active sessions
API Keys client.identity.api_keys API key management

Auth Methods

The auth resource has specialized methods (not standard CRUD):

client.identity.auth.login(email="admin@company.com", password="secret")
client.identity.auth.register(**data)
client.identity.auth.refresh(refresh_token="token")
client.identity.auth.logout()
client.identity.auth.forgot_password(email="user@company.com")
client.identity.auth.reset_password(token="reset-token", password="new-password")
client.identity.auth.verify_email(token="verification-token")
client.identity.auth.me()

Code Examples

Authentication Flow

from essabu import Essabu

client = Essabu(api_key="esa_live_xxx", tenant_id="tenant-id")

# Login
tokens = client.identity.auth.login(email="admin@company.com", password="secret")
access_token = tokens["accessToken"]
refresh_token = tokens["refreshToken"]

# Get current user
me = client.identity.auth.me()

# Refresh token
new_tokens = client.identity.auth.refresh(refresh_token=refresh_token)

# Password reset flow
client.identity.auth.forgot_password(email="user@company.com")
client.identity.auth.reset_password(token="reset-token", password="new-password")

# Logout
client.identity.auth.logout()

User Management

users = client.identity.users.list(page=1, page_size=20)
user = client.identity.users.create(
    email="new.user@company.com",
    first_name="Alice",
    last_name="Martin",
    role_id="role-uuid",
)
client.identity.users.update("user-uuid", first_name="Updated")
client.identity.users.delete("user-uuid")

Roles and Permissions

roles = client.identity.roles.list()
role = client.identity.roles.create(
    name="Accountant",
    permissions=["accounting.read", "accounting.write", "reports.view"],
)
permissions = client.identity.permissions.list()

Tenants and Branches

tenants = client.identity.tenants.list()
tenant = client.identity.tenants.create(name="ACME Corp", plan="enterprise")
branches = client.identity.branches.list(tenant_id="tenant-uuid")
branch = client.identity.branches.create(
    name="Kinshasa Office",
    address="123 Boulevard du 30 Juin",
    tenant_id="tenant-uuid",
)

API Keys

keys = client.identity.api_keys.list()
key = client.identity.api_keys.create(name="CI/CD Pipeline", scopes=["read", "write"])
client.identity.api_keys.delete("key-uuid")

Sessions

sessions = client.identity.sessions.list(user_id="user-uuid")
client.identity.sessions.delete("session-uuid")  # Revoke a session

See Also

Clone this wiki locally