Skip to content

Impersonating Tenants

Impersonation lets platform administrators perform operations within a tenant’s organization without needing that tenant’s credentials. Every impersonated request is recorded in the audit trail.


  • Debugging — inspect a tenant’s functions, runs, or events
  • Support — fix configuration issues on behalf of a tenant
  • Provisioning — set up initial resources in a newly created tenant

Add --as-org <org_id> to any Ironflow command to run it as the specified tenant:

Terminal window
# List a tenant's environments
ironflow --as-org org_x1y2z3w4 env list
# List a tenant's projects
ironflow --as-org org_x1y2z3w4 project list

The --as-org flag requires platform credentials (from ironflow platform login).


For direct API calls, set the X-Ironflow-Org header to the target organization ID:

Terminal window
# List a tenant's functions
curl http://localhost:9123/api/v1/functions \
-H "Authorization: Bearer $PLATFORM_TOKEN" \
-H "X-Ironflow-Org: org_x1y2z3w4"

By default, impersonated requests target the tenant’s env_default environment. To target a different environment, add the X-Ironflow-Environment header or ?env query parameter:

Terminal window
curl http://localhost:9123/api/v1/functions \
-H "Authorization: Bearer $PLATFORM_TOKEN" \
-H "X-Ironflow-Org: org_x1y2z3w4" \
-H "X-Ironflow-Environment: env_staging"

The environment must belong to the impersonated organization.


Impersonation has two permission levels:

PermissionHTTP MethodsDescription
platform:impersonate:readGET, HEAD, OPTIONSRead-only access to tenant data
platform:impersonatePOST, PUT, PATCH, DELETEWrite access (create, update, delete) to tenant data

Built-in role assignments:

RoleReadWrite
platform_adminYesYes
platform_operatorYesYes
platform_viewerYesNo

Every impersonated request generates a platform.impersonated audit event containing:

  • The platform user or key that initiated the request
  • The target organization ID
  • The HTTP method and path

Query impersonation events:

Terminal window
ironflow platform audit --event-type platform.impersonated

Filter by target tenant (via HTTP API — this filter is not available in the CLI):

Terminal window
curl "http://localhost:9123/api/v1/platform/audit?impersonated_org_id=org_x1y2z3w4" \
-H "Authorization: Bearer $PLATFORM_TOKEN"

See Platform Architecture for details on how the dual audit model works.