Joseph Schorr
30f072aeff
Add support for creating schema 2 manifests and manifest lists via the OCI model
2018-11-12 23:27:49 +02:00
Joseph Schorr
6b86b87a16
Merge pull request #3290 from quay/joseph.schorr/QUAY-1124/implement-new-data-model
...
Implement the new OCI-based registry data model
2018-11-08 13:39:29 -05:00
Joseph Schorr
fdcb8bad23
Implement the new OCI-based registry data model
...
Note that this change does *not* enable the new data model by default, but does allow it to be used when a special environment variable is specified.
2018-11-07 22:07:58 -05:00
Sida Chen
d30045a424
Fix wrong utc timestamp in tag expiration view
...
* changed expiration date response to parse UTC timestamp from the
database. This problem only happens when testing using Sqlite.
2018-11-07 16:51:59 -05:00
Joseph Schorr
114e2c3bf2
Have all tag code add, modify and delete both old and new style tags
...
This preps us for being able to use the new data model with existing repositories
2018-11-01 17:59:10 -04:00
Joseph Schorr
088a301754
Add extra exception handling around stream_write in verbs
2018-10-31 12:46:58 -04:00
Joseph Schorr
88f19ee0b9
Make blob upload errors more specific
2018-10-29 12:21:18 -04:00
Joseph Schorr
4a7b4ad06a
Fix disabled namespace check
2018-10-18 14:25:40 -04:00
Joseph Schorr
cbf0edb164
Address remaining usage of the old data interface
2018-10-18 14:25:40 -04:00
Joseph Schorr
3a8a913ad3
Convert V2's catalog endpoint to use the new data model interface
2018-10-18 14:25:40 -04:00
Joseph Schorr
e91ba98e1b
Convert V2's tag endpoints to use the new data model interface
2018-10-18 14:25:40 -04:00
Joseph Schorr
6b5064aba4
Convert V2's manifest endpoints to use the new data model interface
2018-10-18 14:25:40 -04:00
Joseph Schorr
a172de4fdc
Reimplement cache support for blobs in the registry data model
2018-10-18 14:25:40 -04:00
Joseph Schorr
7a68c41f1c
Convert V2 to use the blob uploader interface
2018-10-18 14:25:40 -04:00
Joseph Schorr
4520f9e842
Change V1 to use the manifest builder and new registry data model
2018-09-28 17:30:04 -04:00
Joseph Schorr
468e5a8fc2
Merge pull request #3250 from quay/joseph.schorr/QUAY-1030/interfacing-part-9
...
Implement blob uploader and change V1 to use it
2018-09-24 16:03:41 -04:00
Joseph Schorr
7567808a10
Fix bug in V1 delete tag code and add a test
2018-09-24 12:54:56 -04:00
Joseph Schorr
077c3908e4
Change V1 upload code to use the new blob uploader
2018-09-24 12:54:56 -04:00
Joseph Schorr
a38edea11b
Allow use of basic auth for security scan endpoints
...
This will allow the security labeler to send a pull secret to retrieve security information for a manifest
Fixes https://jira.coreos.com/browse/QUAY-1087
2018-09-21 13:54:33 -04:00
Kenny Lee Sin Cheong
8e643ce5d9
Repository endpoint tags pagination ( #3238 )
...
* endpoint/api/repository: limit the number of tags returned
- Limit the number of tags returned by /api/v1/repository/<ns:repo> to 500.
- Uses the tag history endpoint instead, with an active tag filte.
- Update UI to use tag history endpoint instead.
2018-09-14 15:30:54 -04:00
Joseph Schorr
3bd1b21ca9
Fix ACI conversion and add a registry test for it
2018-09-13 14:12:23 -04:00
Joseph Schorr
a4f1475de4
Merge pull request #3234 from quay/joseph.schorr/QUAY-1030/interfacing-part-8
...
Change verbs endpoint to use the new registry data model interface
2018-09-13 12:50:02 -04:00
Joseph Schorr
10b14866f5
Fix test notification data for repo_pull to match actual data
...
Fixes https://jira.coreos.com/browse/QUAY-1023
2018-09-12 17:31:07 -04:00
Joseph Schorr
54aca8206b
Merge pull request #3246 from quay/joseph.schorr/QUAY-1079/oidc-improvements
...
OIDC improvements
2018-09-12 16:17:51 -04:00
Jimmy Zelinskie
2da80aa1a0
endpoints/api: fix docs on dates for logs API
...
The code actually adds the timezone, so previously this was very
confusing telling the user that they needed to provide the timezone.
2018-09-12 13:06:42 -04:00
Joseph Schorr
5240140a96
Add support for POST calls to OIDC endpoints
2018-09-07 14:52:00 -04:00
Joseph Schorr
f252b0b16f
Move verbs endpoint to use new registry data model
2018-08-29 16:38:54 -04:00
Joseph Schorr
6c5c2f1a75
Add new methods to registry data model interface in prep for moving verbs to using it
2018-08-29 16:38:54 -04:00
Joseph Schorr
f297249100
Move manifest backfill for V1 tags into the new registry model interface
2018-08-27 15:01:27 -04:00
Sam Chow
a40e1e939a
Merge branch 'master' into delete-setup-page
2018-08-27 11:26:51 -04:00
Joseph Schorr
bbf9e52a6d
Remove recursive image history
...
We don't need it and it breaks our API for larger manifests
2018-08-24 15:27:13 -04:00
Joseph Schorr
5dfccb9f2c
Update manifest test to use new registry_model
2018-08-24 13:18:34 -04:00
Joseph Schorr
a9ebb183f9
Change repositories API endpoint to use the new registry data model
2018-08-24 11:25:36 -04:00
Joseph Schorr
46edebe6b0
Change secscan API endpoints to use new registry model interface
2018-08-23 16:36:04 -04:00
Sam Chow
cd6b0a6f46
Merge branch 'master' into delete-setup-page
2018-08-23 12:46:08 -04:00
Joseph Schorr
bc99dd7963
Change tags API endpoint to use new registry model interface
2018-08-22 18:03:57 -04:00
Joseph Schorr
a0a6a3d67d
Change manifest API endpoints to use new registry data interface
2018-08-21 17:26:32 -04:00
Sam Chow
d44aa8f566
Add error message to app if secret missing in quay
2018-08-20 17:14:52 -04:00
Joseph Schorr
23ff49f0c1
Adjust usage of image model in manifest model
2018-08-20 16:47:38 -04:00
Joseph Schorr
7b95082a99
Change image API endpoint to use new registry model
2018-08-20 15:49:51 -04:00
Sam Chow
6afc00bf77
Remove old setup page from main app
...
Change page for incomplete setup
Remove old endpoints not in use
2018-08-20 10:30:21 -04:00
Sam Chow
cc9bedbeb9
refactor approval service key to not need approver
2018-08-15 17:18:41 -04:00
Jimmy Zelinskie
b7573a8c88
endpoints/v2: fail clients not accepting schema v1
2018-08-15 14:49:26 -04:00
Jimmy Zelinskie
568ca1d7ba
delete trailing whitespace
2018-08-15 13:21:26 -04:00
Joseph Schorr
701eac5466
Fix registry tests to not terminate prematurely when looking for errors
...
Also reorders a check in the V1 protocol to have better error messaging for the users
2018-08-10 13:36:20 -04:00
Joseph Schorr
590f8f65a3
Allow lookup of "dead" manifests so manifest links can be clicked in the tag history
...
Fixes https://jira.coreos.com/browse/QUAY-1021
2018-08-09 16:05:10 -04:00
Joseph Schorr
56222f95dc
Change manifest creation to take in the map of blobs that form the manifest
...
We need to lookup the blobs *specific to the images in that manifest*, so we now pass them in from the locations in which we know that information
2018-08-07 16:28:50 -04:00
Joseph Schorr
e33ccff8cb
Fix query count in test
2018-08-07 14:52:33 -04:00
Joseph Schorr
89582438cd
Fix the V22 phase 1 migrations to use new tables for mapping rather than editing existing tables
...
The ALTER TABLE operations previously used were causing the DB to die when run on the production TagManifest table which has 7 million rows. We instead now use new mapping tables, which is less nice, but these are temporary anyway, so hopefully we only have to deal with their ugliness for a short duration.
2018-08-06 16:58:27 -04:00
Joseph Schorr
a46660a06f
Add new Manifest, ManifestLabel, ManifestLegacyImage and ManifestBlob tables and start writing and GCing to/from them
...
This change also starts passing in the manifest interface, rather than the raw data, to the model for writing.
Note that this change does *not* backfill the existing rows in to the new tables; that will occur in a followup PR. The new columns in `tagmanifest` and `tagmanifestlabel` will be used to track the backfill, as it will occur in a worker.
2018-08-06 13:01:11 -04:00
Joseph Schorr
7325b22c90
Change id column in LogEntry to a BigInt and migrate back to using that table
2018-07-30 12:42:56 -04:00
Joseph Schorr
c34eacb4fa
Fix issue accessing a null tagmanifest under a tag in a repository
2018-07-25 16:14:20 -04:00
Joseph Schorr
487edf0ba1
Phase 3 of Appr migration
...
Deletes the old models and their code
2018-07-21 15:43:00 -04:00
Joseph Schorr
223077ef53
Phase 2 of Appr migration
...
Backfills the new tables from the old ones, and switches all code to read and write from the new tables
2018-07-21 15:43:00 -04:00
Joseph Schorr
a3c3c0abc7
Phase 1 of migrating APPR-specific tables to tables with the Appr
prefix
...
Fixes https://jira.coreos.com/browse/QUAY-950
2018-07-21 15:43:00 -04:00
Joseph Schorr
acb7d626a4
Phase 2 of Appr migration
...
Backfills the new tables from the old ones, and switches all code to read and write from the new tables
2018-07-21 15:25:04 -04:00
Joseph Schorr
113bb96f29
Phase 1 of migrating APPR-specific tables to tables with the Appr
prefix
...
Fixes https://jira.coreos.com/browse/QUAY-950
2018-07-20 13:19:01 -04:00
Joseph Schorr
6622f27c93
Rename oci_model to appr_model
2018-07-20 12:46:19 -04:00
Joseph Schorr
306e79e493
Move trigger tests into pytest
...
Note that we split the tests between endpoints/building and buildtrigger
2018-07-19 11:10:19 -04:00
Joseph Schorr
78317c0e93
Merge pull request #3149 from quay/joseph.schorr/QUAY-1000/remove-chatlio
...
Remove chatlio support chat
2018-07-18 02:54:27 +03:00
Joseph Schorr
6a322c90f4
Merge pull request #3154 from quay/move-manifest-cornercase-test
...
Move manifest corner case tests to pytest
2018-07-17 23:53:49 +03:00
Joseph Schorr
58e553838c
Move manifest corner case tests to pytest
2018-07-17 16:40:56 -04:00
Joseph Schorr
fcb9fd3792
Move end to end auth tests for APIs into pytest
2018-07-17 16:28:03 -04:00
Joseph Schorr
c2778c7031
Remove chatlio support chat
...
Fixes https://jira.coreos.com/browse/QUAY-1000
2018-07-17 12:55:17 -04:00
Sam Chow
496d94138c
Merge pull request #3139 from quay/spike/install-certs
...
Install certs in the config app, small refactor to LDAP validation
2018-07-16 12:50:36 -04:00
Joseph Schorr
6c3cf403bd
Merge pull request #3137 from quay/joseph.schorr/QUAY-963/repo-name-check
...
Ensure that we limit the length of repository names
2018-07-15 19:17:40 +03:00
Joseph Schorr
a572fd33c7
Ensure that we limit the length of repository names
...
Until now, they'd simply be truncated by the database. Now, we properly check their lengths.
Fixes https://jira.coreos.com/browse/QUAY-963
2018-07-13 13:22:33 +03:00
Joseph Schorr
d32efc4e17
Move anon checked test to pytest
2018-07-12 15:24:49 +03:00
Joseph Schorr
00d965a301
Merge pull request #3135 from quay/joseph.schorr/QUAY-999/informative-errors
...
Make API errors more informative
2018-07-10 22:41:34 +03:00
Sam Chow
bd54eacbad
Add app var for init scripts location to access certs install
2018-07-10 11:43:34 -04:00
Joseph Schorr
924dda296f
Fully migrate API security tests into the pytest test suite
...
Also adds an additional test that ensures that at least one security test exists for every (api endpoint, http method) pair.
2018-07-08 18:33:21 +03:00
Joseph Schorr
4f152fd7c7
Make API errors more informative
...
Fixes https://jira.coreos.com/browse/QUAY-999
2018-07-08 11:45:33 +03:00
Brad Ison
73cb7f3228
endpoints/api: Allow null fields in user metadata
...
The user metadata fields are nullable in the database, but were not in
the json sechema. This prevented users from updating some of their
information on the site if they hadn't set the metadata fields.
2018-06-27 15:34:55 -04:00
Sam Chow
f32bbf1fdc
Merge pull request #3121 from quay/project/upload-tar
...
Q.E. User can upload a tarball config to modify
2018-06-22 14:50:21 -04:00
Joseph Schorr
892cc82b6a
Ensure that verbs cannot be performed on disabled namespaces or by disabled users
2018-06-21 14:41:27 -04:00
Sam Chow
b5f630ba29
Fix alembic migrations importing app
...
Ensure we connect to loaded config db
2018-06-20 17:17:35 -04:00
Joseph Schorr
2caaf84f31
Add caching support to catalog
...
We will now cache the results of the catalog for 60s and not hit the database at all if cached
2018-06-20 14:58:01 -04:00
Joseph Schorr
7604e9842b
Change repo filtering for users to use a user ID reference, rather than the username
...
While this means we need an additional query for initial lookup, it makes the *filtering* query (which is the heavy part) require far fewer joins, thus making it more efficient.
Also adds a new unit test to verify that our filter filters to the correct set of repositories.
2018-06-19 10:51:30 -04:00
Joseph Schorr
3161b60522
Switch V2 pagination back to using IDs, which should be much faster and easier on the DB
...
Also adds a test for the tags endpoint
2018-06-18 16:11:26 -04:00
Joseph Schorr
0fdefd78e9
Extract app from torrent handling code
...
Fixes https://jira.coreos.com/browse/QUAY-969
2018-06-14 17:29:39 -04:00
Sam Chow
093a58558c
Merge pull request #3104 from quay/project/app-endpoints
...
Config App initial entrypoint
2018-06-12 17:03:59 -04:00
Joseph Schorr
1be22a9a56
Merge pull request #3110 from quay/joseph.schorr/QUAY-966/gitlab-v4
...
Reimplement GitLab trigger handler using the V4 API library
2018-06-12 17:03:31 -04:00
Joseph Schorr
bf966545ba
Reimplement GitLab trigger handler using the V4 API library
...
GitLab has deprecated and removed the V3 API entirely
Fixes https://jira.coreos.com/browse/QUAY-966
2018-06-12 15:01:37 -04:00
Sam Chow
e9d24dc5ff
Make script paths work in docker and locally for config_app
2018-06-12 14:45:00 -04:00
Sam Chow
d080ca2cc6
Create webpack config for config app
...
further improve developer morale
get initial angular loading
Add remote css to config index
Starts work to port endpoints into config app
Add the api blueprint
2018-06-12 14:44:15 -04:00
Sam Chow
92db413da6
Start moving configapp into separate dir
2018-06-12 14:44:15 -04:00
Sam Chow
81af2d9fcc
Use different js bundle with base html
2018-06-12 14:44:11 -04:00
Joseph Schorr
0fa1a1d5fd
Implement support for blob mounting via the mount
parameter on blob uploads
...
Fixes https://jira.coreos.com/browse/QUAY-893
2018-06-06 11:31:28 -04:00
Sam Chow
708b7ee669
Add config flag that only renders new simple page
2018-06-06 10:28:37 -04:00
Joseph Schorr
ef167ab7e3
Rate limit the catalog endpoint by auth token and IP address
2018-06-05 18:24:31 -04:00
Joseph Schorr
2e0edf8f6e
Have catalog endpoint return empty if the namespace is disabled
2018-06-05 17:31:00 -04:00
Sam Chow
7f21d0da58
Merge pull request #3096 from quay/refactor/secscan-simple
...
Refactor validators to decouple app
2018-06-01 15:44:18 -04:00
Sam Chow
301cc6992a
Remove jwt validation for jschorr to fix later
...
Refactor oauth validate method to take config over entire appconfig
2018-06-01 15:07:06 -04:00
Sam Chow
7df8ed4a60
Add a security scanner api config object for params
...
Change SecScanAPI to use a uri creation func instead of test context
Pass config provider through validator context
Remove app config dependency for validators
2018-06-01 15:06:50 -04:00
Sam Chow
554d4f47a8
Change validators to use the validator_context
...
Change InstanceKeys to take a namedtuple for context
2018-06-01 14:59:49 -04:00
Joseph Schorr
b2262eaf46
Add feature flag to disable username confirmation
...
Fixes https://jira.coreos.com/browse/QUAY-914
2018-06-01 13:30:50 -04:00
Joseph Schorr
8ee98c1c48
Show starred public repositories in the starred repos list
...
We forgot to check if the repository was public in the filter
Fixes https://jira.coreos.com/browse/QUAY-857
2018-05-31 17:34:17 -04:00
Sam Chow
e967fde3ae
Decouple oauth methods from app with a namedtuple
2018-05-31 14:53:27 -04:00
Sam Chow
d45b925155
Move config provider to _init to decouple from app
...
remove app references from validators
2018-05-25 11:15:06 -04:00
Joseph Schorr
f86c087b3b
Prevent registry operations against disabled namespaces
...
Allows admins to completely wall off a namespace by disabling it
Fixes https://jira.coreos.com/browse/QUAY-869
2018-05-22 18:36:04 -04:00