Versions Compared


  • This line was added.
  • This line was removed.
  • Formatting was changed.

This is an implementation proposal for Blockstore. The focus will be on defining a separation of concerns for Blockstore as an independently deployable application, and how its concerns should manifest. Where some functionality is delegated to an external service, a brief explanation of how the external component provides that service in the context of Blockstore is given.


For reference, we group Units and Assets into "Linkables", and those plus Collections and Links into "Versionables".


A Collection is an abstraction over a group of linkables to provide common metadata to that group.

Note that the fields in a Collection are mostly metadata, and although many can be argued to be foreign keys to separate models that give a bit more detail for each field, in this first iteration of an implementation draft we simplify things and only use CharFields – the actual implementation can use extra models as necessary.

Collections are versioned and thus derive from Version.

uuidUUIDFieldUniversally unique identifier for the Collection.
nameCharFieldA descriptive title for the Collection.
descriptionCharFieldA summary of what this Collection contains.
ownerCharFieldWho legally owns any original content in this Collection.
authorCharFieldWho is credited for authorship of original content in this Collection.
licenseCharFieldThe license bound to all content in this Collection.