AI AdminPanel Documentation

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, first name (required), and last name (optional; supports mononyms)
  • 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:

FieldRequiredDescription
First NameYesCustomer's first name (e.g., "Jane")
Last NameNoCustomer's last name; mononyms (single-word names) supported with this field empty
EmailYesPrimary contact email
PlanYesService plan to assign (determines quotas)
NotesNoInternal notes about the customer

When you create a customer, the panel:

  1. Creates the customer record in PostgreSQL
  2. Creates the customer's tenant node (its organization record) and links the two 1:1, so the customer and its tenant identity stay a single coherent entity
  3. Creates a Keycloak user with the provided email, syncing both first and last names
  4. Assigns the appropriate role and group in Keycloak
  5. Sends a welcome email to the customer's address with login instructions, using the first name for the greeting (requires Settings → Email to be 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:

ColumnDescription
NameCustomer's first and last name (last name optional)
PlanAssigned service plan
ServicesNumber of active services
StatusActive / Suspended
CreatedCreation date

Customer Detail

Click a customer to see:

  • Overview — plan, usage summary, contact info
  • Services — all services owned by this customer
  • Users — the customer's logins. A customer can have more than one login: the primary account created with the customer, plus any users you invite. Each invited user becomes a member of the customer's tenant organization and can sign in to the customer portal. An invited user receives an email asking them to set their password before their first sign-in. These emails use your panel's email configuration (Settings → Email, SMTP or Resend) — it is applied to the login system automatically, so if invite emails don't arrive, check there first. To re-send the set-password email, simply invite the same address again.
  • Usage — resource consumption vs. plan limits
  • Billing — usage metrics (for external billing integration)

Editing a Customer

You can update:

  • First name, last name, and contact information
  • Assigned service plan
  • Status (active / suspended)
  • Internal notes

Changes to the name fields sync immediately to the Keycloak user record.

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 (disables their Keycloak accounts)
  • Terminates any already-active sessions immediately — a customer who is logged in when you suspend them is signed out on their next request, not at the end of their session. This applies to every login the customer has, not just the primary one.
  • Preserves all data and configuration
  • Can be reactivated at any time

Deleting a Customer

Deleting a customer:

  1. Stops and removes all their services
  2. Deletes all associated data and volumes
  3. Removes Keycloak users associated with the customer
  4. 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).