Skip to content

SessionStore has no concept of a caller, so authorization lives entirely outside it #281

Description

@The-Running-Dev

SessionStore has no concept of a caller, so authorization lives entirely outside it

getScene(sessionId) succeeds for anyone holding the id. Adventures added ownership guards
as Fastify preHandlers over its own profile_id columns, because the port gave it nowhere
to express the check. That is the right layering for a static demo and a real gap for a
hosted engine — it is the first concrete requirement the deferred NEaaS layer has produced.

Found by the first downstream host — see design/90-decisions.md, Found by the first
downstream host — SubZeroDev.Adventures
.

Done when

  • The contract records this as a deliberate layering decision — authorization is
    host-owned, SessionStore stays caller-agnostic — with a stated trigger for revisiting
    it once the deferred NEaaS/hosting layer is actually built.

Agent instructions
  • Authority: this issue, since the bullet no longer lives in design/90-decisions.md's
    open register (Found by the first downstream host).
  • Stop if: the decision turns out to require a real SessionStore signature change now,
    rather than a documented deferral — that's a contract change beyond what this issue scopes.

Metadata

Metadata

Assignees

No one assigned

    Labels

    openOpen work tracked from the canonical design register

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions