Customer Management
AI Admin Panel supports multi-tenant customer management. Each customer has isolated services, their own portal access, and configurable resource quotas.
Overview
Customers represent tenants in the system. A customer can be a client, team, department, or any organizational unit that owns services. Each customer has:
- A unique identifier and display name
- One or more associated users (via Keycloak)
- A service plan with resource quotas
- Isolated services visible only to their users
- Optional portal access for self-service
Creating a Customer
Navigate to Customers > New Customer and fill in:
| Field | Required | Description |
|---|---|---|
| Name | Yes | Display name (e.g., "Acme Corp") |
| Yes | Primary contact email | |
| Plan | Yes | Service plan to assign (determines quotas) |
| Notes | No | Internal notes about the customer |
When you create a customer, the panel:
- Creates the customer record in PostgreSQL
- Creates a Keycloak user with the provided email
- Assigns the appropriate role and group in Keycloak
- Sends a welcome email with login instructions (if SMTP is configured)
Customer Portal
Customers can log in to the panel and see a scoped view:
- Their services only — no visibility into other customers' services
- Deploy new services — within their plan's quota limits
- View logs and metrics — for their own services
- Manage their services — start, stop, restart
Admins see all customers and all services. The portal view is determined by the user's Keycloak role and customer association.
Managing Customers
Customer List
The customer list page shows:
| Column | Description |
|---|---|
| Name | Customer display name |
| Plan | Assigned service plan |
| Services | Number of active services |
| Status | Active / Suspended |
| Created | Creation date |
Customer Detail
Click a customer to see:
- Overview — plan, usage summary, contact info
- Services — all services owned by this customer
- Users — associated Keycloak users
- Usage — resource consumption vs. plan limits
- Billing — usage metrics (for external billing integration)
Editing a Customer
You can update:
- Display name and contact information
- Assigned service plan
- Status (active / suspended)
- Internal notes
Changing the plan updates quotas immediately. If the new plan has lower limits than current usage, existing services continue running but no new services can be deployed until usage is within limits.
Suspending a Customer
Suspending a customer:
- Stops all their services
- Blocks login for their users
- Preserves all data and configuration
- Can be reactivated at any time
Deleting a Customer
Deleting a customer:
- Stops and removes all their services
- Deletes all associated data and volumes
- Removes Keycloak users associated with the customer
- Removes the customer record
This action is irreversible. The panel requires confirmation before proceeding.
GDPR Compliance
The panel includes features for GDPR compliance:
Data Export
Navigate to Customer > Actions > Export Data to generate a complete export of all customer data:
- Customer profile and settings
- Service configurations (no secrets)
- Usage history and metrics
- Audit log entries
The export is generated as a JSON file that can be downloaded.
Right to Deletion
Customer > Actions > Delete Customer and Data performs a complete removal:
- All services and their data
- All database records
- All cached data in Valkey
- Keycloak user accounts
- Audit log entries related to the customer
A deletion confirmation report is generated documenting what was removed.
Audit Trail
All customer-related actions are logged:
- Who performed the action
- What was changed
- When it happened
- IP address of the request
Audit logs are retained for a configurable period (default: 90 days).