Skip to content

design: decide a server-side require_connect_token knob (token presence is not enforceable today) #574

Description

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.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions