Problem
An already-issued remote session keeps its signed editor capability after the underlying Organization access is downgraded or revoked.
This was reproduced end to end on staging with the same Organization member signed into two hostnames for one Instance:
- Instance:
inst_R8Y2tmapzrAjuFFH
- Organization:
org_GFE5xcw8E0pGtV-X
max-app.avibe.tech received an editor session through the Research group.
- Research was then changed back to
viewer.
- After reloading, the existing session still rendered
New session in this project, the chat textbox, and the Send control.
- The member was subsequently removed from the Organization, but no mechanism invalidated the already-issued local session.
This is not only a stale UI projection. The local runtime continues trusting the old signed claims until session expiration or explicit reauthorization.
Required behavior
Downgrading or revoking access must invalidate active authorization promptly across every hostname for the Instance. This includes:
- member removal from the Organization
- removal from an authorized group
- group archival
- Instance role downgrade, for example
editor -> viewer
- removal of the Instance access binding
HTTP mutations, SSE, WebSocket connections, resumed streams, and newly opened pages must all converge on the current authorization decision. Shortening the cookie lifetime alone is not sufficient.
Use a versioned revocation design such as membership/access revisions, a device-synchronized revocation watermark, or a narrowly scoped online introspection mechanism. The runtime must fail closed when a previously signed authorization version is stale.
Acceptance criteria
Implementation context
The original signed-role implementation is useful context but does not cover the staging revocation failure:
Problem
An already-issued remote session keeps its signed
editorcapability after the underlying Organization access is downgraded or revoked.This was reproduced end to end on staging with the same Organization member signed into two hostnames for one Instance:
inst_R8Y2tmapzrAjuFFHorg_GFE5xcw8E0pGtV-Xmax-app.avibe.techreceived aneditorsession through the Research group.viewer.New session in this project, the chat textbox, and the Send control.This is not only a stale UI projection. The local runtime continues trusting the old signed claims until session expiration or explicit reauthorization.
Required behavior
Downgrading or revoking access must invalidate active authorization promptly across every hostname for the Instance. This includes:
editor -> viewerHTTP mutations, SSE, WebSocket connections, resumed streams, and newly opened pages must all converge on the current authorization decision. Shortening the cookie lifetime alone is not sufficient.
Use a versioned revocation design such as membership/access revisions, a device-synchronized revocation watermark, or a narrowly scoped online introspection mechanism. The runtime must fail closed when a previously signed authorization version is stale.
Acceptance criteria
Implementation context
The original signed-role implementation is useful context but does not cover the staging revocation failure: