/legal/terms and the Data Processing Agreement at /legal/dpa. This policy is incorporated by reference into the DPA § Operator support access.Operator support access exists for a single purpose: enabling the Operator to fulfil its support, incident-response, and platform-operation obligations under the Terms of Service and the DPA. It is support functionality only. It is not used:
/legal/government-requests and never use the impersonation mechanism described here).| Term | Meaning |
|---|---|
| Operator | The Processor under the DPA — the entity providing the Service. |
| Operator engineer | A natural person employed or contracted by the Operator and authorised under the platform-administrator role with is_superuser=true. |
| Tenant Admin | A User within the Controller’s Tenant who holds the role tenant_admin and has authority to authorise operator support access on the Controller’s behalf. |
| Target User | The active User within the Controller’s Tenant whose session the Operator engineer will assume during the impersonation session. |
| Incident reference | A documented support ticket identifier, security incident ID, or self-attested rationale that justifies the impersonation request. |
| Step-up MFA | A second, recent multi-factor authentication assertion (TOTP or WebAuthn) by the requesting party at the moment of the action — not merely a session login. |
Operator support access is available under one of three layers, each with progressively stronger controls and progressively stronger reporting obligations:
pending and sends an email to every Tenant Admin of the Controller’s Tenant. The email contains the Operator engineer’s name and email, the Target User’s email, the Incident reference, the verbatim reason, an Approve link, a Deny link, and a 24-hour automatic-expiry timestamp.expired.If a request was flagged urgent at creation and no Tenant Admin has approved or denied it within 24 hours, the Operator engineer may declare a break-glass escalation. Break-glass is subject to additional controls:
mode=break_glass.Layer 3 exists for the residual case where a Tenant Admin is genuinely unreachable and the 2-hour break-glass cooling period would cause irreparable harm — for example, an active security incident in progress, an ongoing data-loss event, or a regulatory deadline that cannot be missed.
Each Tenant has a support access mode setting, configurable by Tenant Admins at /settings/tenant/support-access. The three modes are:
| Mode | Layer 1 | Layer 2 | Layer 3 |
|---|---|---|---|
default (recommended) | available | available | available |
consent_only | available | disabled | disabled |
forbidden | disabled | disabled | disabled |
A Tenant on forbidden causes every impersonation request to be refused by the platform regardless of Operator action. The Operator will be unable to diagnose tickets that require seeing the Controller’s data and may, in such cases, decline support requests that cannot be resolved by other means.
A Tenant on consent_only retains the standard Layer 1 approval flow but disables both break-glass and Emergency Access Event paths. In a true emergency where a Tenant Admin is unreachable, the Operator will not have any mechanism to act, and any consequent data loss or incident response delay is the Controller’s contractual risk.
Tenant Admins may set the maximum impersonation session duration per Tenant, between 15 minutes and 4 hours. Default is 60 minutes. Shorter durations increase the diagnostic friction; longer durations increase the window of unsupervised access. The Operator’s recommendation is the default 60 minutes.
By default, the User whose session is being assumed is not directly notified at the moment of impersonation — the assumption is that they are the diagnostic target and may be offline or otherwise unavailable. The Controller may enable notify_target_user=true in Tenant settings to additionally email the Target User at impersonation activation.
The Operator strongly recommends maintaining at least two active Tenant Admins per Tenant. A Tenant with a single Tenant Admin is at structurally higher risk of: (a) inability to approve legitimate support requests (delaying ticket resolution), and (b) inability to veto break-glass declarations (because there is no second authority to push back). The platform surfaces a non-blocking banner to Tenant Admins of single-admin Tenants reminding them to designate a second admin.
Every state transition in the lifecycle of an impersonation request — creation, approval, denial, expiry, break-glass declaration, break-glass veto, break-glass activation, Emergency Access declaration, session activation, session end — is written to both:
/audit and the audit-pack export endpoint).The Controller can verify every minute of Operator access from its own audit log without contacting the Operator. The Controller does not need to trust the Operator’s control-plane log because the Controller’s own log carries the same events, written via an INSERT-only database role, hash-chained, and verifiable through the /api/audit/verify endpoint.
While an impersonation session is active, every mutating action taken by the Operator engineer carries the action-code prefix platform_admin.impersonate.action. and embeds the Operator engineer’s user ID and email in the row’s metadata. The Controller can therefore distinguish, in its own audit log, between actions taken by its own users in the normal course of business and actions taken by an Operator engineer during an impersonation session.
The Controller’s audit-pack export endpoint includes all impersonation events for the period covered by the export, with the same prefix and metadata structure described above. Controllers may include impersonation-event review as a recurring item in their own internal audit programme.
| Event | Notified at the moment | Notified after-the-fact (audit log) |
|---|---|---|
| Layer 1 request created | All Tenant Admins (email) | Controller audit log |
| Layer 1 approval | Requesting Operator engineer (in-app) | Controller audit log |
| Layer 1 denial | Requesting Operator engineer (in-app) | Controller audit log |
| Layer 1 expiry (24h, no response) | Requesting Operator engineer (in-app) | Controller audit log |
| Layer 2 break-glass declared | All Tenant Admins + security contacts (urgent email) | Controller audit log |
| Layer 2 break-glass vetoed | Requesting Operator engineer (in-app) | Controller audit log |
| Layer 2 break-glass activated (2h cooling elapsed) | All Tenant Admins (post-activation email) | Controller audit log (flagged mode=break_glass) |
| Layer 3 Emergency Access declared | All Tenant Admins + Controller’s registered legal-entity email + Operator legal team (immediate email) | Controller audit log + platform incident register + Operator Transparency Report |
| Session activated | Optional: Target User (if Controller has enabled notify_target_user=true) | Controller audit log |
| Session ended (manual or expiry) | none | Controller audit log |
The Operator publishes a Transparency Report at /legal/transparency, updated at least annually, which discloses:
Aggregate numbers in the Transparency Report are anonymised across Tenants — the report identifies neither the affected Controllers nor the Target Users. Specific events are visible only to the affected Controller in its own audit log.
Operator engineers authorised to perform support access are bound by:
If an Operator engineer determines that a support ticket can be resolved without impersonation — for example, by inspecting the Controller’s aggregate metrics, the platform’s own logs, or by guiding the Controller’s users through the diagnostic steps — they MUST do so. The choice between “diagnose by guidance” and “diagnose by impersonation” is not a convenience preference; impersonation is the more invasive option and is only used when the less invasive option is genuinely insufficient.
Operator engineers may not respond to a Controller’s request “please just log in as me and check” with an impersonation session unless the technical nature of the issue requires it. The Operator’s preferred alternative for Controller-initiated diagnostic requests is a pair-shared session via the Controller’s own video-conference tooling.
The Operator will notify Controllers of material changes to this policy at least 30 days before the changes take effect, consistent with the notification process in the DPA. Material changes are those that introduce new categories of Operator access, modify the approval flow, change the audit-logging scheme, or alter the Transparency Report obligations. Changes that further restrict Operator access or strengthen Controller controls are not material for notification purposes but are still published.
| Purpose | Contact |
|---|---|
| Questions about this policy | legal@exceptao.com |
| Reporting suspected misuse of support access | security@exceptao.com |
| Disputing a specific impersonation event | privacy@exceptao.com |
| Polish public sector enquiries | kontakt@parakscol.pl / kontakt@cyberzgodnosc.edu.pl |