Developer reference/Output schema

Output schema

Edit on GitHub ↗

File locations, the Gemara Evaluation Log JSON schema, result values, and SARIF.

File locations

For each service, Core writes:

<write-directory>/
  <service-name>/
    <service-name>.log     # execution log
    results.yaml           # or results.json / results.sarif

JSON schema

When output: json, each service produces results.json following the Gemara Evaluation Log schema:

{
  "service": "my-github-repo",
  "plugin": "pvtr-github-repo",
  "timestamp": "2025-01-15T12:00:00Z",
  "policy": {
    "catalogs": ["osps-baseline"],
    "applicability": ["Maturity Level 1"]
  },
  "evaluationSuites": [
    {
      "name": "default",
      "controls": [
        {
          "id": "OSPS-VM-01",
          "description": "The project's VCS MUST require MFA for contributors.",
          "result": "pass",
          "assessmentSteps": [
            {
              "name": "CheckMFARequirement",
              "result": "pass",
              "message": "Branch protection with required review is enforced."
            }
          ]
        }
      ]
    }
  ]
}

Result values

ValueMeaning
passControl requirement was met
failControl requirement was not met
skipControl was not applicable or could not be evaluated
errorAssessment step encountered an execution error

error at the assessmentStep level propagates to the parent control. An error result on a service (plugin crash or communication failure) does not affect sibling services.

SARIF output

When output: sarif, Core emits a SARIF 2.1.0 file. Each failing control appears as a result with a ruleId matching the control ID. Compatible with the GitHub Security tab and any SARIF 2.1.0 consumer.