@@ -28,39 +28,9 @@ paths:
2828 status :
2929 type : string
3030 enum : [ok]
31- /api/v1/artifacts/sign :
32- post :
33- summary : Sign an artifact using Cosign
34- tags :
35- - Artifact
36- requestBody :
37- required : true
38- content :
39- application/json :
40- schema :
41- $ref : ' #/components/schemas/SignArtifactRequest'
42- responses :
43- ' 200 ' :
44- description : Artifact signed successfully
45- content :
46- application/json :
47- schema :
48- $ref : ' #/components/schemas/SignArtifactResponse'
49- ' 400 ' :
50- description : Invalid input
51- content :
52- application/json :
53- schema :
54- $ref : ' #/components/schemas/Error'
55- ' 500 ' :
56- description : Internal server error
57- content :
58- application/json :
59- schema :
60- $ref : ' #/components/schemas/Error'
6131 /api/v1/artifacts/verify :
6232 post :
63- summary : Verify an artifact using Cosign
33+ summary : Verify an artifact
6434 tags :
6535 - Artifact
6636 requestBody :
@@ -399,130 +369,109 @@ components:
399369 type : http
400370 scheme : basic
401371 schemas :
402- SignArtifactRequest :
372+ VerifyArtifactRequest :
403373 type : object
374+ description : >
375+ Parameters for verifying a signed artifact or container image using Sigstore and related trust sources.
376+ Fields correspond to common verification inputs such as issuer expectations, trusted roots, and TUF configuration.
404377 properties :
405- artifact :
378+ ociImage :
406379 type : string
407380 description : >
408- URI or identifier of the artifact to sign. This could be a container image (e.g., quay.io/example/app:latest),
409- a file path, a blob digest, or another unique artifact reference.
381+ The OCI image reference to verify.
410382 example : quay.io/example/app:latest
411- artifactType :
412- type : string
383+ bundle :
384+ type : object
413385 description : >
414- Type of the artifact to sign. Common types include `container-image`, `file`, `blob`, `sbom`, etc.
415- enum :
416- - container-image
417- - file
418- - blob
419- - sbom
420- example : container-image
421- identityToken :
422- type : string
423- description : OIDC token for Fulcio (if using keyless signing)
386+ Optional full Sigstore verification bundle (json).
387+ If provided, the verifier will validate this bundle directly instead of fetching an OCI image.
424388 nullable : true
425- privateKeyRef :
389+ additionalProperties : true
390+ artifactDigest :
426391 type : string
427- description : Reference to a private key (KMS URI or file)
428- nullable : true
429- annotations :
430- type : object
431- additionalProperties :
432- type : string
433- description : Optional key-value annotations to include in the signature
434- example :
435- env : prod
436- required :
437- - artifact
438- - artifactType
439- SignArtifactResponse :
440- type : object
441- properties :
442- success :
443- type : boolean
444- description : Whether the signing was successful
445- signature :
392+ description : >
393+ Hex-encoded digest of the artifact to verify. Used when the artifact reference
394+ does not directly include a digest (e.g., separate file verification).
395+ Mandatory when using the bundle.
396+ artifactDigestAlgorithm :
446397 type : string
447- description : The generated signature
448- certificate :
398+ default : sha256
399+ description : >
400+ Digest algorithm used to compute the artifact's digest.
401+ Common values: sha256, sha512.
402+ expectedOIDIssuer :
449403 type : string
450- description : Fulcio-signed certificate (PEM), if keyless
404+ description : >
405+ Expected OIDC issuer for the signing certificate (Fulcio-based verification).
406+ example : https://accounts.google.com
451407 nullable : true
452- logEntry :
453- type : object
454- description : Rekor transparency log entry
455- properties :
456- uuid :
457- type : string
458- integratedTime :
459- type : integer
460- logIndex :
461- type : integer
462- required :
463- - success
464- - signature
465- VerifyArtifactRequest :
466- type : object
467- properties :
468- artifact :
408+ expectedOIDIssuerRegex :
469409 type : string
470410 description : >
471- URI or identifier of the artifact to verify. This could be a container image (e.g., quay.io/example/app:latest),
472- a file path, a blob digest, or another unique artifact reference.
473- example : quay.io/example/app:latest
474- publicKey :
475- type : string
476- description : Optional public key path, KMS URI, or URL (for key-based verification)
411+ Regular expression that the OIDC issuer must match, if exact match is not desired.
477412 nullable : true
478- example : cosign.pub
479- cert :
413+ expectedSAN :
480414 type : string
481- description : Path or content of certificate for Fulcio-based verification
415+ description : >
416+ Expected identity in the signing certificate's Subject Alternative Name (SAN) extension.
417+ 482418 nullable : true
483- certChain :
419+ expectedSANRegex :
484420 type : string
485- description : Certificate chain in PEM format (if using keyless verification)
421+ description : >
422+ Regular expression that the SAN value must match, allowing pattern-based verification.
486423 nullable : true
487- certificateIdentity :
424+ requireTimestamp :
425+ type : boolean
426+ default : true
427+ description : >
428+ Require that either an RFC3161 signed timestamp or a log entry integrated timestamp
429+ is present in the signature.
430+ requireCTLog :
431+ type : boolean
432+ default : true
433+ description : >
434+ Require that a Certificate Transparency (CT) log entry exists for the signing certificate.
435+ requireTLog :
436+ type : boolean
437+ default : true
438+ description : >
439+ Require that an Artifact Transparency (Rekor) log entry exists for the verified artifact.
440+ minBundleVersion :
488441 type : string
489- description : Expected identity from Fulcio certificate (OIDC subject)
442+ description : >
443+ Minimum acceptable bundle version (e.g., '0.1') for verified signatures.
444+ example : " 0.1"
490445 nullable : true
491- certificateOidcIssuer :
446+ tufRootURL :
492447 type : string
493- description : OIDC issuer for Fulcio verification
448+ description : >
449+ URL of a TUF repository containing the trusted root JSON file.
450+ example : https://tuf-repo-cdn.sigstore.dev
494451 nullable : true
495- annotations :
496- type : object
497- additionalProperties :
498- type : string
499- description : Optional key-value annotations to verify in the signature
500- offline :
501- type : boolean
502- default : false
503- description : Whether to run Cosign in offline mode
504- output :
452+ predicateType :
505453 type : string
506- enum : [json, text]
507- default : json
508- description : Output format
454+ description : >
455+ The type of the predicate for the attestation.
456+ example : https://example.com/attestations/build
509457 required :
510- - artifact
458+ - expectedIssuer
459+ - expectedSAN
511460 VerifyArtifactResponse :
512461 type : object
513462 properties :
514463 verified :
515464 type : boolean
516465 description : Whether verification was successful
517- message :
518- type : string
519- description : Verification result message
520466 details :
521467 type : object
522- description : Detailed output from Cosign
468+ description : >
469+ The full verification result payload returned by the Sigstore verifier.
470+ This structure may evolve over time.
471+ additionalProperties : true
523472 required :
524473 - verified
525- - message
474+ - details
526475 InclusionProof :
527476 type : object
528477 description : Merkle tree inclusion proof for a Rekor entry
@@ -743,19 +692,39 @@ components:
743692 TargetsList :
744693 type : object
745694 properties :
746- targets :
695+ data :
747696 type : array
748697 items :
749- type : string
698+ $ref : ' #/components/schemas/TargetInfo '
750699 required :
751- - targets
700+ - data
752701 TargetContent :
753702 type : object
754703 properties :
755704 content :
756705 type : string
757706 required :
758707 - content
708+ TargetInfo :
709+ type : object
710+ properties :
711+ name :
712+ type : string
713+ description : Target name
714+ type :
715+ type : string
716+ description : Target type
717+ status :
718+ type : string
719+ description : Status of the target.
720+ content :
721+ type : string
722+ description : Content of the target.
723+ required :
724+ - name
725+ - type
726+ - status
727+ - content
759728 CertificateInfo :
760729 type : object
761730 properties :
@@ -804,4 +773,4 @@ components:
804773 type : string
805774 description : Error message
806775 required :
807- - error
776+ - error
0 commit comments