Skip to content

Class: SourceProvenanceAttestation

An attestation describing how a source revision came to exist: where it was hosted, when it was generated, what process was used, who the contributors were, and which technical controls were enforced by the Source Control System.

URI: slsa:SourceProvenanceAttestation

 classDiagram
    class SourceProvenanceAttestation
    click SourceProvenanceAttestation href "../SourceProvenanceAttestation/"
      Statement <|-- SourceProvenanceAttestation
        click Statement href "../Statement/"

      SourceProvenanceAttestation : _type

      SourceProvenanceAttestation : attestationStorageUri

      SourceProvenanceAttestation : controlsEnforced

      SourceProvenanceAttestation : predicate

      SourceProvenanceAttestation : predicateType

      SourceProvenanceAttestation : revision





        SourceProvenanceAttestation --> "0..1" SourceRevision : revision
        click SourceRevision href "../SourceRevision/"



      SourceProvenanceAttestation : signingTool

      SourceProvenanceAttestation : sigstoreLogEntry

      SourceProvenanceAttestation : sourceLevel





        SourceProvenanceAttestation --> "0..1" SourceLevelEnum : sourceLevel
        click SourceLevelEnum href "../SourceLevelEnum/"



      SourceProvenanceAttestation : subject





        SourceProvenanceAttestation --> "1..*" ResourceDescriptor : subject
        click ResourceDescriptor href "../ResourceDescriptor/"



Inheritance

Slots

Name Cardinality and Range Description Inheritance
revision 0..1
SourceRevision
The source revision that this attestation describes direct
sourceLevel 0..1
SourceLevelEnum
The SLSA Source Level achieved or verified for a source repository or revisio... direct
controlsEnforced *
String
Technical controls actively enforced by the Source Control System when this r... direct
_type 1
String
Always "https://in-toto Statement
subject 1..*
ResourceDescriptor
The set of software artifacts to which a predicate applies Statement
predicateType 1
String
URI identifying the schema and semantics of the predicate field Statement
predicate 0..1
String
The attestation payload — an arbitrary JSON object whose schema is fully dete... Statement
attestationStorageUri 0..1
String
URI indicating where this signed attestation is publicly stored or retrievabl... Statement
signingTool 0..1
String
URI or name of the tool used to cryptographically sign the artifact or attest... Statement
sigstoreLogEntry 0..1
String
URI of the Rekor transparency log entry recording this attestation or artifac... Statement

In Subsets

Identifier and Mapping Information

Schema Source

  • from schema: https://w3id.org/lmodel/slsa

Mappings

Mapping Type Mapped Value
self slsa:SourceProvenanceAttestation
native slsa:SourceProvenanceAttestation

LinkML Source

Direct

name: SourceProvenanceAttestation
description: 'An attestation describing how a source revision came to exist: where
  it was hosted, when it was generated, what process was used, who the contributors
  were, and which technical controls were enforced by the Source Control System.'
in_subset:
- slsa_source_track
from_schema: https://w3id.org/lmodel/slsa
is_a: Statement
slots:
- revision
- sourceLevel
- controlsEnforced

Induced

name: SourceProvenanceAttestation
description: 'An attestation describing how a source revision came to exist: where
  it was hosted, when it was generated, what process was used, who the contributors
  were, and which technical controls were enforced by the Source Control System.'
in_subset:
- slsa_source_track
from_schema: https://w3id.org/lmodel/slsa
is_a: Statement
attributes:
  revision:
    name: revision
    description: The source revision that this attestation describes.
    in_subset:
    - slsa_source_track
    from_schema: https://w3id.org/lmodel/slsa
    rank: 1000
    alias: revision
    owner: SourceProvenanceAttestation
    domain_of:
    - SourceProvenanceAttestation
    range: SourceRevision
    inlined: true
  sourceLevel:
    name: sourceLevel
    description: The SLSA Source Level achieved or verified for a source repository
      or revision.
    in_subset:
    - slsa_source_track
    from_schema: https://w3id.org/lmodel/slsa
    rank: 1000
    alias: sourceLevel
    owner: SourceProvenanceAttestation
    domain_of:
    - SourceRepository
    - SourceProvenanceAttestation
    range: SourceLevelEnum
  controlsEnforced:
    name: controlsEnforced
    description: Technical controls actively enforced by the Source Control System
      when this revision was created (e.g., "two-party review", "branch protection",
      "status checks").
    notes:
    - 'Two-party review feasibility (Tamanna et al., 2024, LF.2): Many open-source
      projects have a single maintainer, making the two-party review requirement impractical.
      Pair programming and mob programming were raised as contested alternatives whose
      security equivalence has not been formally established. Use the reviewType slot
      on SourceRevision to record the specific form of review applied.'
    in_subset:
    - slsa_source_track
    from_schema: https://w3id.org/lmodel/slsa
    rank: 1000
    alias: controlsEnforced
    owner: SourceProvenanceAttestation
    domain_of:
    - SourceProvenanceAttestation
    range: string
    multivalued: true
  _type:
    name: _type
    description: Always "https://in-toto.io/Statement/v1". Identifies the in-toto
      statement schema version and namespace.
    in_subset:
    - slsa_build_track
    - slsa_source_track
    - slsa_build_env_track
    from_schema: https://w3id.org/lmodel/slsa
    rank: 1000
    alias: _type
    owner: SourceProvenanceAttestation
    domain_of:
    - Statement
    range: string
    required: true
  subject:
    name: subject
    description: The set of software artifacts to which a predicate applies. Each
      entry MUST contain a digest.
    in_subset:
    - slsa_build_track
    - slsa_source_track
    - slsa_build_env_track
    from_schema: https://w3id.org/lmodel/slsa
    rank: 1000
    alias: subject
    owner: SourceProvenanceAttestation
    domain_of:
    - Statement
    range: ResourceDescriptor
    required: true
    multivalued: true
    inlined: true
    inlined_as_list: true
  predicateType:
    name: predicateType
    description: URI identifying the schema and semantics of the predicate field.
      Used to distinguish different attestation types (e.g., SLSA Provenance vs. Verification
      Summary Attestation).
    in_subset:
    - slsa_build_track
    - slsa_source_track
    - slsa_build_env_track
    from_schema: https://w3id.org/lmodel/slsa
    rank: 1000
    alias: predicateType
    owner: SourceProvenanceAttestation
    domain_of:
    - Statement
    range: string
    required: true
  predicate:
    name: predicate
    description: The attestation payload — an arbitrary JSON object whose schema is
      fully determined by predicateType.
    in_subset:
    - slsa_build_track
    - slsa_source_track
    - slsa_build_env_track
    from_schema: https://w3id.org/lmodel/slsa
    rank: 1000
    alias: predicate
    owner: SourceProvenanceAttestation
    domain_of:
    - Statement
    range: string
  attestationStorageUri:
    name: attestationStorageUri
    description: 'URI indicating where this signed attestation is publicly stored
      or retrievable. No universal standard for attestation storage location was established
      in SLSA v1.0; Sigstore and VCS-embedded storage are two common approaches. Explicitly
      recording this URI addresses the storage ambiguity identified as a significant
      adoption barrier: practitioners reported uncertainty about where generated attestations
      should be stored (Tamanna et al., 2024, LF.1).'
    in_subset:
    - slsa_build_track
    - slsa_source_track
    - slsa_build_env_track
    - slsa_adoption_study
    from_schema: https://w3id.org/lmodel/slsa
    rank: 1000
    alias: attestationStorageUri
    owner: SourceProvenanceAttestation
    domain_of:
    - Statement
    range: string
  signingTool:
    name: signingTool
    description: URI or name of the tool used to cryptographically sign the artifact
      or attestation (e.g., "https://github.com/sigstore/cosign", "https://github.com/notaryproject/notation").
      In the SSF reference architecture the Signing Service layer is distinct from
      the Build Service; recording the signing tool enables verifiers to select the
      matching verification workflow. For Sigstore keyless signing the value should
      be the Cosign release URI.
    in_subset:
    - slsa_build_track
    - slsa_source_track
    - slsa_ssf
    from_schema: https://w3id.org/lmodel/slsa
    rank: 1000
    alias: signingTool
    owner: SourceProvenanceAttestation
    domain_of:
    - Statement
    range: string
  sigstoreLogEntry:
    name: sigstoreLogEntry
    description: URI of the Rekor transparency log entry recording this attestation
      or artifact signature (e.g., "https://rekor.sigstore.dev/api/v1/log/entries/24296fb...").
      The Rekor log provides an immutable, auditable record of signing events that
      underpins Sigstore keyless signing. Verifiers can fetch this entry to confirm
      the cryptographic signature was recorded in the public-good log and obtain the
      signing certificate chain issued by Fulcio. Recording this URI enables offline
      and third-party verification without requiring direct access to the original
      signing key.
    in_subset:
    - slsa_build_track
    - slsa_source_track
    - slsa_ssf
    from_schema: https://w3id.org/lmodel/slsa
    rank: 1000
    alias: sigstoreLogEntry
    owner: SourceProvenanceAttestation
    domain_of:
    - Statement
    range: string