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
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.
SessionStorehas no concept of a caller, so authorization lives entirely outside itgetScene(sessionId)succeeds for anyone holding the id. Adventures added ownership guardsas Fastify
preHandlers over its ownprofile_idcolumns, because the port gave it nowhereto 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 firstdownstream host — SubZeroDev.Adventures.
Done when
host-owned,
SessionStorestays caller-agnostic — with a stated trigger for revisitingit once the deferred NEaaS/hosting layer is actually built.
Agent instructions
design/90-decisions.md'sopen register (Found by the first downstream host).
SessionStoresignature change now,rather than a documented deferral — that's a contract change beyond what this issue scopes.