-
Notifications
You must be signed in to change notification settings - Fork 3
Minimum metadata needed to operate #34
Description
#31 exposes the current metadata for a Register. This opens the question of what is the minimum metadata needed to operate a register? That could be in development, discovery, production, … so it is mostly a technical question with any extra guarantees we need to have on top of that.
RFC0018 defines the context as:
type Context =
{ id : Name
, copyright : Maybe String
, custodian : Maybe String
, description : Maybe String
, hashingAlgorithm : HashingAlgorithm
, licence : Maybe String
, rootHash : Hash
, schema : Schema
, stats : Stats
, status : Status
, title : Maybe String
}This suggests that id, copyright, hashing algorithm, schema are the minimum information needed for the Register to compose this resource.
Note that root hash, stats and status are computed values.
I'll try to describe, one by one, the reason they are part of the context and my thoughts on why they need to be present.
id: The identifier of the register is still connected with the attribute name for the primary key, the domain name and the curie prefix. Once this is untangled we could reassess if this even needs to exist inside a register.
hashing algorithm: Required to know how to hash blobs, entries, proofs, etc.
schema: Required to validate the data to be stored in the register.
copyright: Technically not required. Except in development or casual deploys, I think this should be explicitly stated. Given that is not required to operate it is optional. It would be nice to find a way to ensure this is present on registers that need to be published, perhaps an external checker.
licence: Technically not required. Except in development or casual deploys, I think this should be explicitly stated. Given that is not required to operate it is optional. It would be nice to find a way to ensure this is present on registers that need to be published, perhaps an external checker.
custodian: Technically not required. Except in development or casual deploys, I think this should be explicitly stated. Given that is not required to operate it is optional. It would be nice to find a way to ensure this is present on registers that need to be published, perhaps an external checker.
description: Technically not required. Nice for discovery and supporting the catalogue.
title: Technically not required. Nice for discovery and supporting the catalogue.
So, with id and hashing algorithm a register can exist, empty. Once a schema is defined, then it can be used.