Add extensions codes to analytics aggregation GraphQL errors

What does this MR do and why?

GraphQL errors from the analytics aggregation resolvers now carry stable extensions codes: CLICKHOUSE_NOT_CONFIGURED and SIPHON_REPLICATION_DISABLED on the Siphon replication check, and AGGREGATION_NOT_AUTHORIZED when the engine reports a typed authorization error. The GLQL query service also stops stripping the extensions key from /api/glql responses. Frontends need a machine-readable code to map failures to distinct panel states, and message matching breaks on copy edits.

The extensions passthrough applies to every GraphQL error on /api/glql, matching what /api/graphql already exposes for the same queries in the same user context; both endpoints execute the same schema, so no additional information becomes reachable.

Stacked on !256768 (merged).

References

How to set up and validate locally

  1. Run the request specs for the five Siphon-gated engines plus spec/services/analytics/glql/query_service_spec.rb and ee/spec/requests/api/graphql/analytics/duo_workflows_spec.rb.
  2. All examples pass.

Screenshots or screen recordings

Backend only.

Merge request reports

Loading
Loading