Files
sechmachine afbcea62f9
Verify Protocol / verify (push) Successful in 1m2s
Verify Protocol / module (push) Successful in 1m45s
Protocol: split client session authority
2026-08-12 11:50:41 +07:00

2.2 KiB

ADDED Requirements

Requirement: Client-facing authority is provider-free

The gateway-to-client acknowledgement SHALL use ClientSessionAuthority version "1" containing exactly version, session_id, gateway_id, audience, reconnect_sequence, expires_at, and capabilities. The contract SHALL reject missing required fields, unknown fields including provider identities and routes, invalid or noncanonical expiry timestamps, and trailing JSON values.

Scenario: Gateway acknowledges an admitted client

  • WHEN provider work succeeds and gateway and client capabilities intersect
  • THEN the gateway returns a valid ClientSessionAuthority containing the selected capabilities and no provider-bearing field

Scenario: Client receives provider-bearing authority

  • WHEN a client authority payload contains provider_profile, provider_identity, a provider route, or any unknown key
  • THEN the strict client authority decoder rejects the payload

Scenario: Client receives incomplete or malformed authority

  • WHEN a client authority omits any required binding, has an invalid expiry, or is followed by another JSON value
  • THEN the strict client authority decoder rejects the payload

Requirement: Server-to-gateway authority remains provider-bound

The authenticated Server-to-gateway control plane SHALL continue to use the existing provider-bearing SessionAuthority for admission, provider work, release, and cleanup. SessionAuthority and ProviderSessionWork fields and semantics MUST remain unchanged by this change.

Scenario: Gateway performs provider work

  • WHEN the Server admits a gateway session and the gateway requests provider work
  • THEN the original provider-bearing SessionAuthority continues to bind provider work and subsequent release or cleanup

Requirement: RC4 is a coordinated hard cut

The RC4 gateway and client SHALL use ClientSessionAuthority; mixed RC3/RC4 gateway-client compatibility SHALL NOT be claimed. RC4 SHALL NOT add optional provider fields, a dual decoder, or response negotiation for RC3.

Scenario: RC4 candidate is qualified

  • WHEN the Protocol RC4 tag is pinned by Server, gateway, and client
  • THEN qualification uses only that exact coordinated set