Gateway transport for the shared View lifecycle.
The engine publishes :view/open, :view/patch and :view/close envelopes on
every selected channel. This namespace projects the :app copy into the matching
view.open, view.patch and view.close session events, preserving :kind so
clients choose capability policy without guessing from event names.
An :input View blocks while a :live View streams coalesced patches on
[[live-flush-ms]]. Operator intent for either kind enters through one action!
and one kind-independent REST resource; the engine owns the closed action
vocabulary and capability checks.
Gateway transport for the shared View lifecycle. The engine publishes `:view/open`, `:view/patch` and `:view/close` envelopes on every selected channel. This namespace projects the `:app` copy into the matching `view.open`, `view.patch` and `view.close` session events, preserving `:kind` so clients choose capability policy without guessing from event names. An `:input` View blocks while a `:live` View streams coalesced patches on [[live-flush-ms]]. Operator intent for either kind enters through one [[action!]] and one kind-independent REST resource; the engine owns the closed action vocabulary and capability checks.
(action! view-id action)Apply one closed operator action to open View view-id. Kind policy and all
validation stay in the engine, so every remote surface receives the same verdict.
The decoded action's own keys become engine keywords here, once; the values
it submits stay keyed by field name.
Apply one closed operator action to open View `view-id`. Kind policy and all validation stay in the engine, so every remote surface receives the same verdict. The decoded action's own keys become engine keywords here, once; the `values` it submits stay keyed by field name.
Channel the companion app is served on.
Channel the companion app is served on.
(flush-live-patches!)Publish every buffered patch NOW. The tick decides when this happens in a running gateway; a caller that needs the stream settled — a test, a shutdown — asks for it.
Publish every buffered patch NOW. The tick decides when this happens in a running gateway; a caller that needs the stream settled — a test, a shutdown — asks for it.
(input-view-of sid view-id)Input View view-id when it is pending in sid, else nil.
Input View `view-id` when it is pending in `sid`, else nil.
(input-views sid)Input Views session sid is BLOCKED on right now, oldest first.
Input Views session `sid` is BLOCKED on right now, oldest first.
(install!)Subscribe the gateway to :app View lifecycle events. Idempotent.
Subscribe the gateway to `:app` View lifecycle events. Idempotent.
(live-log-range sid view-id node-id from limit & [query])Read one bounded page of a live or closed log. query is a case-insensitive
literal substring; from counts matches, not source lines. Nil paging values
use the log-window policy, which is also the maximum response size.
Read one bounded page of a live or closed log. `query` is a case-insensitive literal substring; `from` counts matches, not source lines. Nil paging values use the log-window policy, which is also the maximum response size.
(live-view-of sid view-id)Live view view-id when it belongs to sid, else nil. Every REST answer goes
through this: a view id from another session must not be readable from here.
Live view `view-id` when it belongs to `sid`, else nil. Every REST answer goes through this: a view id from another session must not be readable from here.
(live-views sid)The live views open in session sid right now, oldest first — the resync a
client reads after joining late, waking up or losing its stream.
The live views open in session `sid` right now, oldest first — the resync a client reads after joining late, waking up or losing its stream.
(on-channel-event! event)Project one canonical :app View event into the session journal.
Project one canonical `:app` View event into the session journal.
(uninstall!)Drop the subscription installed by install!. Anything a view still has
buffered is published first: a gateway going away must not swallow patches
the engine already accepted.
Drop the subscription installed by [[install!]]. Anything a view still has buffered is published first: a gateway going away must not swallow patches the engine already accepted.
(view-of sid view-id)Open View view-id when it belongs to session sid, as a kind/document
descriptor, else nil. This is the ownership gate for the shared action route.
Open View `view-id` when it belongs to session `sid`, as a kind/document descriptor, else nil. This is the ownership gate for the shared action route.
cljdoc builds & hosts documentation for Clojure/Script libraries
| Ctrl+k | Jump to recent docs |
| ← | Move to previous article |
| → | Move to next article |
| Ctrl+/ | Jump to the search field |