Versions Compared

Key

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

...

Docker Repository Schema:

DockerRepo
id: Long
host: String
port: Integer
uname: String (used only for external repositories?)
name: String (this is the 'repo name')
createdOn: String
createdBy: String
modifiedOn: String
modifiedBy: String
etag: String

Note:  This is versionable.  The version must include the digest and allow a tag.DockerRepository extends Entity

- name (registryhost/reponame)

metadataprovider validates format and that, for managed repo's, the name starts with the parent entity id, that external repos' registryhosts don't violate the blacklist

- list of tag/digest pairs

digests must be unique
tags are optional but must be unique
for managed repo's the list can't be edited by the user

We have a 'white list' of registry hosts for which we answer authorization requests and a 'reserved' list of registry hosts for which external repositories can't be created.  (This allows us to reserve address spaces for the future.  E.g. the white list could contain docker.synapse.org:443 and the reserved list  *.synapse.org.)

Services:

Create, Update and Delete entity: not allowed for entities which are 'managed', i.e. their host field matches that of a managed repo.

...