Class Entity<TFields, TID, TViewerContext, TSelectedFields>Abstract

Entity is a privacy-first data model.

A instance of an entity represents a single "row" of persisted data in a database that a viewer, represented by the corresponding ViewerContext, has permission to read.

Create, read, update, and delete permissions for an entity are declaratively defined using an EntityPrivacyPolicy.

Entites are loaded through an EntityLoader, which is responsible for orchestrating fetching, caching, and authorization of reading "rows".

Entities are mutated and deleted through an EntityMutator, which is responsible for orchestrating database writes, cache invalidation, and authorization of writing "rows".

All concrete entity implementations should extend this class and provide their own EntityCompanionDefinition.

Type Parameters

Hierarchy (view full)

Constructors

Methods