1
0
mirror of https://github.com/quay/quay.git synced 2026-01-26 06:21:37 +03:00
Commit Graph

82 Commits

Author SHA1 Message Date
Shubhra Deshpande
240d6441ba feat: Add image pull statistics API endpoints and UI integration (PROJQUAY-7176) (#4382)
feat: Add image pull statistics API endpoints and UI integration

- Add new API endpoints for tag and manifest pull statistics
- Integrate pull metrics into web UI with new table columns
- Add FEATURE_IMAGE_PULL_STATS feature flag and PULL_METRICS_REDIS config
- Add pullstatsredisflushworker to supervisord configuration
- Add comprehensive test coverage for pull statistics functionality

Co-authored-by: shudeshp <shudeshp@redhat.com>
2025-10-27 15:19:52 -04:00
Ivan Bazulic
9be679eb58 mirror: Add job timeout to mirror configurations (PROJQUAY-7249) (#3723)
* mirror: Add job timeout to mirror configurations (PROJQUAY-7249)
Previous global job timeout of 5 minutes was inadequate for big images. The timeout should now be configurable in much the same way as sync is. Minimum job length is 300 seconds/5 minutes.

The PR is still work in progress.

* Fix init db, remove reference to user data in logs

* Fix tests, change repo mirror configuration

* Fix tests, make mirroring cancellable through UI

* Add cancel mirror test, change HTML document to reflect mirror timeout

* Flake8 doesn't like when '==' is used with 'None'

* Fix mirror registry tests

* Add new cypress data to fix cypress tests

* Added ability to define upload chunk size to RADOS driver, small changes to repo mirror HTML page

* Fix database migration to follow HEAD

* Upload new database data for Cypress tests

* Make skopeo_timeout_interval mandatory on API calls

---------

Co-authored-by: Ivan Bazulic <ibazulic@redhat.com>
2025-06-12 19:09:51 +02:00
Marcus Kok
f69716b867 marketplace: splittable sku for MW02702 (PROJQUAY-8151) (#3389)
* marketplace: splittable sku for MW02702 (PROJQUAY-8151)
* Alembic migration to drop unique constraint on the orgrhsubscriptions
  table
* Can split sub quantities of MW02702 across multiple orgs
* Can specify quantity for the MW02702 SKU across orgs on react UI
* Update angular UI to allow user to specify quantities for MW02702
2025-01-09 09:37:09 -05:00
Brandon Caton
961e7c40ec ui: removing bootbox (#3415)
removing bootbox
2024-11-22 11:19:26 -05:00
Sunandadadi
06a816dd44 ui: removing image expiry trigger option for old ui (PROJQUAY-7735) (#3173)
* ui: removing image expiry trigger option for old ui (PROJQUAY-7735)

* remove trailing whitespace
2024-08-29 11:41:36 -04:00
Ivan Bazulic
3c19150d9b oldui: Fix horizontal scrolling on vulnerability reports (PROJQUAY-7686) (#3153)
Old manifest vulnerability status page, still in use, would cause artifacts on long URLs and huge vertical scroll bars. This fix limits the size of the displayed link thus eliminating vertical scrolls. Tested on up to 150% zoom on 4k resolution.
2024-08-21 10:55:47 -04:00
Brandon Caton
854046d904 ui: adding message that registry wide autoprune has been enabled (PROJQUAY-7452) (#3042)
adding message that registry wide autoprune has been enabled
2024-07-17 13:55:56 -04:00
Brandon Caton
e4f05583c1 oauth: allowing to assign token to user (PROJQUAY-7074) (#2869)
Allow organization administrators to assign Oauth token to another user.
2024-06-25 09:23:51 -04:00
Marcus Kok
85ecb7cbfd ui: show 'unlimited' if private repo count is over max number (PROJQUAY-7016) (#2824)
show 'unlimited' if private repo count is over max number
2024-06-11 08:59:07 -04:00
Marcus Kok
a35009a9cf ui: show repo count in marketplace UI (PROJQUAY-7185) (#2875)
ui: show repo count in marketplace UI
2024-06-06 09:11:40 -04:00
Sunandadadi
d10c868edc ui: send recovery email option in superusers panel (PROJQUAY-7195) (#2879) 2024-05-15 17:41:00 -04:00
Sunandadadi
bf766a8288 ui: dont show username password signin when auth_type is oidc (PROJQUAY-6740) (#2778)
ui: Dont show username password signin when auth_type is oidc (PROJQUAY-6740)
2024-03-20 16:13:14 -04:00
Bill Dettelback
49eddb992b ui: changed wording from 'Vulnerabilities' to 'Advisories' on Security tab (PROJQUAY-6638) (#2772)
Changed wording from 'Vulnerabilities' to 'Advisories' on Security tab
2024-03-19 08:35:40 -04:00
Brandon Caton
4f0db4b90f quota: feature flagging quota edit/view/enforce (PROJQUAY-6734) (#2709)
feature flagging quota edit/view/enforce functionality
2024-03-05 13:10:18 -05:00
Brandon Caton
df73b6e9e1 ui: updating references to status.redhat.com (PROJQUAY-6654) (#2645)
Updates references from `status.quay.io` to `status.redhat.com`.
2024-02-07 14:07:38 -05:00
Marcus Kok
2ab7dc29f4 marketplace: add support for quantity from subscriptions api (PROJQUAY-6551) (#2633)
* Adds handling for when a subscription returned from the subscription watch api has a quantity greater than 1. Number of private repos should be correctly calculated using the quantity.

* Updates ui so that subscriptions can only be added to an org as a group, i.e. a subscription with quantity = 2 cannot be split across organizations.
2024-01-29 15:21:30 -05:00
Marcus Kok
2a4ac09306 billing: marketplace UI (PROJQUAY-6551) (#2595)
* billing: marketplace UI

adds UI in billing section for managing user and org-bound skus

add more unit tests for org binding

changed endpoint for bulk attaching skus to orgs
2024-01-11 11:48:38 -05:00
Brandon Caton
9b43b4752f ui: Prevent switch to beta UI toggle from rendering if user is anonymous (PROJQUAY-6526) (#2558)
prevent switch to beta UI toggle from rendering if user is anonymous
2023-12-15 11:24:09 -05:00
Brandon Caton
fa8aaa328f autoprune: background worker (PROJQUAY-6095) (#2402)
Implementation of the background worker for namespace auto-pruning.

Co-authored-by: Sunanda Dadi <Sunandadadi@users.noreply.github.com>
2023-10-16 16:45:20 -04:00
Brandon Caton
9adf2d8cf0 superuser: paginate user's list (PROJQUAY-4297) (#1881)
Allow loading of superuser user list for larger registries by paginating API call.
2023-05-18 11:20:30 -04:00
Brandon Caton
c505a6bae8 superuser: paginating superuser organization list (PROJQUAY-4297) (#1876)
Allows super user organization list to load for larger registries.
2023-05-17 14:49:09 -04:00
Brandon Caton
a2c379d47c quota: Include blob deduplication in totals (PROJQUAY-3942) (#1751)
Allows for only unique blobs are counted at the namespace and repository level. Calculation includes manifest list sizes.
Add's the following internal configurations that default to true:
QUOTA_INVALIDATE_TOTALS: Invalidates calculated totals when FEATURE_QUOTA_MANAGEMENT is set to false
RESET_CHILD_MANIFEST_EXPIRATION: Resets the expiry for child manifests on push of the manifest list for immediate GC eligibility
PERMANENTLY_DELETE_TAGS: Enables features related to the permanent deletion of tags outside the configured time machine window
2023-05-01 16:40:01 -04:00
Harish Govindarajulu
be1bddfd6a feat: Allow action logs to be forwarded to Splunk (PROJQUAY-4993) (#1764)
Signed-off-by: harishsurf <hgovinda@redhat.com>
2023-03-30 13:33:55 -04:00
Syed Ahmed
8211b774bc ui: Show UI toggle on quay.io only to redhat users (PROJQUAY-4804) (#1653)
ui: Show UI toggle on quay.io only to redhat users (PROJQUAY-4804)

New UI preview on quay.io is being released as a preview only
to RedHat users before being GA
2022-12-05 10:30:03 -05:00
Joseph Crosland
84786b9c6f secscan: Correct links (PROJQUAY-2164) (#1552)
Use first link in the "array", don't display link icon when
no links exist.

Signed-off-by: crozzy <joseph.crosland@gmail.com>
2022-12-02 14:58:35 -08:00
Dave O'Connor
d5e7028dcd Only show ui toggle if on signin page (#1515)
Signed-off-by: Dave O'Connor <1656866+HammerMeetNail@users.noreply.github.com>
Signed-off-by: Dave O'Connor <doconnor@redhat.com>
2022-09-06 15:40:34 -04:00
Sunandadadi
5f1fdbc59f ui: Support on Old UI to switch to New UI (PROJQUAY-4124) (#1504)
* Support on Old UI to switch to New UI
2022-08-31 10:33:53 -04:00
Syed Mushtaq Ahmed
b1d13d1622 ui: Remove trial from larger plans for quay.io (PROJQUAY-4197) (#1459)
Removing the "30-day free trial" node from the bottom of plans
2022-08-05 10:58:46 -04:00
Syed Mushtaq Ahmed
7cbf0ffd7d ui: Remove trial from larger plans for quay.io (PROJQUAY-4197) (#1455)
This is to prevent fradulent accounts and bots from creating
large accounts
2022-07-25 10:08:59 -04:00
Daniel Messer
d9dbbd88db ui: basic support for cosign in the UI (PROJQUAY-3965) (#1380)
* ui: basic support for cosign in the UI (PROJQUAY-3965)

* sharpen regex for cosign manifest tag name convention

Co-authored-by: Oleg Bulatov <oleg@bulatov.me>

* fix broken signature match

* addressing review comments

* fix tool tip width issues

Co-authored-by: Oleg Bulatov <oleg@bulatov.me>
2022-06-16 14:06:56 +02:00
Daniel J Walsh
020b3abea2 GUI: Show how to pull an image using podman pull (#1332)
Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2022-06-13 14:41:33 -04:00
Sunandadadi
ba2aa54d3f UI: Superuser user panel settings icon permissions fix (PROJQUAY-3905) (#1364) 2022-06-08 10:46:45 -04:00
Sunandadadi
c93661e9d5 UI: Show settings icon for super user under Superuser Users Panel (PROJQUAY-3905) (#1358)
* UI: Show settings icon for super user under Superuser Users Panel (PROJQUAY-3905)

* Showing only current super users settings icon
2022-06-06 11:12:23 -04:00
Sunandadadi
f90e5e3dce Quota: Configuring Quota for user panel(PROJQUAY-3767) (#1334)
* Quota: Configuring Quota for user panel

* Added Quota Consumed column on Super users panel

* Fixing tests

* Fixing tests

* Adding tests for user quota operations

* Reverting org api changes + new endpoint for super user get method

* Reverting changes

* Added tests

* Fetching user namespace or organization
2022-05-31 11:22:37 -04:00
Daniel J Walsh
e75397ddfe Add support for podman pull (#1331)
Examples should show how to do commands with Podman in addition to
Docker.

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2022-05-18 15:22:53 +02:00
Sunandadadi
a57594cf01 Quota UI: Fix quota input value (PROJQUAY-3691) (#1293)
* Quota UI: Fix quota input value (PROJQUAY-3691)

* Setting White background color for input boxes
2022-04-28 16:16:13 -04:00
Sunandadadi
eea7389a24 Quota: Show system default on UI when quota configuration for the org is not set (PROJQUAY-3518) (#1280)
* Quota: Show system default on UI when quota configuration for the org is not set (PROJQUAY-3518)

* Fixing formatting

* Added function to reduce redundancy and shortened warning message

* added missing parameter to function call

* Fixed organization quota consumption view

* Fixing formatting

* Checking for None before calling function
2022-04-22 16:34:04 -04:00
Sunandadadi
cd2889439b Quota Management: Quota settings on Organization view needs to be read only (PROJQUAY-3622) (#1263)
* Quota Management: Quota settings on Organization view needs to be read only (PROJQUAY-3622)

* Adding superuser permissions check on put and delete methods

* Reverting changes

* Reverting changes
2022-04-19 18:16:11 -04:00
Sunandadadi
923fc72a28 Quota UI: Showing percent consumed if quota is configured on an organization (PROJQUAY-0000) (#1249)
* Tracking aws ip ranges.json

* Reverting change

* Quota UI: Showing percent consumed if quota is configured on an organization (PROJQUAY-0000)
2022-04-18 15:13:17 -04:00
Sunandadadi
3d6545b9da UI: Quota UI enhancements (PROJQUAY-0000) (#1242)
* Tracking aws ip ranges.json

* Reverting change

* Added default quota limit + added error display div + fixed indentation + minor restructuring of html

* Add check for non-negative or zero quota

* Added Limit percent check. numbers between 1-100 only acceptable

* Show warning note if no quota limit is set

* Show warning if no Reject type limit is selected

* Adding Remove button to delete quota configuration

* If Reject does not exist add default reject quota limit + css

* Throw error if more than one Reject Limit Type

* Throw error on identical limits

* Fixing showing default limits

* Added Organization view settings

* Show Remove btn only if quota exists

* Fixing Remove modal pop up

* Quota Reporting if quota is not set

* Fixing Removing Quota for org

* Fixing super user and org admin permissions

* fix to checking default quota

* Added super user perms check on put, delete endpoints

* Fixing formatting

* Fixing multiple rejects checks + returing empty list instead of None

* Using super user API calls + hiding policy div till quota is set

* Added require_scpe and show_if decorators for super user permissions

* fixing configured quota check after return type changed from None to list
2022-04-14 10:33:20 -04:00
Kenny Lee Sin Cheong
896a3aab3a api: update the quota api so that it's more consistent with the other apis endpoints (PROJQUAY-2936) (#1221)
* api: update the quota api so that it's more consistent with the other apis (PROJQUAY-2936)

- Uodate the quota api to be more consistent with the rest of the
endpoints
- Handles some uncaught exceptions, such as division by zero
- Update some of the quota data models used by the api to take object
  references instead of names to make it easier to use
- Update table model naming conventions
- swagger operationid multiple nicknames
- Added more test cases for api
- Remove unused functions
- Update the UI for better UX, based on the api changes made

* quota: fix ui input form value

* quota: join quota type query

* Remove unused functions
2022-04-07 14:11:55 -04:00
Sunandadadi
a4c8924f11 Proxy cache: Elaborate hint message for anonymous pulls and making a safe request (PROJQUAY - 0000) (#1222)
* Tracking aws ip ranges.json

* Reverting change

* Proxy cache: Elaborate hint message for anonymous pulls and making a safe request
2022-03-31 11:39:32 -04:00
Sunandadadi
7524171ac8 Proxy Cache: Interface and UI for Proxy cache Configuration (PROJQUAY-3029) (#1204) 2022-03-31 10:48:59 +02:00
Brandon Caton
e67ea047c4 ui: Copy build logs error fix (PROJQUAY-3405) (#1201)
Currently when viewing the build logs and selecting `Copy Logs` the copy to clipboard will fail. This is because the content of the logs was being passed to the copy-clipboard function when it requires the ID of the element containing the text to copy. This passes the selector of the ID of the element containing the build logs.
2022-03-28 09:26:38 -04:00
Kenny Lee Sin Cheong
815ef44651 ui: remove deprecated docker-image-id references from ui (PROJQUAY-3418) (#1197)
Remove docker id references from ui. Tags should now be referencing
the manifest it is pointing to.
2022-03-23 16:15:15 -04:00
kwestpharedhat
15fa20a115 QuotaManagement: Reporting (PROJQUAY-2936) (#1048)
* initial commit

* fixing some bugs

* create quota management

Fix json request json type

Creation of quota is working

All quota crud operations

crud for quota limits

repository size reporting

adding registry model

error levels

namespacequota

remove holdover from user file

finalizing refactor to namespace over organization

finalization of functionality

fixing formatting to match with black style

missed some files in formatting

fixing access to attribute

add single test to verify its working

fix some bugs and add defensive catching

bug fixes and code resiliency

Bug fixes and making quota limits detect properly where necessary

remove transitive delete and other bug fixes

fix formatting and trasnitive deletion issues

fix repositorysize does not exist error

fix not nul constraint and add security tests

fix security tests and bug

more security test fixes

reorder security tests

put docker file back and adjust security testing

security tests reduced

Missed changes for status 200

missed additional 201 responses getting 200

security bypass for now

Another tweak to security testing

forgot 1 endpoint

bug fix for parsing dictionary

remove unnecessary check at blob head

add initdb for quota

Incorrect syntax repair

mysql only supports decimal

adding quota specific notifications

optimization

add permission checks

adjust security and add configuration parameter

fix security test for new security levels

Fix logic errors and improve caching

fix logic issue and error reporting

adjust things according to PR comments

fix refactor left overs

miscapitilazation

missed refactor location

refactor code to remove quota limit groupings

fix refactor errors

remove transitive deletion

fix transitive deletes

Transitive deletion work

Transitive deletion work

refactor registry model and remove it

place api behind feature flag

patch feature enabledment for tests

patch feature enabledment for tests

testing to see if the config is the problem

remove patch

fix new org bug

fixing notifications

mismatched parameters

fix org not exists

fixed paramter mismatch

fix nonetype access

fix nonetype access

new tables created user deletion issues

new tables created user deletion issues

parameter mismatch

fix transitive delete

fix model access error

record does not exist missing catch

fix quota deletion to always delete limits

quotalimits deletion on quota deletion

mistake

fix quota limits deletion

patch tests and disable feature

typo

switch to toggle feature

add feature patch to top of file

change testconfigpy

* change permissions

* adjust permissions

* change config access

* fix formatting

* gether feature information differently

* duplicate function name

* fix config name

* type conversion

* config adjustments

* incorrect keyword

* Update security api tests

* duplicate naming

* fix config schema

* revert files and fix error

* QuotaManagement: UI (PROJQUAY-2936) (#1)

* [WIP]: Quota Reporting on Quay UI

* Integrating quota reporting UI with backend

* Humanizing bytes on UI

* Quota Reporting UI on repo table view

* Taking pull and updating code

* Adding quota management view

* Added support for CRUD operations for org quota

* create quota management

Fix json request json type

Creation of quota is working

All quota crud operations

crud for quota limits

repository size reporting

adding registry model

error levels

namespacequota

remove holdover from user file

finalizing refactor to namespace over organization

finalization of functionality

fixing formatting to match with black style

missed some files in formatting

fixing access to attribute

add single test to verify its working

fix some bugs and add defensive catching

bug fixes and code resiliency

Bug fixes and making quota limits detect properly where necessary

remove transitive delete and other bug fixes

fix formatting and trasnitive deletion issues

fix repositorysize does not exist error

fix not nul constraint and add security tests

fix security tests and bug

more security test fixes

reorder security tests

put docker file back and adjust security testing

security tests reduced

Missed changes for status 200

missed additional 201 responses getting 200

security bypass for now

Another tweak to security testing

forgot 1 endpoint

bug fix for parsing dictionary

remove unnecessary check at blob head

add initdb for quota

Incorrect syntax repair

mysql only supports decimal

adding quota specific notifications

optimization

add permission checks

adjust security and add configuration parameter

fix security test for new security levels

Fix logic errors and improve caching

fix logic issue and error reporting

adjust things according to PR comments

fix refactor left overs

miscapitilazation

missed refactor location

refactor code to remove quota limit groupings

fix refactor errors

remove transitive deletion

fix transitive deletes

Transitive deletion work

Transitive deletion work

refactor registry model and remove it

place api behind feature flag

patch feature enabledment for tests

patch feature enabledment for tests

testing to see if the config is the problem

remove patch

fix new org bug

fixing notifications

mismatched parameters

fix org not exists

fixed paramter mismatch

fix nonetype access

fix nonetype access

new tables created user deletion issues

new tables created user deletion issues

parameter mismatch

fix transitive delete

fix model access error

record does not exist missing catch

fix quota deletion to always delete limits

quotalimits deletion on quota deletion

mistake

fix quota limits deletion

patch tests and disable feature

typo

switch to toggle feature

add feature patch to top of file

change testconfigpy

* Removing quota and state conf from repo-list and user-view

* Removing quota and state conf form app list page

* Removing quota conf from repo-list.html

* minor fixes

* Added Quota Repoting and configuring quota from UI

* Making quota configuration component reusable + added support to read bytes via KB, MB, etc + Added reporting for total org consumption + Added org consumption for super user panel + Added quota configurable support on super user panel

* Adding older quota management component

* Removing not reusable quota management component

* Adding % consumption for repo quotas

* Adding % consumption for organization level quota

* Adding check to verify request.args

* Removing todo

* Adding default 0 to quota

* Formatting with black

* Fixing params for tests

* Formatting test file

Co-authored-by: Keith Westphal <kwestpha@redhat.com>

* remove migration

* add migration back

* repair formatting

* QuotaManagement: Moving the logic for bytes conversion to human friendly units to the frontend  (PROJQUAY-2936) (#3)

* Moving the logic for bytes conversion to human friendly units to the frontend

* Reading updates from quota_limit_id

* Formatting using black

* remote unused function

* Adding quota configuring on super user panel (#4)

* Converting quota bytes to human friendly format (#5)

* PR refactors

* invalid reference

* bad return value

* fix bad reference

* bad reference

* fix tests

* Quota Config: UI improvements (#6)

* Quota UI Improvements

* Rendering table for quota limit config

* Removing proxy cache files

* Disabling quota config for org view

* Removing redundant get

* Fixing PR requests

* repair formatting

Co-authored-by: Sunandadadi <Sunandadadi@users.noreply.github.com>
2022-03-08 12:02:03 -06:00
Kenny Lee Sin Cheong
033c1aafa1 ui: display manifest list manifest sizes (PROJQUAY-3196) (#1115)
Display individual manifest size in manifest list view.
Also fixes a non-cluster Redis cache bug.

TODO: This requires making extra individiual requests to get the
children manifests. They should probably be cached.
2022-03-01 16:07:28 -05:00
Brandon Caton
0d3ecb132e imagemirror: Add unsigned registries mirror option (PROJQUAY-3106) (#1085)
Currently when attempting to mirror a registry containing unsigned images the mirror will fail due to not finding the source signature. This is caused by the updated version of Skopeo blocking unsigned images by default. This allows users to specify the ability to pull unsigned images per-repository. The Skopeo version is also now pinned.
2022-02-04 13:10:19 -05:00
Sunandadadi
20aef6a589 Quay.io UI: Fetching severity from cvss score and removing visibility… (#887)
* Quay.io UI: Fetching severity from cvss score and removing visibility of unknown metrics (PROJQUAY-2541)

If vulnerability's severity is missing mapping severity from cvss score if present. Removed visibility if severity or distribition is Unknow

* Quay.io UI: Fetching severity from cvss score and removing visibility of unknown metrics (PROJQUAY-2541)

Fixing Typo
2021-10-17 20:51:16 -04:00
Kenny Lee Sin Cheong
374e957bd9 ui: fix csrf issue when login in with SSO on mobile (PROJQUAY-2340) (#906)
Follow-up to PROJQUAY-2340. Make the same change for the mobile template.
2021-10-04 10:09:04 -04:00