Commit graph

780 commits

Author SHA1 Message Date
Stephen J Day
40273b1d36 Implement immutable manifest reference support
This changeset implements immutable manifest references via the HTTP API. Most
of the changes follow from modifications to ManifestService. Once updates were
made across the repo to implement these changes, the http handlers were change
accordingly. The new methods on ManifestService will be broken out into a
tagging service in a later PR.

Unfortunately, due to complexities around managing the manifest tag index in an
eventually consistent manner, direct deletes of manifests have been disabled.

Signed-off-by: Stephen J Day <stephen.day@docker.com>
2015-03-04 21:40:55 -08:00
Stephen J Day
f536633ca8 spec: fetch manifests by tag or digest
Manifests are now fetched by a field called "reference", which may be a tag or
a digest. When using digests to reference a manifest, the data is immutable.
The routes and specification have been updated to allow this.

There are a few caveats to this approach:

1. It may be problematic to rely on data format to differentiate between a tag
   and a digest. Currently, they are disjoint but there may modifications on
   either side that break this guarantee.
2. The caching characteristics of returned content are very different for
   digest versus tag-based references. Digest urls can be cached forever while tag
   urls cannot.

Both of these are minimal caveats that we can live with in the future.

Signed-off-by: Stephen J Day <stephen.day@docker.com>
2015-03-04 21:39:36 -08:00
Stephen Day
0418788239 Merge pull request #233 from xiekeyang/master
digest: func Validate in digest doesn't filter no-hex data
2015-03-04 21:30:34 -08:00
Stephen Day
f65cba0c38 Merge pull request #240 from xiekeyang/patch222
doc/spec: patch #222 to api.md.tmpl
2015-03-04 21:24:40 -08:00
xiekeyang
4f9a6782bb patch #222 to api.md.tmpl 2015-03-05 13:12:27 +08:00
xiekeyang
7a01d1fae2 Merge branch 'master' of https://github.com/xiekeyang/distribution 2015-03-05 10:40:53 +08:00
xiekeyang
8081a13cdf :func Validate in digest doesn't filter no-hex data 2015-03-05 10:36:48 +08:00
xiekeyang
04e6cc37fa func Validate in digest doesn't filter no-hex data 2015-03-05 10:28:30 +08:00
Stephen Day
91403c1b52 Merge pull request #234 from ncdc/signature-service
Expose Signatures() on Repository
2015-03-04 18:24:36 -08:00
Josh Hawn
e249b478d9 Merge pull request #231 from stevvooe/remove-unnecessary-close
Remove unnecessary close in client
2015-03-04 18:19:35 -08:00
Andy Goldstein
6b12e34a4b Expose Signatures() on Repository
Add a SignatureService and expose it via Signatures() on Repository so
external integrations wrapping the registry can access signatures.

Move signature related code from revisionstore.go to signaturestore.go.

Signed-off-by: Andy Goldstein <agoldste@redhat.com>
2015-03-04 20:56:11 -05:00
Stephen Day
5b72d32265 Merge pull request #227 from stevvooe/readme-documentation-outline
README, doc: update README and outline documentation
2015-03-04 15:07:20 -08:00
Stephen J Day
dc0408767a Remove unnecessary close in client
Signed-off-by: Stephen J Day <stephen.day@docker.com>
2015-03-03 19:29:12 -08:00
Stephen Day
bfef2046e8 Merge pull request #218 from endophage/DIST-148
registry/storage: buffered wrapper for fileWriter
2015-03-03 18:08:28 -08:00
Stephen Day
72b48812b4 Merge pull request #212 from stevvooe/add-documentation-name-validator
documentation for name validation grammar
2015-03-03 17:32:54 -08:00
David Lawrence
5161d69ebf wrap buffered writer around filewriter
benchmarks added to filewriter_test, demonstrate buffered
version is ~5x faster on my hardware.
Signed-off-by: David Lawrence <david.lawrence@docker.com> (github: endophage)
2015-03-03 16:23:21 -08:00
Stephen Day
ce6e7c9af2 Merge pull request #228 from stevvooe/update-version-authors
Update AUTHORS and default version package
2015-03-03 10:54:19 -08:00
Stephen J Day
ea50359c05 Update AUTHORS and default version package
Signed-off-by: Stephen J Day <stephen.day@docker.com>
2015-03-02 23:39:19 -08:00
Stephen J Day
ad11768765 Update README and outline documentation
Signed-off-by: Stephen J Day <stephen.day@docker.com>
2015-03-02 23:33:02 -08:00
Stephen J Day
6add5f30d2 documentation for name validation grammar
Signed-off-by: Stephen J Day <stephen.day@docker.com>
2015-03-02 10:55:31 -08:00
Stephen Day
16d8b2c34d Merge pull request #213 from stevvooe/docker-upload-uuid
doc/spec, registry/handlers: specify and implement Docker-Upload-UUID
2015-03-02 10:51:15 -08:00
Stephen Day
41e03596de Merge pull request #208 from endophage/path_traversal_tests
registry/api/v2: test cases for path traversal and bad characters
2015-03-02 10:49:35 -08:00
David Lawrence
6f1b92621c Adding test cases to confirm path traversal attempts are mitigated and
bad characters in URI return 404
Signed-off-by: David Lawrence <david.lawrence@docker.com> (github: endophage)
2015-03-02 09:15:49 -08:00
Olivier Gambier
3a55e9525b Merge pull request #223 from xiekeyang/master
jump to relevant issue page
2015-02-27 19:39:13 -08:00
xiekeyang
10841a068d jump to relevant issue page 2015-02-28 11:38:38 +08:00
Olivier Gambier
15cb769124 Merge pull request #222 from xiekeyang/master
correct url writing
2015-02-27 19:15:23 -08:00
xiekeyang
0da3dcf038 Merge branch 'master' of https://github.com/xiekeyang/distribution 2015-02-28 11:03:48 +08:00
xiekeyang
d46cf006a3 update api.md 2015-02-28 11:02:47 +08:00
Stephen Day
531d9eba9e Merge pull request #202 from endophage/master
registry/handlers: support prefixed registry app
2015-02-27 10:15:02 -08:00
Stephen J Day
996235dc59 Specify and implement Docker-Upload-UUID
This changeset adds support for a header to identify docker upload uuids. This
id can be used as a key to manage local state for resumable uploads. The goal
is remove the necessity for a client to parse the url to get an upload uuid.
The restrictions for clients to use the location header are still strongly in
place.

Signed-off-by: Stephen J Day <stephen.day@docker.com>
2015-02-26 16:43:47 -08:00
David Lawrence
1700f518cb Path prefix support for running registry somewhere other than root of server
Signed-off-by: David Lawrence <david.lawrence@docker.com> (github: endophage)
2015-02-26 16:04:43 -08:00
Stephen Day
47a8ad7a61 Merge pull request #196 from fkautz/pr_out_removing_dependencies_from_makefile_authors_target_that_break_build_in_pristine_git_env
Removing dependencies from Makefile AUTHORS target that break build in pristine git env
2015-02-23 15:31:41 -08:00
Frederick F. Kautz IV
65450aca98 Removing dependencies from Makefile AUTHORS target that break build in pristine git env
Signed-off-by: Frederick F. Kautz IV <fkautz@alumni.cmu.edu>
2015-02-23 15:11:04 -08:00
Stephen Day
0713e1c4b2 Merge pull request #195 from fkautz/pr_out_fixing_build_godeps_entry_for_github_com_msopentech_azure_sdk_for_go_was_pointing_to_the_wrong_location
Fixing build, GoDeps entry for github.com/MSOpenTech/azure-sdk-for-go was pointing to the wrong location
2015-02-23 13:51:15 -08:00
Frederick F. Kautz IV
d80a856fc1 Fixing build, GoDeps entry for github.com/MSOpenTech/azure-sdk-for-go was pointing to the wrong location 2015-02-20 17:45:25 -08:00
Stephen Day
5c4f03d38e Merge pull request #189 from donhcd/rootcertbundle
Rename auth.token.{rootCertBundle -> rootcertbundle}
2015-02-19 19:31:55 -08:00
Stephen Day
a4bf5b7c2b Merge pull request #190 from stevvooe/manifest-digest-type
Specify manifest schema version 1 media type
2015-02-19 19:26:45 -08:00
Stephen Day
c3536ea1c5 Merge pull request #191 from stevvooe/missing-digest-bad-request
A digest missing parameter should result in a bad request
2015-02-19 18:30:58 -08:00
Stephen Day
5a080c8265 Merge pull request #192 from dmcgowan/remove-unsupported-hashes
Replace unsupported hashes with supported
2015-02-19 18:30:49 -08:00
Derek McGowan
2289b1f2e8 Replace unsupported hashes with supported
Remote md5 and sha1 hashes which are not supported by distribution.
Add more secure hashes sha384 and sha512.

Signed-off-by: Derek McGowan <derek@mcgstyle.net> (github: dmcgowan)
2015-02-19 17:55:05 -08:00
Stephen J Day
c2b20907d9 A digest missing parameter should result in a bad request
Signed-off-by: Stephen J Day <stephen.day@docker.com>
2015-02-19 17:14:25 -08:00
Stephen J Day
0b6b2f9c5f Specify manifest schema version 1 media type
Signed-off-by: Stephen J Day <stephen.day@docker.com>
2015-02-19 16:47:13 -08:00
Donald Huang
77de18f751 Rename auth.token.rootCertBundle yml field
Renames auth.token.rootCertBundle field in registry config to rootcertbundle so
that the REGISTRY_AUTH_TOKEN_ROOTCERTBUNDLE environment variable will override it.

See
()[https://github.com/docker/distribution/blob/master/configuration/parser.go#L155]

Signed-off-by: Donald Huang <don.hcd@gmail.com>
2015-02-20 00:46:24 +00:00
Stephen Day
c1840978b7 Merge pull request #184 from AndreyKostov/storagedriver-s3-fix-empty-root
Fix S3 driver's list when the root directory is either "" or "/"
2015-02-19 16:45:30 -08:00
Andrey Kostov
df71f3451a Fix S3 driver's list when the root directory is either "" or "/" 2015-02-19 16:31:34 -08:00
Andrey Kostov
da5510b55e Add an empty root directory s3 driver specific test 2015-02-19 16:28:32 -08:00
Stephen Day
4c2a490ff0 Merge pull request #177 from stevvooe/update-depenendencies
Godeps, Makefile, mailmap: add missing dependencies, dist binary build
2015-02-16 16:15:36 -08:00
Stephen J Day
8865a1ba3c Add dist binary target to Makefile
Signed-off-by: Stephen J Day <stephen.day@docker.com>
2015-02-16 14:25:17 -08:00
Stephen J Day
fd2179d52b Update mailmap file with some new aliases
Signed-off-by: Stephen J Day <stephen.day@docker.com>
2015-02-16 14:21:28 -08:00
Stephen J Day
c1acc0a168 Update dependencies missing in older PR
Some dependencies in a PR from an older branch broke the master build. The
change adds the missing dependencies and updates some others.

Signed-off-by: Stephen J Day <stephen.day@docker.com>
2015-02-16 14:19:00 -08:00