Versions Compared

Key

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

...

Now it will appear under syn9876543

Schemas:

Docker Repository Schema:

DockerRepository extends Entity

- name (registryhost/reponamerepopath)

EntityValidator validates format and that, for managed external/unmanaged repo's, the name starts with the parent entity id, that external repos' registryhosts donregistryhost doesn't violate the blacklist.

For managed repo's 'repopath' must start with the Synapse ID of a container (folder or project)

- isManaged: says whether this repository is managed by Synapse or is a reference to an external registry. 

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.)

DockerCommit:

Each Repository has a list of 'commits'.  For external repo's the user must provide them.  For managed repo's commits are added based on 'push' events received by the listener.

- tag e.g. "v1"  Is optional and must be unique for a docker repository

- digest: e.g. "SHA256:a68df63..."  Is required and must be unique for a docker repository

 Will provide a service to retrieve a repo based on its hash.

Services:

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

...

Synapse will create, update and delete its representation of a Docker repository in response to received registry events.

 

Open questions:

  • Should there be OK to have a Docker-Synapse password different from the user's Synapse password (or API key)?
  • Is it OK for Docker Repo's to have Folders as parents or just Projects?

...