Commit graph

894 commits

Author SHA1 Message Date
Joseph Schorr
171c7e5238 Further fixes for unicode handling in manifests
We were occasionally trying to compute schema 2 version 1 signatures on the *unicode* representation, which was failing the signature check. This PR adds a new wrapper type called `Bytes`, which all manifests must take in, and which handles the unicodes vs encoded utf-8 stuff in a central location. This PR also adds a test for the manifest that was breaking in production.
2019-01-09 15:14:41 -05:00
Joseph Schorr
636f65cb81 Disable flaky test on MySQL 2019-01-04 16:37:02 -05:00
Joseph Schorr
cdb49dbfd3 Add LogEntry3 table without the extra indexes and switch to writing to it 2019-01-03 13:50:43 -05:00
Joseph Schorr
b6db002729 Fix references to LogEntry model used and add support for a maximum page of results on the logs API 2019-01-02 16:04:15 -05:00
Joseph Schorr
204eb74c4f Put aggregated log query and log exports behind feature flags 2019-01-02 16:04:15 -05:00
Joseph Schorr
4ba4d9141b Put user last accessed updating behind a feature flag 2019-01-02 16:04:15 -05:00
Joseph Schorr
58d7dd07b9 Revert the changes to drop LogEntry2 table definition 2019-01-02 13:29:35 -05:00
Joseph Schorr
8a212728a3 Implement a worker for batch exporting of usage logs
This will allow customers to request their usage logs for a repository or an entire namespace, and we can export the logs in a manner that doesn't absolutely destroy the database, with every step along the way timed.
2018-12-18 15:33:03 -05:00
Joseph Schorr
9e2c5417b8
Merge pull request #3310 from quay/joseph.schorr/QUAY-1235/drop-logentry2
Remove all references to LogEntry2 from the code
2018-12-18 15:18:22 -05:00
Joseph Schorr
71b7a2b3a2 Make command optional in schema 2 manifests (as per OCI spec) and pull out additional information
Also updates the manifest view page to show the comment or digest if there is no command defined
2018-12-11 17:23:39 -05:00
Joseph Schorr
6a94eba1a2 Remove all references to LogEntry2 from the code
The migration to actually drop the table will go in after this code has been pushed to production
2018-12-11 15:54:16 -05:00
Joseph Schorr
a9b8586423 Make sure list_manifest_layers is not callable for manifest lists 2018-12-11 13:10:24 -05:00
Joseph Schorr
7fa60d5802 Fix manifest UI display for manifests with empty layers
Also fixes the command for schema 2 manifests
2018-12-10 17:10:54 -05:00
Joseph Schorr
4106f5ce51 Fix manifest UI page to properly show the layers of manifests and show manifest lists 2018-12-10 15:33:59 -05:00
Joseph Schorr
1e4e424d64 Fix add tag operation in UI on manifests without legacy images 2018-11-20 16:37:15 +02:00
Joseph Schorr
c079add0df Don't return images if a tag does not have a legacy image 2018-11-19 23:33:37 +02:00
Joseph Schorr
c46b11bac1 Implement UI support for manifest lists 2018-11-14 18:40:57 +02:00
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
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
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
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
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
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
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
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
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
fcb9fd3792 Move end to end auth tests for APIs into pytest 2018-07-17 16:28:03 -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
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
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