Release notes — AdvisoryAI envelope-only authentication (sprint SPRINT_20260430_002)

Audit finding closed: docs-archive/qa/audits/microservice-audit-pass2-2026-04-29.md §A2.

What changed

The AdvisoryAI WebService no longer trusts raw identity headers. All identity must arrive via the gateway-signed identity envelope (X-StellaOps-Identity-Envelope + X-StellaOps-Identity-Envelope-Signature, HMAC-SHA256). Specifically:

Behavioral consequences (breaking)

Tests

AdvisoryAiAuthIntegrationTests (12 scenarios, all green) covers:

Migration guide

If your client previously called AdvisoryAI directly with raw identity headers, update it to either:

  1. Route the request through the StellaOps gateway, which issues a signed envelope from a verified bearer token, or
  2. (For internal/test callers) construct and sign a GatewayIdentityEnvelope using StellaOps.Router.Common.Identity.GatewayIdentityEnvelopeCodec.Sign(...) with the configured Router:IdentityEnvelopeSigningKey / STELLAOPS_IDENTITY_ENVELOPE_SIGNING_KEY and attach the resulting X-StellaOps-Identity-Envelope and X-StellaOps-Identity-Envelope-Signature headers.