Summary
The #517 connect_token implementation (ratified 2026-09-11) verifies presented tokens only. When a verification key is configured, a client that simply omits connect_token is still admitted on the public app_id — that is the ratified wire contract ("absent field = today's semantics"), so released SDKs keep working.
Consequence: a configured key rejects bad tokens, never missing ones. Server-side tenant isolation is not enforceable today; hosted deployments rely on the cloud edge (option 1 of the #517 decision) to stop credential-less traffic.
What would change
Add an opt-in enforcement knob so a deployment can make token presence mandatory server-side:
security.connect_token.required: bool (server-global), or a per-app flag on AppRegistrationEntry (per-tenant rollout, matches rate_limit_per_minute granularity).
Refusal semantics to decide
- Reuse
CONNECT_TOKEN_INVALID (one code for missing + invalid; simplest for SDKs), or
- add a distinct code (e.g.
CONNECT_TOKEN_REQUIRED) so clients can distinguish "fix your token" from "obtain a token first".
The refusal should stay retryable and budget-charged, like every handshake refusal.
Why an owner decision
A server-global required=true would refuse every released SDK (0.8.0–0.12.0) that never sends the field — that is exactly the compatibility contract #517 ratified. A per-app flag avoids fleet-wide breakage but adds config surface. Either way it reverses part of the ratified default, so it needs explicit sign-off before implementation.
Summary
The #517
connect_tokenimplementation (ratified 2026-09-11) verifies presented tokens only. When a verification key is configured, a client that simply omitsconnect_tokenis still admitted on the publicapp_id— that is the ratified wire contract ("absent field = today's semantics"), so released SDKs keep working.Consequence: a configured key rejects bad tokens, never missing ones. Server-side tenant isolation is not enforceable today; hosted deployments rely on the cloud edge (option 1 of the #517 decision) to stop credential-less traffic.
What would change
Add an opt-in enforcement knob so a deployment can make token presence mandatory server-side:
security.connect_token.required: bool(server-global), or a per-app flag onAppRegistrationEntry(per-tenant rollout, matchesrate_limit_per_minutegranularity).Refusal semantics to decide
CONNECT_TOKEN_INVALID(one code for missing + invalid; simplest for SDKs), orCONNECT_TOKEN_REQUIRED) so clients can distinguish "fix your token" from "obtain a token first".The refusal should stay retryable and budget-charged, like every handshake refusal.
Why an owner decision
A server-global
required=truewould refuse every released SDK (0.8.0–0.12.0) that never sends the field — that is exactly the compatibility contract #517 ratified. A per-app flag avoids fleet-wide breakage but adds config surface. Either way it reverses part of the ratified default, so it needs explicit sign-off before implementation.