Protocol: split client session authority
This commit is contained in:
+30
@@ -0,0 +1,30 @@
|
||||
## 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
|
||||
Reference in New Issue
Block a user