@google-cloud/containeranalysis 4.0.0 → 4.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -4,6 +4,18 @@
4
4
 
5
5
  [1]: https://www.npmjs.com/package/@google-cloud/containeranalysis?activeTab=versions
6
6
 
7
+ ## [4.1.0](https://github.com/googleapis/nodejs-containeranalysis/compare/v4.0.0...v4.1.0) (2022-06-10)
8
+
9
+
10
+ ### Features
11
+
12
+ * Import of Grafeas from Github ([#413](https://github.com/googleapis/nodejs-containeranalysis/issues/413)) ([fda2b32](https://github.com/googleapis/nodejs-containeranalysis/commit/fda2b3218680d9f0b81435ba9913d150eeded826))
13
+
14
+
15
+ ### Bug Fixes
16
+
17
+ * **deps:** update dependency @google-cloud/pubsub to v3 ([#410](https://github.com/googleapis/nodejs-containeranalysis/issues/410)) ([fb503c8](https://github.com/googleapis/nodejs-containeranalysis/commit/fb503c89c6e0b8af7c4a4c60cddae7cf8727bd2b))
18
+
7
19
  ## [4.0.0](https://github.com/googleapis/nodejs-containeranalysis/compare/v3.4.0...v4.0.0) (2022-05-17)
8
20
 
9
21
 
@@ -119,3 +119,32 @@ message EnvelopeSignature {
119
119
  bytes sig = 1;
120
120
  string keyid = 2;
121
121
  }
122
+
123
+ // Indicates the location at which a package was found.
124
+ message FileLocation {
125
+ // For jars that are contained inside .war files, this filepath
126
+ // can indicate the path to war file combined with the path to jar file.
127
+ string file_path = 1;
128
+ }
129
+
130
+ // License information.
131
+ message License {
132
+ // Often a single license can be used to represent the licensing terms.
133
+ // Sometimes it is necessary to include a choice of one or more licenses
134
+ // or some combination of license identifiers.
135
+ // Examples: "LGPL-2.1-only OR MIT", "LGPL-2.1-only AND MIT",
136
+ // "GPL-2.0-or-later WITH Bison-exception-2.2".
137
+ string expression = 1;
138
+
139
+ // Comments
140
+ string comments = 2;
141
+ }
142
+
143
+ // Digest information.
144
+ message Digest {
145
+ // `SHA1`, `SHA512` etc.
146
+ string algo = 1;
147
+
148
+ // Value of the digest.
149
+ bytes digest_bytes = 2;
150
+ }
@@ -52,6 +52,9 @@ message ComplianceVersion {
52
52
  // The CPE URI (https://cpe.mitre.org/specification/) this benchmark is
53
53
  // applicable to.
54
54
  string cpe_uri = 1;
55
+ // The name of the document that defines this benchmark, e.g. "CIS
56
+ // Container-Optimized OS".
57
+ string benchmark_document = 3;
55
58
  // The version of the benchmark. This is set to the version of the OS-specific
56
59
  // CIS document the benchmark is defined in.
57
60
  string version = 2;
@@ -19,8 +19,8 @@ package grafeas.v1;
19
19
  option go_package = "google.golang.org/genproto/googleapis/grafeas/v1;grafeas";
20
20
  option java_multiple_files = true;
21
21
  option java_package = "io.grafeas.v1";
22
- option java_outer_classname = "CvssProto";
23
22
  option objc_class_prefix = "GRA";
23
+ option java_outer_classname = "CVSSProto";
24
24
 
25
25
  // Common Vulnerability Scoring System version 3.
26
26
  // For details, see https://www.first.org/cvss/specification-document
@@ -87,10 +87,8 @@ message CVSSv3 {
87
87
 
88
88
  // Common Vulnerability Scoring System.
89
89
  // For details, see https://www.first.org/cvss/specification-document
90
- // This is a message we will try to use for storing multiple versions of
91
- // CVSS. The intention is that as new versions of CVSS scores get added, we
92
- // will be able to modify this message rather than adding new protos for each
93
- // new version of the score.
90
+ // This is a message we will try to use for storing various versions of CVSS
91
+ // rather than making a separate proto for storing a specific version.
94
92
  message CVSS {
95
93
  // The base score is a function of the base metric scores.
96
94
  float base_score = 1;
@@ -49,4 +49,4 @@ message DSSEAttestationOccurrence {
49
49
  oneof decoded_payload {
50
50
  InTotoStatement statement = 2;
51
51
  }
52
- }
52
+ }
@@ -18,6 +18,7 @@ package grafeas.v1;
18
18
 
19
19
  import "grafeas/v1/intoto_provenance.proto";
20
20
  import "grafeas/v1/slsa_provenance.proto";
21
+ import "grafeas/v1/slsa_provenance_zero_two.proto";
21
22
 
22
23
  option go_package = "google.golang.org/genproto/googleapis/grafeas/v1;grafeas";
23
24
  option java_multiple_files = true;
@@ -38,6 +39,7 @@ message InTotoStatement {
38
39
  oneof predicate {
39
40
  InTotoProvenance provenance = 4;
40
41
  SlsaProvenance slsa_provenance = 5;
42
+ SlsaProvenanceZeroTwo slsa_provenance_zero_two = 6;
41
43
  }
42
44
  }
43
45
  message Subject {
@@ -16,6 +16,9 @@ syntax = "proto3";
16
16
 
17
17
  package grafeas.v1;
18
18
 
19
+ import "google/api/field_behavior.proto";
20
+ import "grafeas/v1/common.proto";
21
+
19
22
  option go_package = "google.golang.org/genproto/googleapis/grafeas/v1;grafeas";
20
23
  option java_multiple_files = true;
21
24
  option java_package = "io.grafeas.v1";
@@ -34,9 +37,9 @@ enum Architecture {
34
37
  // This represents a particular channel of distribution for a given package.
35
38
  // E.g., Debian's jessie-backports dpkg mirror.
36
39
  message Distribution {
37
- // Required. The cpe_uri in [CPE format](https://cpe.mitre.org/specification/)
40
+ // The cpe_uri in [CPE format](https://cpe.mitre.org/specification/)
38
41
  // denoting the package manager version distributing a package.
39
- string cpe_uri = 1;
42
+ string cpe_uri = 1 [(google.api.field_behavior) = REQUIRED];
40
43
 
41
44
  // The CPU architecture for which packages in this distribution channel were
42
45
  // built.
@@ -58,10 +61,11 @@ message Distribution {
58
61
  // An occurrence of a particular package installation found within a system's
59
62
  // filesystem. E.g., glibc was found in `/var/lib/dpkg/status`.
60
63
  message Location {
61
- // Required. The CPE URI in [CPE format](https://cpe.mitre.org/specification/)
62
- // denoting the package manager version distributing a package.
64
+ // Deprecated.
65
+ // The CPE URI in [CPE format](https://cpe.mitre.org/specification/)
63
66
  string cpe_uri = 1;
64
67
 
68
+ // Deprecated.
65
69
  // The version installed at this location.
66
70
  Version version = 2;
67
71
 
@@ -69,25 +73,81 @@ message Location {
69
73
  string path = 3;
70
74
  }
71
75
 
72
- // This represents a particular package that is distributed over various
73
- // channels. E.g., glibc (aka libc6) is distributed by many, at various
74
- // versions.
76
+ // PackageNote represents a particular package version.
75
77
  message PackageNote {
76
- // Required. Immutable. The name of the package.
77
- string name = 1;
78
+ // The name of the package.
79
+ string name = 1 [
80
+ (google.api.field_behavior) = REQUIRED,
81
+ (google.api.field_behavior) = IMMUTABLE
82
+ ];
78
83
 
84
+ // Deprecated.
79
85
  // The various channels by which a package is distributed.
80
86
  repeated Distribution distribution = 10;
87
+
88
+ // The type of package; whether native or non native (e.g., ruby gems,
89
+ // node.js packages, etc.).
90
+ string package_type = 11;
91
+
92
+ // The cpe_uri in [CPE format](https://cpe.mitre.org/specification/)
93
+ // denoting the package manager version distributing a package.
94
+ // The cpe_uri will be blank for language packages.
95
+ string cpe_uri = 12;
96
+
97
+ // The CPU architecture for which packages in this distribution channel were
98
+ // built. Architecture will be blank for language packages.
99
+ Architecture architecture = 13;
100
+
101
+ // The version of the package.
102
+ Version version = 14;
103
+
104
+ // A freeform text denoting the maintainer of this package.
105
+ string maintainer = 15;
106
+
107
+ // The homepage for this package.
108
+ string url = 16;
109
+
110
+ // The description of this package.
111
+ string description = 17;
112
+
113
+ // Licenses that have been declared by the authors of the package.
114
+ License license = 18;
115
+
116
+ // Hash value, typically a file digest, that allows unique
117
+ // identification a specific package.
118
+ repeated Digest digest = 19;
81
119
  }
82
120
 
83
121
  // Details on how a particular software package was installed on a system.
84
122
  message PackageOccurrence {
85
- // Output only. The name of the installed package.
86
- string name = 1;
123
+ // The name of the installed package.
124
+ string name = 1 [
125
+ (google.api.field_behavior) = REQUIRED,
126
+ (google.api.field_behavior) = OUTPUT_ONLY
127
+ ];
87
128
 
88
- // Required. All of the places within the filesystem versions of this package
129
+ // All of the places within the filesystem versions of this package
89
130
  // have been found.
90
131
  repeated Location location = 2;
132
+
133
+ // The type of package; whether native or non native (e.g., ruby gems,
134
+ // node.js packages, etc.).
135
+ string package_type = 3 [(google.api.field_behavior) = OUTPUT_ONLY];
136
+
137
+ // The cpe_uri in [CPE format](https://cpe.mitre.org/specification/)
138
+ // denoting the package manager version distributing a package.
139
+ // The cpe_uri will be blank for language packages.
140
+ string cpe_uri = 4 [(google.api.field_behavior) = OUTPUT_ONLY];
141
+
142
+ // The CPU architecture for which packages in this distribution channel were
143
+ // built. Architecture will be blank for language packages.
144
+ Architecture architecture = 5 [(google.api.field_behavior) = OUTPUT_ONLY];
145
+
146
+ // Licenses that have been declared by the authors of the package.
147
+ License license = 6;
148
+
149
+ // The version of the package.
150
+ Version version = 7 [(google.api.field_behavior) = OUTPUT_ONLY];
91
151
  }
92
152
 
93
153
  // Version contains structured information about the version of a package.
@@ -23,6 +23,7 @@ option go_package = "google.golang.org/genproto/googleapis/grafeas/v1;grafeas";
23
23
  option java_multiple_files = true;
24
24
  option java_package = "io.grafeas.v1";
25
25
  option objc_class_prefix = "GRA";
26
+ option java_outer_classname = "SlsaProvenanceProto";
26
27
 
27
28
  message SlsaProvenance {
28
29
  // Steps taken to build the artifact.
@@ -111,4 +112,4 @@ message SlsaProvenance {
111
112
  // incomplete unless metadata.completeness.materials is true. Unset or null is
112
113
  // equivalent to empty.
113
114
  repeated Material materials = 4;
114
- }
115
+ }
@@ -0,0 +1,82 @@
1
+ // Copyright 2021 The Grafeas Authors. All rights reserved.
2
+ //
3
+ // Licensed under the Apache License, Version 2.0 (the "License");
4
+ // you may not use this file except in compliance with the License.
5
+ // You may obtain a copy of the License at
6
+ //
7
+ // http://www.apache.org/licenses/LICENSE-2.0
8
+ //
9
+ // Unless required by applicable law or agreed to in writing, software
10
+ // distributed under the License is distributed on an "AS IS" BASIS,
11
+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ // See the License for the specific language governing permissions and
13
+ // limitations under the License.
14
+
15
+ syntax = "proto3";
16
+
17
+ package grafeas.v1;
18
+
19
+ import "google/protobuf/struct.proto";
20
+ import "google/protobuf/timestamp.proto";
21
+
22
+ option go_package = "google.golang.org/genproto/googleapis/grafeas/v1;grafeas";
23
+ option java_multiple_files = true;
24
+ option java_package = "io.grafeas.v1";
25
+ option objc_class_prefix = "GRA";
26
+ option java_outer_classname = "SlsaProvenanceZeroTwoProto";
27
+
28
+ message SlsaProvenanceZeroTwo {
29
+ // See full explanation of fields at slsa.dev/provenance/v0.2.
30
+
31
+ // Identifies the entity that executed the recipe, which is trusted to have
32
+ // correctly performed the operation and populated this provenance.
33
+ message SlsaBuilder {
34
+ string id = 1;
35
+ }
36
+
37
+ // The collection of artifacts that influenced the build including sources,
38
+ // dependencies, build tools, base images, and so on.
39
+ message SlsaMaterial {
40
+ string uri = 1;
41
+ map<string, string> digest = 2;
42
+ }
43
+
44
+ // Identifies the event that kicked off the build.
45
+ message SlsaInvocation {
46
+ SlsaConfigSource config_source = 1;
47
+ google.protobuf.Struct parameters = 2;
48
+ google.protobuf.Struct environment = 3;
49
+ }
50
+
51
+ // Describes where the config file that kicked off the build came from.
52
+ // This is effectively a pointer to the source where buildConfig came from.
53
+ message SlsaConfigSource {
54
+ string uri = 1;
55
+ map<string, string> digest = 2;
56
+ string entry_point = 3;
57
+ }
58
+
59
+ // Other properties of the build.
60
+ message SlsaMetadata {
61
+ string build_invocation_id = 1;
62
+ google.protobuf.Timestamp build_started_on = 2;
63
+ google.protobuf.Timestamp build_finished_on = 3;
64
+ SlsaCompleteness completeness = 4;
65
+ bool reproducible = 5;
66
+ }
67
+
68
+ // Indicates that the builder claims certain fields in this message to be
69
+ // complete.
70
+ message SlsaCompleteness {
71
+ bool parameters = 1;
72
+ bool environment = 2;
73
+ bool materials = 3;
74
+ }
75
+
76
+ SlsaBuilder builder = 1;
77
+ string build_type = 2;
78
+ SlsaInvocation invocation = 3;
79
+ google.protobuf.Struct build_config = 4;
80
+ SlsaMetadata metadata = 5;
81
+ repeated SlsaMaterial materials = 6;
82
+ }
@@ -209,6 +209,9 @@ message VulnerabilityOccurrence {
209
209
  // available.
210
210
  grafeas.v1.Severity effective_severity = 9
211
211
  [(google.api.field_behavior) = OUTPUT_ONLY];
212
+
213
+ // The location at which this package was found.
214
+ repeated FileLocation file_location = 10;
212
215
  }
213
216
 
214
217
  // Output only. A one sentence description of this vulnerability.