|
186 | 186 | "title": "Certificate Authority", |
187 | 187 | "description": "CertificateAuthority enlists the information required to identify which CA to use and perform signature verification." |
188 | 188 | }, |
189 | | - "dev.sigstore.trustroot.v1.SigningConfig": { |
| 189 | + "dev.sigstore.trustroot.v1.Service": { |
190 | 190 | "properties": { |
191 | | - "mediaType": { |
| 191 | + "url": { |
192 | 192 | "type": "string", |
193 | | - "description": "MUST be application/vnd.dev.sigstore.signingconfig.v0.1+json" |
| 193 | + "description": "URL of the service. MUST include scheme and authority. MAY include path." |
| 194 | + }, |
| 195 | + "majorApiVersion": { |
| 196 | + "type": "integer", |
| 197 | + "description": "Specifies the major API version. A value of 0 represents a service that has not yet been released." |
194 | 198 | }, |
195 | | - "caUrl": { |
| 199 | + "validFor": { |
| 200 | + "$ref": "#/definitions/dev.sigstore.common.v1.TimeRange", |
| 201 | + "additionalProperties": false, |
| 202 | + "description": "Validity period of a service. A service that has only a start date SHOULD be considered the most recent instance of that service, but the client MUST NOT assume there is only one valid instance. The TimeRange MUST be considered valid *inclusive* of the endpoints." |
| 203 | + } |
| 204 | + }, |
| 205 | + "additionalProperties": false, |
| 206 | + "type": "object", |
| 207 | + "title": "Service", |
| 208 | + "description": "Service represents an instance of a service that is a part of Sigstore infrastructure. Clients MUST use the API version hint to determine the service with the highest API version that the client is compatible with. Clients MUST also only connect to services within the specified validity period and that has the newest validity start date." |
| 209 | + }, |
| 210 | + "dev.sigstore.trustroot.v1.ServiceConfiguration": { |
| 211 | + "properties": { |
| 212 | + "selector": { |
| 213 | + "enum": [ |
| 214 | + "SERVICE_SELECTOR_UNDEFINED", |
| 215 | + "ALL", |
| 216 | + "ANY", |
| 217 | + "EXACT" |
| 218 | + ], |
196 | 219 | "type": "string", |
197 | | - "description": "A URL to a Fulcio-compatible CA, capable of receiving Certificate Signing Requests (CSRs) and responding with issued certificates. This URL **MUST** be the \"base\" URL for the CA, which clients should construct an appropriate CSR endpoint on top of. For example, if `ca_url` is `https://example.com/ca`, then the client **MAY** construct the CSR endpoint as `https://example.com/ca/api/v2/signingCert`." |
| 220 | + "title": "Service Selector", |
| 221 | + "description": "ServiceSelector specifies how a client should select a set of Services to connect to. A client SHOULD throw an error if the value is SERVICE_SELECTOR_UNDEFINED." |
198 | 222 | }, |
199 | | - "oidcUrl": { |
| 223 | + "count": { |
| 224 | + "type": "integer", |
| 225 | + "description": "count specifies the number of Services the client should use. Only used when selector is set to EXACT, and count MUST be greater than 0. count MUST be less than or equal to the number of Services." |
| 226 | + } |
| 227 | + }, |
| 228 | + "additionalProperties": false, |
| 229 | + "type": "object", |
| 230 | + "title": "Service Configuration", |
| 231 | + "description": "ServiceConfiguration specifies how a client should select a set of Services to connect to, along with a count when a specific number of Services is requested." |
| 232 | + }, |
| 233 | + "dev.sigstore.trustroot.v1.SigningConfig": { |
| 234 | + "properties": { |
| 235 | + "mediaType": { |
200 | 236 | "type": "string", |
201 | | - "description": "A URL to an OpenID Connect identity provider. This URL **MUST** be the \"base\" URL for the OIDC IdP, which clients should perform well-known OpenID Connect discovery against." |
| 237 | + "description": "MUST be application/vnd.dev.sigstore.signingconfig.v0.2+json Clients MAY choose to also support application/vnd.dev.sigstore.signingconfig.v0.1+json" |
| 238 | + }, |
| 239 | + "caUrls": { |
| 240 | + "items": { |
| 241 | + "$ref": "#/definitions/dev.sigstore.trustroot.v1.Service" |
| 242 | + }, |
| 243 | + "additionalProperties": false, |
| 244 | + "type": "array", |
| 245 | + "description": "URLs to Fulcio-compatible CAs, capable of receiving Certificate Signing Requests (CSRs) and responding with issued certificates. These URLs MUST be the \"base\" URL for the CAs, which clients should construct an appropriate CSR endpoint on top of. For example, if a CA URL is `https://example.com/ca`, then the client **MAY** construct the CSR endpoint as `https://example.com/ca/api/v2/signingCert`. Clients MUST select only one Service with the highest API version that the client is compatible with, that is within its validity period, and has the newest validity start date. Client SHOULD select the first Service that meets this requirement. All listed Services SHOULD be sorted by the `valid_for` window in descending order, with the newest instance first." |
202 | 246 | }, |
203 | | - "tlogUrls": { |
| 247 | + "oidcUrls": { |
204 | 248 | "items": { |
205 | | - "type": "string" |
| 249 | + "$ref": "#/definitions/dev.sigstore.trustroot.v1.Service" |
206 | 250 | }, |
| 251 | + "additionalProperties": false, |
207 | 252 | "type": "array", |
208 | | - "description": "One or more URLs to Rekor-compatible transparency log. Each URL **MUST** be the \"base\" URL for the transparency log, which clients should construct appropriate API endpoints on top of." |
| 253 | + "description": "URLs to OpenID Connect identity providers. These URLs MUST be the \"base\" URLs for the OIDC IdPs, which clients should perform well-known OpenID Connect discovery against. Clients MUST select only one Service with the highest API version that the client is compatible with, that is within its validity period, and has the newest validity start date. Client SHOULD select the first Service that meets this requirement. All listed Services SHOULD be sorted by the `valid_for` window in descending order, with the newest instance first." |
| 254 | + }, |
| 255 | + "rekorTlogUrls": { |
| 256 | + "items": { |
| 257 | + "$ref": "#/definitions/dev.sigstore.trustroot.v1.Service" |
| 258 | + }, |
| 259 | + "additionalProperties": false, |
| 260 | + "type": "array", |
| 261 | + "description": "URLs to Rekor transparency logs. These URL MUST be the \"base\" URLs for the transparency logs, which clients should construct appropriate API endpoints on top of. Clients MUST select Services with the highest API version that the client is compatible with, that are within its validity period, and have the newest validity start dates. All listed Services SHOULD be sorted by the `valid_for` window in descending order, with the newest instance first. Clients MUST select Services based on the selector value of `rekor_tlog_config`." |
| 262 | + }, |
| 263 | + "rekorTlogConfig": { |
| 264 | + "$ref": "#/definitions/dev.sigstore.trustroot.v1.ServiceConfiguration", |
| 265 | + "additionalProperties": false, |
| 266 | + "description": "Specifies how a client should select the set of Rekor transparency logs to write to." |
209 | 267 | }, |
210 | 268 | "tsaUrls": { |
211 | 269 | "items": { |
212 | | - "type": "string" |
| 270 | + "$ref": "#/definitions/dev.sigstore.trustroot.v1.Service" |
213 | 271 | }, |
| 272 | + "additionalProperties": false, |
214 | 273 | "type": "array", |
215 | | - "description": "One ore more URLs to RFC 3161 Time Stamping Authority (TSA). Each URL **MUST** be the **full** URL for the TSA, meaning that it should be suitable for submitting Time Stamp Requests (TSRs) to via HTTP, per RFC 3161." |
| 274 | + "description": "URLs to RFC 3161 Time Stamping Authorities (TSA). These URLs MUST be the **full** URL for the TSA, meaning that it should be suitable for submitting Time Stamp Requests (TSRs) to via HTTP, per RFC 3161. Clients MUST select Services with the highest API version that the client is compatible with, that are within its validity period, and have the newest validity start dates. All listed Services SHOULD be sorted by the `valid_for` window in descending order, with the newest instance first. Clients MUST select Services based on the selector value of `tsa_config`." |
| 275 | + }, |
| 276 | + "tsaConfig": { |
| 277 | + "$ref": "#/definitions/dev.sigstore.trustroot.v1.ServiceConfiguration", |
| 278 | + "additionalProperties": false, |
| 279 | + "description": "Specifies how a client should select the set of TSAs to request signed timestamps from." |
216 | 280 | } |
217 | 281 | }, |
218 | 282 | "additionalProperties": false, |
|
0 commit comments