{
  "version": 1,
  "ambient": [
    {
      "name": "APIRequestContext",
      "description": "Is attached to every event emitted while serving an authenticated HTTP API request.",
      "service": "engine",
      "declaration": "apps/engine/internal/usage/events/ambient.go",
      "properties": [
        {
          "name": "arcade_client",
          "type": "string",
          "optional": false,
          "onprem": "allow"
        }
      ]
    },
    {
      "name": "GatewayContext",
      "description": "Is attached to every event emitted while serving an MCP gateway request, so gateway-scoped reporting works without each call site having to know which gateway it is inside.",
      "service": "engine",
      "declaration": "apps/engine/internal/usage/events/ambient.go",
      "properties": [
        {
          "name": "gateway_auth_type",
          "type": "string",
          "optional": false,
          "onprem": "allow"
        },
        {
          "name": "gateway_id",
          "type": "string",
          "optional": false,
          "onprem": "hash"
        },
        {
          "name": "gateway_name",
          "type": "string",
          "optional": false,
          "onprem": "deny"
        },
        {
          "name": "gateway_slug",
          "type": "string",
          "optional": false,
          "onprem": "hash"
        },
        {
          "name": "gateway_user_source_id",
          "type": "string",
          "optional": true,
          "onprem": "hash"
        }
      ]
    },
    {
      "name": "MCPProtocolContext",
      "description": "Is attached to every event emitted while serving a stateless MCP request, carrying the protocol version the client declared in its headers.",
      "service": "engine",
      "declaration": "apps/engine/internal/usage/events/ambient.go",
      "properties": [
        {
          "name": "protocol_version",
          "type": "string",
          "optional": false,
          "onprem": "allow"
        }
      ]
    }
  ],
  "events": [
    {
      "name": "Account created",
      "description": "A person signed up. ``$set`` is a PostHog convention, not an ordinary property: its contents are written to the person record rather than the event.",
      "service": "coordinator",
      "declaration": "apps/coordinator/arcade/app/usage/events/_events.py",
      "properties": [
        {
          "name": "$set",
          "type": "object",
          "optional": false,
          "onprem": "deny"
        },
        {
          "name": "$set.company",
          "type": "string",
          "optional": true,
          "onprem": "deny"
        },
        {
          "name": "$set.created_timestamp",
          "type": "string",
          "optional": true,
          "onprem": "deny"
        },
        {
          "name": "$set.email",
          "type": "string",
          "optional": false,
          "onprem": "deny"
        },
        {
          "name": "$set.name",
          "type": "string",
          "optional": true,
          "onprem": "deny"
        },
        {
          "name": "$set.preferred_name",
          "type": "string",
          "optional": true,
          "onprem": "deny"
        }
      ]
    },
    {
      "name": "API called",
      "description": "Reports every authenticated request to the Engine's HTTP API. It is the platform's highest-volume event by an order of magnitude. The client properties come from the SDK's own headers and describe the integration, not the person using it, so they are disclosed. The caller's IP address identifies a customer's own network and is not.",
      "service": "engine",
      "declaration": "apps/engine/internal/usage/events/api.go",
      "properties": [
        {
          "name": "arcade_client",
          "type": "string",
          "optional": false,
          "onprem": "allow"
        },
        {
          "name": "client_architecture",
          "type": "string",
          "optional": false,
          "onprem": "allow"
        },
        {
          "name": "client_ip",
          "type": "string",
          "optional": false,
          "onprem": "deny"
        },
        {
          "name": "client_language",
          "type": "string",
          "optional": false,
          "onprem": "allow"
        },
        {
          "name": "client_os",
          "type": "string",
          "optional": false,
          "onprem": "allow"
        },
        {
          "name": "client_runtime",
          "type": "string",
          "optional": false,
          "onprem": "allow"
        },
        {
          "name": "client_runtime_version",
          "type": "string",
          "optional": false,
          "onprem": "allow"
        },
        {
          "name": "client_sdk_version",
          "type": "string",
          "optional": false,
          "onprem": "allow"
        },
        {
          "name": "duration_ms",
          "type": "number",
          "optional": false,
          "onprem": "allow"
        },
        {
          "name": "end_timestamp",
          "type": "string",
          "optional": false,
          "onprem": "allow"
        },
        {
          "name": "engine_endpoint",
          "type": "string",
          "optional": false,
          "onprem": "allow"
        },
        {
          "name": "engine_host",
          "type": "string",
          "optional": false,
          "onprem": "deny"
        },
        {
          "name": "http_method",
          "type": "string",
          "optional": false,
          "onprem": "allow"
        },
        {
          "name": "retry_count",
          "type": "string",
          "optional": false,
          "onprem": "allow"
        },
        {
          "name": "start_timestamp",
          "type": "string",
          "optional": false,
          "onprem": "allow"
        },
        {
          "name": "status_code",
          "type": "number",
          "optional": false,
          "onprem": "allow"
        }
      ]
    },
    {
      "name": "API key created",
      "description": "An API key was minted. ``api_key_type`` is set on the project-key path and ``arcade_client`` on the account path, so each is absent from the other's events.",
      "service": "coordinator",
      "declaration": "apps/coordinator/arcade/app/usage/events/_events.py",
      "properties": [
        {
          "name": "api_key_ksuid",
          "type": "string",
          "optional": false,
          "onprem": "hash"
        },
        {
          "name": "api_key_label",
          "type": "string",
          "optional": true,
          "onprem": "deny"
        },
        {
          "name": "api_key_type",
          "type": "string",
          "optional": true,
          "onprem": "allow"
        },
        {
          "name": "arcade_client",
          "type": "string",
          "optional": true,
          "onprem": "allow"
        }
      ]
    },
    {
      "name": "capability_gap_reported",
      "description": "Reports an agent telling us, in prose, what it could not do. Every free-text field is the agent's or the end user's own words about their work, so none of it leaves a self-hosted cluster; the tool and client identifiers around it are what make the report countable.",
      "service": "engine",
      "declaration": "apps/engine/internal/usage/events/tool_recommendation.go",
      "properties": [
        {
          "name": "$process_person_profile",
          "type": "boolean",
          "optional": false,
          "onprem": "allow"
        },
        {
          "name": "attempted_tool_name",
          "type": "string",
          "optional": false,
          "onprem": "allow"
        },
        {
          "name": "client_name",
          "type": "string",
          "optional": false,
          "onprem": "allow"
        },
        {
          "name": "client_version",
          "type": "string",
          "optional": false,
          "onprem": "allow"
        },
        {
          "name": "customer_id",
          "type": "string",
          "optional": true,
          "onprem": "hash"
        },
        {
          "name": "mcp_session",
          "type": "object",
          "optional": true,
          "onprem": "deny"
        },
        {
          "name": "mcp_session.client_name",
          "type": "string",
          "optional": true,
          "onprem": "deny"
        },
        {
          "name": "mcp_session.client_title",
          "type": "string",
          "optional": true,
          "onprem": "deny"
        },
        {
          "name": "mcp_session.client_version",
          "type": "string",
          "optional": true,
          "onprem": "deny"
        },
        {
          "name": "mcp_session.mcp_protocol_version",
          "type": "string",
          "optional": true,
          "onprem": "deny"
        },
        {
          "name": "mcp_session.session_id",
          "type": "string",
          "optional": true,
          "onprem": "deny"
        },
        {
          "name": "model_name",
          "type": "string",
          "optional": false,
          "onprem": "allow"
        },
        {
          "name": "model_version",
          "type": "string",
          "optional": false,
          "onprem": "allow"
        },
        {
          "name": "principal_type",
          "type": "string",
          "optional": true,
          "onprem": "allow"
        },
        {
          "name": "project_id",
          "type": "string",
          "optional": true,
          "onprem": "allow"
        },
        {
          "name": "source",
          "type": "string",
          "optional": false,
          "onprem": "allow"
        },
        {
          "name": "tenant_id",
          "type": "string",
          "optional": true,
          "onprem": "allow"
        },
        {
          "name": "tool_name",
          "type": "string",
          "optional": false,
          "onprem": "allow"
        },
        {
          "name": "toolkit_name",
          "type": "string",
          "optional": false,
          "onprem": "allow"
        },
        {
          "name": "toolkit_version",
          "type": "string",
          "optional": false,
          "onprem": "allow"
        },
        {
          "name": "user_goal",
          "type": "string",
          "optional": false,
          "onprem": "deny"
        },
        {
          "name": "user_quote",
          "type": "string",
          "optional": false,
          "onprem": "deny"
        },
        {
          "name": "what_blocked_you",
          "type": "string",
          "optional": false,
          "onprem": "deny"
        }
      ]
    },
    {
      "name": "Checkout started",
      "description": "A customer opened a checkout session. Paired with Subscription updated, this is what makes the upgrade funnel measurable.",
      "service": "coordinator",
      "declaration": "apps/coordinator/arcade/app/usage/events/_events.py",
      "properties": [
        {
          "name": "amount",
          "type": "number",
          "optional": true,
          "onprem": "allow"
        },
        {
          "name": "change_direction",
          "type": "string",
          "optional": false,
          "onprem": "allow"
        },
        {
          "name": "currency",
          "type": "string",
          "optional": true,
          "onprem": "allow"
        },
        {
          "name": "new_plan_cadence",
          "type": "string",
          "optional": true,
          "onprem": "allow"
        },
        {
          "name": "new_plan_id",
          "type": "string",
          "optional": true,
          "onprem": "allow"
        },
        {
          "name": "new_plan_name",
          "type": "string",
          "optional": true,
          "onprem": "allow"
        },
        {
          "name": "old_plan_cadence",
          "type": "string",
          "optional": true,
          "onprem": "allow"
        },
        {
          "name": "old_plan_id",
          "type": "string",
          "optional": true,
          "onprem": "allow"
        },
        {
          "name": "old_plan_name",
          "type": "string",
          "optional": true,
          "onprem": "allow"
        }
      ]
    },
    {
      "name": "Custom user verifier configured",
      "description": "Reports a deployment pointing user verification at its own endpoint. `operation` distinguishes first configuration from a change or a removal.",
      "service": "engine",
      "declaration": "apps/engine/internal/usage/events/admin.go",
      "properties": [
        {
          "name": "operation",
          "type": "string",
          "optional": false,
          "onprem": "allow"
        }
      ]
    },
    {
      "name": "Error confirming user",
      "description": "Reports a failure to confirm a user mid-flow. `error` is relayed from the Coordinator verbatim and can embed request detail, so it stays inside the cluster.",
      "service": "engine",
      "declaration": "apps/engine/internal/usage/events/auth.go",
      "properties": [
        {
          "name": "error",
          "type": "string",
          "optional": false,
          "onprem": "deny"
        },
        {
          "name": "flow_id",
          "type": "string",
          "optional": false,
          "onprem": "hash"
        },
        {
          "name": "user_id",
          "type": "string",
          "optional": false,
          "onprem": "hash"
        }
      ]
    },
    {
      "name": "Flow test failed",
      "description": "Reports a provider flow test that did not complete.",
      "service": "engine",
      "declaration": "apps/engine/internal/usage/events/auth.go",
      "properties": [
        {
          "name": "failure_reason",
          "type": "string",
          "optional": false,
          "onprem": "allow"
        },
        {
          "name": "flow_id",
          "type": "string",
          "optional": false,
          "onprem": "hash"
        },
        {
          "name": "user_id",
          "type": "string",
          "optional": false,
          "onprem": "hash"
        }
      ]
    },
    {
      "name": "Flow test started",
      "description": "Reports an administrator beginning a provider flow test.",
      "service": "engine",
      "declaration": "apps/engine/internal/usage/events/auth.go",
      "properties": [
        {
          "name": "flow_id",
          "type": "string",
          "optional": false,
          "onprem": "hash"
        },
        {
          "name": "user_id",
          "type": "string",
          "optional": false,
          "onprem": "hash"
        }
      ]
    },
    {
      "name": "Flow test succeeded",
      "description": "Reports a provider flow test that completed.",
      "service": "engine",
      "declaration": "apps/engine/internal/usage/events/auth.go",
      "properties": [
        {
          "name": "flow_id",
          "type": "string",
          "optional": false,
          "onprem": "hash"
        },
        {
          "name": "user_id",
          "type": "string",
          "optional": false,
          "onprem": "hash"
        }
      ]
    },
    {
      "name": "Gateway created",
      "description": "Reports a new MCP gateway being configured.",
      "service": "engine",
      "declaration": "apps/engine/internal/usage/events/gateway.go",
      "properties": [
        {
          "name": "gateway_auth_type",
          "type": "string",
          "optional": false,
          "onprem": "allow"
        },
        {
          "name": "gateway_id",
          "type": "string",
          "optional": false,
          "onprem": "hash"
        },
        {
          "name": "gateway_name",
          "type": "string",
          "optional": false,
          "onprem": "deny"
        },
        {
          "name": "gateway_slug",
          "type": "string",
          "optional": false,
          "onprem": "hash"
        },
        {
          "name": "user_source_id",
          "type": "string",
          "optional": false,
          "onprem": "hash"
        }
      ]
    },
    {
      "name": "Gateway deleted",
      "description": "Reports a gateway being removed.",
      "service": "engine",
      "declaration": "apps/engine/internal/usage/events/gateway.go",
      "properties": [
        {
          "name": "gateway_auth_type",
          "type": "string",
          "optional": false,
          "onprem": "allow"
        },
        {
          "name": "gateway_id",
          "type": "string",
          "optional": false,
          "onprem": "hash"
        },
        {
          "name": "gateway_name",
          "type": "string",
          "optional": false,
          "onprem": "deny"
        },
        {
          "name": "gateway_slug",
          "type": "string",
          "optional": false,
          "onprem": "hash"
        },
        {
          "name": "user_source_id",
          "type": "string",
          "optional": false,
          "onprem": "hash"
        }
      ]
    },
    {
      "name": "Gateway updated",
      "description": "Reports a change to an existing gateway. The `previous_*` properties appear only when that field actually changed, so the per-gateway timeline can distinguish a first assignment from a reassignment or an unbind without carrying a duplicate property on every update.",
      "service": "engine",
      "declaration": "apps/engine/internal/usage/events/gateway.go",
      "properties": [
        {
          "name": "gateway_auth_type",
          "type": "string",
          "optional": false,
          "onprem": "allow"
        },
        {
          "name": "gateway_id",
          "type": "string",
          "optional": false,
          "onprem": "hash"
        },
        {
          "name": "gateway_name",
          "type": "string",
          "optional": false,
          "onprem": "deny"
        },
        {
          "name": "gateway_slug",
          "type": "string",
          "optional": false,
          "onprem": "hash"
        },
        {
          "name": "previous_gateway_auth_type",
          "type": "string",
          "optional": true,
          "onprem": "allow"
        },
        {
          "name": "previous_user_source_id",
          "type": "string",
          "optional": true,
          "onprem": "hash"
        },
        {
          "name": "user_source_id",
          "type": "string",
          "optional": false,
          "onprem": "hash"
        }
      ]
    },
    {
      "name": "Hook execution failed",
      "description": "Reports a hook that could not run. `error` is the raw error from customer-supplied extension code, so it stays inside the cluster.",
      "service": "engine",
      "declaration": "apps/engine/internal/usage/events/hooks.go",
      "properties": [
        {
          "name": "error",
          "type": "string",
          "optional": false,
          "onprem": "deny"
        },
        {
          "name": "hook_binding",
          "type": "string",
          "optional": false,
          "onprem": "allow"
        },
        {
          "name": "hook_duration_ms",
          "type": "number",
          "optional": false,
          "onprem": "allow"
        },
        {
          "name": "hook_family",
          "type": "string",
          "optional": false,
          "onprem": "allow"
        },
        {
          "name": "hook_phase",
          "type": "string",
          "optional": false,
          "onprem": "allow"
        },
        {
          "name": "hook_priority",
          "type": "number",
          "optional": false,
          "onprem": "allow"
        },
        {
          "name": "hook_reason",
          "type": "string",
          "optional": false,
          "onprem": "allow"
        },
        {
          "name": "hook_result",
          "type": "string",
          "optional": false,
          "onprem": "allow"
        },
        {
          "name": "hook_type",
          "type": "string",
          "optional": false,
          "onprem": "allow"
        },
        {
          "name": "hook_version",
          "type": "number",
          "optional": false,
          "onprem": "allow"
        }
      ]
    },
    {
      "name": "Hook execution succeeded",
      "description": "Reports a hook that ran, whether it allowed or denied. A denial is a successful execution — `hook_result` is what separates them.",
      "service": "engine",
      "declaration": "apps/engine/internal/usage/events/hooks.go",
      "properties": [
        {
          "name": "hook_binding",
          "type": "string",
          "optional": false,
          "onprem": "allow"
        },
        {
          "name": "hook_duration_ms",
          "type": "number",
          "optional": false,
          "onprem": "allow"
        },
        {
          "name": "hook_family",
          "type": "string",
          "optional": false,
          "onprem": "allow"
        },
        {
          "name": "hook_phase",
          "type": "string",
          "optional": false,
          "onprem": "allow"
        },
        {
          "name": "hook_priority",
          "type": "number",
          "optional": false,
          "onprem": "allow"
        },
        {
          "name": "hook_reason",
          "type": "string",
          "optional": false,
          "onprem": "allow"
        },
        {
          "name": "hook_result",
          "type": "string",
          "optional": false,
          "onprem": "allow"
        },
        {
          "name": "hook_type",
          "type": "string",
          "optional": false,
          "onprem": "allow"
        },
        {
          "name": "hook_version",
          "type": "number",
          "optional": false,
          "onprem": "allow"
        }
      ]
    },
    {
      "name": "MCP apps listed",
      "description": "Reports an agent asking which applications are available.",
      "service": "engine",
      "declaration": "apps/engine/internal/usage/events/mcp.go",
      "properties": [
        {
          "name": "client_name",
          "type": "string",
          "optional": true,
          "onprem": "allow"
        },
        {
          "name": "client_supports_url_elicitation",
          "type": "boolean",
          "optional": true,
          "onprem": "allow"
        },
        {
          "name": "client_title",
          "type": "string",
          "optional": true,
          "onprem": "allow"
        },
        {
          "name": "client_version",
          "type": "string",
          "optional": true,
          "onprem": "allow"
        },
        {
          "name": "fully_qualified_tool_name",
          "type": "string",
          "optional": true,
          "onprem": "allow"
        },
        {
          "name": "protocol_version",
          "type": "string",
          "optional": false,
          "onprem": "allow"
        },
        {
          "name": "session_id",
          "type": "string",
          "optional": true,
          "onprem": "hash"
        },
        {
          "name": "tool_name",
          "type": "string",
          "optional": true,
          "onprem": "allow"
        },
        {
          "name": "toolkit_name",
          "type": "string",
          "optional": true,
          "onprem": "allow"
        },
        {
          "name": "toolkit_version",
          "type": "string",
          "optional": true,
          "onprem": "allow"
        },
        {
          "name": "user_id",
          "type": "string",
          "optional": false,
          "onprem": "hash"
        }
      ]
    },
    {
      "name": "MCP auth challenge started",
      "description": "Reports a tool call that stopped to ask the caller for authorization. The tool did not run, so this is not a successful call.",
      "service": "engine",
      "declaration": "apps/engine/internal/usage/events/mcp.go",
      "properties": [
        {
          "name": "client_name",
          "type": "string",
          "optional": true,
          "onprem": "allow"
        },
        {
          "name": "client_supports_url_elicitation",
          "type": "boolean",
          "optional": true,
          "onprem": "allow"
        },
        {
          "name": "client_title",
          "type": "string",
          "optional": true,
          "onprem": "allow"
        },
        {
          "name": "client_version",
          "type": "string",
          "optional": true,
          "onprem": "allow"
        },
        {
          "name": "fully_qualified_tool_name",
          "type": "string",
          "optional": true,
          "onprem": "allow"
        },
        {
          "name": "protocol_version",
          "type": "string",
          "optional": false,
          "onprem": "allow"
        },
        {
          "name": "session_id",
          "type": "string",
          "optional": true,
          "onprem": "hash"
        },
        {
          "name": "tool_name",
          "type": "string",
          "optional": true,
          "onprem": "allow"
        },
        {
          "name": "toolkit_name",
          "type": "string",
          "optional": true,
          "onprem": "allow"
        },
        {
          "name": "toolkit_version",
          "type": "string",
          "optional": true,
          "onprem": "allow"
        },
        {
          "name": "user_id",
          "type": "string",
          "optional": false,
          "onprem": "hash"
        }
      ]
    },
    {
      "name": "MCP capability gap report filed",
      "description": "Reports an agent telling us it could not find a tool for what it was trying to do.",
      "service": "engine",
      "declaration": "apps/engine/internal/usage/events/mcp.go",
      "properties": [
        {
          "name": "client_name",
          "type": "string",
          "optional": true,
          "onprem": "allow"
        },
        {
          "name": "client_supports_url_elicitation",
          "type": "boolean",
          "optional": true,
          "onprem": "allow"
        },
        {
          "name": "client_title",
          "type": "string",
          "optional": true,
          "onprem": "allow"
        },
        {
          "name": "client_version",
          "type": "string",
          "optional": true,
          "onprem": "allow"
        },
        {
          "name": "fully_qualified_tool_name",
          "type": "string",
          "optional": true,
          "onprem": "allow"
        },
        {
          "name": "protocol_version",
          "type": "string",
          "optional": false,
          "onprem": "allow"
        },
        {
          "name": "session_id",
          "type": "string",
          "optional": true,
          "onprem": "hash"
        },
        {
          "name": "tool_name",
          "type": "string",
          "optional": true,
          "onprem": "allow"
        },
        {
          "name": "toolkit_name",
          "type": "string",
          "optional": true,
          "onprem": "allow"
        },
        {
          "name": "toolkit_version",
          "type": "string",
          "optional": true,
          "onprem": "allow"
        },
        {
          "name": "user_id",
          "type": "string",
          "optional": false,
          "onprem": "hash"
        }
      ]
    },
    {
      "name": "MCP manage auth offered",
      "description": "Reports authorization links being handed to an agent.",
      "service": "engine",
      "declaration": "apps/engine/internal/usage/events/mcp.go",
      "properties": [
        {
          "name": "client_name",
          "type": "string",
          "optional": true,
          "onprem": "allow"
        },
        {
          "name": "client_supports_url_elicitation",
          "type": "boolean",
          "optional": true,
          "onprem": "allow"
        },
        {
          "name": "client_title",
          "type": "string",
          "optional": true,
          "onprem": "allow"
        },
        {
          "name": "client_version",
          "type": "string",
          "optional": true,
          "onprem": "allow"
        },
        {
          "name": "fully_qualified_tool_name",
          "type": "string",
          "optional": true,
          "onprem": "allow"
        },
        {
          "name": "link_count",
          "type": "number",
          "optional": false,
          "onprem": "allow"
        },
        {
          "name": "protocol_version",
          "type": "string",
          "optional": false,
          "onprem": "allow"
        },
        {
          "name": "provider_count",
          "type": "number",
          "optional": false,
          "onprem": "allow"
        },
        {
          "name": "providers",
          "type": "array",
          "optional": false,
          "onprem": "allow"
        },
        {
          "name": "session_id",
          "type": "string",
          "optional": true,
          "onprem": "hash"
        },
        {
          "name": "tool_name",
          "type": "string",
          "optional": true,
          "onprem": "allow"
        },
        {
          "name": "toolkit_name",
          "type": "string",
          "optional": true,
          "onprem": "allow"
        },
        {
          "name": "toolkit_version",
          "type": "string",
          "optional": true,
          "onprem": "allow"
        },
        {
          "name": "user_id",
          "type": "string",
          "optional": false,
          "onprem": "hash"
        }
      ]
    },
    {
      "name": "MCP manage auth status checked",
      "description": "Reports an agent reading authorization status without being offered anything to complete.",
      "service": "engine",
      "declaration": "apps/engine/internal/usage/events/mcp.go",
      "properties": [
        {
          "name": "client_name",
          "type": "string",
          "optional": true,
          "onprem": "allow"
        },
        {
          "name": "client_supports_url_elicitation",
          "type": "boolean",
          "optional": true,
          "onprem": "allow"
        },
        {
          "name": "client_title",
          "type": "string",
          "optional": true,
          "onprem": "allow"
        },
        {
          "name": "client_version",
          "type": "string",
          "optional": true,
          "onprem": "allow"
        },
        {
          "name": "fully_qualified_tool_name",
          "type": "string",
          "optional": true,
          "onprem": "allow"
        },
        {
          "name": "link_count",
          "type": "number",
          "optional": false,
          "onprem": "allow"
        },
        {
          "name": "protocol_version",
          "type": "string",
          "optional": false,
          "onprem": "allow"
        },
        {
          "name": "provider_count",
          "type": "number",
          "optional": false,
          "onprem": "allow"
        },
        {
          "name": "providers",
          "type": "array",
          "optional": false,
          "onprem": "allow"
        },
        {
          "name": "session_id",
          "type": "string",
          "optional": true,
          "onprem": "hash"
        },
        {
          "name": "tool_name",
          "type": "string",
          "optional": true,
          "onprem": "allow"
        },
        {
          "name": "toolkit_name",
          "type": "string",
          "optional": true,
          "onprem": "allow"
        },
        {
          "name": "toolkit_version",
          "type": "string",
          "optional": true,
          "onprem": "allow"
        },
        {
          "name": "user_id",
          "type": "string",
          "optional": false,
          "onprem": "hash"
        }
      ]
    },
    {
      "name": "MCP registry suggestion created",
      "description": "Reports an end user filing a capability request through a gateway's Private Registry.",
      "service": "engine",
      "declaration": "apps/engine/internal/usage/events/mcp.go",
      "properties": [
        {
          "name": "client_name",
          "type": "string",
          "optional": true,
          "onprem": "allow"
        },
        {
          "name": "client_supports_url_elicitation",
          "type": "boolean",
          "optional": true,
          "onprem": "allow"
        },
        {
          "name": "client_title",
          "type": "string",
          "optional": true,
          "onprem": "allow"
        },
        {
          "name": "client_version",
          "type": "string",
          "optional": true,
          "onprem": "allow"
        },
        {
          "name": "fully_qualified_tool_name",
          "type": "string",
          "optional": true,
          "onprem": "allow"
        },
        {
          "name": "protocol_version",
          "type": "string",
          "optional": false,
          "onprem": "allow"
        },
        {
          "name": "session_id",
          "type": "string",
          "optional": true,
          "onprem": "hash"
        },
        {
          "name": "tool_name",
          "type": "string",
          "optional": true,
          "onprem": "allow"
        },
        {
          "name": "toolkit_name",
          "type": "string",
          "optional": true,
          "onprem": "allow"
        },
        {
          "name": "toolkit_version",
          "type": "string",
          "optional": true,
          "onprem": "allow"
        },
        {
          "name": "user_id",
          "type": "string",
          "optional": false,
          "onprem": "hash"
        }
      ]
    },
    {
      "name": "MCP registry suggestion supported",
      "description": "Reports an end user supporting another user's capability request through a gateway's Private Registry.",
      "service": "engine",
      "declaration": "apps/engine/internal/usage/events/mcp.go",
      "properties": [
        {
          "name": "client_name",
          "type": "string",
          "optional": true,
          "onprem": "allow"
        },
        {
          "name": "client_supports_url_elicitation",
          "type": "boolean",
          "optional": true,
          "onprem": "allow"
        },
        {
          "name": "client_title",
          "type": "string",
          "optional": true,
          "onprem": "allow"
        },
        {
          "name": "client_version",
          "type": "string",
          "optional": true,
          "onprem": "allow"
        },
        {
          "name": "fully_qualified_tool_name",
          "type": "string",
          "optional": true,
          "onprem": "allow"
        },
        {
          "name": "outcome",
          "type": "string",
          "optional": false,
          "onprem": "allow"
        },
        {
          "name": "protocol_version",
          "type": "string",
          "optional": false,
          "onprem": "allow"
        },
        {
          "name": "session_id",
          "type": "string",
          "optional": true,
          "onprem": "hash"
        },
        {
          "name": "tool_name",
          "type": "string",
          "optional": true,
          "onprem": "allow"
        },
        {
          "name": "toolkit_name",
          "type": "string",
          "optional": true,
          "onprem": "allow"
        },
        {
          "name": "toolkit_version",
          "type": "string",
          "optional": true,
          "onprem": "allow"
        },
        {
          "name": "user_id",
          "type": "string",
          "optional": false,
          "onprem": "hash"
        }
      ]
    },
    {
      "name": "MCP registry suggestions listed",
      "description": "Reports an end user reading either the gateway's suggestion list or their own source-scoped submissions.",
      "service": "engine",
      "declaration": "apps/engine/internal/usage/events/mcp.go",
      "properties": [
        {
          "name": "client_name",
          "type": "string",
          "optional": true,
          "onprem": "allow"
        },
        {
          "name": "client_supports_url_elicitation",
          "type": "boolean",
          "optional": true,
          "onprem": "allow"
        },
        {
          "name": "client_title",
          "type": "string",
          "optional": true,
          "onprem": "allow"
        },
        {
          "name": "client_version",
          "type": "string",
          "optional": true,
          "onprem": "allow"
        },
        {
          "name": "fully_qualified_tool_name",
          "type": "string",
          "optional": true,
          "onprem": "allow"
        },
        {
          "name": "protocol_version",
          "type": "string",
          "optional": false,
          "onprem": "allow"
        },
        {
          "name": "session_id",
          "type": "string",
          "optional": true,
          "onprem": "hash"
        },
        {
          "name": "tool_name",
          "type": "string",
          "optional": true,
          "onprem": "allow"
        },
        {
          "name": "toolkit_name",
          "type": "string",
          "optional": true,
          "onprem": "allow"
        },
        {
          "name": "toolkit_version",
          "type": "string",
          "optional": true,
          "onprem": "allow"
        },
        {
          "name": "user_id",
          "type": "string",
          "optional": false,
          "onprem": "hash"
        }
      ]
    },
    {
      "name": "MCP server discovered",
      "description": "Reports a client listing what a gateway offers, which is the step before it calls anything.",
      "service": "engine",
      "declaration": "apps/engine/internal/usage/events/mcp.go",
      "properties": [
        {
          "name": "client_name",
          "type": "string",
          "optional": true,
          "onprem": "allow"
        },
        {
          "name": "client_supports_url_elicitation",
          "type": "boolean",
          "optional": true,
          "onprem": "allow"
        },
        {
          "name": "client_title",
          "type": "string",
          "optional": true,
          "onprem": "allow"
        },
        {
          "name": "client_version",
          "type": "string",
          "optional": true,
          "onprem": "allow"
        },
        {
          "name": "fully_qualified_tool_name",
          "type": "string",
          "optional": true,
          "onprem": "allow"
        },
        {
          "name": "protocol_version",
          "type": "string",
          "optional": false,
          "onprem": "allow"
        },
        {
          "name": "session_id",
          "type": "string",
          "optional": true,
          "onprem": "hash"
        },
        {
          "name": "tool_name",
          "type": "string",
          "optional": true,
          "onprem": "allow"
        },
        {
          "name": "toolkit_name",
          "type": "string",
          "optional": true,
          "onprem": "allow"
        },
        {
          "name": "toolkit_version",
          "type": "string",
          "optional": true,
          "onprem": "allow"
        },
        {
          "name": "user_id",
          "type": "string",
          "optional": false,
          "onprem": "hash"
        }
      ]
    },
    {
      "name": "MCP session started",
      "description": "Reports an agent completing the MCP handshake against a gateway. `client_requested_protocol_version` is what the client asked for, which can differ from the `protocol_version` that was negotiated.",
      "service": "engine",
      "declaration": "apps/engine/internal/usage/events/mcp.go",
      "properties": [
        {
          "name": "client_name",
          "type": "string",
          "optional": true,
          "onprem": "allow"
        },
        {
          "name": "client_requested_protocol_version",
          "type": "string",
          "optional": false,
          "onprem": "allow"
        },
        {
          "name": "client_supports_url_elicitation",
          "type": "boolean",
          "optional": true,
          "onprem": "allow"
        },
        {
          "name": "client_title",
          "type": "string",
          "optional": true,
          "onprem": "allow"
        },
        {
          "name": "client_version",
          "type": "string",
          "optional": true,
          "onprem": "allow"
        },
        {
          "name": "fully_qualified_tool_name",
          "type": "string",
          "optional": true,
          "onprem": "allow"
        },
        {
          "name": "protocol_version",
          "type": "string",
          "optional": false,
          "onprem": "allow"
        },
        {
          "name": "session_id",
          "type": "string",
          "optional": true,
          "onprem": "hash"
        },
        {
          "name": "tool_name",
          "type": "string",
          "optional": true,
          "onprem": "allow"
        },
        {
          "name": "toolkit_name",
          "type": "string",
          "optional": true,
          "onprem": "allow"
        },
        {
          "name": "toolkit_version",
          "type": "string",
          "optional": true,
          "onprem": "allow"
        },
        {
          "name": "user_id",
          "type": "string",
          "optional": false,
          "onprem": "hash"
        }
      ]
    },
    {
      "name": "MCP tool call succeeded",
      "description": "Reports a tool invoked through an MCP gateway returning without a transport-level failure.",
      "service": "engine",
      "declaration": "apps/engine/internal/usage/events/mcp.go",
      "properties": [
        {
          "name": "client_name",
          "type": "string",
          "optional": true,
          "onprem": "allow"
        },
        {
          "name": "client_supports_url_elicitation",
          "type": "boolean",
          "optional": true,
          "onprem": "allow"
        },
        {
          "name": "client_title",
          "type": "string",
          "optional": true,
          "onprem": "allow"
        },
        {
          "name": "client_version",
          "type": "string",
          "optional": true,
          "onprem": "allow"
        },
        {
          "name": "fully_qualified_tool_name",
          "type": "string",
          "optional": true,
          "onprem": "allow"
        },
        {
          "name": "protocol_version",
          "type": "string",
          "optional": false,
          "onprem": "allow"
        },
        {
          "name": "session_id",
          "type": "string",
          "optional": true,
          "onprem": "hash"
        },
        {
          "name": "tool_name",
          "type": "string",
          "optional": true,
          "onprem": "allow"
        },
        {
          "name": "toolkit_name",
          "type": "string",
          "optional": true,
          "onprem": "allow"
        },
        {
          "name": "toolkit_version",
          "type": "string",
          "optional": true,
          "onprem": "allow"
        },
        {
          "name": "user_id",
          "type": "string",
          "optional": false,
          "onprem": "hash"
        }
      ]
    },
    {
      "name": "MCP tool recommendation queried",
      "description": "Reports an agent asking which tools suit a task.",
      "service": "engine",
      "declaration": "apps/engine/internal/usage/events/mcp.go",
      "properties": [
        {
          "name": "client_name",
          "type": "string",
          "optional": true,
          "onprem": "allow"
        },
        {
          "name": "client_supports_url_elicitation",
          "type": "boolean",
          "optional": true,
          "onprem": "allow"
        },
        {
          "name": "client_title",
          "type": "string",
          "optional": true,
          "onprem": "allow"
        },
        {
          "name": "client_version",
          "type": "string",
          "optional": true,
          "onprem": "allow"
        },
        {
          "name": "fully_qualified_tool_name",
          "type": "string",
          "optional": true,
          "onprem": "allow"
        },
        {
          "name": "protocol_version",
          "type": "string",
          "optional": false,
          "onprem": "allow"
        },
        {
          "name": "session_id",
          "type": "string",
          "optional": true,
          "onprem": "hash"
        },
        {
          "name": "tool_name",
          "type": "string",
          "optional": true,
          "onprem": "allow"
        },
        {
          "name": "toolkit_name",
          "type": "string",
          "optional": true,
          "onprem": "allow"
        },
        {
          "name": "toolkit_version",
          "type": "string",
          "optional": true,
          "onprem": "allow"
        },
        {
          "name": "user_id",
          "type": "string",
          "optional": false,
          "onprem": "hash"
        }
      ]
    },
    {
      "name": "MCP use tool invoked",
      "description": "Reports an agent running a tool through the recommendation builtin rather than calling it by name.",
      "service": "engine",
      "declaration": "apps/engine/internal/usage/events/mcp.go",
      "properties": [
        {
          "name": "client_name",
          "type": "string",
          "optional": true,
          "onprem": "allow"
        },
        {
          "name": "client_supports_url_elicitation",
          "type": "boolean",
          "optional": true,
          "onprem": "allow"
        },
        {
          "name": "client_title",
          "type": "string",
          "optional": true,
          "onprem": "allow"
        },
        {
          "name": "client_version",
          "type": "string",
          "optional": true,
          "onprem": "allow"
        },
        {
          "name": "fully_qualified_tool_name",
          "type": "string",
          "optional": true,
          "onprem": "allow"
        },
        {
          "name": "protocol_version",
          "type": "string",
          "optional": false,
          "onprem": "allow"
        },
        {
          "name": "session_id",
          "type": "string",
          "optional": true,
          "onprem": "hash"
        },
        {
          "name": "tool_name",
          "type": "string",
          "optional": true,
          "onprem": "allow"
        },
        {
          "name": "toolkit_name",
          "type": "string",
          "optional": true,
          "onprem": "allow"
        },
        {
          "name": "toolkit_version",
          "type": "string",
          "optional": true,
          "onprem": "allow"
        },
        {
          "name": "user_id",
          "type": "string",
          "optional": false,
          "onprem": "hash"
        }
      ]
    },
    {
      "name": "OAuth client registered",
      "description": "A client registered against Arcade's OAuth server. Dynamic Client Registration is unauthenticated, so this is a system event with no user context. The client's self-declared name and URI come from an unauthenticated request, so neither is disclosed.",
      "service": "coordinator",
      "declaration": "apps/coordinator/arcade/app/usage/events/_events.py",
      "properties": [
        {
          "name": "application_type",
          "type": "string",
          "optional": true,
          "onprem": "allow"
        },
        {
          "name": "client_id",
          "type": "string",
          "optional": false,
          "onprem": "hash"
        },
        {
          "name": "client_name",
          "type": "string",
          "optional": true,
          "onprem": "deny"
        },
        {
          "name": "client_uri",
          "type": "string",
          "optional": true,
          "onprem": "deny"
        },
        {
          "name": "grant_types",
          "type": "array",
          "optional": true,
          "onprem": "allow"
        },
        {
          "name": "has_jwks",
          "type": "boolean",
          "optional": true,
          "onprem": "allow"
        },
        {
          "name": "registration_type",
          "type": "string",
          "optional": false,
          "onprem": "allow"
        },
        {
          "name": "scope",
          "type": "array",
          "optional": true,
          "onprem": "allow"
        },
        {
          "name": "software_id",
          "type": "string",
          "optional": true,
          "onprem": "allow"
        },
        {
          "name": "software_version",
          "type": "string",
          "optional": true,
          "onprem": "allow"
        }
      ]
    },
    {
      "name": "OAuth provider created",
      "description": "Reports an auth provider being configured. `provider_id` is the well-known provider's name, or \"custom\" for one Arcade does not ship.",
      "service": "engine",
      "declaration": "apps/engine/internal/usage/events/admin.go",
      "properties": [
        {
          "name": "provider_id",
          "type": "string",
          "optional": false,
          "onprem": "allow"
        }
      ]
    },
    {
      "name": "OAuth token issued",
      "description": "Arcade Auth issued a token. Emitted only where a local account record exists, which is the static Arcade Auth flow. ``amr`` is the authentication methods reference from the identity provider: a bounded set of method names, not user data.",
      "service": "coordinator",
      "declaration": "apps/coordinator/arcade/app/usage/events/_events.py",
      "properties": [
        {
          "name": "amr",
          "type": "array",
          "optional": true,
          "onprem": "allow"
        },
        {
          "name": "auth_time",
          "type": "number",
          "optional": true,
          "onprem": "allow"
        },
        {
          "name": "auth_type",
          "type": "string",
          "optional": true,
          "onprem": "allow"
        },
        {
          "name": "client_id",
          "type": "string",
          "optional": true,
          "onprem": "hash"
        },
        {
          "name": "grant_type",
          "type": "string",
          "optional": false,
          "onprem": "allow"
        },
        {
          "name": "has_refresh_token",
          "type": "boolean",
          "optional": false,
          "onprem": "allow"
        },
        {
          "name": "scope",
          "type": "string",
          "optional": true,
          "onprem": "allow"
        },
        {
          "name": "user_source_id",
          "type": "string",
          "optional": true,
          "onprem": "hash"
        }
      ]
    },
    {
      "name": "Organization updated",
      "description": "An organization's profile changed. Everything but the identifier is what a customer chose to call themselves, so only the identifier is disclosed.",
      "service": "coordinator",
      "declaration": "apps/coordinator/arcade/app/usage/events/_events.py",
      "properties": [
        {
          "name": "organization_color",
          "type": "string",
          "optional": true,
          "onprem": "allow"
        },
        {
          "name": "organization_description",
          "type": "string",
          "optional": true,
          "onprem": "deny"
        },
        {
          "name": "organization_id",
          "type": "string",
          "optional": false,
          "onprem": "allow"
        },
        {
          "name": "organization_image_url",
          "type": "string",
          "optional": true,
          "onprem": "deny"
        },
        {
          "name": "organization_name",
          "type": "string",
          "optional": true,
          "onprem": "deny"
        }
      ]
    },
    {
      "name": "Project created",
      "description": "A project was created. Emitted both on explicit creation and for the default project that comes with a new organization.",
      "service": "coordinator",
      "declaration": "apps/coordinator/arcade/app/usage/events/_events.py",
      "properties": [
        {
          "name": "project_color",
          "type": "string",
          "optional": true,
          "onprem": "allow"
        },
        {
          "name": "project_description",
          "type": "string",
          "optional": true,
          "onprem": "deny"
        },
        {
          "name": "project_id",
          "type": "string",
          "optional": false,
          "onprem": "allow"
        },
        {
          "name": "project_image_url",
          "type": "string",
          "optional": true,
          "onprem": "deny"
        },
        {
          "name": "project_name",
          "type": "string",
          "optional": true,
          "onprem": "deny"
        }
      ]
    },
    {
      "name": "Project deleted",
      "description": "A project was removed.",
      "service": "coordinator",
      "declaration": "apps/coordinator/arcade/app/usage/events/_events.py",
      "properties": [
        {
          "name": "project_color",
          "type": "string",
          "optional": true,
          "onprem": "allow"
        },
        {
          "name": "project_description",
          "type": "string",
          "optional": true,
          "onprem": "deny"
        },
        {
          "name": "project_id",
          "type": "string",
          "optional": false,
          "onprem": "allow"
        },
        {
          "name": "project_image_url",
          "type": "string",
          "optional": true,
          "onprem": "deny"
        },
        {
          "name": "project_name",
          "type": "string",
          "optional": true,
          "onprem": "deny"
        }
      ]
    },
    {
      "name": "Project updated",
      "description": "A project's profile changed.",
      "service": "coordinator",
      "declaration": "apps/coordinator/arcade/app/usage/events/_events.py",
      "properties": [
        {
          "name": "project_color",
          "type": "string",
          "optional": true,
          "onprem": "allow"
        },
        {
          "name": "project_description",
          "type": "string",
          "optional": true,
          "onprem": "deny"
        },
        {
          "name": "project_id",
          "type": "string",
          "optional": false,
          "onprem": "allow"
        },
        {
          "name": "project_image_url",
          "type": "string",
          "optional": true,
          "onprem": "deny"
        },
        {
          "name": "project_name",
          "type": "string",
          "optional": true,
          "onprem": "deny"
        }
      ]
    },
    {
      "name": "Secret upserted",
      "description": "Reports a secret being written. It deliberately carries no properties: that a deployment manages secrets is the signal, and every attribute of one would describe the secret.",
      "service": "engine",
      "declaration": "apps/engine/internal/usage/events/admin.go",
      "properties": []
    },
    {
      "name": "Server added",
      "description": "Reports a tool server being registered. `credential_mode` is the joined set of credential sources an MCP server carries, which caps the property at eight values rather than the unbounded space a per-source list would produce. It is absent for HTTP servers, which always authenticate with a shared secret.",
      "service": "engine",
      "declaration": "apps/engine/internal/usage/events/admin.go",
      "properties": [
        {
          "name": "credential_mode",
          "type": "string",
          "optional": true,
          "onprem": "allow"
        },
        {
          "name": "server_type",
          "type": "string",
          "optional": false,
          "onprem": "allow"
        }
      ]
    },
    {
      "name": "Server deployed",
      "description": "Reports a worker deployment, sized by how many toolkits it carries.",
      "service": "engine",
      "declaration": "apps/engine/internal/usage/events/admin.go",
      "properties": [
        {
          "name": "toolkit_count",
          "type": "number",
          "optional": false,
          "onprem": "allow"
        }
      ]
    },
    {
      "name": "Subscription updated",
      "description": "A customer's subscription changed.",
      "service": "coordinator",
      "declaration": "apps/coordinator/arcade/app/usage/events/_events.py",
      "properties": [
        {
          "name": "amount",
          "type": "number",
          "optional": true,
          "onprem": "allow"
        },
        {
          "name": "change_direction",
          "type": "string",
          "optional": false,
          "onprem": "allow"
        },
        {
          "name": "currency",
          "type": "string",
          "optional": true,
          "onprem": "allow"
        },
        {
          "name": "new_plan_cadence",
          "type": "string",
          "optional": true,
          "onprem": "allow"
        },
        {
          "name": "new_plan_id",
          "type": "string",
          "optional": true,
          "onprem": "allow"
        },
        {
          "name": "new_plan_name",
          "type": "string",
          "optional": true,
          "onprem": "allow"
        },
        {
          "name": "old_plan_cadence",
          "type": "string",
          "optional": true,
          "onprem": "allow"
        },
        {
          "name": "old_plan_id",
          "type": "string",
          "optional": true,
          "onprem": "allow"
        },
        {
          "name": "old_plan_name",
          "type": "string",
          "optional": true,
          "onprem": "allow"
        }
      ]
    },
    {
      "name": "Tool execution failed",
      "description": "Reports an execution that never produced a tool response — the call to the worker itself failed. `arcade_error` is the raw Go error, which routinely embeds upstream URLs and request bodies, so it stays inside the cluster.",
      "service": "engine",
      "declaration": "apps/engine/internal/usage/events/tool_execution.go",
      "properties": [
        {
          "name": "arcade_error",
          "type": "string",
          "optional": false,
          "onprem": "deny"
        },
        {
          "name": "execution_id",
          "type": "string",
          "optional": false,
          "onprem": "hash"
        },
        {
          "name": "execution_type",
          "type": "string",
          "optional": false,
          "onprem": "allow"
        },
        {
          "name": "execution_type_reason",
          "type": "string",
          "optional": true,
          "onprem": "allow"
        },
        {
          "name": "fully_qualified_tool_name",
          "type": "string",
          "optional": false,
          "onprem": "allow"
        },
        {
          "name": "requested_tool_version",
          "type": "string",
          "optional": false,
          "onprem": "allow"
        },
        {
          "name": "run_id",
          "type": "string",
          "optional": false,
          "onprem": "hash"
        },
        {
          "name": "tool_name",
          "type": "string",
          "optional": false,
          "onprem": "allow"
        },
        {
          "name": "tool_version",
          "type": "string",
          "optional": false,
          "onprem": "allow"
        },
        {
          "name": "toolkit_name",
          "type": "string",
          "optional": false,
          "onprem": "allow"
        },
        {
          "name": "user_id",
          "type": "string",
          "optional": true,
          "onprem": "hash"
        },
        {
          "name": "worker_id",
          "type": "string",
          "optional": false,
          "onprem": "hash"
        }
      ]
    },
    {
      "name": "Tool execution succeeded",
      "description": "Reports a tool the Engine ran to completion. The tool itself may still have returned an error, described by the `execution_error_*` properties; `is_execution_success` is what separates the two cases. `execution_error` and `execution_error_dev_message` relay text from the upstream provider verbatim, which in practice includes customer document IDs, URLs and request bodies, so neither leaves a self-hosted cluster. The bounded `execution_error_kind` is what makes a failure legible without them.",
      "service": "engine",
      "declaration": "apps/engine/internal/usage/events/tool_execution.go",
      "properties": [
        {
          "name": "execution_duration_ms",
          "type": "number",
          "optional": false,
          "onprem": "allow"
        },
        {
          "name": "execution_error",
          "type": "string",
          "optional": true,
          "onprem": "deny"
        },
        {
          "name": "execution_error_dev_message",
          "type": "string",
          "optional": true,
          "onprem": "deny"
        },
        {
          "name": "execution_error_kind",
          "type": "string",
          "optional": true,
          "onprem": "allow"
        },
        {
          "name": "execution_error_retry_after_ms",
          "type": "number",
          "optional": true,
          "onprem": "allow"
        },
        {
          "name": "execution_id",
          "type": "string",
          "optional": false,
          "onprem": "hash"
        },
        {
          "name": "execution_type",
          "type": "string",
          "optional": false,
          "onprem": "allow"
        },
        {
          "name": "execution_type_reason",
          "type": "string",
          "optional": true,
          "onprem": "allow"
        },
        {
          "name": "fully_qualified_tool_name",
          "type": "string",
          "optional": false,
          "onprem": "allow"
        },
        {
          "name": "is_execution_error_retryable",
          "type": "boolean",
          "optional": true,
          "onprem": "allow"
        },
        {
          "name": "is_execution_success",
          "type": "boolean",
          "optional": false,
          "onprem": "allow"
        },
        {
          "name": "requested_tool_version",
          "type": "string",
          "optional": false,
          "onprem": "allow"
        },
        {
          "name": "run_id",
          "type": "string",
          "optional": false,
          "onprem": "hash"
        },
        {
          "name": "tool_name",
          "type": "string",
          "optional": false,
          "onprem": "allow"
        },
        {
          "name": "tool_version",
          "type": "string",
          "optional": false,
          "onprem": "allow"
        },
        {
          "name": "toolkit_name",
          "type": "string",
          "optional": false,
          "onprem": "allow"
        },
        {
          "name": "user_id",
          "type": "string",
          "optional": true,
          "onprem": "hash"
        },
        {
          "name": "worker_id",
          "type": "string",
          "optional": false,
          "onprem": "hash"
        }
      ]
    },
    {
      "name": "tr_apps_list",
      "description": "Reports an agent listing the applications available to it, and how many of them it is already connected to.",
      "service": "engine",
      "declaration": "apps/engine/internal/usage/events/tool_recommendation.go",
      "properties": [
        {
          "name": "$process_person_profile",
          "type": "boolean",
          "optional": false,
          "onprem": "allow"
        },
        {
          "name": "connected_apps_count",
          "type": "number",
          "optional": false,
          "onprem": "allow"
        },
        {
          "name": "customer_id",
          "type": "string",
          "optional": true,
          "onprem": "hash"
        },
        {
          "name": "principal_type",
          "type": "string",
          "optional": true,
          "onprem": "allow"
        },
        {
          "name": "project_id",
          "type": "string",
          "optional": true,
          "onprem": "allow"
        },
        {
          "name": "source",
          "type": "string",
          "optional": false,
          "onprem": "allow"
        },
        {
          "name": "tenant_id",
          "type": "string",
          "optional": true,
          "onprem": "allow"
        },
        {
          "name": "total_apps_count",
          "type": "number",
          "optional": false,
          "onprem": "allow"
        }
      ]
    },
    {
      "name": "tr_search_tools",
      "description": "Reports a free-text search over the tool catalog.",
      "service": "engine",
      "declaration": "apps/engine/internal/usage/events/tool_recommendation.go",
      "properties": [
        {
          "name": "$process_person_profile",
          "type": "boolean",
          "optional": false,
          "onprem": "allow"
        },
        {
          "name": "customer_id",
          "type": "string",
          "optional": true,
          "onprem": "hash"
        },
        {
          "name": "principal_type",
          "type": "string",
          "optional": true,
          "onprem": "allow"
        },
        {
          "name": "project_id",
          "type": "string",
          "optional": true,
          "onprem": "allow"
        },
        {
          "name": "results_count",
          "type": "number",
          "optional": false,
          "onprem": "allow"
        },
        {
          "name": "source",
          "type": "string",
          "optional": false,
          "onprem": "allow"
        },
        {
          "name": "tenant_id",
          "type": "string",
          "optional": true,
          "onprem": "allow"
        },
        {
          "name": "top_k",
          "type": "number",
          "optional": false,
          "onprem": "allow"
        }
      ]
    },
    {
      "name": "tr_select_tools",
      "description": "Reports a task-driven tool selection. It opens the discovery-to-execution funnel: `query_id` is echoed back by the tr_use_tool event that follows, which is what links the two.",
      "service": "engine",
      "declaration": "apps/engine/internal/usage/events/tool_recommendation.go",
      "properties": [
        {
          "name": "$process_person_profile",
          "type": "boolean",
          "optional": false,
          "onprem": "allow"
        },
        {
          "name": "condex_latency_ms",
          "type": "number",
          "optional": false,
          "onprem": "allow"
        },
        {
          "name": "customer_id",
          "type": "string",
          "optional": true,
          "onprem": "hash"
        },
        {
          "name": "failed_tasks",
          "type": "number",
          "optional": false,
          "onprem": "allow"
        },
        {
          "name": "hydration_latency_ms",
          "type": "number",
          "optional": false,
          "onprem": "allow"
        },
        {
          "name": "principal_type",
          "type": "string",
          "optional": true,
          "onprem": "allow"
        },
        {
          "name": "project_id",
          "type": "string",
          "optional": true,
          "onprem": "allow"
        },
        {
          "name": "query_id",
          "type": "string",
          "optional": false,
          "onprem": "hash"
        },
        {
          "name": "results_count",
          "type": "number",
          "optional": false,
          "onprem": "allow"
        },
        {
          "name": "source",
          "type": "string",
          "optional": false,
          "onprem": "allow"
        },
        {
          "name": "task_count",
          "type": "number",
          "optional": false,
          "onprem": "allow"
        },
        {
          "name": "tenant_id",
          "type": "string",
          "optional": true,
          "onprem": "allow"
        },
        {
          "name": "top_k",
          "type": "number",
          "optional": false,
          "onprem": "allow"
        }
      ]
    },
    {
      "name": "tr_use_tool",
      "description": "Reports a gateway tool execution alongside the recommendation that led to it. `result_type` distinguishes a tool that ran from one that stopped on an authorization challenge: a challenge returns successfully at the transport level but the tool never ran, so counting it as a success would inflate every execution rate with pending OAuth flows. `toolkit` and `canonical_name` are absent when the tool name does not parse, in which case `tool_name` holds the raw string rather than the event being dropped.",
      "service": "engine",
      "declaration": "apps/engine/internal/usage/events/tool_recommendation.go",
      "properties": [
        {
          "name": "$process_person_profile",
          "type": "boolean",
          "optional": false,
          "onprem": "allow"
        },
        {
          "name": "canonical_name",
          "type": "string",
          "optional": true,
          "onprem": "allow"
        },
        {
          "name": "customer_id",
          "type": "string",
          "optional": true,
          "onprem": "hash"
        },
        {
          "name": "error_kind",
          "type": "string",
          "optional": true,
          "onprem": "allow"
        },
        {
          "name": "execution_id",
          "type": "string",
          "optional": true,
          "onprem": "hash"
        },
        {
          "name": "invocation_path",
          "type": "string",
          "optional": false,
          "onprem": "allow"
        },
        {
          "name": "latency_ms",
          "type": "number",
          "optional": false,
          "onprem": "allow"
        },
        {
          "name": "principal_type",
          "type": "string",
          "optional": true,
          "onprem": "allow"
        },
        {
          "name": "project_id",
          "type": "string",
          "optional": true,
          "onprem": "allow"
        },
        {
          "name": "query_id",
          "type": "string",
          "optional": true,
          "onprem": "hash"
        },
        {
          "name": "result_type",
          "type": "string",
          "optional": false,
          "onprem": "allow"
        },
        {
          "name": "source",
          "type": "string",
          "optional": false,
          "onprem": "allow"
        },
        {
          "name": "tenant_id",
          "type": "string",
          "optional": true,
          "onprem": "allow"
        },
        {
          "name": "tool_name",
          "type": "string",
          "optional": false,
          "onprem": "allow"
        },
        {
          "name": "toolkit",
          "type": "string",
          "optional": true,
          "onprem": "allow"
        }
      ]
    },
    {
      "name": "User auth checked",
      "description": "Reports a poll of a user's authorization status. It is by far the highest-volume auth event, since callers poll it while a flow is pending.",
      "service": "engine",
      "declaration": "apps/engine/internal/usage/events/auth.go",
      "properties": [
        {
          "name": "provider_id",
          "type": "string",
          "optional": false,
          "onprem": "allow"
        },
        {
          "name": "status",
          "type": "string",
          "optional": false,
          "onprem": "allow"
        },
        {
          "name": "user_id",
          "type": "string",
          "optional": false,
          "onprem": "hash"
        },
        {
          "name": "waited_duration_s",
          "type": "number",
          "optional": true,
          "onprem": "allow"
        }
      ]
    },
    {
      "name": "User auth confirmed",
      "description": "Reports a user's identity being confirmed mid-flow, which is the step that binds an authorization to a specific end user.",
      "service": "engine",
      "declaration": "apps/engine/internal/usage/events/auth.go",
      "properties": [
        {
          "name": "auth_id",
          "type": "string",
          "optional": false,
          "onprem": "hash"
        },
        {
          "name": "flow_id",
          "type": "string",
          "optional": false,
          "onprem": "hash"
        },
        {
          "name": "user_id",
          "type": "string",
          "optional": false,
          "onprem": "hash"
        }
      ]
    },
    {
      "name": "User auth failed",
      "description": "Reports an authorization flow that ended without a connection. `failure_reason` is a bounded set of causes, not a message from the provider.",
      "service": "engine",
      "declaration": "apps/engine/internal/usage/events/auth.go",
      "properties": [
        {
          "name": "failure_reason",
          "type": "string",
          "optional": false,
          "onprem": "allow"
        },
        {
          "name": "flow_id",
          "type": "string",
          "optional": true,
          "onprem": "hash"
        },
        {
          "name": "provider_id",
          "type": "string",
          "optional": false,
          "onprem": "allow"
        },
        {
          "name": "user_id",
          "type": "string",
          "optional": false,
          "onprem": "hash"
        }
      ]
    },
    {
      "name": "User auth revoked",
      "description": "Reports a connection being deleted, which is the only event that marks a user withdrawing access to an integration.",
      "service": "engine",
      "declaration": "apps/engine/internal/usage/events/auth.go",
      "properties": [
        {
          "name": "provider_id",
          "type": "string",
          "optional": false,
          "onprem": "allow"
        },
        {
          "name": "user_id",
          "type": "string",
          "optional": false,
          "onprem": "hash"
        }
      ]
    },
    {
      "name": "User auth started",
      "description": "Reports the beginning of an authorization flow for a user.",
      "service": "engine",
      "declaration": "apps/engine/internal/usage/events/auth.go",
      "properties": [
        {
          "name": "flow_id",
          "type": "string",
          "optional": false,
          "onprem": "hash"
        },
        {
          "name": "provider_id",
          "type": "string",
          "optional": false,
          "onprem": "allow"
        },
        {
          "name": "scopes",
          "type": "array",
          "optional": false,
          "onprem": "allow"
        },
        {
          "name": "user_id",
          "type": "string",
          "optional": false,
          "onprem": "hash"
        }
      ]
    },
    {
      "name": "User auth succeeded",
      "description": "Reports an authorization flow that completed and produced a usable connection. `flow_id` is absent on the resume path, where a flow interrupted by a restart is picked back up and `waited_duration_s` reports how long that took instead.",
      "service": "engine",
      "declaration": "apps/engine/internal/usage/events/auth.go",
      "properties": [
        {
          "name": "flow_id",
          "type": "string",
          "optional": true,
          "onprem": "hash"
        },
        {
          "name": "provider_id",
          "type": "string",
          "optional": false,
          "onprem": "allow"
        },
        {
          "name": "user_id",
          "type": "string",
          "optional": false,
          "onprem": "hash"
        },
        {
          "name": "waited_duration_s",
          "type": "number",
          "optional": true,
          "onprem": "allow"
        }
      ]
    },
    {
      "name": "User invited",
      "description": "Someone was invited to a project. The role is the only dimension: who was invited is on the event's identity, not its properties.",
      "service": "coordinator",
      "declaration": "apps/coordinator/arcade/app/usage/events/_events.py",
      "properties": [
        {
          "name": "role",
          "type": "string",
          "optional": true,
          "onprem": "allow"
        }
      ]
    },
    {
      "name": "User Source created",
      "description": "A federated identity source was configured.",
      "service": "coordinator",
      "declaration": "apps/coordinator/arcade/app/usage/events/_events.py",
      "properties": [
        {
          "name": "issuer_domain",
          "type": "string",
          "optional": true,
          "onprem": "allow"
        },
        {
          "name": "org_id",
          "type": "string",
          "optional": true,
          "onprem": "allow"
        },
        {
          "name": "project_id",
          "type": "string",
          "optional": true,
          "onprem": "allow"
        },
        {
          "name": "protocol",
          "type": "string",
          "optional": true,
          "onprem": "allow"
        },
        {
          "name": "user_source_id",
          "type": "string",
          "optional": false,
          "onprem": "hash"
        }
      ]
    },
    {
      "name": "User Source deleted",
      "description": "A federated identity source was removed.",
      "service": "coordinator",
      "declaration": "apps/coordinator/arcade/app/usage/events/_events.py",
      "properties": [
        {
          "name": "issuer_domain",
          "type": "string",
          "optional": true,
          "onprem": "allow"
        },
        {
          "name": "org_id",
          "type": "string",
          "optional": true,
          "onprem": "allow"
        },
        {
          "name": "project_id",
          "type": "string",
          "optional": true,
          "onprem": "allow"
        },
        {
          "name": "protocol",
          "type": "string",
          "optional": true,
          "onprem": "allow"
        },
        {
          "name": "user_source_id",
          "type": "string",
          "optional": false,
          "onprem": "hash"
        }
      ]
    },
    {
      "name": "User Source updated",
      "description": "A federated identity source changed.",
      "service": "coordinator",
      "declaration": "apps/coordinator/arcade/app/usage/events/_events.py",
      "properties": [
        {
          "name": "issuer_domain",
          "type": "string",
          "optional": true,
          "onprem": "allow"
        },
        {
          "name": "org_id",
          "type": "string",
          "optional": true,
          "onprem": "allow"
        },
        {
          "name": "project_id",
          "type": "string",
          "optional": true,
          "onprem": "allow"
        },
        {
          "name": "protocol",
          "type": "string",
          "optional": true,
          "onprem": "allow"
        },
        {
          "name": "user_source_id",
          "type": "string",
          "optional": false,
          "onprem": "hash"
        }
      ]
    }
  ]
}
