-
Notifications
You must be signed in to change notification settings - Fork 0
Identity Module
Christian KASSE edited this page Apr 2, 2026
·
2 revisions
Authentication, user management, roles, permissions, tenants, branches, API keys, and session management.
Accessor: client.identity
| 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 |
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()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()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 = client.identity.roles.list()
role = client.identity.roles.create(
name="Accountant",
permissions=["accounting.read", "accounting.write", "reports.view"],
)
permissions = client.identity.permissions.list()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",
)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 = client.identity.sessions.list(user_id="user-uuid")
client.identity.sessions.delete("session-uuid") # Revoke a sessionGetting Started
Core Concepts
Modules
Advanced