2026.09.2 — Running the platform

Metering, billing, retention and erasure, alerting, API keys, SAML and the developer portal — what an operator, a finance team and a compliance reviewer each need.

The operations layer. Everything here exists because someone other than a developer has to be able to run this.

For an operator

A platform administration console over every tenant: lifecycle, a suspension that actually stops messages, capacity and alerting with four wired event conditions and a scheduled trend sweep, and maintenance windows that hold a gate. An authenticated Prometheus scrape with bounded labels, and an optional gateway runtime section.

For a finance team

Per-channel usage metering against a time-versioned rate card, LLM token accounting populated end to end, an operator surface for spend, a real product catalogue, and licences derived from what was bought rather than asserted.

For a compliance reviewer

Retention purge, subject erasure and tenant export — carried across Chatwoot and the voice provider, and confirmed by reading the objects back rather than by trusting a status code. A 90-day retention default, and a billing record that outlives the account it belonged to.

For a customer's own engineers

The API gateway host half: API keys as a database identity with RLS as the control, webhook registration and delivery, and incremental pull endpoints for turns and ratings so this can be loaded into a warehouse. A tenant developer portal in English and Arabic, with the endpoint reference generated from the OpenAPI document. SAML 2.0 single sign-on with domain-to-workspace mapping, demonstrated end to end in a browser.

In the product

Knowledge ingestion — document parsing for text, Markdown and PDF, lifecycle columns, a console for upload, approval, scheduling and removal, and a keyword leg that makes "hybrid retrieval" true. An editable flow canvas with palette, inspector, and validation against what the walker actually runs. The agent remembers the conversation across turns. The model client records the model version, not just the alias.

Twenty demo tenants, each arriving with its persona set and its console rendering, and the people behind the seeded conversations.

Security work

platform_audit is append-only against its owner, not just against grants. An audit snapshot is built field by field, so a withheld credential column cannot reach an operator's screen through to_jsonb(row). A forged api_key_id claim is inert on any human session. Connector setup had left HubSpot writable; a credential goes in and never comes out.