Package-level declarations
Types
Accepts, as a privileged reviewer, the lower protection the Wow source's wow_catalog row now gives the values pending review (keys, each a FieldSensitivity.keyOf; every pending one when empty): lowered or removed since the source adopted it, or gone with the row.
Approves, as an approver, a reviewed or adopted source for the datasets, when the catalog's switch says a new source takes an approver (wow.analytics.catalog.require-source-approval, ③b): until then no dataset reads it.
Drafts the analyst's source of database's table ((b)): the catalog reads the table's columns from the warehouse (system.columns); the source's id is me.ahoo.wow.analytics.catalog.api.AnalyticsCatalogContext.sourceIdOf of the warehouse's connection, database and table. A table that the Wow Sink describes by a trusted wow_catalog row is not an analyst's to draft.
How one value of a source is protected: the value at path (a column, or a JSON path below one such as state.customer.phone), of the event event at revision when it is an event's (empty and 0 otherwise), at level, or not sensitive when level is null, which is a decision too; its mask keeps keepPrefix and keepSuffix characters, or is the custom strategy a Wow schema names.
Marks an analyst's source reviewed: its tenant column is declared and each of its string columns is reviewed.
Records, value by value, the reviewer's decision on fields: sensitive at a level, or not. An analyst's source is reviewed by column; a Wow source's values may only be tightened above what its wow_catalog row says. Changing an analyst's reviewed source takes it back to its draft.
Declares an analyst's source's scope and references: the tenantColumn every row's tenant is in, the optional ownerColumn and spaceColumn, and the columns that refer to an aggregate the catalog knows (references). A table every tenant shares, such as currencies or regions, is instead a platform dimension, without a tenant column (-2): a dataset joins it without a tenant key once an approver marks it reviewed. A reviewed source goes back to its draft.
A privileged reviewer approved the lower protection of keys: the source's sensitivity is now as given.
An approver approved the source for the datasets.
An analyst drafted the source of database's table on connection, a warehouse of the engine type (clickhouse), with the table's uuid, its tableEngine (the kind of table as the warehouse names it) and its columns.
Where a source's description comes from.
The analyst's source is reviewed: a dataset may be built on it.
Where a source is in its review.
The source's table is no longer in the warehouse.
Brings a source up to date with the warehouse: its table's uuid and columns, and for a table the Wow Sink describes, the wow_catalog row the trust rules adopt. The catalog sends it when it sees the table or its wow_catalog rows change; it creates the Wow source of a table it does not know yet, and changes nothing for a table that is neither known nor trusted. Only the catalog's watcher sends it: internal.
The trusted wow_catalog row a Wow source adopted: the aggregate the table is of (service, context, aggregate, role such as state_flat, ownership), the row's fingerprint, the account that wrote it (writer) and when (writtenAt), and each event's revision. access is whether the aggregate's rows are read by an access policy of its own (POLICY) or by its scope's columns (DEFAULT), as its service says; empty in a row an earlier Sink wrote, which the catalog reads as POLICY.
The catalog adopted the trusted wow_catalog row enrichment of the table: the table's uuid, table engine and columns, the scope's columns, the references, and the sensitivity the source now gives each value, never lower than before; pending are the keys whose row now says lower or nothing, kept as they were until a privileged reviewer approves the change. created when the table had no source before; fromAnalyst when an analyst's source of the table became a Wow source.
The Wow source's trusted wow_catalog row is gone: each value keeps its protection, and the keys it gave are pending review.
The table's wow_catalog rows were not adopted, for reasons: an untrusted writer, another table's uuid, other columns than the table has. Recorded for the audit when the reasons change.
Functions
The key a FieldSensitivity is reviewed and approved by: its path, and for an event's value <path>@<event>#<revision>.