schema-version: 0.1.0
standard:
  schema-version: 0.1.0
  sequence: 320
  standard_id: FEED-002
  title: Artifact CycloneDX Document
  summary: Every official OSERA artifact carries a CycloneDX document beside it that
    identifies the artifact, the upstream release it derives from, and the vulnerabilities
    it closes.
  doc-status: Draft
  standard-version: 0.1.0
  candidate-pack: OSERA-SP-0.2.0 required
  ratified-in: Not ratified
  ratified-date: Not ratified
  fitness-role: Required check
  type: FEED
  category: Feeds and Advisories
  applies-to:
  - Patch providers
  - Repository operators
  - Enterprise recipients
  requirements:
  - id: FEED-002.REQ-001
    level: MUST
    text: Every official OSERA artifact must be published with a CycloneDX document
      beside it, at the ecosystem's convention for a document that accompanies a release,
      valid against the CycloneDX schema it declares, and readable by anyone who can
      read the artifact's metadata.
    checkability: automated
    checks:
    - id: FEED-002.CHECK-001
      title: A valid CycloneDX document accompanies every published artifact
      type: artifact
      severity: blocking
      implementation: osera-fitness.feed002.document_present
      evidence:
      - cyclonedx_document
      - artifact_files
      - spec_version
  - id: FEED-002.REQ-002
    level: MUST
    text: The document's subject must be the artifact it accompanies, carrying the
      published package URL and, for each file the release publishes, hashes equal
      to the checksums published beside that file.
    checkability: automated
    checks:
    - id: FEED-002.CHECK-002
      title: The subject's package URL and hashes match the published artifact
      type: artifact
      severity: blocking
      implementation: osera-fitness.feed002.subject_identifies_artifact
      evidence:
      - purl
      - release_version
      - component_hashes
      - published_checksums
  - id: FEED-002.REQ-003
    level: MUST
    text: The document must name the organization that produced it and the organization
      that publishes the coordinate, as a manufacturer and a publisher rather than
      as authors, and the manufacturer must be the approved producer of the release.
    checkability: automated
    checks:
    - id: FEED-002.CHECK-003
      title: Manufacturer and publisher name the producer and the distributor
      type: artifact
      severity: blocking
      implementation: osera-fitness.feed002.attribution
      evidence:
      - metadata_manufacturer
      - component_manufacturer
      - component_publisher
      - producer_identity
  - id: FEED-002.REQ-004
    level: MUST
    text: The document's pedigree must identify the upstream release the artifact
      derives from, by package URL, by the checksums the upstream repository publishes
      for it, and by its declared licenses, and must carry one patch entry per vulnerability
      the release closes, naming the change that closes it and the advisory it resolves.
    checkability: automated
    checks:
    - id: FEED-002.CHECK-004
      title: The pedigree identifies the baseline and the change applied to it
      type: artifact
      severity: blocking
      implementation: osera-fitness.feed002.pedigree_identifies_ancestor
      evidence:
      - pedigree_ancestor
      - ancestor_hashes
      - baseline_tag
      - patch_changeset
      - vulnerability_id
  - id: FEED-002.REQ-005
    level: MUST
    text: The document's vulnerabilities must be the ones the artifact carries a fix
      for, each affecting only that artifact, each in the state the fix actually reached,
      and never asserted as not affected.
    checkability: automated
    checks:
    - id: FEED-002.CHECK-005
      title: Vulnerability analysis is honest and scoped to the artifact
      type: artifact
      severity: blocking
      implementation: osera-fitness.feed002.analysis_state
      evidence:
      - vulnerability_statement
      - analysis_state
      - affects
  source_path: docs/_standards/feed-002-artifact-cyclonedx-document.md
  url: "/standards/feed-002-artifact-cyclonedx-document/"
