Package-level declarations

Types

Link copied to clipboard
data class BoardReference(val id: String, val title: String)

A shared dashboard: its id and its title.

Link copied to clipboard
fun interface SharedBoardReferences

Answers which shared dashboards reference a view: the view store's own snapshot query, kept behind this port so the domain does not depend on the query stack. The service binds it.

Link copied to clipboard
@Description(value = "A saved view of the view engine: a record view, an analysis view or a dashboard")
class View(state: ViewState)

A saved view. It belongs to its tenant and its owner, which is its audience: the kernel refuses a command whose owner is not the view's, whose expected version is stale, or that addresses a deleted view; the view refuses one from another application as not found.

Link copied to clipboard

Moves a view to the owner its audience now names (the owner changes only through wow.lifecycle.TransferOwner): (shared) once it is shared, the claiming user once it is claimed. The command keeps the commit's scope and operator, and a derived command is not checked against the target's scope. A caller who waits for the move asks for Wow-Wait: handled(ViewAudienceSaga.onAudienceChanged)>snapshot.

Link copied to clipboard

The only checks the server makes of a view's config: its kind is a view kind, it is no larger than MAX_CONFIG_BYTES, and the paths a store queries hold what a store can index (referenceProblem). The engine admits its meaning when it opens it.

Link copied to clipboard
interface ViewReads

The view store's reads of views that ViewStoreRoutes answers: the snapshot queries and the configured system views, kept behind this port so the domain does not depend on the query stack. The service binds it. Every read is of one application: a view another application wrote reads as none.

Link copied to clipboard
class ViewState

A saved view: a record view, an analysis view or a dashboard. Its tenant and owner are the aggregate's own; its id is the snapshot's aggregateId.

Link copied to clipboard

The view store's own reads, in the caller's tenant and application (me.ahoo.wow.api.caller.Caller.app; refused with view-store.app-required without one), through reads.

Link copied to clipboard

The 9.x records of a view, read as revision 2: 9.x recorded no kind, which it defined as the config's own kind (its ViewKind), so the upgrade takes it from there. A 9.x config without a kind, or with one that is no ViewKind, fails the read: the view is not guessed into a kind, and the read names the view.