mirror of
https://github.com/project-zot/zot.git
synced 2024-12-30 22:34:13 -05:00
style(metadb): use type aliases for metadb types to be easier to read (#2043)
Signed-off-by: Laurentiu Niculae <niculae.laurentiu1@gmail.com>
This commit is contained in:
parent
36e04a40c2
commit
de90abd5dc
14 changed files with 90 additions and 73 deletions
|
@ -160,7 +160,7 @@ func IsResourceExistsException(err error) bool {
|
||||||
func (imgTrustStore *ImageTrustStore) VerifySignature(
|
func (imgTrustStore *ImageTrustStore) VerifySignature(
|
||||||
signatureType string, rawSignature []byte, sigKey string, manifestDigest godigest.Digest, imageMeta mTypes.ImageMeta,
|
signatureType string, rawSignature []byte, sigKey string, manifestDigest godigest.Digest, imageMeta mTypes.ImageMeta,
|
||||||
repo string,
|
repo string,
|
||||||
) (string, time.Time, bool, error) {
|
) (mTypes.Author, mTypes.ExpiryDate, mTypes.Validity, error) {
|
||||||
desc := ispec.Descriptor{
|
desc := ispec.Descriptor{
|
||||||
MediaType: imageMeta.MediaType,
|
MediaType: imageMeta.MediaType,
|
||||||
Digest: imageMeta.Digest,
|
Digest: imageMeta.Digest,
|
||||||
|
|
|
@ -806,7 +806,7 @@ func TestConvertErrors(t *testing.T) {
|
||||||
Convey("RepoMeta2ExpandedRepoInfo", func() {
|
Convey("RepoMeta2ExpandedRepoInfo", func() {
|
||||||
_, imgSums := convert.RepoMeta2ExpandedRepoInfo(ctx,
|
_, imgSums := convert.RepoMeta2ExpandedRepoInfo(ctx,
|
||||||
mTypes.RepoMeta{
|
mTypes.RepoMeta{
|
||||||
Tags: map[string]mTypes.Descriptor{"tag": {MediaType: "bad-type", Digest: "digest"}},
|
Tags: map[mTypes.Tag]mTypes.Descriptor{"tag": {MediaType: "bad-type", Digest: "digest"}},
|
||||||
},
|
},
|
||||||
map[string]mTypes.ImageMeta{
|
map[string]mTypes.ImageMeta{
|
||||||
"digest": {},
|
"digest": {},
|
||||||
|
|
|
@ -387,7 +387,7 @@ func TestImageFormat(t *testing.T) {
|
||||||
metaDB := &mocks.MetaDBMock{
|
metaDB := &mocks.MetaDBMock{
|
||||||
GetRepoMetaFn: func(ctx context.Context, repo string) (mTypes.RepoMeta, error) {
|
GetRepoMetaFn: func(ctx context.Context, repo string) (mTypes.RepoMeta, error) {
|
||||||
return mTypes.RepoMeta{
|
return mTypes.RepoMeta{
|
||||||
Tags: map[string]mTypes.Descriptor{
|
Tags: map[mTypes.Tag]mTypes.Descriptor{
|
||||||
"tag": {
|
"tag": {
|
||||||
MediaType: ispec.MediaTypeImageIndex,
|
MediaType: ispec.MediaTypeImageIndex,
|
||||||
Digest: godigest.FromString("digest").String(),
|
Digest: godigest.FromString("digest").String(),
|
||||||
|
@ -860,7 +860,7 @@ func TestCVEStruct(t *testing.T) { //nolint:gocyclo
|
||||||
|
|
||||||
err = metaDB.SetRepoMeta("repo-with-bad-tag-digest", mTypes.RepoMeta{
|
err = metaDB.SetRepoMeta("repo-with-bad-tag-digest", mTypes.RepoMeta{
|
||||||
Name: "repo-with-bad-tag-digest",
|
Name: "repo-with-bad-tag-digest",
|
||||||
Tags: map[string]mTypes.Descriptor{
|
Tags: map[mTypes.Tag]mTypes.Descriptor{
|
||||||
"tag": {MediaType: ispec.MediaTypeImageManifest, Digest: godigest.FromString("1").String()},
|
"tag": {MediaType: ispec.MediaTypeImageManifest, Digest: godigest.FromString("1").String()},
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|
|
@ -158,7 +158,7 @@ func TestScanGeneratorWithMockedData(t *testing.T) { //nolint: gocyclo
|
||||||
|
|
||||||
err = metaDB.SetRepoMeta("repo-with-bad-tag-digest", mTypes.RepoMeta{
|
err = metaDB.SetRepoMeta("repo-with-bad-tag-digest", mTypes.RepoMeta{
|
||||||
Name: "repo-with-bad-tag-digest",
|
Name: "repo-with-bad-tag-digest",
|
||||||
Tags: map[string]mTypes.Descriptor{
|
Tags: map[mTypes.Tag]mTypes.Descriptor{
|
||||||
"tag": {MediaType: ispec.MediaTypeImageManifest, Digest: godigest.FromString("1").String()},
|
"tag": {MediaType: ispec.MediaTypeImageManifest, Digest: godigest.FromString("1").String()},
|
||||||
"tag-multi-arch": {MediaType: ispec.MediaTypeImageIndex, Digest: godigest.FromString("2").String()},
|
"tag-multi-arch": {MediaType: ispec.MediaTypeImageIndex, Digest: godigest.FromString("2").String()},
|
||||||
},
|
},
|
||||||
|
|
|
@ -44,7 +44,7 @@ func TestCVEDBGenerator(t *testing.T) {
|
||||||
metaDB := &mocks.MetaDBMock{
|
metaDB := &mocks.MetaDBMock{
|
||||||
GetRepoMetaFn: func(ctx context.Context, repo string) (mTypes.RepoMeta, error) {
|
GetRepoMetaFn: func(ctx context.Context, repo string) (mTypes.RepoMeta, error) {
|
||||||
return mTypes.RepoMeta{
|
return mTypes.RepoMeta{
|
||||||
Tags: map[string]mTypes.Descriptor{
|
Tags: map[mTypes.Tag]mTypes.Descriptor{
|
||||||
"tag": {MediaType: ispec.MediaTypeImageIndex},
|
"tag": {MediaType: ispec.MediaTypeImageIndex},
|
||||||
},
|
},
|
||||||
}, nil
|
}, nil
|
||||||
|
|
|
@ -165,7 +165,7 @@ func getImageSummary(ctx context.Context, repo, tag string, digest *string, skip
|
||||||
return nil, gqlerror.Errorf("can't find image: %s:%s", repo, tag)
|
return nil, gqlerror.Errorf("can't find image: %s:%s", repo, tag)
|
||||||
}
|
}
|
||||||
|
|
||||||
repoMeta.Tags = map[string]mTypes.Descriptor{tag: manifestDescriptor}
|
repoMeta.Tags = map[mTypes.Tag]mTypes.Descriptor{tag: manifestDescriptor}
|
||||||
|
|
||||||
imageDigest := manifestDescriptor.Digest
|
imageDigest := manifestDescriptor.Digest
|
||||||
if digest != nil {
|
if digest != nil {
|
||||||
|
|
|
@ -229,13 +229,13 @@ func TestRepoListWithNewestImage(t *testing.T) {
|
||||||
repos := []mTypes.RepoMeta{
|
repos := []mTypes.RepoMeta{
|
||||||
{
|
{
|
||||||
Name: "repo1",
|
Name: "repo1",
|
||||||
Tags: map[string]mTypes.Descriptor{
|
Tags: map[mTypes.Tag]mTypes.Descriptor{
|
||||||
"1.0.1": {
|
"1.0.1": {
|
||||||
Digest: img1.DigestStr(),
|
Digest: img1.DigestStr(),
|
||||||
MediaType: ispec.MediaTypeImageManifest,
|
MediaType: ispec.MediaTypeImageManifest,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
Signatures: map[string]mTypes.ManifestSignatures{
|
Signatures: map[mTypes.ImageDigest]mTypes.ManifestSignatures{
|
||||||
img1.DigestStr(): {
|
img1.DigestStr(): {
|
||||||
"cosign": []mTypes.SignatureInfo{
|
"cosign": []mTypes.SignatureInfo{
|
||||||
{SignatureManifestDigest: "testSignature", LayersInfo: []mTypes.LayerInfo{}},
|
{SignatureManifestDigest: "testSignature", LayersInfo: []mTypes.LayerInfo{}},
|
||||||
|
@ -254,13 +254,13 @@ func TestRepoListWithNewestImage(t *testing.T) {
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
Name: "repo2",
|
Name: "repo2",
|
||||||
Tags: map[string]mTypes.Descriptor{
|
Tags: map[mTypes.Tag]mTypes.Descriptor{
|
||||||
"1.0.2": {
|
"1.0.2": {
|
||||||
Digest: img2.DigestStr(),
|
Digest: img2.DigestStr(),
|
||||||
MediaType: ispec.MediaTypeImageManifest,
|
MediaType: ispec.MediaTypeImageManifest,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
Signatures: map[string]mTypes.ManifestSignatures{
|
Signatures: map[mTypes.ImageDigest]mTypes.ManifestSignatures{
|
||||||
img1.DigestStr(): {
|
img1.DigestStr(): {
|
||||||
"cosign": []mTypes.SignatureInfo{
|
"cosign": []mTypes.SignatureInfo{
|
||||||
{SignatureManifestDigest: "testSignature", LayersInfo: []mTypes.LayerInfo{}},
|
{SignatureManifestDigest: "testSignature", LayersInfo: []mTypes.LayerInfo{}},
|
||||||
|
@ -395,9 +395,9 @@ func TestGetStarredRepos(t *testing.T) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func getTestRepoMetaWithImages(repo string, images []Image) mTypes.RepoMeta {
|
func getTestRepoMetaWithImages(repo string, images []Image) mTypes.RepoMeta {
|
||||||
tags := map[string]mTypes.Descriptor{"": {}}
|
tags := map[mTypes.Tag]mTypes.Descriptor{"": {}}
|
||||||
statistics := map[string]mTypes.DescriptorStatistics{"": {}}
|
statistics := map[mTypes.Tag]mTypes.DescriptorStatistics{"": {}}
|
||||||
signatures := map[string]mTypes.ManifestSignatures{"": {}}
|
signatures := map[mTypes.ImageDigest]mTypes.ManifestSignatures{"": {}}
|
||||||
referrers := map[string][]mTypes.ReferrerInfo{"": {}}
|
referrers := map[string][]mTypes.ReferrerInfo{"": {}}
|
||||||
|
|
||||||
for i := range images {
|
for i := range images {
|
||||||
|
@ -542,7 +542,7 @@ func TestGetImageSummaryError(t *testing.T) {
|
||||||
Convey("getImageSummary", t, func() {
|
Convey("getImageSummary", t, func() {
|
||||||
metaDB := mocks.MetaDBMock{
|
metaDB := mocks.MetaDBMock{
|
||||||
GetRepoMetaFn: func(ctx context.Context, repo string) (mTypes.RepoMeta, error) {
|
GetRepoMetaFn: func(ctx context.Context, repo string) (mTypes.RepoMeta, error) {
|
||||||
return mTypes.RepoMeta{Tags: map[string]mTypes.Descriptor{"tag": {}}}, nil
|
return mTypes.RepoMeta{Tags: map[mTypes.Tag]mTypes.Descriptor{"tag": {}}}, nil
|
||||||
},
|
},
|
||||||
FilterImageMetaFn: func(ctx context.Context, digests []string) (map[string]mTypes.ImageMeta, error) {
|
FilterImageMetaFn: func(ctx context.Context, digests []string) (map[string]mTypes.ImageMeta, error) {
|
||||||
return nil, ErrTestError
|
return nil, ErrTestError
|
||||||
|
@ -597,7 +597,7 @@ func TestImageListError(t *testing.T) {
|
||||||
image := CreateDefaultImage()
|
image := CreateDefaultImage()
|
||||||
repoMeta := mTypes.RepoMeta{
|
repoMeta := mTypes.RepoMeta{
|
||||||
Name: "repo",
|
Name: "repo",
|
||||||
Tags: map[string]mTypes.Descriptor{image.DigestStr(): {
|
Tags: map[mTypes.Tag]mTypes.Descriptor{image.DigestStr(): {
|
||||||
Digest: image.DigestStr(),
|
Digest: image.DigestStr(),
|
||||||
MediaType: ispec.MediaTypeImageManifest,
|
MediaType: ispec.MediaTypeImageManifest,
|
||||||
}},
|
}},
|
||||||
|
@ -944,7 +944,7 @@ func TestQueryResolverErrors(t *testing.T) {
|
||||||
GetRepoMetaFn: func(ctx context.Context, repo string) (mTypes.RepoMeta, error) {
|
GetRepoMetaFn: func(ctx context.Context, repo string) (mTypes.RepoMeta, error) {
|
||||||
return mTypes.RepoMeta{
|
return mTypes.RepoMeta{
|
||||||
Name: "repo",
|
Name: "repo",
|
||||||
Tags: map[string]mTypes.Descriptor{
|
Tags: map[mTypes.Tag]mTypes.Descriptor{
|
||||||
"tag": {Digest: image.DigestStr(), MediaType: ispec.MediaTypeImageManifest},
|
"tag": {Digest: image.DigestStr(), MediaType: ispec.MediaTypeImageManifest},
|
||||||
},
|
},
|
||||||
}, nil
|
}, nil
|
||||||
|
@ -1632,7 +1632,7 @@ func TestCVEResolvers(t *testing.T) { //nolint:gocyclo
|
||||||
pageInput, mocks.MetaDBMock{
|
pageInput, mocks.MetaDBMock{
|
||||||
GetRepoMetaFn: func(ctx context.Context, repo string) (mTypes.RepoMeta, error) {
|
GetRepoMetaFn: func(ctx context.Context, repo string) (mTypes.RepoMeta, error) {
|
||||||
return mTypes.RepoMeta{
|
return mTypes.RepoMeta{
|
||||||
Tags: map[string]mTypes.Descriptor{
|
Tags: map[mTypes.Tag]mTypes.Descriptor{
|
||||||
"1.1.0": {
|
"1.1.0": {
|
||||||
Digest: godigest.FromString("str").String(),
|
Digest: godigest.FromString("str").String(),
|
||||||
MediaType: ispec.MediaTypeImageManifest,
|
MediaType: ispec.MediaTypeImageManifest,
|
||||||
|
@ -1893,7 +1893,7 @@ func TestMockedDerivedImageList(t *testing.T) {
|
||||||
mocks.MetaDBMock{
|
mocks.MetaDBMock{
|
||||||
GetRepoMetaFn: func(ctx context.Context, repo string) (mTypes.RepoMeta, error) {
|
GetRepoMetaFn: func(ctx context.Context, repo string) (mTypes.RepoMeta, error) {
|
||||||
return mTypes.RepoMeta{
|
return mTypes.RepoMeta{
|
||||||
Tags: map[string]mTypes.Descriptor{
|
Tags: map[mTypes.Tag]mTypes.Descriptor{
|
||||||
"1.0.1": {
|
"1.0.1": {
|
||||||
Digest: image.DigestStr(),
|
Digest: image.DigestStr(),
|
||||||
MediaType: ispec.MediaTypeImageManifest,
|
MediaType: ispec.MediaTypeImageManifest,
|
||||||
|
@ -1923,7 +1923,7 @@ func TestMockedDerivedImageList(t *testing.T) {
|
||||||
GetRepoMetaFn: func(ctx context.Context, repo string) (mTypes.RepoMeta, error) {
|
GetRepoMetaFn: func(ctx context.Context, repo string) (mTypes.RepoMeta, error) {
|
||||||
return mTypes.RepoMeta{
|
return mTypes.RepoMeta{
|
||||||
Name: "repo1",
|
Name: "repo1",
|
||||||
Tags: map[string]mTypes.Descriptor{
|
Tags: map[mTypes.Tag]mTypes.Descriptor{
|
||||||
"1.0.1": {Digest: image.DigestStr(), MediaType: ispec.MediaTypeImageManifest},
|
"1.0.1": {Digest: image.DigestStr(), MediaType: ispec.MediaTypeImageManifest},
|
||||||
},
|
},
|
||||||
}, nil
|
}, nil
|
||||||
|
@ -1979,7 +1979,7 @@ func TestMockedDerivedImageList(t *testing.T) {
|
||||||
GetRepoMetaFn: func(ctx context.Context, repo string) (mTypes.RepoMeta, error) {
|
GetRepoMetaFn: func(ctx context.Context, repo string) (mTypes.RepoMeta, error) {
|
||||||
return mTypes.RepoMeta{
|
return mTypes.RepoMeta{
|
||||||
Name: "repo1",
|
Name: "repo1",
|
||||||
Tags: map[string]mTypes.Descriptor{
|
Tags: map[mTypes.Tag]mTypes.Descriptor{
|
||||||
"1.0.1": {Digest: image.DigestStr(), MediaType: ispec.MediaTypeImageManifest},
|
"1.0.1": {Digest: image.DigestStr(), MediaType: ispec.MediaTypeImageManifest},
|
||||||
},
|
},
|
||||||
}, nil
|
}, nil
|
||||||
|
@ -2001,7 +2001,7 @@ func TestMockedDerivedImageList(t *testing.T) {
|
||||||
fullImageMetaList := []mTypes.FullImageMeta{}
|
fullImageMetaList := []mTypes.FullImageMeta{}
|
||||||
repos := []mTypes.RepoMeta{{
|
repos := []mTypes.RepoMeta{{
|
||||||
Name: "repo1",
|
Name: "repo1",
|
||||||
Tags: map[string]mTypes.Descriptor{
|
Tags: map[mTypes.Tag]mTypes.Descriptor{
|
||||||
"1.0.1": {Digest: image.DigestStr(), MediaType: ispec.MediaTypeImageManifest},
|
"1.0.1": {Digest: image.DigestStr(), MediaType: ispec.MediaTypeImageManifest},
|
||||||
"1.0.2": {Digest: derivedImage.DigestStr(), MediaType: ispec.MediaTypeImageManifest},
|
"1.0.2": {Digest: derivedImage.DigestStr(), MediaType: ispec.MediaTypeImageManifest},
|
||||||
"1.0.3": {Digest: derivedImage.DigestStr(), MediaType: ispec.MediaTypeImageManifest},
|
"1.0.3": {Digest: derivedImage.DigestStr(), MediaType: ispec.MediaTypeImageManifest},
|
||||||
|
@ -2084,7 +2084,7 @@ func TestMockedBaseImageList(t *testing.T) {
|
||||||
mocks.MetaDBMock{
|
mocks.MetaDBMock{
|
||||||
GetRepoMetaFn: func(ctx context.Context, repo string) (mTypes.RepoMeta, error) {
|
GetRepoMetaFn: func(ctx context.Context, repo string) (mTypes.RepoMeta, error) {
|
||||||
return mTypes.RepoMeta{
|
return mTypes.RepoMeta{
|
||||||
Tags: map[string]mTypes.Descriptor{
|
Tags: map[mTypes.Tag]mTypes.Descriptor{
|
||||||
"1.0.2": {
|
"1.0.2": {
|
||||||
Digest: image.DigestStr(),
|
Digest: image.DigestStr(),
|
||||||
MediaType: ispec.MediaTypeImageManifest,
|
MediaType: ispec.MediaTypeImageManifest,
|
||||||
|
@ -2112,7 +2112,7 @@ func TestMockedBaseImageList(t *testing.T) {
|
||||||
GetRepoMetaFn: func(ctx context.Context, repo string) (mTypes.RepoMeta, error) {
|
GetRepoMetaFn: func(ctx context.Context, repo string) (mTypes.RepoMeta, error) {
|
||||||
return mTypes.RepoMeta{
|
return mTypes.RepoMeta{
|
||||||
Name: "repo1",
|
Name: "repo1",
|
||||||
Tags: map[string]mTypes.Descriptor{
|
Tags: map[mTypes.Tag]mTypes.Descriptor{
|
||||||
"1.0.2": {Digest: image.DigestStr(), MediaType: ispec.MediaTypeImageManifest},
|
"1.0.2": {Digest: image.DigestStr(), MediaType: ispec.MediaTypeImageManifest},
|
||||||
},
|
},
|
||||||
}, nil
|
}, nil
|
||||||
|
@ -2162,7 +2162,7 @@ func TestMockedBaseImageList(t *testing.T) {
|
||||||
GetRepoMetaFn: func(ctx context.Context, repo string) (mTypes.RepoMeta, error) {
|
GetRepoMetaFn: func(ctx context.Context, repo string) (mTypes.RepoMeta, error) {
|
||||||
return mTypes.RepoMeta{
|
return mTypes.RepoMeta{
|
||||||
Name: "repo1",
|
Name: "repo1",
|
||||||
Tags: map[string]mTypes.Descriptor{
|
Tags: map[mTypes.Tag]mTypes.Descriptor{
|
||||||
"1.0.2": {Digest: derivedImage.DigestStr(), MediaType: ispec.MediaTypeImageManifest},
|
"1.0.2": {Digest: derivedImage.DigestStr(), MediaType: ispec.MediaTypeImageManifest},
|
||||||
},
|
},
|
||||||
}, nil
|
}, nil
|
||||||
|
@ -2175,7 +2175,7 @@ func TestMockedBaseImageList(t *testing.T) {
|
||||||
fullImageMetaList := []mTypes.FullImageMeta{}
|
fullImageMetaList := []mTypes.FullImageMeta{}
|
||||||
repos := []mTypes.RepoMeta{{
|
repos := []mTypes.RepoMeta{{
|
||||||
Name: "repo1",
|
Name: "repo1",
|
||||||
Tags: map[string]mTypes.Descriptor{
|
Tags: map[mTypes.Tag]mTypes.Descriptor{
|
||||||
"1.0.1": {Digest: image.DigestStr(), MediaType: ispec.MediaTypeImageManifest},
|
"1.0.1": {Digest: image.DigestStr(), MediaType: ispec.MediaTypeImageManifest},
|
||||||
"1.0.3": {Digest: image.DigestStr(), MediaType: ispec.MediaTypeImageManifest},
|
"1.0.3": {Digest: image.DigestStr(), MediaType: ispec.MediaTypeImageManifest},
|
||||||
"1.0.2": {Digest: derivedImage.DigestStr(), MediaType: ispec.MediaTypeImageManifest},
|
"1.0.2": {Digest: derivedImage.DigestStr(), MediaType: ispec.MediaTypeImageManifest},
|
||||||
|
@ -2257,7 +2257,7 @@ func TestMockedBaseImageList(t *testing.T) {
|
||||||
GetRepoMetaFn: func(ctx context.Context, repo string) (mTypes.RepoMeta, error) {
|
GetRepoMetaFn: func(ctx context.Context, repo string) (mTypes.RepoMeta, error) {
|
||||||
return mTypes.RepoMeta{
|
return mTypes.RepoMeta{
|
||||||
Name: "repo1",
|
Name: "repo1",
|
||||||
Tags: map[string]mTypes.Descriptor{
|
Tags: map[mTypes.Tag]mTypes.Descriptor{
|
||||||
"1.0.2": {Digest: derivedImage.DigestStr(), MediaType: ispec.MediaTypeImageManifest},
|
"1.0.2": {Digest: derivedImage.DigestStr(), MediaType: ispec.MediaTypeImageManifest},
|
||||||
},
|
},
|
||||||
}, nil
|
}, nil
|
||||||
|
@ -2270,7 +2270,7 @@ func TestMockedBaseImageList(t *testing.T) {
|
||||||
fullImageMetaList := []mTypes.FullImageMeta{}
|
fullImageMetaList := []mTypes.FullImageMeta{}
|
||||||
repos := []mTypes.RepoMeta{{
|
repos := []mTypes.RepoMeta{{
|
||||||
Name: "repo1",
|
Name: "repo1",
|
||||||
Tags: map[string]mTypes.Descriptor{
|
Tags: map[mTypes.Tag]mTypes.Descriptor{
|
||||||
"1.0.1": {Digest: image.DigestStr(), MediaType: ispec.MediaTypeImageManifest},
|
"1.0.1": {Digest: image.DigestStr(), MediaType: ispec.MediaTypeImageManifest},
|
||||||
"1.0.2": {Digest: derivedImage.DigestStr(), MediaType: ispec.MediaTypeImageManifest},
|
"1.0.2": {Digest: derivedImage.DigestStr(), MediaType: ispec.MediaTypeImageManifest},
|
||||||
},
|
},
|
||||||
|
|
|
@ -28,7 +28,7 @@ type imgTrustStore struct{}
|
||||||
func (its imgTrustStore) VerifySignature(
|
func (its imgTrustStore) VerifySignature(
|
||||||
signatureType string, rawSignature []byte, sigKey string, manifestDigest godigest.Digest, imageMeta mTypes.ImageMeta,
|
signatureType string, rawSignature []byte, sigKey string, manifestDigest godigest.Digest, imageMeta mTypes.ImageMeta,
|
||||||
repo string,
|
repo string,
|
||||||
) (string, time.Time, bool, error) {
|
) (mTypes.Author, mTypes.ExpiryDate, mTypes.Validity, error) {
|
||||||
return "", time.Time{}, false, nil
|
return "", time.Time{}, false, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -75,7 +75,7 @@ func TestWrapperErrors(t *testing.T) {
|
||||||
Convey("getProtoImageMeta errors", func() {
|
Convey("getProtoImageMeta errors", func() {
|
||||||
err := boltdbWrapper.SetRepoMeta("repo", mTypes.RepoMeta{
|
err := boltdbWrapper.SetRepoMeta("repo", mTypes.RepoMeta{
|
||||||
Name: "repo",
|
Name: "repo",
|
||||||
Tags: map[string]mTypes.Descriptor{
|
Tags: map[mTypes.Tag]mTypes.Descriptor{
|
||||||
"tag": {
|
"tag": {
|
||||||
MediaType: ispec.MediaTypeImageManifest,
|
MediaType: ispec.MediaTypeImageManifest,
|
||||||
Digest: imageMeta.Digest.String(),
|
Digest: imageMeta.Digest.String(),
|
||||||
|
@ -288,7 +288,7 @@ func TestWrapperErrors(t *testing.T) {
|
||||||
Convey("getProtoImageMeta fails", func() {
|
Convey("getProtoImageMeta fails", func() {
|
||||||
err := boltdbWrapper.SetRepoMeta("repo", mTypes.RepoMeta{
|
err := boltdbWrapper.SetRepoMeta("repo", mTypes.RepoMeta{
|
||||||
Name: "repo",
|
Name: "repo",
|
||||||
Tags: map[string]mTypes.Descriptor{
|
Tags: map[mTypes.Tag]mTypes.Descriptor{
|
||||||
"tag": {
|
"tag": {
|
||||||
MediaType: ispec.MediaTypeImageManifest,
|
MediaType: ispec.MediaTypeImageManifest,
|
||||||
Digest: godigest.FromString("not-found").String(),
|
Digest: godigest.FromString("not-found").String(),
|
||||||
|
@ -307,7 +307,7 @@ func TestWrapperErrors(t *testing.T) {
|
||||||
|
|
||||||
err = boltdbWrapper.SetRepoMeta("repo", mTypes.RepoMeta{
|
err = boltdbWrapper.SetRepoMeta("repo", mTypes.RepoMeta{
|
||||||
Name: "repo",
|
Name: "repo",
|
||||||
Tags: map[string]mTypes.Descriptor{
|
Tags: map[mTypes.Tag]mTypes.Descriptor{
|
||||||
"tag": {
|
"tag": {
|
||||||
MediaType: ispec.MediaTypeImageIndex,
|
MediaType: ispec.MediaTypeImageIndex,
|
||||||
Digest: multiarchImageMeta.Digest.String(),
|
Digest: multiarchImageMeta.Digest.String(),
|
||||||
|
@ -344,7 +344,7 @@ func TestWrapperErrors(t *testing.T) {
|
||||||
badImageDigest := godigest.FromString("bad-image-manifest")
|
badImageDigest := godigest.FromString("bad-image-manifest")
|
||||||
err := boltdbWrapper.SetRepoMeta("repo", mTypes.RepoMeta{
|
err := boltdbWrapper.SetRepoMeta("repo", mTypes.RepoMeta{
|
||||||
Name: "repo",
|
Name: "repo",
|
||||||
Tags: map[string]mTypes.Descriptor{
|
Tags: map[mTypes.Tag]mTypes.Descriptor{
|
||||||
"bad-image-manifest": {
|
"bad-image-manifest": {
|
||||||
MediaType: ispec.MediaTypeImageManifest,
|
MediaType: ispec.MediaTypeImageManifest,
|
||||||
Digest: badImageDigest.String(),
|
Digest: badImageDigest.String(),
|
||||||
|
@ -363,7 +363,7 @@ func TestWrapperErrors(t *testing.T) {
|
||||||
badIndexDigest := godigest.FromString("bad-image-manifest")
|
badIndexDigest := godigest.FromString("bad-image-manifest")
|
||||||
err := boltdbWrapper.SetRepoMeta("repo", mTypes.RepoMeta{
|
err := boltdbWrapper.SetRepoMeta("repo", mTypes.RepoMeta{
|
||||||
Name: "repo",
|
Name: "repo",
|
||||||
Tags: map[string]mTypes.Descriptor{
|
Tags: map[mTypes.Tag]mTypes.Descriptor{
|
||||||
"bad-image-index": {
|
"bad-image-index": {
|
||||||
MediaType: ispec.MediaTypeImageIndex,
|
MediaType: ispec.MediaTypeImageIndex,
|
||||||
Digest: badIndexDigest.String(),
|
Digest: badIndexDigest.String(),
|
||||||
|
@ -382,7 +382,7 @@ func TestWrapperErrors(t *testing.T) {
|
||||||
goodIndexBadManifestDigest := godigest.FromString("good-index-bad-manifests")
|
goodIndexBadManifestDigest := godigest.FromString("good-index-bad-manifests")
|
||||||
err := boltdbWrapper.SetRepoMeta("repo", mTypes.RepoMeta{
|
err := boltdbWrapper.SetRepoMeta("repo", mTypes.RepoMeta{
|
||||||
Name: "repo",
|
Name: "repo",
|
||||||
Tags: map[string]mTypes.Descriptor{
|
Tags: map[mTypes.Tag]mTypes.Descriptor{
|
||||||
"good-index-bad-manifests": {
|
"good-index-bad-manifests": {
|
||||||
MediaType: ispec.MediaTypeImageIndex,
|
MediaType: ispec.MediaTypeImageIndex,
|
||||||
Digest: goodIndexBadManifestDigest.String(),
|
Digest: goodIndexBadManifestDigest.String(),
|
||||||
|
@ -403,7 +403,7 @@ func TestWrapperErrors(t *testing.T) {
|
||||||
Convey("bad media type", func() {
|
Convey("bad media type", func() {
|
||||||
err := boltdbWrapper.SetRepoMeta("repo", mTypes.RepoMeta{
|
err := boltdbWrapper.SetRepoMeta("repo", mTypes.RepoMeta{
|
||||||
Name: "repo",
|
Name: "repo",
|
||||||
Tags: map[string]mTypes.Descriptor{
|
Tags: map[mTypes.Tag]mTypes.Descriptor{
|
||||||
"mad-media-type": {
|
"mad-media-type": {
|
||||||
MediaType: "bad media type",
|
MediaType: "bad media type",
|
||||||
Digest: godigest.FromString("dig").String(),
|
Digest: godigest.FromString("dig").String(),
|
||||||
|
@ -430,7 +430,7 @@ func TestWrapperErrors(t *testing.T) {
|
||||||
Convey("bad media Type fails", func() {
|
Convey("bad media Type fails", func() {
|
||||||
err := boltdbWrapper.SetRepoMeta("repo", mTypes.RepoMeta{
|
err := boltdbWrapper.SetRepoMeta("repo", mTypes.RepoMeta{
|
||||||
Name: "repo",
|
Name: "repo",
|
||||||
Tags: map[string]mTypes.Descriptor{
|
Tags: map[mTypes.Tag]mTypes.Descriptor{
|
||||||
"bad-repo-meta": {
|
"bad-repo-meta": {
|
||||||
MediaType: "bad media type",
|
MediaType: "bad media type",
|
||||||
Digest: godigest.FromString("dig").String(),
|
Digest: godigest.FromString("dig").String(),
|
||||||
|
|
|
@ -292,8 +292,9 @@ func GetLayersInfo(layersInfo []*proto_go.LayersInfo) []mTypes.LayerInfo {
|
||||||
return results
|
return results
|
||||||
}
|
}
|
||||||
|
|
||||||
func GetStatisticsMap(stats map[string]*proto_go.DescriptorStatistics) map[string]mTypes.DescriptorStatistics {
|
func GetStatisticsMap(stats map[mTypes.ImageDigest]*proto_go.DescriptorStatistics,
|
||||||
results := map[string]mTypes.DescriptorStatistics{}
|
) map[mTypes.ImageDigest]mTypes.DescriptorStatistics {
|
||||||
|
results := map[mTypes.ImageDigest]mTypes.DescriptorStatistics{}
|
||||||
|
|
||||||
for digest, stat := range stats {
|
for digest, stat := range stats {
|
||||||
results[digest] = mTypes.DescriptorStatistics{
|
results[digest] = mTypes.DescriptorStatistics{
|
||||||
|
@ -348,8 +349,8 @@ func GetImageIndexMeta(indexContent ispec.Index, size int64, digest godigest.Dig
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func GetTags(tags map[string]*proto_go.TagDescriptor) map[string]mTypes.Descriptor {
|
func GetTags(tags map[mTypes.Tag]*proto_go.TagDescriptor) map[mTypes.Tag]mTypes.Descriptor {
|
||||||
resultMap := map[string]mTypes.Descriptor{}
|
resultMap := map[mTypes.Tag]mTypes.Descriptor{}
|
||||||
|
|
||||||
for tag, tagDescriptor := range tags {
|
for tag, tagDescriptor := range tags {
|
||||||
resultMap[tag] = mTypes.Descriptor{
|
resultMap[tag] = mTypes.Descriptor{
|
||||||
|
|
|
@ -118,8 +118,9 @@ func GetProtoImageIndexMeta(indexContent ispec.Index, size int64, digest string)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func GetProtoStatistics(stats map[string]mTypes.DescriptorStatistics) map[string]*proto_go.DescriptorStatistics {
|
func GetProtoStatistics(stats map[mTypes.ImageDigest]mTypes.DescriptorStatistics,
|
||||||
results := map[string]*proto_go.DescriptorStatistics{}
|
) map[mTypes.ImageDigest]*proto_go.DescriptorStatistics {
|
||||||
|
results := map[mTypes.ImageDigest]*proto_go.DescriptorStatistics{}
|
||||||
|
|
||||||
for digest, stat := range stats {
|
for digest, stat := range stats {
|
||||||
results[digest] = &proto_go.DescriptorStatistics{
|
results[digest] = &proto_go.DescriptorStatistics{
|
||||||
|
@ -335,8 +336,8 @@ func GetProtoTime(time *time.Time) *timestamppb.Timestamp {
|
||||||
return timestamppb.New(*time)
|
return timestamppb.New(*time)
|
||||||
}
|
}
|
||||||
|
|
||||||
func GetProtoTags(tags map[string]mTypes.Descriptor) map[string]*proto_go.TagDescriptor {
|
func GetProtoTags(tags map[mTypes.Tag]mTypes.Descriptor) map[mTypes.Tag]*proto_go.TagDescriptor {
|
||||||
resultMap := map[string]*proto_go.TagDescriptor{}
|
resultMap := map[mTypes.Tag]*proto_go.TagDescriptor{}
|
||||||
|
|
||||||
for tag, tagDescriptor := range tags {
|
for tag, tagDescriptor := range tags {
|
||||||
resultMap[tag] = &proto_go.TagDescriptor{
|
resultMap[tag] = &proto_go.TagDescriptor{
|
||||||
|
|
|
@ -208,7 +208,7 @@ func TestWrapperErrors(t *testing.T) {
|
||||||
Convey("getProtoImageMeta errors", func() {
|
Convey("getProtoImageMeta errors", func() {
|
||||||
err := dynamoWrapper.SetRepoMeta("repo", mTypes.RepoMeta{ //nolint: contextcheck
|
err := dynamoWrapper.SetRepoMeta("repo", mTypes.RepoMeta{ //nolint: contextcheck
|
||||||
Name: "repo",
|
Name: "repo",
|
||||||
Tags: map[string]mTypes.Descriptor{
|
Tags: map[mTypes.Tag]mTypes.Descriptor{
|
||||||
"tag": {
|
"tag": {
|
||||||
MediaType: ispec.MediaTypeImageManifest,
|
MediaType: ispec.MediaTypeImageManifest,
|
||||||
Digest: imageMeta.Digest.String(),
|
Digest: imageMeta.Digest.String(),
|
||||||
|
@ -405,7 +405,7 @@ func TestWrapperErrors(t *testing.T) {
|
||||||
Convey("getProtoImageMeta fails", func() {
|
Convey("getProtoImageMeta fails", func() {
|
||||||
err := dynamoWrapper.SetRepoMeta("repo", mTypes.RepoMeta{ //nolint: contextcheck
|
err := dynamoWrapper.SetRepoMeta("repo", mTypes.RepoMeta{ //nolint: contextcheck
|
||||||
Name: "repo",
|
Name: "repo",
|
||||||
Tags: map[string]mTypes.Descriptor{
|
Tags: map[mTypes.Tag]mTypes.Descriptor{
|
||||||
"tag": {
|
"tag": {
|
||||||
MediaType: ispec.MediaTypeImageManifest,
|
MediaType: ispec.MediaTypeImageManifest,
|
||||||
Digest: godigest.FromString("not-found").String(),
|
Digest: godigest.FromString("not-found").String(),
|
||||||
|
@ -424,7 +424,7 @@ func TestWrapperErrors(t *testing.T) {
|
||||||
|
|
||||||
err = dynamoWrapper.SetRepoMeta("repo", mTypes.RepoMeta{ //nolint: contextcheck
|
err = dynamoWrapper.SetRepoMeta("repo", mTypes.RepoMeta{ //nolint: contextcheck
|
||||||
Name: "repo",
|
Name: "repo",
|
||||||
Tags: map[string]mTypes.Descriptor{
|
Tags: map[mTypes.Tag]mTypes.Descriptor{
|
||||||
"tag": {
|
"tag": {
|
||||||
MediaType: ispec.MediaTypeImageIndex,
|
MediaType: ispec.MediaTypeImageIndex,
|
||||||
Digest: multiarchImageMeta.Digest.String(),
|
Digest: multiarchImageMeta.Digest.String(),
|
||||||
|
@ -457,7 +457,7 @@ func TestWrapperErrors(t *testing.T) {
|
||||||
badImageDigest := godigest.FromString("bad-image-manifest")
|
badImageDigest := godigest.FromString("bad-image-manifest")
|
||||||
err := dynamoWrapper.SetRepoMeta("repo", mTypes.RepoMeta{ //nolint: contextcheck
|
err := dynamoWrapper.SetRepoMeta("repo", mTypes.RepoMeta{ //nolint: contextcheck
|
||||||
Name: "repo",
|
Name: "repo",
|
||||||
Tags: map[string]mTypes.Descriptor{
|
Tags: map[mTypes.Tag]mTypes.Descriptor{
|
||||||
"bad-image-manifest": {
|
"bad-image-manifest": {
|
||||||
MediaType: ispec.MediaTypeImageManifest,
|
MediaType: ispec.MediaTypeImageManifest,
|
||||||
Digest: badImageDigest.String(),
|
Digest: badImageDigest.String(),
|
||||||
|
@ -476,7 +476,7 @@ func TestWrapperErrors(t *testing.T) {
|
||||||
badIndexDigest := godigest.FromString("bad-image-manifest")
|
badIndexDigest := godigest.FromString("bad-image-manifest")
|
||||||
err := dynamoWrapper.SetRepoMeta("repo", mTypes.RepoMeta{ //nolint: contextcheck
|
err := dynamoWrapper.SetRepoMeta("repo", mTypes.RepoMeta{ //nolint: contextcheck
|
||||||
Name: "repo",
|
Name: "repo",
|
||||||
Tags: map[string]mTypes.Descriptor{
|
Tags: map[mTypes.Tag]mTypes.Descriptor{
|
||||||
"bad-image-index": {
|
"bad-image-index": {
|
||||||
MediaType: ispec.MediaTypeImageIndex,
|
MediaType: ispec.MediaTypeImageIndex,
|
||||||
Digest: badIndexDigest.String(),
|
Digest: badIndexDigest.String(),
|
||||||
|
@ -495,7 +495,7 @@ func TestWrapperErrors(t *testing.T) {
|
||||||
goodIndexBadManifestDigest := godigest.FromString("good-index-bad-manifests")
|
goodIndexBadManifestDigest := godigest.FromString("good-index-bad-manifests")
|
||||||
err := dynamoWrapper.SetRepoMeta("repo", mTypes.RepoMeta{ //nolint: contextcheck
|
err := dynamoWrapper.SetRepoMeta("repo", mTypes.RepoMeta{ //nolint: contextcheck
|
||||||
Name: "repo",
|
Name: "repo",
|
||||||
Tags: map[string]mTypes.Descriptor{
|
Tags: map[mTypes.Tag]mTypes.Descriptor{
|
||||||
"good-index-bad-manifests": {
|
"good-index-bad-manifests": {
|
||||||
MediaType: ispec.MediaTypeImageIndex,
|
MediaType: ispec.MediaTypeImageIndex,
|
||||||
Digest: goodIndexBadManifestDigest.String(),
|
Digest: goodIndexBadManifestDigest.String(),
|
||||||
|
@ -528,7 +528,7 @@ func TestWrapperErrors(t *testing.T) {
|
||||||
badImageDigest := godigest.FromString("bad-image-manifest")
|
badImageDigest := godigest.FromString("bad-image-manifest")
|
||||||
err := dynamoWrapper.SetRepoMeta("repo", mTypes.RepoMeta{ //nolint: contextcheck
|
err := dynamoWrapper.SetRepoMeta("repo", mTypes.RepoMeta{ //nolint: contextcheck
|
||||||
Name: "repo",
|
Name: "repo",
|
||||||
Tags: map[string]mTypes.Descriptor{
|
Tags: map[mTypes.Tag]mTypes.Descriptor{
|
||||||
"bad-image-manifest": {
|
"bad-image-manifest": {
|
||||||
MediaType: ispec.MediaTypeImageManifest,
|
MediaType: ispec.MediaTypeImageManifest,
|
||||||
Digest: badImageDigest.String(),
|
Digest: badImageDigest.String(),
|
||||||
|
@ -547,7 +547,7 @@ func TestWrapperErrors(t *testing.T) {
|
||||||
badIndexDigest := godigest.FromString("bad-image-manifest")
|
badIndexDigest := godigest.FromString("bad-image-manifest")
|
||||||
err := dynamoWrapper.SetRepoMeta("repo", mTypes.RepoMeta{ //nolint: contextcheck
|
err := dynamoWrapper.SetRepoMeta("repo", mTypes.RepoMeta{ //nolint: contextcheck
|
||||||
Name: "repo",
|
Name: "repo",
|
||||||
Tags: map[string]mTypes.Descriptor{
|
Tags: map[mTypes.Tag]mTypes.Descriptor{
|
||||||
"bad-image-index": {
|
"bad-image-index": {
|
||||||
MediaType: ispec.MediaTypeImageIndex,
|
MediaType: ispec.MediaTypeImageIndex,
|
||||||
Digest: badIndexDigest.String(),
|
Digest: badIndexDigest.String(),
|
||||||
|
@ -566,7 +566,7 @@ func TestWrapperErrors(t *testing.T) {
|
||||||
goodIndexBadManifestDigest := godigest.FromString("good-index-bad-manifests")
|
goodIndexBadManifestDigest := godigest.FromString("good-index-bad-manifests")
|
||||||
err := dynamoWrapper.SetRepoMeta("repo", mTypes.RepoMeta{ //nolint: contextcheck
|
err := dynamoWrapper.SetRepoMeta("repo", mTypes.RepoMeta{ //nolint: contextcheck
|
||||||
Name: "repo",
|
Name: "repo",
|
||||||
Tags: map[string]mTypes.Descriptor{
|
Tags: map[mTypes.Tag]mTypes.Descriptor{
|
||||||
"good-index-bad-manifests": {
|
"good-index-bad-manifests": {
|
||||||
MediaType: ispec.MediaTypeImageIndex,
|
MediaType: ispec.MediaTypeImageIndex,
|
||||||
Digest: goodIndexBadManifestDigest.String(),
|
Digest: goodIndexBadManifestDigest.String(),
|
||||||
|
@ -587,7 +587,7 @@ func TestWrapperErrors(t *testing.T) {
|
||||||
Convey("bad media type", func() {
|
Convey("bad media type", func() {
|
||||||
err := dynamoWrapper.SetRepoMeta("repo", mTypes.RepoMeta{ //nolint: contextcheck
|
err := dynamoWrapper.SetRepoMeta("repo", mTypes.RepoMeta{ //nolint: contextcheck
|
||||||
Name: "repo",
|
Name: "repo",
|
||||||
Tags: map[string]mTypes.Descriptor{
|
Tags: map[mTypes.Tag]mTypes.Descriptor{
|
||||||
"mad-media-type": {
|
"mad-media-type": {
|
||||||
MediaType: "bad media type",
|
MediaType: "bad media type",
|
||||||
Digest: godigest.FromString("dig").String(),
|
Digest: godigest.FromString("dig").String(),
|
||||||
|
|
|
@ -526,11 +526,11 @@ func RunMetaDBTests(t *testing.T, metaDB mTypes.MetaDB, preparationFuncs ...func
|
||||||
Convey("Set/Get RepoMeta", func() {
|
Convey("Set/Get RepoMeta", func() {
|
||||||
err := metaDB.SetRepoMeta("repo", mTypes.RepoMeta{
|
err := metaDB.SetRepoMeta("repo", mTypes.RepoMeta{
|
||||||
Name: "repo",
|
Name: "repo",
|
||||||
Tags: map[string]mTypes.Descriptor{"tag": {Digest: "dig"}},
|
Tags: map[mTypes.Tag]mTypes.Descriptor{"tag": {Digest: "dig"}},
|
||||||
|
|
||||||
Statistics: map[string]mTypes.DescriptorStatistics{},
|
Statistics: map[mTypes.ImageDigest]mTypes.DescriptorStatistics{},
|
||||||
Signatures: map[string]mTypes.ManifestSignatures{},
|
Signatures: map[mTypes.ImageDigest]mTypes.ManifestSignatures{},
|
||||||
Referrers: map[string][]mTypes.ReferrerInfo{"digest": {{Digest: "dig"}}},
|
Referrers: map[mTypes.ImageDigest][]mTypes.ReferrerInfo{"digest": {{Digest: "dig"}}},
|
||||||
})
|
})
|
||||||
So(err, ShouldBeNil)
|
So(err, ShouldBeNil)
|
||||||
repoMeta, err := metaDB.GetRepoMeta(ctx, "repo")
|
repoMeta, err := metaDB.GetRepoMeta(ctx, "repo")
|
||||||
|
|
|
@ -54,10 +54,6 @@ func GetLatestImageDigests(repoMetaList []RepoMeta) []string {
|
||||||
return digests
|
return digests
|
||||||
}
|
}
|
||||||
|
|
||||||
type (
|
|
||||||
ImageDigest = string
|
|
||||||
)
|
|
||||||
|
|
||||||
type MetaDB interface { //nolint:interfacebloat
|
type MetaDB interface { //nolint:interfacebloat
|
||||||
UserDB
|
UserDB
|
||||||
|
|
||||||
|
@ -89,7 +85,7 @@ type MetaDB interface { //nolint:interfacebloat
|
||||||
// GetImageMeta returns the raw information about an image
|
// GetImageMeta returns the raw information about an image
|
||||||
GetImageMeta(digest godigest.Digest) (ImageMeta, error)
|
GetImageMeta(digest godigest.Digest) (ImageMeta, error)
|
||||||
|
|
||||||
// GetMultipleRepoMeta returns information about all repositories as map[string]RepoMetadata filtered by the filter
|
// GetMultipleRepoMeta returns a list of all repos that match the given filter.
|
||||||
// function
|
// function
|
||||||
GetMultipleRepoMeta(ctx context.Context, filter func(repoMeta RepoMeta) bool) (
|
GetMultipleRepoMeta(ctx context.Context, filter func(repoMeta RepoMeta) bool) (
|
||||||
[]RepoMeta, error)
|
[]RepoMeta, error)
|
||||||
|
@ -123,7 +119,7 @@ type MetaDB interface { //nolint:interfacebloat
|
||||||
UpdateStatsOnDownload(repo string, reference string) error
|
UpdateStatsOnDownload(repo string, reference string) error
|
||||||
|
|
||||||
// FilterImageMeta returns the image data for the given digests
|
// FilterImageMeta returns the image data for the given digests
|
||||||
FilterImageMeta(ctx context.Context, digests []string) (map[string]ImageMeta, error)
|
FilterImageMeta(ctx context.Context, digests []string) (map[ImageDigest]ImageMeta, error)
|
||||||
|
|
||||||
/*
|
/*
|
||||||
RemoveRepoReference removes the tag from RepoMetadata if the reference is a tag,
|
RemoveRepoReference removes the tag from RepoMetadata if the reference is a tag,
|
||||||
|
@ -190,11 +186,17 @@ type UserDB interface { //nolint:interfacebloat
|
||||||
DeleteUserAPIKey(ctx context.Context, id string) error
|
DeleteUserAPIKey(ctx context.Context, id string) error
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type (
|
||||||
|
Author = string
|
||||||
|
ExpiryDate = time.Time
|
||||||
|
Validity = bool
|
||||||
|
)
|
||||||
|
|
||||||
type ImageTrustStore interface {
|
type ImageTrustStore interface {
|
||||||
VerifySignature(
|
VerifySignature(
|
||||||
signatureType string, rawSignature []byte, sigKey string, manifestDigest godigest.Digest, imageMeta ImageMeta,
|
signatureType string, rawSignature []byte, sigKey string, manifestDigest godigest.Digest, imageMeta ImageMeta,
|
||||||
repo string,
|
repo string,
|
||||||
) (string, time.Time, bool, error)
|
) (Author, ExpiryDate, Validity, error)
|
||||||
}
|
}
|
||||||
|
|
||||||
// ImageMeta can store all data related to a image, multiarch or simple. Used for writing imaged to MetaDB.
|
// ImageMeta can store all data related to a image, multiarch or simple. Used for writing imaged to MetaDB.
|
||||||
|
@ -214,13 +216,18 @@ type ManifestMeta struct {
|
||||||
Config ispec.Image
|
Config ispec.Image
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type (
|
||||||
|
Tag = string
|
||||||
|
ImageDigest = string
|
||||||
|
)
|
||||||
|
|
||||||
type RepoMeta struct {
|
type RepoMeta struct {
|
||||||
Name string
|
Name string
|
||||||
Tags map[string]Descriptor
|
Tags map[Tag]Descriptor
|
||||||
|
|
||||||
Statistics map[string]DescriptorStatistics
|
Statistics map[ImageDigest]DescriptorStatistics
|
||||||
Signatures map[string]ManifestSignatures
|
Signatures map[ImageDigest]ManifestSignatures
|
||||||
Referrers map[string][]ReferrerInfo
|
Referrers map[ImageDigest][]ReferrerInfo
|
||||||
|
|
||||||
LastUpdatedImage *LastUpdatedImage
|
LastUpdatedImage *LastUpdatedImage
|
||||||
Platforms []ispec.Platform
|
Platforms []ispec.Platform
|
||||||
|
@ -287,7 +294,11 @@ type DescriptorStatistics struct {
|
||||||
PushedBy string
|
PushedBy string
|
||||||
}
|
}
|
||||||
|
|
||||||
type ManifestSignatures map[string][]SignatureInfo
|
type (
|
||||||
|
SignatureType = string
|
||||||
|
)
|
||||||
|
|
||||||
|
type ManifestSignatures map[SignatureType][]SignatureInfo
|
||||||
|
|
||||||
type LayerInfo struct {
|
type LayerInfo struct {
|
||||||
LayerDigest string
|
LayerDigest string
|
||||||
|
@ -309,11 +320,15 @@ type SignatureMetadata struct {
|
||||||
LayersInfo []LayerInfo
|
LayersInfo []LayerInfo
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type (
|
||||||
|
HashedAPIKey = string
|
||||||
|
)
|
||||||
|
|
||||||
type UserData struct {
|
type UserData struct {
|
||||||
StarredRepos []string
|
StarredRepos []string
|
||||||
BookmarkedRepos []string
|
BookmarkedRepos []string
|
||||||
Groups []string
|
Groups []string
|
||||||
APIKeys map[string]APIKeyDetails
|
APIKeys map[HashedAPIKey]APIKeyDetails
|
||||||
}
|
}
|
||||||
|
|
||||||
type Filter struct {
|
type Filter struct {
|
||||||
|
|
|
@ -18,7 +18,7 @@ type RepoImage struct {
|
||||||
|
|
||||||
type RepoMultiArchImage struct {
|
type RepoMultiArchImage struct {
|
||||||
imageUtil.MultiarchImage
|
imageUtil.MultiarchImage
|
||||||
ImageStatistics map[string]mTypes.DescriptorStatistics
|
ImageStatistics map[mTypes.ImageDigest]mTypes.DescriptorStatistics
|
||||||
Reference string
|
Reference string
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue