Expand description
Schema is one of the foundational concepts of the server. It provides a
set of rules to enforce that Entries ava’s must be compliant to, to be
considered valid for commit to the database. This allows us to provide
requirements and structure as to what an Entry must have and may contain
which enables many other parts to function.
To define this structure we define Attributes that provide rules for how
and ava should be structured. We also define Classes that define
the rules of which Attributes may or must exist on an Entry for it
to be considered valid. An Entry must have at least 1 to infinite
Classes. [`Classes’] are additive.
Structs§
- Schema
- Schema stores the set of
ClassesandAttributesthat the server will use to validateEntries,FiltersandModifications. Additionally the schema stores an extracted copy of the current attribute indexing metadata that is used by the backend during queries. - Schema
Attribute - An item representing an attribute and the rules that enforce it. These rules enforce if an
attribute on an
Entrymay be single or multi value, must be unique amongst all other types of this attribute, if the attribute should beindexed, and what type of datasyntaxit may hold. - Schema
Class - An item representing a class and the rules for that class. These rules enforce that an
Entry’s avas conform to a set of requirements, giving structure to an entry about what avas must or may exist. The kanidm project provides attributes insystemmustandsystemmay, which can not be altered. An administrator may extend these in themustandmayattributes. - Schema
Read Transaction - A readonly transaction of the working schema set.
- Schema
Write Transaction - A writable transaction of the working schema set. You should not change this directly, the writability is for the server internally to allow reloading of the schema. Changes you make will be lost when the server re-reads the schema from disk.