package conex
Module Conex_resourceSource
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
The name of resources, used e.g. for package names.
pp_name name is a pretty printer for name.
name_equal a b is the result of a case insensitive comparison of a and b.
The type of identifiers.
pp_id id is a pretty printer for identifier.
id_equal a b is the result of a case insensitive comparison of a and b.
The type for a timestamp, always a RFC3339 string in UTC (no timezone information).
Wire format
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.
Resource types
The sum type of all possible resources.
string_to_resource str is either Some resource or None.
pp_resource pp is a pretty printer for resource.
resource_equal a b is true if they are the same, otherwise false.
Digests
Asymmetric key types
Cryptographic signatures
to_be_signed data timestamp id algorithm prepares the representation used by signing and verification
Root
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.