Module kanidmd_lib::schema
source · 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 stores the set of
Classes
andAttributes
that the server will use to validateEntries
,Filters
andModifications
. Additionally the schema stores an extracted copy of the current attribute indexing metadata that is used by the backend during queries. - 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 insystemmust
andsystemmay
, which can not be altered. An administrator may extend these in themust
andmay
attributes. - A readonly transaction of the working schema set.
- 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.