Skip to content

Commit 927acf9

Browse files
authored
feat(cli): add javadb metadata to version info (#3835)
1 parent 33074cf commit 927acf9

File tree

3 files changed

+37
-1
lines changed

3 files changed

+37
-1
lines changed

pkg/commands/app.go

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import (
66
"fmt"
77
"io"
88
"os"
9+
"path/filepath"
910
"strings"
1011
"time"
1112

@@ -15,6 +16,7 @@ import (
1516

1617
awsScanner "github.com/aquasecurity/defsec/pkg/scanners/cloud/aws"
1718
"github.com/aquasecurity/trivy-db/pkg/metadata"
19+
javadb "github.com/aquasecurity/trivy-java-db/pkg/db"
1820
awscommands "github.com/aquasecurity/trivy/pkg/cloud/aws/commands"
1921
"github.com/aquasecurity/trivy/pkg/commands/artifact"
2022
"github.com/aquasecurity/trivy/pkg/commands/server"
@@ -32,6 +34,7 @@ import (
3234
type VersionInfo struct {
3335
Version string `json:",omitempty"`
3436
VulnerabilityDB *metadata.Metadata `json:",omitempty"`
37+
JavaDB *metadata.Metadata `json:",omitempty"`
3538
PolicyBundle *policy.Metadata `json:",omitempty"`
3639
}
3740

@@ -1073,6 +1076,7 @@ func NewVersionCommand(globalFlags *flag.GlobalFlagGroup) *cobra.Command {
10731076

10741077
func showVersion(cacheDir, outputFormat, version string, outputWriter io.Writer) {
10751078
var dbMeta *metadata.Metadata
1079+
var javadbMeta *metadata.Metadata
10761080

10771081
mc := metadata.NewClient(cacheDir)
10781082
meta, _ := mc.Get() // nolint: errcheck
@@ -1085,6 +1089,17 @@ func showVersion(cacheDir, outputFormat, version string, outputWriter io.Writer)
10851089
}
10861090
}
10871091

1092+
mcJava := javadb.NewMetadata(filepath.Join(cacheDir, "java-db"))
1093+
metaJava, _ := mcJava.Get() // nolint: errcheck
1094+
if !metaJava.UpdatedAt.IsZero() && !metaJava.NextUpdate.IsZero() && metaJava.Version != 0 {
1095+
javadbMeta = &metadata.Metadata{
1096+
Version: metaJava.Version,
1097+
NextUpdate: metaJava.NextUpdate.UTC(),
1098+
UpdatedAt: metaJava.UpdatedAt.UTC(),
1099+
DownloadedAt: metaJava.DownloadedAt.UTC(),
1100+
}
1101+
}
1102+
10881103
var pbMeta *policy.Metadata
10891104
pc, err := policy.NewClient(cacheDir, false)
10901105
if pc != nil && err == nil {
@@ -1096,6 +1111,7 @@ func showVersion(cacheDir, outputFormat, version string, outputWriter io.Writer)
10961111
b, _ := json.Marshal(VersionInfo{
10971112
Version: version,
10981113
VulnerabilityDB: dbMeta,
1114+
JavaDB: javadbMeta,
10991115
PolicyBundle: pbMeta,
11001116
})
11011117
fmt.Fprintln(outputWriter, string(b))
@@ -1110,6 +1126,15 @@ func showVersion(cacheDir, outputFormat, version string, outputWriter io.Writer)
11101126
`, dbMeta.Version, dbMeta.UpdatedAt.UTC(), dbMeta.NextUpdate.UTC(), dbMeta.DownloadedAt.UTC())
11111127
}
11121128

1129+
if javadbMeta != nil {
1130+
output += fmt.Sprintf(`Java DB:
1131+
Version: %d
1132+
UpdatedAt: %s
1133+
NextUpdate: %s
1134+
DownloadedAt: %s
1135+
`, javadbMeta.Version, javadbMeta.UpdatedAt.UTC(), javadbMeta.NextUpdate.UTC(), javadbMeta.DownloadedAt.UTC())
1136+
}
1137+
11131138
if pbMeta != nil {
11141139
output += fmt.Sprintf(`Policy Bundle:
11151140
Digest: %s

pkg/commands/app_test.go

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,11 @@ Vulnerability DB:
3232
UpdatedAt: 2022-03-02 06:07:07.99504083 +0000 UTC
3333
NextUpdate: 2022-03-02 12:07:07.99504023 +0000 UTC
3434
DownloadedAt: 2022-03-02 10:03:38.383312 +0000 UTC
35+
Java DB:
36+
Version: 1
37+
UpdatedAt: 2023-03-14 00:47:02.774253754 +0000 UTC
38+
NextUpdate: 2023-03-17 00:47:02.774253254 +0000 UTC
39+
DownloadedAt: 2023-03-14 03:04:55.058541039 +0000 UTC
3540
Policy Bundle:
3641
Digest: sha256:19a017cdc798631ad42f6f4dce823d77b2989128f0e1a7f9bc83ae3c59024edd
3742
DownloadedAt: 2023-03-02 01:06:08.191725 +0000 UTC
@@ -65,11 +70,16 @@ Vulnerability DB:
6570
UpdatedAt: 2022-03-02 06:07:07.99504083 +0000 UTC
6671
NextUpdate: 2022-03-02 12:07:07.99504023 +0000 UTC
6772
DownloadedAt: 2022-03-02 10:03:38.383312 +0000 UTC
73+
Java DB:
74+
Version: 1
75+
UpdatedAt: 2023-03-14 00:47:02.774253754 +0000 UTC
76+
NextUpdate: 2023-03-17 00:47:02.774253254 +0000 UTC
77+
DownloadedAt: 2023-03-14 03:04:55.058541039 +0000 UTC
6878
Policy Bundle:
6979
Digest: sha256:19a017cdc798631ad42f6f4dce823d77b2989128f0e1a7f9bc83ae3c59024edd
7080
DownloadedAt: 2023-03-02 01:06:08.191725 +0000 UTC
7181
`
72-
jsonOutput := `{"Version":"test","VulnerabilityDB":{"Version":2,"NextUpdate":"2022-03-02T12:07:07.99504023Z","UpdatedAt":"2022-03-02T06:07:07.99504083Z","DownloadedAt":"2022-03-02T10:03:38.383312Z"},"PolicyBundle":{"Digest":"sha256:19a017cdc798631ad42f6f4dce823d77b2989128f0e1a7f9bc83ae3c59024edd","DownloadedAt":"2023-03-01T17:06:08.191725-08:00"}}
82+
jsonOutput := `{"Version":"test","VulnerabilityDB":{"Version":2,"NextUpdate":"2022-03-02T12:07:07.99504023Z","UpdatedAt":"2022-03-02T06:07:07.99504083Z","DownloadedAt":"2022-03-02T10:03:38.383312Z"},"JavaDB":{"Version":1,"NextUpdate":"2023-03-17T00:47:02.774253254Z","UpdatedAt":"2023-03-14T00:47:02.774253754Z","DownloadedAt":"2023-03-14T03:04:55.058541039Z"},"PolicyBundle":{"Digest":"sha256:19a017cdc798631ad42f6f4dce823d77b2989128f0e1a7f9bc83ae3c59024edd","DownloadedAt":"2023-03-01T17:06:08.191725-08:00"}}
7383
`
7484

7585
tests := []struct {
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
{"Version":1,"NextUpdate":"2023-03-17T00:47:02.774253254Z","UpdatedAt":"2023-03-14T00:47:02.774253754Z","DownloadedAt":"2023-03-14T03:04:55.058541039Z"}

0 commit comments

Comments
 (0)