2020-08-19 01:53:04 -05:00
|
|
|
scalar Time
|
|
|
|
|
2022-10-05 14:56:41 -05:00
|
|
|
"""
|
|
|
|
Contains the tag of the image and a list of CVEs
|
|
|
|
"""
|
2020-06-26 14:09:10 -05:00
|
|
|
type CVEResultForImage {
|
2022-09-30 12:32:32 -05:00
|
|
|
Tag: String
|
2022-01-19 10:57:10 -05:00
|
|
|
CVEList: [CVE]
|
2023-01-24 18:03:10 -05:00
|
|
|
Page: PageInfo
|
2020-06-26 14:09:10 -05:00
|
|
|
}
|
|
|
|
|
2022-10-05 14:56:41 -05:00
|
|
|
"""
|
|
|
|
Contains various details about the CVE and a list of PackageInfo about the affected packages
|
|
|
|
"""
|
2020-06-26 14:09:10 -05:00
|
|
|
type CVE {
|
2022-09-30 12:32:32 -05:00
|
|
|
Id: String
|
2022-01-19 10:57:10 -05:00
|
|
|
Title: String
|
|
|
|
Description: String
|
|
|
|
Severity: String
|
|
|
|
PackageList: [PackageInfo]
|
2020-06-26 14:09:10 -05:00
|
|
|
}
|
|
|
|
|
2022-10-05 14:56:41 -05:00
|
|
|
"""
|
|
|
|
Contains the name of the package, the current installed version and the version where the CVE was fixed
|
|
|
|
"""
|
2020-06-26 14:09:10 -05:00
|
|
|
type PackageInfo {
|
2022-09-30 12:32:32 -05:00
|
|
|
Name: String
|
|
|
|
InstalledVersion: String
|
|
|
|
FixedVersion: String
|
2021-01-25 13:04:03 -05:00
|
|
|
}
|
|
|
|
|
2022-10-05 14:56:41 -05:00
|
|
|
"""
|
|
|
|
Contains details about the repo: a list of image summaries and a summary of the repo
|
|
|
|
"""
|
2022-02-01 21:02:05 -05:00
|
|
|
type RepoInfo {
|
2022-01-19 10:57:10 -05:00
|
|
|
Images: [ImageSummary]
|
|
|
|
Summary: RepoSummary
|
2022-02-01 21:02:05 -05:00
|
|
|
}
|
|
|
|
|
2022-07-12 07:58:04 -05:00
|
|
|
# Search results in all repos/images/layers
|
|
|
|
# There will be other more structures for more detailed information
|
2022-10-05 14:56:41 -05:00
|
|
|
"""
|
|
|
|
Search everything. Can search Images, Repos and Layers
|
|
|
|
"""
|
2022-07-12 07:58:04 -05:00
|
|
|
type GlobalSearchResult {
|
2023-01-09 15:37:44 -05:00
|
|
|
Page: PageInfo
|
2022-01-19 10:57:10 -05:00
|
|
|
Images: [ImageSummary]
|
|
|
|
Repos: [RepoSummary]
|
|
|
|
Layers: [LayerSummary]
|
2022-07-12 07:58:04 -05:00
|
|
|
}
|
|
|
|
|
|
|
|
# Brief on a specific image to be used in queries returning a list of images
|
|
|
|
# We define an image as a pairing or a repo and a tag belonging to that repo
|
2022-10-05 14:56:41 -05:00
|
|
|
"""
|
|
|
|
Contains details about the image
|
|
|
|
"""
|
2022-07-12 07:58:04 -05:00
|
|
|
type ImageSummary {
|
2022-01-19 10:57:10 -05:00
|
|
|
RepoName: String
|
|
|
|
Tag: String
|
|
|
|
Digest: String
|
|
|
|
ConfigDigest: String
|
|
|
|
LastUpdated: Time
|
|
|
|
IsSigned: Boolean
|
|
|
|
Size: String
|
|
|
|
Platform: OsArch
|
|
|
|
Vendor: String
|
|
|
|
Score: Int
|
|
|
|
DownloadCount: Int
|
|
|
|
Layers: [LayerSummary]
|
|
|
|
Description: String
|
2023-01-09 15:37:44 -05:00
|
|
|
Licenses: String # The value of the annotation if present, 'unknown' otherwise).
|
2022-01-19 10:57:10 -05:00
|
|
|
Labels: String
|
2022-09-13 09:20:44 -05:00
|
|
|
Title: String
|
|
|
|
Source: String
|
|
|
|
Documentation: String
|
2022-09-21 12:53:56 -05:00
|
|
|
History: [LayerHistory]
|
2022-09-28 13:39:54 -05:00
|
|
|
Vulnerabilities: ImageVulnerabilitySummary
|
2022-11-10 18:02:17 -05:00
|
|
|
Authors: String
|
2022-09-28 13:39:54 -05:00
|
|
|
}
|
|
|
|
|
|
|
|
type ImageVulnerabilitySummary {
|
|
|
|
MaxSeverity: String
|
|
|
|
Count: Int
|
2022-07-12 07:58:04 -05:00
|
|
|
}
|
|
|
|
|
|
|
|
# Brief on a specific repo to be used in queries returning a list of repos
|
2022-10-05 14:56:41 -05:00
|
|
|
"""
|
|
|
|
Contains details about the repo
|
|
|
|
"""
|
2022-07-12 07:58:04 -05:00
|
|
|
type RepoSummary {
|
2022-01-19 10:57:10 -05:00
|
|
|
Name: String
|
|
|
|
LastUpdated: Time
|
|
|
|
Size: String
|
|
|
|
Platforms: [OsArch]
|
|
|
|
Vendors: [String]
|
|
|
|
Score: Int
|
2023-01-09 15:37:44 -05:00
|
|
|
NewestImage: ImageSummary # Newest based on created timestamp
|
2022-01-19 10:57:10 -05:00
|
|
|
DownloadCount: Int
|
|
|
|
StarCount: Int
|
|
|
|
IsBookmarked: Boolean
|
2023-01-09 15:37:44 -05:00
|
|
|
IsStarred: Boolean
|
2022-07-12 07:58:04 -05:00
|
|
|
}
|
|
|
|
|
|
|
|
# Currently the same as LayerInfo, we can refactor later
|
|
|
|
# For detailed information on the layer a ImageListForDigest call can be made
|
2022-10-05 14:56:41 -05:00
|
|
|
"""
|
|
|
|
Contains details about the layer
|
|
|
|
"""
|
2022-07-12 07:58:04 -05:00
|
|
|
type LayerSummary {
|
2022-01-19 10:57:10 -05:00
|
|
|
Size: String # Int64 is not supported.
|
|
|
|
Digest: String
|
|
|
|
Score: Int
|
2022-07-12 07:58:04 -05:00
|
|
|
}
|
|
|
|
|
2022-09-21 12:53:56 -05:00
|
|
|
type HistoryDescription {
|
|
|
|
Created: Time
|
2022-09-30 12:32:32 -05:00
|
|
|
"""
|
2022-09-21 12:53:56 -05:00
|
|
|
CreatedBy is the command which created the layer.
|
|
|
|
"""
|
2022-09-30 12:32:32 -05:00
|
|
|
CreatedBy: String
|
2022-09-21 12:53:56 -05:00
|
|
|
"""
|
|
|
|
Author is the author of the build point.
|
|
|
|
"""
|
2022-09-30 12:32:32 -05:00
|
|
|
Author: String
|
2022-09-21 12:53:56 -05:00
|
|
|
"""
|
|
|
|
Comment is a custom message set when creating the layer.
|
|
|
|
"""
|
|
|
|
Comment: String
|
2022-09-30 12:32:32 -05:00
|
|
|
"""
|
2022-09-21 12:53:56 -05:00
|
|
|
EmptyLayer is used to mark if the history item created a filesystem diff.
|
|
|
|
"""
|
|
|
|
EmptyLayer: Boolean
|
|
|
|
}
|
|
|
|
|
|
|
|
type LayerHistory {
|
|
|
|
Layer: LayerSummary
|
|
|
|
HistoryDescription: HistoryDescription
|
|
|
|
}
|
|
|
|
|
2022-11-23 13:53:28 -05:00
|
|
|
type Annotation {
|
|
|
|
Key: String
|
|
|
|
Value: String
|
|
|
|
}
|
|
|
|
|
|
|
|
type Referrer {
|
|
|
|
MediaType: String
|
|
|
|
ArtifactType: String
|
|
|
|
Size: Int
|
|
|
|
Digest: String
|
|
|
|
Annotations: [Annotation]!
|
|
|
|
}
|
|
|
|
|
2022-10-05 14:56:41 -05:00
|
|
|
"""
|
|
|
|
Contains details about the supported OS and architecture of the image
|
|
|
|
"""
|
2022-07-12 07:58:04 -05:00
|
|
|
type OsArch {
|
2022-01-19 10:57:10 -05:00
|
|
|
Os: String
|
|
|
|
Arch: String
|
2022-07-12 07:58:04 -05:00
|
|
|
}
|
|
|
|
|
2023-01-09 15:37:44 -05:00
|
|
|
enum SortCriteria {
|
|
|
|
RELEVANCE
|
|
|
|
UPDATE_TIME
|
|
|
|
ALPHABETIC_ASC
|
|
|
|
ALPHABETIC_DSC
|
2023-01-24 18:03:10 -05:00
|
|
|
SEVERITY
|
2023-01-09 15:37:44 -05:00
|
|
|
STARS
|
|
|
|
DOWNLOADS
|
|
|
|
}
|
|
|
|
|
|
|
|
type PageInfo {
|
2023-01-18 17:20:55 -05:00
|
|
|
TotalCount: Int!
|
|
|
|
ItemCount: Int!
|
2023-01-09 15:37:44 -05:00
|
|
|
}
|
|
|
|
|
|
|
|
# Pagination parameters
|
|
|
|
input PageInput {
|
|
|
|
limit: Int
|
|
|
|
offset: Int
|
|
|
|
sortBy: SortCriteria
|
|
|
|
}
|
|
|
|
|
2023-01-18 17:20:55 -05:00
|
|
|
# Paginated list of RepoSummary objects
|
|
|
|
# If limit is -1, pagination is disabled
|
|
|
|
type PaginatedReposResult {
|
|
|
|
Page: PageInfo
|
|
|
|
Results: [RepoSummary!]!
|
|
|
|
}
|
|
|
|
|
|
|
|
# Paginated list of ImageSummary objects
|
|
|
|
# If limit is -1, pagination is disabled
|
|
|
|
type PaginatedImagesResult {
|
|
|
|
Page: PageInfo
|
|
|
|
Results: [ImageSummary!]!
|
|
|
|
}
|
|
|
|
|
2023-01-09 15:37:44 -05:00
|
|
|
input Filter {
|
|
|
|
Os: [String]
|
|
|
|
Arch: [String]
|
|
|
|
HasToBeSigned: Boolean
|
|
|
|
}
|
|
|
|
|
2020-06-26 14:09:10 -05:00
|
|
|
type Query {
|
2022-10-05 14:56:41 -05:00
|
|
|
"""
|
2023-01-24 18:03:10 -05:00
|
|
|
Returns a CVE list for the image specified in the argument. Format image:tag
|
2022-10-05 14:56:41 -05:00
|
|
|
"""
|
2023-01-24 18:03:10 -05:00
|
|
|
CVEListForImage(image: String!, requestedPage: PageInput): CVEResultForImage!
|
2022-10-05 14:56:41 -05:00
|
|
|
|
|
|
|
"""
|
|
|
|
Returns a list of images vulnerable to the CVE of the specified ID
|
|
|
|
"""
|
2023-01-20 15:09:40 -05:00
|
|
|
ImageListForCVE(id: String!, requestedPage: PageInput): [ImageSummary!]
|
2022-10-05 14:56:41 -05:00
|
|
|
|
|
|
|
"""
|
|
|
|
Returns a list of images that are no longer vulnerable to the CVE of the specified ID, from the specified image (repo)
|
|
|
|
"""
|
2023-01-20 15:09:40 -05:00
|
|
|
ImageListWithCVEFixed(id: String!, image: String!, requestedPage: PageInput): [ImageSummary!]
|
2022-10-05 14:56:41 -05:00
|
|
|
|
|
|
|
"""
|
|
|
|
Returns a list of images which contain the specified digest
|
|
|
|
"""
|
2023-01-17 17:31:54 -05:00
|
|
|
ImageListForDigest(id: String!, requestedPage: PageInput): [ImageSummary!]
|
2022-10-05 14:56:41 -05:00
|
|
|
|
|
|
|
"""
|
|
|
|
Returns a list of repos with the newest tag within
|
|
|
|
"""
|
2023-01-18 17:20:55 -05:00
|
|
|
RepoListWithNewestImage(requestedPage: PageInput): PaginatedReposResult! # Newest based on created timestamp
|
2022-10-05 14:56:41 -05:00
|
|
|
|
|
|
|
"""
|
2023-01-23 12:45:11 -05:00
|
|
|
Returns all the images from the specified repo | from all repos if specified repo is ""
|
2022-10-05 14:56:41 -05:00
|
|
|
"""
|
2023-01-23 12:45:11 -05:00
|
|
|
ImageList(repo: String!, requestedPage: PageInput): [ImageSummary!]
|
2022-10-05 14:56:41 -05:00
|
|
|
|
|
|
|
"""
|
|
|
|
Returns information about the specified repo
|
|
|
|
"""
|
2022-01-19 10:57:10 -05:00
|
|
|
ExpandedRepoInfo(repo: String!): RepoInfo!
|
2022-10-05 14:56:41 -05:00
|
|
|
|
|
|
|
"""
|
|
|
|
Searches within repos, images, and layers
|
|
|
|
"""
|
2023-01-09 15:37:44 -05:00
|
|
|
GlobalSearch(query: String!, filter: Filter, requestedPage: PageInput): GlobalSearchResult!
|
2022-10-05 14:56:41 -05:00
|
|
|
|
|
|
|
"""
|
|
|
|
List of images which use the argument image
|
|
|
|
"""
|
2023-01-25 17:06:02 -05:00
|
|
|
DerivedImageList(image: String!, requestedPage: PageInput): PaginatedImagesResult!
|
2022-10-05 14:56:41 -05:00
|
|
|
|
|
|
|
"""
|
|
|
|
List of images on which the argument image depends on
|
|
|
|
"""
|
2023-01-25 17:06:02 -05:00
|
|
|
BaseImageList(image: String!, requestedPage: PageInput): PaginatedImagesResult!
|
2022-10-05 14:56:41 -05:00
|
|
|
|
|
|
|
"""
|
|
|
|
Search for a specific image using its name
|
|
|
|
"""
|
2022-09-30 12:32:32 -05:00
|
|
|
Image(image: String!): ImageSummary
|
2022-11-23 13:53:28 -05:00
|
|
|
|
|
|
|
"""
|
|
|
|
Returns a list of descriptors of an image or artifact manifest that are found in a <repo> and have a subject field of <digest>
|
|
|
|
Can be filtered based on a specific artifact type <type>
|
|
|
|
"""
|
2023-01-26 13:13:12 -05:00
|
|
|
Referrers(repo: String!, digest: String!, type: [String!]): [Referrer]!
|
2022-09-30 12:32:32 -05:00
|
|
|
}
|