Legend:
Library
Module
Module type
Parameter
Class
Class type
Persistent data: on wire and record types
Every resource in conex is a piece of data (or metadata), and has its own purpose. Resources stored on disk consists of a common header: a name, a type, a counter, an epoch, and a creation timestamp. There are broadly three kinds of resources: those containing identities (Team and Author), those regulating access to packages (Authorisation), and those with the digests of the opam repository data (Releases and Release).
Names and identifiers
type name = string
The name of resources, used e.g. for package names.
The wire encoding is abstract here, one suitable decoding and encoding engine is Conex_opam_encoding. The wire encoding is used for digest computations, and persistent storage on disk.
The root contains the (offline) root keys, also defines snapshot, timestamp, and maintainers. Furthermore, it contains configuration information such as where keys are located in this repository and where the data is stored.