From c45eb7ccfc6909e162a7e863e4b7b802901fd990 Mon Sep 17 00:00:00 2001
From: Ben Selwyn-Smith <benselwynsmith@googlemail.com>
Date: Wed, 12 Mar 2025 11:12:20 +1000
Subject: [PATCH 1/3] chore: add back provenance asset information

Signed-off-by: Ben Selwyn-Smith <benselwynsmith@googlemail.com>
---
 src/macaron/database/table_definitions.py     |  6 +++
 src/macaron/provenance/provenance_finder.py   | 48 ++++++++++++-------
 src/macaron/provenance/provenance_verifier.py | 26 +++++-----
 src/macaron/slsa_analyzer/analyzer.py         | 11 +++--
 .../checks/provenance_available_check.py      | 25 +++++++---
 5 files changed, 80 insertions(+), 36 deletions(-)

diff --git a/src/macaron/database/table_definitions.py b/src/macaron/database/table_definitions.py
index 2a7f1e95a..d91d55154 100644
--- a/src/macaron/database/table_definitions.py
+++ b/src/macaron/database/table_definitions.py
@@ -511,6 +511,12 @@ class Provenance(ORMBase):
     #: The provenance payload.
     provenance_payload: Mapped[InTotoPayload] = mapped_column(ProvenancePayload, nullable=False)
 
+    #: The name of the provenance asset.
+    provenance_asset_name: Mapped[str] = mapped_column(String, nullable=True)
+
+    #: The URL of the provenance asset.
+    provenance_asset_url: Mapped[str] = mapped_column(String, nullable=True)
+
     #: The verified status of the provenance.
     verified: Mapped[bool] = mapped_column(Boolean, nullable=False, default=False)
 
diff --git a/src/macaron/provenance/provenance_finder.py b/src/macaron/provenance/provenance_finder.py
index b02423eec..caf9a13fa 100644
--- a/src/macaron/provenance/provenance_finder.py
+++ b/src/macaron/provenance/provenance_finder.py
@@ -5,6 +5,7 @@
 import logging
 import os
 import tempfile
+from dataclasses import dataclass
 from functools import partial
 
 from packageurl import PackageURL
@@ -28,6 +29,15 @@
 logger: logging.Logger = logging.getLogger(__name__)
 
 
+@dataclass(frozen=True)
+class ProvenanceAsset:
+    """This class exists to hold a provenance payload with the original asset's name and URL."""
+
+    payload: InTotoPayload
+    name: str
+    url: str
+
+
 class ProvenanceFinder:
     """This class is used to find and retrieve provenance files from supported registries."""
 
@@ -42,7 +52,7 @@ def __init__(self) -> None:
                 elif isinstance(registry, JFrogMavenRegistry):
                     self.jfrog_registry = registry
 
-    def find_provenance(self, purl: PackageURL) -> list[InTotoPayload]:
+    def find_provenance(self, purl: PackageURL) -> list[ProvenanceAsset]:
         """Find the provenance file(s) of the passed PURL.
 
         Parameters
@@ -52,8 +62,8 @@ def find_provenance(self, purl: PackageURL) -> list[InTotoPayload]:
 
         Returns
         -------
-        list[InTotoPayload]
-            The provenance payload, or an empty list if not found.
+        list[ProvenanceAsset]
+            The provenance asset, or an empty list if not found.
         """
         logger.debug("Seeking provenance of: %s", purl)
 
@@ -82,7 +92,7 @@ def find_provenance(self, purl: PackageURL) -> list[InTotoPayload]:
         logger.debug("Provenance finding not supported for PURL type: %s", purl.type)
         return []
 
-    def _find_provenance(self, discovery_functions: list[partial[list[InTotoPayload]]]) -> list[InTotoPayload]:
+    def _find_provenance(self, discovery_functions: list[partial[list[ProvenanceAsset]]]) -> list[ProvenanceAsset]:
         """Find the provenance file(s) using the passed discovery functions.
 
         Parameters
@@ -93,7 +103,7 @@ def _find_provenance(self, discovery_functions: list[partial[list[InTotoPayload]
         Returns
         -------
         list[InTotoPayload]
-            The provenance payload(s) from the first successful function, or an empty list if none were.
+            The provenance asset(s) from the first successful function, or an empty list if none were.
         """
         if not discovery_functions:
             return []
@@ -108,7 +118,7 @@ def _find_provenance(self, discovery_functions: list[partial[list[InTotoPayload]
         return []
 
 
-def find_npm_provenance(purl: PackageURL, registry: NPMRegistry) -> list[InTotoPayload]:
+def find_npm_provenance(purl: PackageURL, registry: NPMRegistry) -> list[ProvenanceAsset]:
     """Find and download the NPM based provenance for the passed PURL.
 
     Two kinds of attestation can be retrieved from npm: "Provenance" and "Publish". The "Provenance" attestation
@@ -125,8 +135,8 @@ def find_npm_provenance(purl: PackageURL, registry: NPMRegistry) -> list[InTotoP
 
     Returns
     -------
-    list[InTotoPayload]
-        The provenance payload(s), or an empty list if not found.
+    list[ProvenanceAsset]
+        The provenance asset(s), or an empty list if not found.
     """
     if not registry.enabled:
         logger.debug("The npm registry is not enabled.")
@@ -172,16 +182,19 @@ def find_npm_provenance(purl: PackageURL, registry: NPMRegistry) -> list[InTotoP
                 publish_payload = load_provenance_payload(signed_download_path)
             except LoadIntotoAttestationError as error:
                 logger.error("Error while loading publish attestation: %s", error)
-                return [provenance_payload]
+                return [ProvenanceAsset(provenance_payload, npm_provenance_asset.name, npm_provenance_asset.url)]
 
-            return [provenance_payload, publish_payload]
+            return [
+                ProvenanceAsset(provenance_payload, npm_provenance_asset.name, npm_provenance_asset.url),
+                ProvenanceAsset(publish_payload, npm_provenance_asset.name, npm_provenance_asset.url),
+            ]
 
     except OSError as error:
         logger.error("Error while storing provenance in the temporary directory: %s", error)
         return []
 
 
-def find_gav_provenance(purl: PackageURL, registry: JFrogMavenRegistry) -> list[InTotoPayload]:
+def find_gav_provenance(purl: PackageURL, registry: JFrogMavenRegistry) -> list[ProvenanceAsset]:
     """Find and download the GAV based provenance for the passed PURL.
 
     Parameters
@@ -193,8 +206,8 @@ def find_gav_provenance(purl: PackageURL, registry: JFrogMavenRegistry) -> list[
 
     Returns
     -------
-    list[InTotoPayload] | None
-        The provenance payload if found, or an empty list otherwise.
+    list[ProvenanceAsset] | None
+        The provenance asset if found, or an empty list otherwise.
 
     Raises
     ------
@@ -263,7 +276,7 @@ def find_gav_provenance(purl: PackageURL, registry: JFrogMavenRegistry) -> list[
                 if not is_witness_provenance_payload(provenance_payload, witness_verifier_config.predicate_types):
                     continue
 
-                provenances.append(provenance_payload)
+                provenances.append(ProvenanceAsset(provenance_payload, provenance_asset.name, provenance_asset.url))
     except OSError as error:
         logger.error("Error while storing provenance in the temporary directory: %s", error)
 
@@ -277,7 +290,7 @@ def find_gav_provenance(purl: PackageURL, registry: JFrogMavenRegistry) -> list[
 
 def find_provenance_from_ci(
     analyze_ctx: AnalyzeContext, git_obj: Git | None, download_path: str
-) -> InTotoPayload | None:
+) -> ProvenanceAsset | None:
     """Try to find provenance from CI services of the repository.
 
     Note that we stop going through the CI services once we encounter a CI service
@@ -372,7 +385,10 @@ def find_provenance_from_ci(
                 download_provenances_from_ci_service(ci_info, download_path)
 
                 # TODO consider how to handle multiple payloads here.
-                return ci_info["provenances"][0].payload if ci_info["provenances"] else None
+                if ci_info["provenances"]:
+                    provenance = ci_info["provenances"][0]
+                    return ProvenanceAsset(provenance.payload, provenance.asset.name, provenance.asset.url)
+                return None
 
         else:
             logger.debug("CI service not supported for provenance finding: %s", ci_service.name)
diff --git a/src/macaron/provenance/provenance_verifier.py b/src/macaron/provenance/provenance_verifier.py
index 44b2193eb..79b1a11ed 100644
--- a/src/macaron/provenance/provenance_verifier.py
+++ b/src/macaron/provenance/provenance_verifier.py
@@ -17,6 +17,7 @@
 from macaron.config.defaults import defaults
 from macaron.config.global_config import global_config
 from macaron.provenance.provenance_extractor import ProvenancePredicate, SLSAGithubGenericBuildDefinitionV01
+from macaron.provenance.provenance_finder import ProvenanceAsset
 from macaron.repo_finder.commit_finder import AbstractPurlType, determine_abstract_purl_type
 from macaron.slsa_analyzer.analyze_context import AnalyzeContext
 from macaron.slsa_analyzer.asset import AssetLocator
@@ -28,15 +29,15 @@
 logger: logging.Logger = logging.getLogger(__name__)
 
 
-def verify_provenance(purl: PackageURL, provenance: list[InTotoPayload]) -> bool:
+def verify_provenance(purl: PackageURL, provenance_assets: list[ProvenanceAsset]) -> bool:
     """Verify the passed provenance.
 
     Parameters
     ----------
     purl: PackageURL
         The PURL of the analysis target.
-    provenance: list[InTotoPayload]
-        The list of provenance.
+    provenance_assets: list[ProvenanceAsset]
+        The list of provenance assets.
 
     Returns
     -------
@@ -50,7 +51,7 @@ def verify_provenance(purl: PackageURL, provenance: list[InTotoPayload]) -> bool
     verification_function = None
 
     if purl.type == "npm":
-        verification_function = partial(verify_npm_provenance, purl, provenance)
+        verification_function = partial(verify_npm_provenance, purl, provenance_assets)
 
     # TODO other verification functions go here.
 
@@ -61,30 +62,33 @@ def verify_provenance(purl: PackageURL, provenance: list[InTotoPayload]) -> bool
     return False
 
 
-def verify_npm_provenance(purl: PackageURL, provenance: list[InTotoPayload]) -> bool:
+def verify_npm_provenance(purl: PackageURL, provenance_assets: list[ProvenanceAsset]) -> bool:
     """Compare the unsigned payload subject digest with the signed payload digest, if available.
 
     Parameters
     ----------
     purl: PackageURL
         The PURL of the analysis target.
-    provenance: list[InTotoPayload]
-        The provenances to verify.
+    provenance_assets: list[ProvenanceAsset]
+        The provenance assets to verify.
 
     Returns
     -------
     bool
         True if the provenance was verified, or False otherwise.
     """
-    if len(provenance) != 2:
-        logger.debug("Expected unsigned and signed provenance.")
+    if len(provenance_assets) != 2:
+        logger.debug("Expected unsigned and signed provenance assets.")
         return False
 
-    signed_subjects = provenance[1].statement.get("subject")
+    signed_provenance = provenance_assets[1].payload
+    unsigned_provenance = provenance_assets[0].payload
+
+    signed_subjects = signed_provenance.statement.get("subject")
     if not signed_subjects:
         return False
 
-    unsigned_subjects = provenance[0].statement.get("subject")
+    unsigned_subjects = unsigned_provenance.statement.get("subject")
     if not unsigned_subjects:
         return False
 
diff --git a/src/macaron/slsa_analyzer/analyzer.py b/src/macaron/slsa_analyzer/analyzer.py
index baf3682cd..9597f2081 100644
--- a/src/macaron/slsa_analyzer/analyzer.py
+++ b/src/macaron/slsa_analyzer/analyzer.py
@@ -357,12 +357,14 @@ def run_single(
         package_registries_info = self._populate_package_registry_info()
 
         provenance_is_verified = False
+        provenance_asset = None
         if not provenance_payload and parsed_purl:
             # Try to find the provenance file for the parsed PURL.
             provenance_finder = ProvenanceFinder()
             provenances = provenance_finder.find_provenance(parsed_purl)
             if provenances:
-                provenance_payload = provenances[0]
+                provenance_asset = provenances[0]
+                provenance_payload = provenance_asset.payload
                 if verify_provenance:
                     provenance_is_verified = provenance_verifier.verify_provenance(parsed_purl, provenances)
 
@@ -488,10 +490,11 @@ def run_single(
         if not provenance_payload:
             # Look for provenance using the CI.
             with tempfile.TemporaryDirectory() as temp_dir:
-                provenance_payload = find_provenance_from_ci(analyze_ctx, git_obj, temp_dir)
+                provenance_asset = find_provenance_from_ci(analyze_ctx, git_obj, temp_dir)
                 # If found, validate analysis target against new provenance.
-                if provenance_payload:
+                if provenance_asset:
                     # If repository URL was not provided as input, check the one found during analysis.
+                    provenance_payload = provenance_asset.payload
                     if not repo_path_input and component.repository:
                         repo_path_input = component.repository.remote_path
                     provenance_repo_url = provenance_commit_digest = None
@@ -536,6 +539,8 @@ def run_single(
                 provenance_payload=provenance_payload,
                 slsa_level=slsa_level,
                 slsa_version=slsa_version,
+                provenance_asset_name=provenance_asset.name if provenance_asset else None,
+                provenance_asset_url=provenance_asset.url if provenance_asset else None,
                 # TODO Add release tag, release digest.
             )
 
diff --git a/src/macaron/slsa_analyzer/checks/provenance_available_check.py b/src/macaron/slsa_analyzer/checks/provenance_available_check.py
index 77fcf87fe..1da852955 100644
--- a/src/macaron/slsa_analyzer/checks/provenance_available_check.py
+++ b/src/macaron/slsa_analyzer/checks/provenance_available_check.py
@@ -74,18 +74,31 @@ def run_check(self, ctx: AnalyzeContext) -> CheckResultData:
         CheckResultData
             The result of the check.
         """
-        available = (
-            ctx.dynamic_data["provenance_info"]
-            and ctx.dynamic_data["provenance_info"].provenance_payload
-            and not ctx.dynamic_data["is_inferred_prov"]
-        )
+        provenance_info = None
+        inferred = False
+        if ctx.dynamic_data["provenance_info"]:
+            provenance_info = ctx.dynamic_data["provenance_info"]
+            inferred = ctx.dynamic_data["is_inferred_prov"]
+
+        if not provenance_info or not provenance_info.provenance_payload or inferred:
+            return CheckResultData(
+                result_tables=[
+                    ProvenanceAvailableFacts(
+                        confidence=Confidence.HIGH,
+                    )
+                ],
+                result_type=CheckResultType.FAILED,
+            )
+
         return CheckResultData(
             result_tables=[
                 ProvenanceAvailableFacts(
                     confidence=Confidence.HIGH,
+                    asset_name=provenance_info.provenance_asset_name,
+                    asset_url=provenance_info.provenance_asset_url,
                 )
             ],
-            result_type=CheckResultType.PASSED if available else CheckResultType.FAILED,
+            result_type=CheckResultType.PASSED,
         )
 
 

From 1ea15f1ed91f2377424e76dcbded562552cbeaa6 Mon Sep 17 00:00:00 2001
From: Ben Selwyn-Smith <benselwynsmith@googlemail.com>
Date: Mon, 28 Apr 2025 09:45:51 +1000
Subject: [PATCH 2/3] chore: prune table columns

Signed-off-by: Ben Selwyn-Smith <benselwynsmith@googlemail.com>
---
 src/macaron/database/table_definitions.py | 3 ---
 src/macaron/slsa_analyzer/analyzer.py     | 2 +-
 2 files changed, 1 insertion(+), 4 deletions(-)

diff --git a/src/macaron/database/table_definitions.py b/src/macaron/database/table_definitions.py
index d91d55154..be8928ce4 100644
--- a/src/macaron/database/table_definitions.py
+++ b/src/macaron/database/table_definitions.py
@@ -499,9 +499,6 @@ class Provenance(ORMBase):
     #: The release tag commit sha.
     release_commit_sha: Mapped[str] = mapped_column(String, nullable=True)
 
-    #: The release tag.
-    release_tag: Mapped[str] = mapped_column(String, nullable=True)
-
     #: The repository URL from the provenance.
     repository_url: Mapped[str] = mapped_column(String, nullable=True)
 
diff --git a/src/macaron/slsa_analyzer/analyzer.py b/src/macaron/slsa_analyzer/analyzer.py
index 9597f2081..1230d494a 100644
--- a/src/macaron/slsa_analyzer/analyzer.py
+++ b/src/macaron/slsa_analyzer/analyzer.py
@@ -541,7 +541,7 @@ def run_single(
                 slsa_version=slsa_version,
                 provenance_asset_name=provenance_asset.name if provenance_asset else None,
                 provenance_asset_url=provenance_asset.url if provenance_asset else None,
-                # TODO Add release tag, release digest.
+                # TODO Add release digest.
             )
 
         analyze_ctx.dynamic_data["validate_malware"] = validate_malware

From e708d81dfce569c582ce8552fe03be0c54fa7bf7 Mon Sep 17 00:00:00 2001
From: Ben Selwyn-Smith <benselwynsmith@googlemail.com>
Date: Mon, 28 Apr 2025 09:51:29 +1000
Subject: [PATCH 3/3] chore: update database diagram

Signed-off-by: Ben Selwyn-Smith <benselwynsmith@googlemail.com>
---
 docs/source/assets/er-diagram.svg | 1592 ++++++++++++++++-------------
 1 file changed, 876 insertions(+), 716 deletions(-)

diff --git a/docs/source/assets/er-diagram.svg b/docs/source/assets/er-diagram.svg
index e61539047..33520a9ba 100644
--- a/docs/source/assets/er-diagram.svg
+++ b/docs/source/assets/er-diagram.svg
@@ -1,958 +1,1118 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
  "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
-<!-- Generated by graphviz version 2.43.0 (0)
+<!-- Generated by graphviz version 12.2.1 (20241206.2353)
  -->
-<!-- Title: %3 Pages: 1 -->
-<svg width="1896pt" height="3464pt"
- viewBox="0.00 0.00 1896.00 3463.50" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
-<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 3459.5)">
-<title>%3</title>
-<polygon fill="white" stroke="transparent" points="-4,4 -4,-3459.5 1892,-3459.5 1892,4 -4,4"/>
+<!-- Pages: 1 -->
+<svg width="1816pt" height="3720pt"
+ viewBox="0.00 0.00 1815.67 3720.40" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 3716.4)">
+<polygon fill="white" stroke="none" points="-4,4 -4,-3716.4 1811.67,-3716.4 1811.67,4 -4,4"/>
 <!-- _analysis -->
 <g id="node1" class="node">
 <title>_analysis</title>
-<polygon fill="none" stroke="black" points="8.5,-1076.5 8.5,-1104.5 295.5,-1104.5 295.5,-1076.5 8.5,-1076.5"/>
-<text text-anchor="start" x="111" y="-1087.7" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="16.00">_analysis</text>
-<polygon fill="none" stroke="black" points="8.5,-1051.5 8.5,-1076.5 295.5,-1076.5 295.5,-1051.5 8.5,-1051.5"/>
-<text text-anchor="start" x="13.5" y="-1061.3" font-family="Helvetica,sans-Serif" text-decoration="underline" font-size="14.00">id</text>
-<text text-anchor="start" x="26.5" y="-1061.3" font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
-<text text-anchor="start" x="103.5" y="-1061.3" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
-<polygon fill="none" stroke="black" points="8.5,-1026.5 8.5,-1051.5 295.5,-1051.5 295.5,-1026.5 8.5,-1026.5"/>
-<text text-anchor="start" x="13.5" y="-1036.3" font-family="Helvetica,sans-Serif" font-size="14.00">analysis_time</text>
-<text text-anchor="start" x="107.5" y="-1036.3" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR]</text>
-<text text-anchor="start" x="190.5" y="-1036.3" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
-<polygon fill="none" stroke="black" points="8.5,-1001.5 8.5,-1026.5 295.5,-1026.5 295.5,-1001.5 8.5,-1001.5"/>
-<text text-anchor="start" x="13.5" y="-1011.3" font-family="Helvetica,sans-Serif" font-size="14.00">macaron_version</text>
-<text text-anchor="start" x="131.5" y="-1011.3" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR]</text>
-<text text-anchor="start" x="214.5" y="-1011.3" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<polygon fill="none" stroke="black" points="8,-1157.2 8,-1186.4 282.52,-1186.4 282.52,-1157.2 8,-1157.2"/>
+<text text-anchor="start" x="109.23" y="-1168" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="16.00">_analysis</text>
+<polygon fill="none" stroke="black" points="8,-1130.4 8,-1157.2 282.52,-1157.2 282.52,-1130.4 8,-1130.4"/>
+<text text-anchor="start" x="13" y="-1140.6" font-family="Helvetica,sans-Serif" text-decoration="underline" font-size="14.00">id</text>
+<text text-anchor="start" x="23.9" y="-1140.6" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="27.79" y="-1140.6" font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
+<text text-anchor="start" x="101.68" y="-1140.6" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<polygon fill="none" stroke="black" points="8,-1103.6 8,-1130.4 282.52,-1130.4 282.52,-1103.6 8,-1103.6"/>
+<text text-anchor="start" x="13" y="-1113.8" font-family="Helvetica,sans-Serif" font-size="14.00">analysis_time</text>
+<text text-anchor="start" x="97.81" y="-1113.8" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="101.7" y="-1113.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR]</text>
+<text text-anchor="start" x="181.83" y="-1113.8" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<polygon fill="none" stroke="black" points="8,-1076.8 8,-1103.6 282.52,-1103.6 282.52,-1076.8 8,-1076.8"/>
+<text text-anchor="start" x="13" y="-1087" font-family="Helvetica,sans-Serif" font-size="14.00">macaron_version</text>
+<text text-anchor="start" x="120.39" y="-1087" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="124.28" y="-1087" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR]</text>
+<text text-anchor="start" x="204.4" y="-1087" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
 </g>
 <!-- _component -->
 <g id="node2" class="node">
 <title>_component</title>
-<polygon fill="none" stroke="black" points="384.5,-1151.5 384.5,-1179.5 631.5,-1179.5 631.5,-1151.5 384.5,-1151.5"/>
-<text text-anchor="start" x="453.5" y="-1162.7" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="16.00">_component</text>
-<polygon fill="none" stroke="black" points="384.5,-1126.5 384.5,-1151.5 631.5,-1151.5 631.5,-1126.5 384.5,-1126.5"/>
-<text text-anchor="start" x="389.5" y="-1136.3" font-family="Helvetica,sans-Serif" text-decoration="underline" font-size="14.00">id</text>
-<text text-anchor="start" x="402.5" y="-1136.3" font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
-<text text-anchor="start" x="479.5" y="-1136.3" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
-<polygon fill="none" stroke="black" points="384.5,-1101.5 384.5,-1126.5 631.5,-1126.5 631.5,-1101.5 384.5,-1101.5"/>
-<text text-anchor="start" x="389.5" y="-1111.3" font-family="Helvetica,sans-Serif" font-size="14.00">analysis_id</text>
-<text text-anchor="start" x="465.5" y="-1111.3" font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
-<text text-anchor="start" x="542.5" y="-1111.3" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
-<polygon fill="none" stroke="black" points="384.5,-1076.5 384.5,-1101.5 631.5,-1101.5 631.5,-1076.5 384.5,-1076.5"/>
-<text text-anchor="start" x="389.5" y="-1086.3" font-family="Helvetica,sans-Serif" font-size="14.00">name</text>
-<text text-anchor="start" x="429.5" y="-1086.3" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR(100)]</text>
-<text text-anchor="start" x="550.5" y="-1086.3" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
-<polygon fill="none" stroke="black" points="384.5,-1051.5 384.5,-1076.5 631.5,-1076.5 631.5,-1051.5 384.5,-1051.5"/>
-<text text-anchor="start" x="389.5" y="-1061.3" font-family="Helvetica,sans-Serif" font-size="14.00">namespace</text>
-<text text-anchor="start" x="469.5" y="-1061.3" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR(255)]</text>
-<polygon fill="none" stroke="black" points="384.5,-1026.5 384.5,-1051.5 631.5,-1051.5 631.5,-1026.5 384.5,-1026.5"/>
-<text text-anchor="start" x="389.5" y="-1036.3" font-family="Helvetica,sans-Serif" font-size="14.00">purl</text>
-<text text-anchor="start" x="417.5" y="-1036.3" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR]</text>
-<text text-anchor="start" x="500.5" y="-1036.3" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
-<polygon fill="none" stroke="black" points="384.5,-1001.5 384.5,-1026.5 631.5,-1026.5 631.5,-1001.5 384.5,-1001.5"/>
-<text text-anchor="start" x="389.5" y="-1011.3" font-family="Helvetica,sans-Serif" font-size="14.00">qualifiers</text>
-<text text-anchor="start" x="454.5" y="-1011.3" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR(1024)]</text>
-<polygon fill="none" stroke="black" points="384.5,-976.5 384.5,-1001.5 631.5,-1001.5 631.5,-976.5 384.5,-976.5"/>
-<text text-anchor="start" x="389.5" y="-986.3" font-family="Helvetica,sans-Serif" font-size="14.00">subpath</text>
-<text text-anchor="start" x="447.5" y="-986.3" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR(200)]</text>
-<polygon fill="none" stroke="black" points="384.5,-951.5 384.5,-976.5 631.5,-976.5 631.5,-951.5 384.5,-951.5"/>
-<text text-anchor="start" x="389.5" y="-961.3" font-family="Helvetica,sans-Serif" font-size="14.00">type</text>
-<text text-anchor="start" x="420.5" y="-961.3" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR(16)]</text>
-<text text-anchor="start" x="532.5" y="-961.3" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
-<polygon fill="none" stroke="black" points="384.5,-926.5 384.5,-951.5 631.5,-951.5 631.5,-926.5 384.5,-926.5"/>
-<text text-anchor="start" x="389.5" y="-936.3" font-family="Helvetica,sans-Serif" font-size="14.00">version</text>
-<text text-anchor="start" x="441.5" y="-936.3" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR(100)]</text>
+<polygon fill="none" stroke="black" points="371.52,-1237.6 371.52,-1266.8 606.36,-1266.8 606.36,-1237.6 371.52,-1237.6"/>
+<text text-anchor="start" x="441.39" y="-1248.4" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="16.00">_component</text>
+<polygon fill="none" stroke="black" points="371.52,-1210.8 371.52,-1237.6 606.36,-1237.6 606.36,-1210.8 371.52,-1210.8"/>
+<text text-anchor="start" x="376.52" y="-1221" font-family="Helvetica,sans-Serif" text-decoration="underline" font-size="14.00">id</text>
+<text text-anchor="start" x="387.42" y="-1221" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="391.31" y="-1221" font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
+<text text-anchor="start" x="465.21" y="-1221" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<polygon fill="none" stroke="black" points="371.52,-1184 371.52,-1210.8 606.36,-1210.8 606.36,-1184 371.52,-1184"/>
+<text text-anchor="start" x="376.52" y="-1194.2" font-family="Helvetica,sans-Serif" font-size="14.00">analysis_id</text>
+<text text-anchor="start" x="445.79" y="-1194.2" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="449.67" y="-1194.2" font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
+<text text-anchor="start" x="523.57" y="-1194.2" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<polygon fill="none" stroke="black" points="371.52,-1157.2 371.52,-1184 606.36,-1184 606.36,-1157.2 371.52,-1157.2"/>
+<text text-anchor="start" x="376.52" y="-1167.4" font-family="Helvetica,sans-Serif" font-size="14.00">name</text>
+<text text-anchor="start" x="411.54" y="-1167.4" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="415.43" y="-1167.4" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR(100)]</text>
+<text text-anchor="start" x="528.24" y="-1167.4" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<polygon fill="none" stroke="black" points="371.52,-1130.4 371.52,-1157.2 606.36,-1157.2 606.36,-1130.4 371.52,-1130.4"/>
+<text text-anchor="start" x="376.52" y="-1140.6" font-family="Helvetica,sans-Serif" font-size="14.00">namespace</text>
+<text text-anchor="start" x="448.9" y="-1140.6" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="452.79" y="-1140.6" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR(255)]</text>
+<polygon fill="none" stroke="black" points="371.52,-1103.6 371.52,-1130.4 606.36,-1130.4 606.36,-1103.6 371.52,-1103.6"/>
+<text text-anchor="start" x="376.52" y="-1113.8" font-family="Helvetica,sans-Serif" font-size="14.00">purl</text>
+<text text-anchor="start" x="399.87" y="-1113.8" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="403.76" y="-1113.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR]</text>
+<text text-anchor="start" x="483.88" y="-1113.8" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<polygon fill="none" stroke="black" points="371.52,-1076.8 371.52,-1103.6 606.36,-1103.6 606.36,-1076.8 371.52,-1076.8"/>
+<text text-anchor="start" x="376.52" y="-1087" font-family="Helvetica,sans-Serif" font-size="14.00">qualifiers</text>
+<text text-anchor="start" x="432.55" y="-1087" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="436.44" y="-1087" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR(1024)]</text>
+<polygon fill="none" stroke="black" points="371.52,-1050 371.52,-1076.8 606.36,-1076.8 606.36,-1050 371.52,-1050"/>
+<text text-anchor="start" x="376.52" y="-1060.2" font-family="Helvetica,sans-Serif" font-size="14.00">subpath</text>
+<text text-anchor="start" x="426.34" y="-1060.2" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="430.23" y="-1060.2" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR(200)]</text>
+<polygon fill="none" stroke="black" points="371.52,-1023.2 371.52,-1050 606.36,-1050 606.36,-1023.2 371.52,-1023.2"/>
+<text text-anchor="start" x="376.52" y="-1033.4" font-family="Helvetica,sans-Serif" font-size="14.00">type</text>
+<text text-anchor="start" x="402.99" y="-1033.4" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="406.88" y="-1033.4" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR(16)]</text>
+<text text-anchor="start" x="511.9" y="-1033.4" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<polygon fill="none" stroke="black" points="371.52,-996.4 371.52,-1023.2 606.36,-1023.2 606.36,-996.4 371.52,-996.4"/>
+<text text-anchor="start" x="376.52" y="-1006.6" font-family="Helvetica,sans-Serif" font-size="14.00">version</text>
+<text text-anchor="start" x="421.65" y="-1006.6" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="425.54" y="-1006.6" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR(100)]</text>
 </g>
 <!-- _analysis&#45;&#45;_component -->
 <g id="edge1" class="edge">
 <title>_analysis&#45;&#45;_component</title>
-<path fill="none" stroke="#7f7f7f" stroke-dasharray="5,2" d="M303.14,-1053.5C327.32,-1053.5 352.18,-1053.5 375.84,-1053.5"/>
-<text text-anchor="start" x="344.84" y="-1042.3" font-family="Times,serif" font-size="14.00">0..N</text>
-<text text-anchor="start" x="303.14" y="-1042.3" font-family="Times,serif" font-size="14.00">1</text>
+<path fill="none" stroke="#7f7f7f" stroke-dasharray="5,2" d="M290.18,-1131.6C314.61,-1131.6 339.81,-1131.6 363.69,-1131.6"/>
+<text text-anchor="start" x="339.58" y="-1119" font-family="Times,serif" font-size="14.00">0..N</text>
+<text text-anchor="start" x="290.18" y="-1119" font-family="Times,serif" font-size="14.00">1</text>
 </g>
 <!-- _check_facts -->
 <g id="node4" class="node">
 <title>_check_facts</title>
-<polygon fill="none" stroke="black" points="1174.5,-1639.5 1174.5,-1667.5 1443.5,-1667.5 1443.5,-1639.5 1174.5,-1639.5"/>
-<text text-anchor="start" x="1252.5" y="-1650.7" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="16.00">_check_facts</text>
-<polygon fill="none" stroke="black" points="1174.5,-1614.5 1174.5,-1639.5 1443.5,-1639.5 1443.5,-1614.5 1174.5,-1614.5"/>
-<text text-anchor="start" x="1179.5" y="-1624.3" font-family="Helvetica,sans-Serif" text-decoration="underline" font-size="14.00">id</text>
-<text text-anchor="start" x="1192.5" y="-1624.3" font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
-<text text-anchor="start" x="1269.5" y="-1624.3" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
-<polygon fill="none" stroke="black" points="1174.5,-1589.5 1174.5,-1614.5 1443.5,-1614.5 1443.5,-1589.5 1174.5,-1589.5"/>
-<text text-anchor="start" x="1179.5" y="-1599.3" font-family="Helvetica,sans-Serif" font-size="14.00">check_result_id</text>
-<text text-anchor="start" x="1285.5" y="-1599.3" font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
-<text text-anchor="start" x="1362.5" y="-1599.3" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
-<polygon fill="none" stroke="black" points="1174.5,-1564.5 1174.5,-1589.5 1443.5,-1589.5 1443.5,-1564.5 1174.5,-1564.5"/>
-<text text-anchor="start" x="1179.5" y="-1574.3" font-family="Helvetica,sans-Serif" font-size="14.00">check_type</text>
-<text text-anchor="start" x="1258.5" y="-1574.3" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR]</text>
-<text text-anchor="start" x="1341.5" y="-1574.3" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
-<polygon fill="none" stroke="black" points="1174.5,-1539.5 1174.5,-1564.5 1443.5,-1564.5 1443.5,-1539.5 1174.5,-1539.5"/>
-<text text-anchor="start" x="1179.5" y="-1549.3" font-family="Helvetica,sans-Serif" font-size="14.00">component_id</text>
-<text text-anchor="start" x="1277.5" y="-1549.3" font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
-<text text-anchor="start" x="1354.5" y="-1549.3" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
-<polygon fill="none" stroke="black" points="1174.5,-1514.5 1174.5,-1539.5 1443.5,-1539.5 1443.5,-1514.5 1174.5,-1514.5"/>
-<text text-anchor="start" x="1179.5" y="-1524.3" font-family="Helvetica,sans-Serif" font-size="14.00">confidence</text>
-<text text-anchor="start" x="1255.5" y="-1524.3" font-family="Helvetica,sans-Serif" font-size="14.00"> [FLOAT]</text>
-<text text-anchor="start" x="1313.5" y="-1524.3" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<polygon fill="none" stroke="black" points="1125.8,-1791 1125.8,-1820.2 1383.98,-1820.2 1383.98,-1791 1125.8,-1791"/>
+<text text-anchor="start" x="1204.63" y="-1801.8" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="16.00">_check_facts</text>
+<polygon fill="none" stroke="black" points="1125.8,-1764.2 1125.8,-1791 1383.98,-1791 1383.98,-1764.2 1125.8,-1764.2"/>
+<text text-anchor="start" x="1130.8" y="-1774.4" font-family="Helvetica,sans-Serif" text-decoration="underline" font-size="14.00">id</text>
+<text text-anchor="start" x="1141.69" y="-1774.4" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="1145.58" y="-1774.4" font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
+<text text-anchor="start" x="1219.48" y="-1774.4" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<polygon fill="none" stroke="black" points="1125.8,-1737.4 1125.8,-1764.2 1383.98,-1764.2 1383.98,-1737.4 1125.8,-1737.4"/>
+<text text-anchor="start" x="1130.8" y="-1747.6" font-family="Helvetica,sans-Serif" font-size="14.00">check_result_id</text>
+<text text-anchor="start" x="1228.07" y="-1747.6" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="1231.96" y="-1747.6" font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
+<text text-anchor="start" x="1305.86" y="-1747.6" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<polygon fill="none" stroke="black" points="1125.8,-1710.6 1125.8,-1737.4 1383.98,-1737.4 1383.98,-1710.6 1125.8,-1710.6"/>
+<text text-anchor="start" x="1130.8" y="-1720.8" font-family="Helvetica,sans-Serif" font-size="14.00">check_type</text>
+<text text-anchor="start" x="1201.62" y="-1720.8" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="1205.51" y="-1720.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR]</text>
+<text text-anchor="start" x="1285.63" y="-1720.8" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<polygon fill="none" stroke="black" points="1125.8,-1683.8 1125.8,-1710.6 1383.98,-1710.6 1383.98,-1683.8 1125.8,-1683.8"/>
+<text text-anchor="start" x="1130.8" y="-1694" font-family="Helvetica,sans-Serif" font-size="14.00">component_id</text>
+<text text-anchor="start" x="1218.75" y="-1694" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="1222.64" y="-1694" font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
+<text text-anchor="start" x="1296.54" y="-1694" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<polygon fill="none" stroke="black" points="1125.8,-1657 1125.8,-1683.8 1383.98,-1683.8 1383.98,-1657 1125.8,-1657"/>
+<text text-anchor="start" x="1130.8" y="-1667.2" font-family="Helvetica,sans-Serif" font-size="14.00">confidence</text>
+<text text-anchor="start" x="1198.51" y="-1667.2" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="1202.4" y="-1667.2" font-family="Helvetica,sans-Serif" font-size="14.00"> [FLOAT]</text>
+<text text-anchor="start" x="1259.19" y="-1667.2" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
 </g>
 <!-- _component&#45;&#45;_check_facts -->
 <g id="edge18" class="edge">
 <title>_component&#45;&#45;_check_facts</title>
-<path fill="none" stroke="#7f7f7f" stroke-dasharray="5,2" d="M520.12,-1184.1C538.67,-1306.74 586.86,-1484.2 712,-1572.5 843.74,-1665.46 1035.83,-1652.26 1165.93,-1627.71"/>
-<text text-anchor="start" x="1134.93" y="-1616.51" font-family="Times,serif" font-size="14.00">0..N</text>
-<text text-anchor="start" x="510.12" y="-1187.9" font-family="Times,serif" font-size="14.00">1</text>
+<path fill="none" stroke="#7f7f7f" stroke-dasharray="5,2" d="M493.8,-1270.67C505.89,-1409.21 548,-1615.8 687.36,-1719.6 810.29,-1811.16 993.34,-1798.34 1117.85,-1774.26"/>
+<text text-anchor="start" x="1093.74" y="-1761.66" font-family="Times,serif" font-size="14.00">0..N</text>
+<text text-anchor="start" x="486.8" y="-1274.87" font-family="Times,serif" font-size="14.00">1</text>
 </g>
 <!-- _check_result -->
 <g id="node20" class="node">
 <title>_check_result</title>
-<polygon fill="none" stroke="black" points="772.5,-1531.5 772.5,-1559.5 1033.5,-1559.5 1033.5,-1531.5 772.5,-1531.5"/>
-<text text-anchor="start" x="842.5" y="-1542.7" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="16.00">_check_result</text>
-<polygon fill="none" stroke="black" points="772.5,-1506.5 772.5,-1531.5 1033.5,-1531.5 1033.5,-1506.5 772.5,-1506.5"/>
-<text text-anchor="start" x="777.5" y="-1516.3" font-family="Helvetica,sans-Serif" text-decoration="underline" font-size="14.00">id</text>
-<text text-anchor="start" x="790.5" y="-1516.3" font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
-<text text-anchor="start" x="867.5" y="-1516.3" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
-<polygon fill="none" stroke="black" points="772.5,-1481.5 772.5,-1506.5 1033.5,-1506.5 1033.5,-1481.5 772.5,-1481.5"/>
-<text text-anchor="start" x="777.5" y="-1491.3" font-family="Helvetica,sans-Serif" font-size="14.00">check_id</text>
-<text text-anchor="start" x="838.5" y="-1491.3" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR]</text>
-<text text-anchor="start" x="921.5" y="-1491.3" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
-<polygon fill="none" stroke="black" points="772.5,-1456.5 772.5,-1481.5 1033.5,-1481.5 1033.5,-1456.5 772.5,-1456.5"/>
-<text text-anchor="start" x="777.5" y="-1466.3" font-family="Helvetica,sans-Serif" font-size="14.00">component_id</text>
-<text text-anchor="start" x="875.5" y="-1466.3" font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
-<text text-anchor="start" x="952.5" y="-1466.3" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
-<polygon fill="none" stroke="black" points="772.5,-1431.5 772.5,-1456.5 1033.5,-1456.5 1033.5,-1431.5 772.5,-1431.5"/>
-<text text-anchor="start" x="777.5" y="-1441.3" font-family="Helvetica,sans-Serif" font-size="14.00">passed</text>
-<text text-anchor="start" x="827.5" y="-1441.3" font-family="Helvetica,sans-Serif" font-size="14.00"> [BOOLEAN]</text>
-<text text-anchor="start" x="911.5" y="-1441.3" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<polygon fill="none" stroke="black" points="741.65,-1677.6 741.65,-1706.8 990.51,-1706.8 990.51,-1677.6 741.65,-1677.6"/>
+<text text-anchor="start" x="812.71" y="-1688.4" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="16.00">_check_result</text>
+<polygon fill="none" stroke="black" points="741.65,-1650.8 741.65,-1677.6 990.51,-1677.6 990.51,-1650.8 741.65,-1650.8"/>
+<text text-anchor="start" x="746.65" y="-1661" font-family="Helvetica,sans-Serif" text-decoration="underline" font-size="14.00">id</text>
+<text text-anchor="start" x="757.55" y="-1661" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="761.44" y="-1661" font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
+<text text-anchor="start" x="835.33" y="-1661" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<polygon fill="none" stroke="black" points="741.65,-1624 741.65,-1650.8 990.51,-1650.8 990.51,-1624 741.65,-1624"/>
+<text text-anchor="start" x="746.65" y="-1634.2" font-family="Helvetica,sans-Serif" font-size="14.00">check_id</text>
+<text text-anchor="start" x="801.91" y="-1634.2" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="805.79" y="-1634.2" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR]</text>
+<text text-anchor="start" x="885.92" y="-1634.2" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<polygon fill="none" stroke="black" points="741.65,-1597.2 741.65,-1624 990.51,-1624 990.51,-1597.2 741.65,-1597.2"/>
+<text text-anchor="start" x="746.65" y="-1607.4" font-family="Helvetica,sans-Serif" font-size="14.00">component_id</text>
+<text text-anchor="start" x="834.6" y="-1607.4" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="838.49" y="-1607.4" font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
+<text text-anchor="start" x="912.39" y="-1607.4" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<polygon fill="none" stroke="black" points="741.65,-1570.4 741.65,-1597.2 990.51,-1597.2 990.51,-1570.4 741.65,-1570.4"/>
+<text text-anchor="start" x="746.65" y="-1580.6" font-family="Helvetica,sans-Serif" font-size="14.00">passed</text>
+<text text-anchor="start" x="791.79" y="-1580.6" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="795.68" y="-1580.6" font-family="Helvetica,sans-Serif" font-size="14.00"> [BOOLEAN]</text>
+<text text-anchor="start" x="875.04" y="-1580.6" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
 </g>
 <!-- _component&#45;&#45;_check_result -->
 <g id="edge19" class="edge">
 <title>_component&#45;&#45;_check_result</title>
-<path fill="none" stroke="#7f7f7f" stroke-dasharray="5,2" d="M555.56,-1184.11C588.99,-1261.08 640.67,-1355.42 712,-1418.5 727.3,-1432.03 745.28,-1443.36 763.98,-1452.81"/>
-<text text-anchor="start" x="732.98" y="-1441.61" font-family="Times,serif" font-size="14.00">0..N</text>
-<text text-anchor="start" x="545.56" y="-1187.91" font-family="Times,serif" font-size="14.00">1</text>
+<path fill="none" stroke="#7f7f7f" stroke-dasharray="5,2" d="M527.11,-1270.7C557.46,-1361.71 608.45,-1477.89 687.36,-1556.6 700.84,-1570.04 716.92,-1581.52 733.82,-1591.26"/>
+<text text-anchor="start" x="709.71" y="-1578.66" font-family="Times,serif" font-size="14.00">0..N</text>
+<text text-anchor="start" x="520.11" y="-1274.9" font-family="Times,serif" font-size="14.00">1</text>
 </g>
 <!-- _dependency -->
 <g id="node21" class="node">
 <title>_dependency</title>
-<polygon fill="none" stroke="black" points="756.5,-1377.5 756.5,-1405.5 1049.5,-1405.5 1049.5,-1377.5 756.5,-1377.5"/>
-<text text-anchor="start" x="844.5" y="-1388.7" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="16.00">_dependency</text>
-<polygon fill="none" stroke="black" points="756.5,-1352.5 756.5,-1377.5 1049.5,-1377.5 1049.5,-1352.5 756.5,-1352.5"/>
-<text text-anchor="start" x="761.5" y="-1362.3" font-family="Helvetica,sans-Serif" text-decoration="underline" font-size="14.00">child_component</text>
-<text text-anchor="start" x="879.5" y="-1362.3" font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
-<text text-anchor="start" x="956.5" y="-1362.3" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
-<polygon fill="none" stroke="black" points="756.5,-1327.5 756.5,-1352.5 1049.5,-1352.5 1049.5,-1327.5 756.5,-1327.5"/>
-<text text-anchor="start" x="761.5" y="-1337.3" font-family="Helvetica,sans-Serif" text-decoration="underline" font-size="14.00">parent_component</text>
-<text text-anchor="start" x="891.5" y="-1337.3" font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
-<text text-anchor="start" x="968.5" y="-1337.3" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<polygon fill="none" stroke="black" points="727.25,-1514.8 727.25,-1544 1004.91,-1544 1004.91,-1514.8 727.25,-1514.8"/>
+<text text-anchor="start" x="814.95" y="-1525.6" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="16.00">_dependency</text>
+<polygon fill="none" stroke="black" points="727.25,-1488 727.25,-1514.8 1004.91,-1514.8 1004.91,-1488 727.25,-1488"/>
+<text text-anchor="start" x="732.25" y="-1498.2" font-family="Helvetica,sans-Serif" text-decoration="underline" font-size="14.00">child_component</text>
+<text text-anchor="start" x="838.1" y="-1498.2" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="841.99" y="-1498.2" font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
+<text text-anchor="start" x="915.88" y="-1498.2" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<polygon fill="none" stroke="black" points="727.25,-1461.2 727.25,-1488 1004.91,-1488 1004.91,-1461.2 727.25,-1461.2"/>
+<text text-anchor="start" x="732.25" y="-1471.4" font-family="Helvetica,sans-Serif" text-decoration="underline" font-size="14.00">parent_component</text>
+<text text-anchor="start" x="849" y="-1471.4" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="852.89" y="-1471.4" font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
+<text text-anchor="start" x="926.79" y="-1471.4" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
 </g>
 <!-- _component&#45;&#45;_dependency -->
 <g id="edge20" class="edge">
 <title>_component&#45;&#45;_dependency</title>
-<path fill="none" stroke="#7f7f7f" stroke-dasharray="5,2" d="M591.34,-1184.17C623.94,-1228.22 664.91,-1274.1 712,-1305.5 723.07,-1312.88 735.16,-1319.22 747.71,-1324.7"/>
-<text text-anchor="start" x="737.71" y="-1313.5" font-family="Times,serif" font-size="14.00">1</text>
-<text text-anchor="start" x="581.34" y="-1187.97" font-family="Times,serif" font-size="14.00">1</text>
+<path fill="none" stroke="#7f7f7f" stroke-dasharray="5,2" d="M553.45,-1270.46C585.8,-1329.56 630.48,-1394.79 687.36,-1438.6 697.22,-1446.19 708.12,-1452.74 719.55,-1458.42"/>
+<text text-anchor="start" x="712.55" y="-1445.82" font-family="Times,serif" font-size="14.00">1</text>
+<text text-anchor="start" x="546.45" y="-1274.66" font-family="Times,serif" font-size="14.00">1</text>
 </g>
 <!-- _component&#45;&#45;_dependency -->
 <g id="edge21" class="edge">
 <title>_component&#45;&#45;_dependency</title>
-<path fill="none" stroke="#7f7f7f" stroke-dasharray="5,2" d="M579.33,-1184.05C613.63,-1234.34 658.94,-1288.11 712,-1323.5 723.07,-1330.88 735.16,-1337.22 747.71,-1342.63"/>
-<text text-anchor="start" x="737.71" y="-1331.43" font-family="Times,serif" font-size="14.00">1</text>
-<text text-anchor="start" x="569.33" y="-1187.85" font-family="Times,serif" font-size="14.00">1</text>
+<path fill="none" stroke="#7f7f7f" stroke-dasharray="5,2" d="M545.01,-1270.75C577.85,-1335.63 625.35,-1408.84 687.36,-1456.6 697.22,-1464.19 708.12,-1470.74 719.55,-1476.36"/>
+<text text-anchor="start" x="712.55" y="-1463.76" font-family="Times,serif" font-size="14.00">1</text>
+<text text-anchor="start" x="538.01" y="-1274.95" font-family="Times,serif" font-size="14.00">1</text>
 </g>
 <!-- _provenance -->
 <g id="node22" class="node">
 <title>_provenance</title>
-<polygon fill="none" stroke="black" points="746.5,-1273.5 746.5,-1301.5 1058.5,-1301.5 1058.5,-1273.5 746.5,-1273.5"/>
-<text text-anchor="start" x="845.5" y="-1284.7" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="16.00">_provenance</text>
-<polygon fill="none" stroke="black" points="746.5,-1248.5 746.5,-1273.5 1058.5,-1273.5 1058.5,-1248.5 746.5,-1248.5"/>
-<text text-anchor="start" x="751.5" y="-1258.3" font-family="Helvetica,sans-Serif" text-decoration="underline" font-size="14.00">id</text>
-<text text-anchor="start" x="764.5" y="-1258.3" font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
-<text text-anchor="start" x="841.5" y="-1258.3" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
-<polygon fill="none" stroke="black" points="746.5,-1223.5 746.5,-1248.5 1058.5,-1248.5 1058.5,-1223.5 746.5,-1223.5"/>
-<text text-anchor="start" x="751.5" y="-1233.3" font-family="Helvetica,sans-Serif" font-size="14.00">commit_sha</text>
-<text text-anchor="start" x="835.5" y="-1233.3" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR]</text>
-<polygon fill="none" stroke="black" points="746.5,-1198.5 746.5,-1223.5 1058.5,-1223.5 1058.5,-1198.5 746.5,-1198.5"/>
-<text text-anchor="start" x="751.5" y="-1208.3" font-family="Helvetica,sans-Serif" font-size="14.00">component_id</text>
-<text text-anchor="start" x="849.5" y="-1208.3" font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
-<text text-anchor="start" x="926.5" y="-1208.3" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
-<polygon fill="none" stroke="black" points="746.5,-1173.5 746.5,-1198.5 1058.5,-1198.5 1058.5,-1173.5 746.5,-1173.5"/>
-<text text-anchor="start" x="751.5" y="-1183.3" font-family="Helvetica,sans-Serif" font-size="14.00">provenance_payload</text>
-<text text-anchor="start" x="894.5" y="-1183.3" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR]</text>
-<text text-anchor="start" x="977.5" y="-1183.3" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
-<polygon fill="none" stroke="black" points="746.5,-1148.5 746.5,-1173.5 1058.5,-1173.5 1058.5,-1148.5 746.5,-1148.5"/>
-<text text-anchor="start" x="751.5" y="-1158.3" font-family="Helvetica,sans-Serif" font-size="14.00">release_commit_sha</text>
-<text text-anchor="start" x="891.5" y="-1158.3" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR]</text>
-<polygon fill="none" stroke="black" points="746.5,-1123.5 746.5,-1148.5 1058.5,-1148.5 1058.5,-1123.5 746.5,-1123.5"/>
-<text text-anchor="start" x="751.5" y="-1133.3" font-family="Helvetica,sans-Serif" font-size="14.00">release_tag</text>
-<text text-anchor="start" x="830.5" y="-1133.3" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR]</text>
-<polygon fill="none" stroke="black" points="746.5,-1098.5 746.5,-1123.5 1058.5,-1123.5 1058.5,-1098.5 746.5,-1098.5"/>
-<text text-anchor="start" x="751.5" y="-1108.3" font-family="Helvetica,sans-Serif" font-size="14.00">repository_url</text>
-<text text-anchor="start" x="847.5" y="-1108.3" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR]</text>
-<polygon fill="none" stroke="black" points="746.5,-1073.5 746.5,-1098.5 1058.5,-1098.5 1058.5,-1073.5 746.5,-1073.5"/>
-<text text-anchor="start" x="751.5" y="-1083.3" font-family="Helvetica,sans-Serif" font-size="14.00">slsa_level</text>
-<text text-anchor="start" x="818.5" y="-1083.3" font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
-<text text-anchor="start" x="895.5" y="-1083.3" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
-<polygon fill="none" stroke="black" points="746.5,-1048.5 746.5,-1073.5 1058.5,-1073.5 1058.5,-1048.5 746.5,-1048.5"/>
-<text text-anchor="start" x="751.5" y="-1058.3" font-family="Helvetica,sans-Serif" font-size="14.00">slsa_version</text>
-<text text-anchor="start" x="836.5" y="-1058.3" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR]</text>
-<polygon fill="none" stroke="black" points="746.5,-1023.5 746.5,-1048.5 1058.5,-1048.5 1058.5,-1023.5 746.5,-1023.5"/>
-<text text-anchor="start" x="751.5" y="-1033.3" font-family="Helvetica,sans-Serif" font-size="14.00">verified</text>
-<text text-anchor="start" x="804.5" y="-1033.3" font-family="Helvetica,sans-Serif" font-size="14.00"> [BOOLEAN]</text>
-<text text-anchor="start" x="888.5" y="-1033.3" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<polygon fill="none" stroke="black" points="717.52,-1405.8 717.52,-1435 1014.65,-1435 1014.65,-1405.8 717.52,-1405.8"/>
+<text text-anchor="start" x="816.73" y="-1416.6" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="16.00">_provenance</text>
+<polygon fill="none" stroke="black" points="717.52,-1379 717.52,-1405.8 1014.65,-1405.8 1014.65,-1379 717.52,-1379"/>
+<text text-anchor="start" x="722.52" y="-1389.2" font-family="Helvetica,sans-Serif" text-decoration="underline" font-size="14.00">id</text>
+<text text-anchor="start" x="733.41" y="-1389.2" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="737.3" y="-1389.2" font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
+<text text-anchor="start" x="811.2" y="-1389.2" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<polygon fill="none" stroke="black" points="717.52,-1352.2 717.52,-1379 1014.65,-1379 1014.65,-1352.2 717.52,-1352.2"/>
+<text text-anchor="start" x="722.52" y="-1362.4" font-family="Helvetica,sans-Serif" font-size="14.00">commit_sha</text>
+<text text-anchor="start" x="797.98" y="-1362.4" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="801.87" y="-1362.4" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR]</text>
+<polygon fill="none" stroke="black" points="717.52,-1325.4 717.52,-1352.2 1014.65,-1352.2 1014.65,-1325.4 717.52,-1325.4"/>
+<text text-anchor="start" x="722.52" y="-1335.6" font-family="Helvetica,sans-Serif" font-size="14.00">component_id</text>
+<text text-anchor="start" x="810.47" y="-1335.6" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="814.36" y="-1335.6" font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
+<text text-anchor="start" x="888.25" y="-1335.6" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<polygon fill="none" stroke="black" points="717.52,-1298.6 717.52,-1325.4 1014.65,-1325.4 1014.65,-1298.6 717.52,-1298.6"/>
+<text text-anchor="start" x="722.52" y="-1308.8" font-family="Helvetica,sans-Serif" font-size="14.00">provenance_asset_name</text>
+<text text-anchor="start" x="879.74" y="-1308.8" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="883.63" y="-1308.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR]</text>
+<polygon fill="none" stroke="black" points="717.52,-1271.8 717.52,-1298.6 1014.65,-1298.6 1014.65,-1271.8 717.52,-1271.8"/>
+<text text-anchor="start" x="722.52" y="-1282" font-family="Helvetica,sans-Serif" font-size="14.00">provenance_asset_url</text>
+<text text-anchor="start" x="860.27" y="-1282" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="864.16" y="-1282" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR]</text>
+<polygon fill="none" stroke="black" points="717.52,-1245 717.52,-1271.8 1014.65,-1271.8 1014.65,-1245 717.52,-1245"/>
+<text text-anchor="start" x="722.52" y="-1255.2" font-family="Helvetica,sans-Serif" font-size="14.00">provenance_payload</text>
+<text text-anchor="start" x="852.51" y="-1255.2" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="856.4" y="-1255.2" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR]</text>
+<text text-anchor="start" x="936.52" y="-1255.2" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<polygon fill="none" stroke="black" points="717.52,-1218.2 717.52,-1245 1014.65,-1245 1014.65,-1218.2 717.52,-1218.2"/>
+<text text-anchor="start" x="722.52" y="-1228.4" font-family="Helvetica,sans-Serif" font-size="14.00">release_commit_sha</text>
+<text text-anchor="start" x="851.69" y="-1228.4" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="855.58" y="-1228.4" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR]</text>
+<polygon fill="none" stroke="black" points="717.52,-1191.4 717.52,-1218.2 1014.65,-1218.2 1014.65,-1191.4 717.52,-1191.4"/>
+<text text-anchor="start" x="722.52" y="-1201.6" font-family="Helvetica,sans-Serif" font-size="14.00">release_tag</text>
+<text text-anchor="start" x="795.68" y="-1201.6" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="799.57" y="-1201.6" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR]</text>
+<polygon fill="none" stroke="black" points="717.52,-1164.6 717.52,-1191.4 1014.65,-1191.4 1014.65,-1164.6 717.52,-1164.6"/>
+<text text-anchor="start" x="722.52" y="-1174.8" font-family="Helvetica,sans-Serif" font-size="14.00">repository_url</text>
+<text text-anchor="start" x="807.33" y="-1174.8" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="811.22" y="-1174.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR]</text>
+<polygon fill="none" stroke="black" points="717.52,-1137.8 717.52,-1164.6 1014.65,-1164.6 1014.65,-1137.8 717.52,-1137.8"/>
+<text text-anchor="start" x="722.52" y="-1148" font-family="Helvetica,sans-Serif" font-size="14.00">slsa_level</text>
+<text text-anchor="start" x="783.99" y="-1148" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="787.88" y="-1148" font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
+<text text-anchor="start" x="861.78" y="-1148" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<polygon fill="none" stroke="black" points="717.52,-1111 717.52,-1137.8 1014.65,-1137.8 1014.65,-1111 717.52,-1111"/>
+<text text-anchor="start" x="722.52" y="-1121.2" font-family="Helvetica,sans-Serif" font-size="14.00">slsa_version</text>
+<text text-anchor="start" x="800.33" y="-1121.2" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="804.22" y="-1121.2" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR]</text>
+<polygon fill="none" stroke="black" points="717.52,-1084.2 717.52,-1111 1014.65,-1111 1014.65,-1084.2 717.52,-1084.2"/>
+<text text-anchor="start" x="722.52" y="-1094.4" font-family="Helvetica,sans-Serif" font-size="14.00">verified</text>
+<text text-anchor="start" x="767.65" y="-1094.4" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="771.54" y="-1094.4" font-family="Helvetica,sans-Serif" font-size="14.00"> [BOOLEAN]</text>
+<text text-anchor="start" x="850.9" y="-1094.4" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
 </g>
 <!-- _component&#45;&#45;_provenance -->
 <g id="edge22" class="edge">
 <title>_component&#45;&#45;_provenance</title>
-<path fill="none" stroke="#7f7f7f" stroke-dasharray="5,2" d="M639.09,-1089.72C670.92,-1098.55 705.36,-1108.1 738.49,-1117.29"/>
-<text text-anchor="start" x="707.49" y="-1106.09" font-family="Times,serif" font-size="14.00">0..N</text>
-<text text-anchor="start" x="639.09" y="-1078.52" font-family="Times,serif" font-size="14.00">1</text>
+<path fill="none" stroke="#7f7f7f" stroke-dasharray="5,2" d="M614.34,-1174.04C644.84,-1184.45 677.86,-1195.72 709.62,-1206.55"/>
+<text text-anchor="start" x="685.51" y="-1193.95" font-family="Times,serif" font-size="14.00">0..N</text>
+<text text-anchor="start" x="614.34" y="-1161.44" font-family="Times,serif" font-size="14.00">1</text>
 </g>
 <!-- _provenance_subject -->
 <g id="node23" class="node">
 <title>_provenance_subject</title>
-<polygon fill="none" stroke="black" points="772.5,-968.5 772.5,-996.5 1033.5,-996.5 1033.5,-968.5 772.5,-968.5"/>
-<text text-anchor="start" x="809.5" y="-979.7" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="16.00">_provenance_subject</text>
-<polygon fill="none" stroke="black" points="772.5,-943.5 772.5,-968.5 1033.5,-968.5 1033.5,-943.5 772.5,-943.5"/>
-<text text-anchor="start" x="777.5" y="-953.3" font-family="Helvetica,sans-Serif" text-decoration="underline" font-size="14.00">id</text>
-<text text-anchor="start" x="790.5" y="-953.3" font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
-<text text-anchor="start" x="867.5" y="-953.3" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
-<polygon fill="none" stroke="black" points="772.5,-918.5 772.5,-943.5 1033.5,-943.5 1033.5,-918.5 772.5,-918.5"/>
-<text text-anchor="start" x="777.5" y="-928.3" font-family="Helvetica,sans-Serif" font-size="14.00">component_id</text>
-<text text-anchor="start" x="875.5" y="-928.3" font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
-<text text-anchor="start" x="952.5" y="-928.3" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
-<polygon fill="none" stroke="black" points="772.5,-893.5 772.5,-918.5 1033.5,-918.5 1033.5,-893.5 772.5,-893.5"/>
-<text text-anchor="start" x="777.5" y="-903.3" font-family="Helvetica,sans-Serif" font-size="14.00">sha256</text>
-<text text-anchor="start" x="829.5" y="-903.3" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR]</text>
-<text text-anchor="start" x="912.5" y="-903.3" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<polygon fill="none" stroke="black" points="741.65,-1029.2 741.65,-1058.4 990.51,-1058.4 990.51,-1029.2 741.65,-1029.2"/>
+<text text-anchor="start" x="784.27" y="-1040" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="16.00">_provenance_subject</text>
+<polygon fill="none" stroke="black" points="741.65,-1002.4 741.65,-1029.2 990.51,-1029.2 990.51,-1002.4 741.65,-1002.4"/>
+<text text-anchor="start" x="746.65" y="-1012.6" font-family="Helvetica,sans-Serif" text-decoration="underline" font-size="14.00">id</text>
+<text text-anchor="start" x="757.55" y="-1012.6" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="761.44" y="-1012.6" font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
+<text text-anchor="start" x="835.33" y="-1012.6" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<polygon fill="none" stroke="black" points="741.65,-975.6 741.65,-1002.4 990.51,-1002.4 990.51,-975.6 741.65,-975.6"/>
+<text text-anchor="start" x="746.65" y="-985.8" font-family="Helvetica,sans-Serif" font-size="14.00">component_id</text>
+<text text-anchor="start" x="834.6" y="-985.8" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="838.49" y="-985.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
+<text text-anchor="start" x="912.39" y="-985.8" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<polygon fill="none" stroke="black" points="741.65,-948.8 741.65,-975.6 990.51,-975.6 990.51,-948.8 741.65,-948.8"/>
+<text text-anchor="start" x="746.65" y="-959" font-family="Helvetica,sans-Serif" font-size="14.00">sha256</text>
+<text text-anchor="start" x="792.58" y="-959" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="796.47" y="-959" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR]</text>
+<text text-anchor="start" x="876.59" y="-959" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
 </g>
 <!-- _component&#45;&#45;_provenance_subject -->
 <g id="edge23" class="edge">
 <title>_component&#45;&#45;_provenance_subject</title>
-<path fill="none" stroke="#7f7f7f" stroke-dasharray="5,2" d="M639.09,-1017.61C679.18,-1006.59 723.42,-994.44 763.96,-983.3"/>
-<text text-anchor="start" x="732.96" y="-972.1" font-family="Times,serif" font-size="14.00">0..N</text>
-<text text-anchor="start" x="639.09" y="-1006.41" font-family="Times,serif" font-size="14.00">1</text>
+<path fill="none" stroke="#7f7f7f" stroke-dasharray="5,2" d="M614.34,-1089.16C652.73,-1076.06 695.12,-1061.59 733.95,-1048.34"/>
+<text text-anchor="start" x="709.84" y="-1052.54" font-family="Times,serif" font-size="14.00">0..N</text>
+<text text-anchor="start" x="614.34" y="-1076.56" font-family="Times,serif" font-size="14.00">1</text>
 </g>
 <!-- _repo_finder_metadata -->
 <g id="node24" class="node">
 <title>_repo_finder_metadata</title>
-<polygon fill="none" stroke="black" points="720.5,-840.5 720.5,-868.5 1085.5,-868.5 1085.5,-840.5 720.5,-840.5"/>
-<text text-anchor="start" x="800.5" y="-851.7" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="16.00">_repo_finder_metadata</text>
-<polygon fill="none" stroke="black" points="720.5,-815.5 720.5,-840.5 1085.5,-840.5 1085.5,-815.5 720.5,-815.5"/>
-<text text-anchor="start" x="725.5" y="-825.3" font-family="Helvetica,sans-Serif" text-decoration="underline" font-size="14.00">id</text>
-<text text-anchor="start" x="738.5" y="-825.3" font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
-<text text-anchor="start" x="815.5" y="-825.3" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
-<polygon fill="none" stroke="black" points="720.5,-790.5 720.5,-815.5 1085.5,-815.5 1085.5,-790.5 720.5,-790.5"/>
-<text text-anchor="start" x="725.5" y="-800.3" font-family="Helvetica,sans-Serif" font-size="14.00">commit_finder_outcome</text>
-<text text-anchor="start" x="892.5" y="-800.3" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR(21)]</text>
-<text text-anchor="start" x="1004.5" y="-800.3" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
-<polygon fill="none" stroke="black" points="720.5,-765.5 720.5,-790.5 1085.5,-790.5 1085.5,-765.5 720.5,-765.5"/>
-<text text-anchor="start" x="725.5" y="-775.3" font-family="Helvetica,sans-Serif" font-size="14.00">component_id</text>
-<text text-anchor="start" x="823.5" y="-775.3" font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
-<text text-anchor="start" x="900.5" y="-775.3" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
-<polygon fill="none" stroke="black" points="720.5,-740.5 720.5,-765.5 1085.5,-765.5 1085.5,-740.5 720.5,-740.5"/>
-<text text-anchor="start" x="725.5" y="-750.3" font-family="Helvetica,sans-Serif" font-size="14.00">found_commit</text>
-<text text-anchor="start" x="825.5" y="-750.3" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR]</text>
-<text text-anchor="start" x="908.5" y="-750.3" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
-<polygon fill="none" stroke="black" points="720.5,-715.5 720.5,-740.5 1085.5,-740.5 1085.5,-715.5 720.5,-715.5"/>
-<text text-anchor="start" x="725.5" y="-725.3" font-family="Helvetica,sans-Serif" font-size="14.00">found_url</text>
-<text text-anchor="start" x="792.5" y="-725.3" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR]</text>
-<text text-anchor="start" x="875.5" y="-725.3" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
-<polygon fill="none" stroke="black" points="720.5,-690.5 720.5,-715.5 1085.5,-715.5 1085.5,-690.5 720.5,-690.5"/>
-<text text-anchor="start" x="725.5" y="-700.3" font-family="Helvetica,sans-Serif" font-size="14.00">repo_finder_outcome</text>
-<text text-anchor="start" x="871.5" y="-700.3" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR(24)]</text>
-<text text-anchor="start" x="983.5" y="-700.3" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<polygon fill="none" stroke="black" points="695.36,-893.4 695.36,-922.6 1036.8,-922.6 1036.8,-893.4 695.36,-893.4"/>
+<text text-anchor="start" x="778.05" y="-904.2" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="16.00">_repo_finder_metadata</text>
+<polygon fill="none" stroke="black" points="695.36,-866.6 695.36,-893.4 1036.8,-893.4 1036.8,-866.6 695.36,-866.6"/>
+<text text-anchor="start" x="700.36" y="-876.8" font-family="Helvetica,sans-Serif" text-decoration="underline" font-size="14.00">id</text>
+<text text-anchor="start" x="711.26" y="-876.8" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="715.15" y="-876.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
+<text text-anchor="start" x="789.05" y="-876.8" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<polygon fill="none" stroke="black" points="695.36,-839.8 695.36,-866.6 1036.8,-866.6 1036.8,-839.8 695.36,-839.8"/>
+<text text-anchor="start" x="700.36" y="-850" font-family="Helvetica,sans-Serif" font-size="14.00">commit_finder_outcome</text>
+<text text-anchor="start" x="849.76" y="-850" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="853.65" y="-850" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR(21)]</text>
+<text text-anchor="start" x="958.67" y="-850" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<polygon fill="none" stroke="black" points="695.36,-813 695.36,-839.8 1036.8,-839.8 1036.8,-813 695.36,-813"/>
+<text text-anchor="start" x="700.36" y="-823.2" font-family="Helvetica,sans-Serif" font-size="14.00">component_id</text>
+<text text-anchor="start" x="788.32" y="-823.2" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="792.21" y="-823.2" font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
+<text text-anchor="start" x="866.1" y="-823.2" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<polygon fill="none" stroke="black" points="695.36,-786.2 695.36,-813 1036.8,-813 1036.8,-786.2 695.36,-786.2"/>
+<text text-anchor="start" x="700.36" y="-796.4" font-family="Helvetica,sans-Serif" font-size="14.00">found_commit</text>
+<text text-anchor="start" x="788.29" y="-796.4" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="792.18" y="-796.4" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR]</text>
+<text text-anchor="start" x="872.31" y="-796.4" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<polygon fill="none" stroke="black" points="695.36,-759.4 695.36,-786.2 1036.8,-786.2 1036.8,-759.4 695.36,-759.4"/>
+<text text-anchor="start" x="700.36" y="-769.6" font-family="Helvetica,sans-Serif" font-size="14.00">found_url</text>
+<text text-anchor="start" x="758.74" y="-769.6" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="762.63" y="-769.6" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR]</text>
+<text text-anchor="start" x="842.76" y="-769.6" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<polygon fill="none" stroke="black" points="695.36,-732.6 695.36,-759.4 1036.8,-759.4 1036.8,-732.6 695.36,-732.6"/>
+<text text-anchor="start" x="700.36" y="-742.8" font-family="Helvetica,sans-Serif" font-size="14.00">repo_finder_outcome</text>
+<text text-anchor="start" x="832.67" y="-742.8" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="836.56" y="-742.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR(24)]</text>
+<text text-anchor="start" x="941.58" y="-742.8" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
 </g>
 <!-- _component&#45;&#45;_repo_finder_metadata -->
 <g id="edge24" class="edge">
 <title>_component&#45;&#45;_repo_finder_metadata</title>
-<path fill="none" stroke="#7f7f7f" stroke-dasharray="5,2" d="M639.18,-936.27C662.77,-917.09 687.62,-898.1 712,-881.5 716.32,-878.56 720.74,-875.63 725.23,-872.73"/>
-<text text-anchor="start" x="694.23" y="-876.53" font-family="Times,serif" font-size="14.00">0..N</text>
-<text text-anchor="start" x="639.18" y="-925.07" font-family="Times,serif" font-size="14.00">1</text>
+<path fill="none" stroke="#7f7f7f" stroke-dasharray="5,2" d="M614.36,-999.4C637.74,-977.1 662.64,-954.94 687.36,-935.6 691.35,-932.49 695.42,-929.39 699.57,-926.32"/>
+<text text-anchor="start" x="675.46" y="-930.52" font-family="Times,serif" font-size="14.00">0..N</text>
+<text text-anchor="start" x="614.36" y="-986.8" font-family="Times,serif" font-size="14.00">1</text>
 </g>
 <!-- _repository -->
 <g id="node25" class="node">
 <title>_repository</title>
-<polygon fill="none" stroke="black" points="763.5,-636.5 763.5,-664.5 1042.5,-664.5 1042.5,-636.5 763.5,-636.5"/>
-<text text-anchor="start" x="851.5" y="-647.7" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="16.00">_repository</text>
-<polygon fill="none" stroke="black" points="763.5,-611.5 763.5,-636.5 1042.5,-636.5 1042.5,-611.5 763.5,-611.5"/>
-<text text-anchor="start" x="768.5" y="-621.3" font-family="Helvetica,sans-Serif" text-decoration="underline" font-size="14.00">id</text>
-<text text-anchor="start" x="781.5" y="-621.3" font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
-<text text-anchor="start" x="858.5" y="-621.3" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
-<polygon fill="none" stroke="black" points="763.5,-586.5 763.5,-611.5 1042.5,-611.5 1042.5,-586.5 763.5,-586.5"/>
-<text text-anchor="start" x="768.5" y="-596.3" font-family="Helvetica,sans-Serif" font-size="14.00">branch_name</text>
-<text text-anchor="start" x="863.5" y="-596.3" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR]</text>
-<polygon fill="none" stroke="black" points="763.5,-561.5 763.5,-586.5 1042.5,-586.5 1042.5,-561.5 763.5,-561.5"/>
-<text text-anchor="start" x="768.5" y="-571.3" font-family="Helvetica,sans-Serif" font-size="14.00">commit_date</text>
-<text text-anchor="start" x="858.5" y="-571.3" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR]</text>
-<text text-anchor="start" x="941.5" y="-571.3" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
-<polygon fill="none" stroke="black" points="763.5,-536.5 763.5,-561.5 1042.5,-561.5 1042.5,-536.5 763.5,-536.5"/>
-<text text-anchor="start" x="768.5" y="-546.3" font-family="Helvetica,sans-Serif" font-size="14.00">commit_sha</text>
-<text text-anchor="start" x="852.5" y="-546.3" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR]</text>
-<text text-anchor="start" x="935.5" y="-546.3" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
-<polygon fill="none" stroke="black" points="763.5,-511.5 763.5,-536.5 1042.5,-536.5 1042.5,-511.5 763.5,-511.5"/>
-<text text-anchor="start" x="768.5" y="-521.3" font-family="Helvetica,sans-Serif" font-size="14.00">complete_name</text>
-<text text-anchor="start" x="878.5" y="-521.3" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR]</text>
-<text text-anchor="start" x="961.5" y="-521.3" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
-<polygon fill="none" stroke="black" points="763.5,-486.5 763.5,-511.5 1042.5,-511.5 1042.5,-486.5 763.5,-486.5"/>
-<text text-anchor="start" x="768.5" y="-496.3" font-family="Helvetica,sans-Serif" font-size="14.00">component_id</text>
-<text text-anchor="start" x="866.5" y="-496.3" font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
-<text text-anchor="start" x="943.5" y="-496.3" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
-<polygon fill="none" stroke="black" points="763.5,-461.5 763.5,-486.5 1042.5,-486.5 1042.5,-461.5 763.5,-461.5"/>
-<text text-anchor="start" x="768.5" y="-471.3" font-family="Helvetica,sans-Serif" font-size="14.00">fs_path</text>
-<text text-anchor="start" x="820.5" y="-471.3" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR]</text>
-<text text-anchor="start" x="903.5" y="-471.3" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
-<polygon fill="none" stroke="black" points="763.5,-436.5 763.5,-461.5 1042.5,-461.5 1042.5,-436.5 763.5,-436.5"/>
-<text text-anchor="start" x="768.5" y="-446.3" font-family="Helvetica,sans-Serif" font-size="14.00">full_name</text>
-<text text-anchor="start" x="836.5" y="-446.3" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR]</text>
-<text text-anchor="start" x="919.5" y="-446.3" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
-<polygon fill="none" stroke="black" points="763.5,-411.5 763.5,-436.5 1042.5,-436.5 1042.5,-411.5 763.5,-411.5"/>
-<text text-anchor="start" x="768.5" y="-421.3" font-family="Helvetica,sans-Serif" font-size="14.00">name</text>
-<text text-anchor="start" x="808.5" y="-421.3" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR]</text>
-<text text-anchor="start" x="891.5" y="-421.3" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
-<polygon fill="none" stroke="black" points="763.5,-386.5 763.5,-411.5 1042.5,-411.5 1042.5,-386.5 763.5,-386.5"/>
-<text text-anchor="start" x="768.5" y="-396.3" font-family="Helvetica,sans-Serif" font-size="14.00">owner</text>
-<text text-anchor="start" x="811.5" y="-396.3" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR]</text>
-<polygon fill="none" stroke="black" points="763.5,-361.5 763.5,-386.5 1042.5,-386.5 1042.5,-361.5 763.5,-361.5"/>
-<text text-anchor="start" x="768.5" y="-371.3" font-family="Helvetica,sans-Serif" font-size="14.00">release_tag</text>
-<text text-anchor="start" x="847.5" y="-371.3" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR]</text>
-<polygon fill="none" stroke="black" points="763.5,-336.5 763.5,-361.5 1042.5,-361.5 1042.5,-336.5 763.5,-336.5"/>
-<text text-anchor="start" x="768.5" y="-346.3" font-family="Helvetica,sans-Serif" font-size="14.00">remote_path</text>
-<text text-anchor="start" x="856.5" y="-346.3" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR]</text>
-<text text-anchor="start" x="939.5" y="-346.3" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
-<polygon fill="none" stroke="black" points="763.5,-311.5 763.5,-336.5 1042.5,-336.5 1042.5,-311.5 763.5,-311.5"/>
-<text text-anchor="start" x="768.5" y="-321.3" font-family="Helvetica,sans-Serif" font-size="14.00">type</text>
-<text text-anchor="start" x="799.5" y="-321.3" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR]</text>
-<text text-anchor="start" x="882.5" y="-321.3" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<polygon fill="none" stroke="black" points="732.71,-677.2 732.71,-706.4 999.46,-706.4 999.46,-677.2 732.71,-677.2"/>
+<text text-anchor="start" x="822.51" y="-688" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="16.00">_repository</text>
+<polygon fill="none" stroke="black" points="732.71,-650.4 732.71,-677.2 999.46,-677.2 999.46,-650.4 732.71,-650.4"/>
+<text text-anchor="start" x="737.71" y="-660.6" font-family="Helvetica,sans-Serif" text-decoration="underline" font-size="14.00">id</text>
+<text text-anchor="start" x="748.6" y="-660.6" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="752.49" y="-660.6" font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
+<text text-anchor="start" x="826.39" y="-660.6" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<polygon fill="none" stroke="black" points="732.71,-623.6 732.71,-650.4 999.46,-650.4 999.46,-623.6 732.71,-623.6"/>
+<text text-anchor="start" x="737.71" y="-633.8" font-family="Helvetica,sans-Serif" font-size="14.00">branch_name</text>
+<text text-anchor="start" x="823.32" y="-633.8" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="827.21" y="-633.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR]</text>
+<polygon fill="none" stroke="black" points="732.71,-596.8 732.71,-623.6 999.46,-623.6 999.46,-596.8 732.71,-596.8"/>
+<text text-anchor="start" x="737.71" y="-607" font-family="Helvetica,sans-Serif" font-size="14.00">commit_date</text>
+<text text-anchor="start" x="817.85" y="-607" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="821.74" y="-607" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR]</text>
+<text text-anchor="start" x="901.86" y="-607" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<polygon fill="none" stroke="black" points="732.71,-570 732.71,-596.8 999.46,-596.8 999.46,-570 732.71,-570"/>
+<text text-anchor="start" x="737.71" y="-580.2" font-family="Helvetica,sans-Serif" font-size="14.00">commit_sha</text>
+<text text-anchor="start" x="813.17" y="-580.2" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="817.06" y="-580.2" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR]</text>
+<text text-anchor="start" x="897.19" y="-580.2" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<polygon fill="none" stroke="black" points="732.71,-543.2 732.71,-570 999.46,-570 999.46,-543.2 732.71,-543.2"/>
+<text text-anchor="start" x="737.71" y="-553.4" font-family="Helvetica,sans-Serif" font-size="14.00">complete_name</text>
+<text text-anchor="start" x="837.32" y="-553.4" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="841.21" y="-553.4" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR]</text>
+<text text-anchor="start" x="921.33" y="-553.4" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<polygon fill="none" stroke="black" points="732.71,-516.4 732.71,-543.2 999.46,-543.2 999.46,-516.4 732.71,-516.4"/>
+<text text-anchor="start" x="737.71" y="-526.6" font-family="Helvetica,sans-Serif" font-size="14.00">component_id</text>
+<text text-anchor="start" x="825.66" y="-526.6" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="829.55" y="-526.6" font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
+<text text-anchor="start" x="903.44" y="-526.6" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<polygon fill="none" stroke="black" points="732.71,-489.6 732.71,-516.4 999.46,-516.4 999.46,-489.6 732.71,-489.6"/>
+<text text-anchor="start" x="737.71" y="-499.8" font-family="Helvetica,sans-Serif" font-size="14.00">fs_path</text>
+<text text-anchor="start" x="783.63" y="-499.8" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="787.52" y="-499.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR]</text>
+<text text-anchor="start" x="867.64" y="-499.8" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<polygon fill="none" stroke="black" points="732.71,-462.8 732.71,-489.6 999.46,-489.6 999.46,-462.8 732.71,-462.8"/>
+<text text-anchor="start" x="737.71" y="-473" font-family="Helvetica,sans-Serif" font-size="14.00">full_name</text>
+<text text-anchor="start" x="798.41" y="-473" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="802.3" y="-473" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR]</text>
+<text text-anchor="start" x="882.42" y="-473" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<polygon fill="none" stroke="black" points="732.71,-436 732.71,-462.8 999.46,-462.8 999.46,-436 732.71,-436"/>
+<text text-anchor="start" x="737.71" y="-446.2" font-family="Helvetica,sans-Serif" font-size="14.00">name</text>
+<text text-anchor="start" x="772.73" y="-446.2" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="776.62" y="-446.2" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR]</text>
+<text text-anchor="start" x="856.74" y="-446.2" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<polygon fill="none" stroke="black" points="732.71,-409.2 732.71,-436 999.46,-436 999.46,-409.2 732.71,-409.2"/>
+<text text-anchor="start" x="737.71" y="-419.4" font-family="Helvetica,sans-Serif" font-size="14.00">owner</text>
+<text text-anchor="start" x="775.84" y="-419.4" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="779.73" y="-419.4" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR]</text>
+<polygon fill="none" stroke="black" points="732.71,-382.4 732.71,-409.2 999.46,-409.2 999.46,-382.4 732.71,-382.4"/>
+<text text-anchor="start" x="737.71" y="-392.6" font-family="Helvetica,sans-Serif" font-size="14.00">release_tag</text>
+<text text-anchor="start" x="810.87" y="-392.6" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="814.76" y="-392.6" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR]</text>
+<polygon fill="none" stroke="black" points="732.71,-355.6 732.71,-382.4 999.46,-382.4 999.46,-355.6 732.71,-355.6"/>
+<text text-anchor="start" x="737.71" y="-365.8" font-family="Helvetica,sans-Serif" font-size="14.00">remote_path</text>
+<text text-anchor="start" x="816.31" y="-365.8" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="820.2" y="-365.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR]</text>
+<text text-anchor="start" x="900.33" y="-365.8" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<polygon fill="none" stroke="black" points="732.71,-328.8 732.71,-355.6 999.46,-355.6 999.46,-328.8 732.71,-328.8"/>
+<text text-anchor="start" x="737.71" y="-339" font-family="Helvetica,sans-Serif" font-size="14.00">type</text>
+<text text-anchor="start" x="764.17" y="-339" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="768.06" y="-339" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR]</text>
+<text text-anchor="start" x="848.18" y="-339" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
 </g>
 <!-- _component&#45;&#45;_repository -->
 <g id="edge25" class="edge">
 <title>_component&#45;&#45;_repository</title>
-<path fill="none" stroke="#7f7f7f" stroke-dasharray="5,2" d="M567.62,-922.59C604.28,-847.63 655.15,-753.63 712,-677.5 725.07,-660 739.72,-642.56 754.94,-625.74"/>
-<text text-anchor="start" x="723.94" y="-614.54" font-family="Times,serif" font-size="14.00">0..N</text>
-<text text-anchor="start" x="557.62" y="-911.39" font-family="Times,serif" font-size="14.00">1</text>
+<path fill="none" stroke="#7f7f7f" stroke-dasharray="5,2" d="M545.22,-992.46C580.67,-910.11 630.61,-805.44 687.36,-719.6 698.76,-702.36 711.53,-685.04 724.86,-668.19"/>
+<text text-anchor="start" x="700.75" y="-655.59" font-family="Times,serif" font-size="14.00">0..N</text>
+<text text-anchor="start" x="538.22" y="-979.86" font-family="Times,serif" font-size="14.00">1</text>
 </g>
 <!-- _slsa_level -->
 <g id="node26" class="node">
 <title>_slsa_level</title>
-<polygon fill="none" stroke="black" points="772.5,-257.5 772.5,-285.5 1033.5,-285.5 1033.5,-257.5 772.5,-257.5"/>
-<text text-anchor="start" x="856" y="-268.7" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="16.00">_slsa_level</text>
-<polygon fill="none" stroke="black" points="772.5,-232.5 772.5,-257.5 1033.5,-257.5 1033.5,-232.5 772.5,-232.5"/>
-<text text-anchor="start" x="777.5" y="-242.3" font-family="Helvetica,sans-Serif" text-decoration="underline" font-size="14.00">component_id</text>
-<text text-anchor="start" x="875.5" y="-242.3" font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
-<text text-anchor="start" x="952.5" y="-242.3" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
-<polygon fill="none" stroke="black" points="772.5,-207.5 772.5,-232.5 1033.5,-232.5 1033.5,-207.5 772.5,-207.5"/>
-<text text-anchor="start" x="777.5" y="-217.3" font-family="Helvetica,sans-Serif" font-size="14.00">reached</text>
-<text text-anchor="start" x="833.5" y="-217.3" font-family="Helvetica,sans-Serif" font-size="14.00"> [BOOLEAN]</text>
-<text text-anchor="start" x="917.5" y="-217.3" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
-<polygon fill="none" stroke="black" points="772.5,-182.5 772.5,-207.5 1033.5,-207.5 1033.5,-182.5 772.5,-182.5"/>
-<text text-anchor="start" x="777.5" y="-192.3" font-family="Helvetica,sans-Serif" font-size="14.00">slsa_level</text>
-<text text-anchor="start" x="844.5" y="-192.3" font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
-<text text-anchor="start" x="921.5" y="-192.3" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<polygon fill="none" stroke="black" points="741.65,-273.2 741.65,-302.4 990.51,-302.4 990.51,-273.2 741.65,-273.2"/>
+<text text-anchor="start" x="823.82" y="-284" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="16.00">_slsa_level</text>
+<polygon fill="none" stroke="black" points="741.65,-246.4 741.65,-273.2 990.51,-273.2 990.51,-246.4 741.65,-246.4"/>
+<text text-anchor="start" x="746.65" y="-256.6" font-family="Helvetica,sans-Serif" text-decoration="underline" font-size="14.00">component_id</text>
+<text text-anchor="start" x="834.6" y="-256.6" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="838.49" y="-256.6" font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
+<text text-anchor="start" x="912.39" y="-256.6" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<polygon fill="none" stroke="black" points="741.65,-219.6 741.65,-246.4 990.51,-246.4 990.51,-219.6 741.65,-219.6"/>
+<text text-anchor="start" x="746.65" y="-229.8" font-family="Helvetica,sans-Serif" font-size="14.00">reached</text>
+<text text-anchor="start" x="797.24" y="-229.8" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="801.13" y="-229.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [BOOLEAN]</text>
+<text text-anchor="start" x="880.49" y="-229.8" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<polygon fill="none" stroke="black" points="741.65,-192.8 741.65,-219.6 990.51,-219.6 990.51,-192.8 741.65,-192.8"/>
+<text text-anchor="start" x="746.65" y="-203" font-family="Helvetica,sans-Serif" font-size="14.00">slsa_level</text>
+<text text-anchor="start" x="808.13" y="-203" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="812.02" y="-203" font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
+<text text-anchor="start" x="885.91" y="-203" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
 </g>
 <!-- _component&#45;&#45;_slsa_level -->
 <g id="edge26" class="edge">
 <title>_component&#45;&#45;_slsa_level</title>
-<path fill="none" stroke="#7f7f7f" stroke-dasharray="5,2" d="M528.69,-922.72C560.6,-731.75 627.83,-389.49 712,-299.5 726.37,-284.13 744.54,-272.4 763.9,-263.44"/>
-<text text-anchor="start" x="753.9" y="-252.24" font-family="Times,serif" font-size="14.00">1</text>
-<text text-anchor="start" x="518.69" y="-911.52" font-family="Times,serif" font-size="14.00">1</text>
+<path fill="none" stroke="#7f7f7f" stroke-dasharray="5,2" d="M507.76,-992.71C536.68,-787.14 599.59,-415.4 687.36,-315.6 700.13,-301.09 716.34,-289.66 733.75,-280.66"/>
+<text text-anchor="start" x="726.75" y="-284.86" font-family="Times,serif" font-size="14.00">1</text>
+<text text-anchor="start" x="500.76" y="-980.11" font-family="Times,serif" font-size="14.00">1</text>
 </g>
 <!-- _slsa_requirement -->
 <g id="node27" class="node">
 <title>_slsa_requirement</title>
-<polygon fill="none" stroke="black" points="738.5,-128.5 738.5,-156.5 1067.5,-156.5 1067.5,-128.5 738.5,-128.5"/>
-<text text-anchor="start" x="821.5" y="-139.7" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="16.00">_slsa_requirement</text>
-<polygon fill="none" stroke="black" points="738.5,-103.5 738.5,-128.5 1067.5,-128.5 1067.5,-103.5 738.5,-103.5"/>
-<text text-anchor="start" x="743.5" y="-113.3" font-family="Helvetica,sans-Serif" text-decoration="underline" font-size="14.00">id</text>
-<text text-anchor="start" x="756.5" y="-113.3" font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
-<text text-anchor="start" x="833.5" y="-113.3" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
-<polygon fill="none" stroke="black" points="738.5,-78.5 738.5,-103.5 1067.5,-103.5 1067.5,-78.5 738.5,-78.5"/>
-<text text-anchor="start" x="743.5" y="-88.3" font-family="Helvetica,sans-Serif" font-size="14.00">component_id</text>
-<text text-anchor="start" x="841.5" y="-88.3" font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
-<text text-anchor="start" x="918.5" y="-88.3" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
-<polygon fill="none" stroke="black" points="738.5,-53.5 738.5,-78.5 1067.5,-78.5 1067.5,-53.5 738.5,-53.5"/>
-<text text-anchor="start" x="743.5" y="-63.3" font-family="Helvetica,sans-Serif" font-size="14.00">feedback</text>
-<text text-anchor="start" x="807.5" y="-63.3" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR]</text>
-<polygon fill="none" stroke="black" points="738.5,-28.5 738.5,-53.5 1067.5,-53.5 1067.5,-28.5 738.5,-28.5"/>
-<text text-anchor="start" x="743.5" y="-38.3" font-family="Helvetica,sans-Serif" font-size="14.00">requirement_name</text>
-<text text-anchor="start" x="874.5" y="-38.3" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR(27)]</text>
-<text text-anchor="start" x="986.5" y="-38.3" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
-<polygon fill="none" stroke="black" points="738.5,-3.5 738.5,-28.5 1067.5,-28.5 1067.5,-3.5 738.5,-3.5"/>
-<text text-anchor="start" x="743.5" y="-13.3" font-family="Helvetica,sans-Serif" font-size="14.00">requirement_short_description</text>
-<text text-anchor="start" x="955.5" y="-13.3" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR]</text>
+<polygon fill="none" stroke="black" points="711.31,-138 711.31,-167.2 1020.85,-167.2 1020.85,-138 711.31,-138"/>
+<text text-anchor="start" x="795.38" y="-148.8" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="16.00">_slsa_requirement</text>
+<polygon fill="none" stroke="black" points="711.31,-111.2 711.31,-138 1020.85,-138 1020.85,-111.2 711.31,-111.2"/>
+<text text-anchor="start" x="716.31" y="-121.4" font-family="Helvetica,sans-Serif" text-decoration="underline" font-size="14.00">id</text>
+<text text-anchor="start" x="727.21" y="-121.4" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="731.1" y="-121.4" font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
+<text text-anchor="start" x="804.99" y="-121.4" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<polygon fill="none" stroke="black" points="711.31,-84.4 711.31,-111.2 1020.85,-111.2 1020.85,-84.4 711.31,-84.4"/>
+<text text-anchor="start" x="716.31" y="-94.6" font-family="Helvetica,sans-Serif" font-size="14.00">component_id</text>
+<text text-anchor="start" x="804.26" y="-94.6" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="808.15" y="-94.6" font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
+<text text-anchor="start" x="882.05" y="-94.6" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<polygon fill="none" stroke="black" points="711.31,-57.6 711.31,-84.4 1020.85,-84.4 1020.85,-57.6 711.31,-57.6"/>
+<text text-anchor="start" x="716.31" y="-67.8" font-family="Helvetica,sans-Serif" font-size="14.00">feedback</text>
+<text text-anchor="start" x="773.13" y="-67.8" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="777.02" y="-67.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR]</text>
+<polygon fill="none" stroke="black" points="711.31,-30.8 711.31,-57.6 1020.85,-57.6 1020.85,-30.8 711.31,-30.8"/>
+<text text-anchor="start" x="716.31" y="-41" font-family="Helvetica,sans-Serif" font-size="14.00">requirement_name</text>
+<text text-anchor="start" x="833.82" y="-41" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="837.71" y="-41" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR(27)]</text>
+<text text-anchor="start" x="942.73" y="-41" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<polygon fill="none" stroke="black" points="711.31,-4 711.31,-30.8 1020.85,-30.8 1020.85,-4 711.31,-4"/>
+<text text-anchor="start" x="716.31" y="-14.2" font-family="Helvetica,sans-Serif" font-size="14.00">requirement_short_description</text>
+<text text-anchor="start" x="905.41" y="-14.2" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="909.3" y="-14.2" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR]</text>
 </g>
 <!-- _component&#45;&#45;_slsa_requirement -->
 <g id="edge27" class="edge">
 <title>_component&#45;&#45;_slsa_requirement</title>
-<path fill="none" stroke="#7f7f7f" stroke-dasharray="5,2" d="M524.51,-922.8C553.3,-706.26 619.55,-285.54 712,-170.5 717.36,-163.83 723.34,-157.62 729.76,-151.86"/>
-<text text-anchor="start" x="698.76" y="-140.66" font-family="Times,serif" font-size="14.00">0..N</text>
-<text text-anchor="start" x="524.51" y="-911.6" font-family="Times,serif" font-size="14.00">1</text>
+<path fill="none" stroke="#7f7f7f" stroke-dasharray="5,2" d="M504.16,-992.62C530.26,-760.41 592.05,-306.45 687.36,-179.6 692.19,-173.18 697.58,-167.16 703.39,-161.51"/>
+<text text-anchor="start" x="679.28" y="-148.91" font-family="Times,serif" font-size="14.00">0..N</text>
+<text text-anchor="start" x="497.16" y="-980.02" font-family="Times,serif" font-size="14.00">1</text>
 </g>
 <!-- _artifact_pipeline_check -->
 <g id="node3" class="node">
 <title>_artifact_pipeline_check</title>
-<polygon fill="none" stroke="black" points="1532,-3423.5 1532,-3451.5 1880,-3451.5 1880,-3423.5 1532,-3423.5"/>
-<text text-anchor="start" x="1599" y="-3434.7" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="16.00">_artifact_pipeline_check</text>
-<polygon fill="none" stroke="black" points="1532,-3398.5 1532,-3423.5 1880,-3423.5 1880,-3398.5 1532,-3398.5"/>
-<text text-anchor="start" x="1537" y="-3408.3" font-family="Helvetica,sans-Serif" text-decoration="underline" font-size="14.00">id</text>
-<text text-anchor="start" x="1550" y="-3408.3" font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
-<text text-anchor="start" x="1627" y="-3408.3" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
-<polygon fill="none" stroke="black" points="1532,-3373.5 1532,-3398.5 1880,-3398.5 1880,-3373.5 1532,-3373.5"/>
-<text text-anchor="start" x="1537" y="-3383.3" font-family="Helvetica,sans-Serif" font-size="14.00">deploy_job</text>
-<text text-anchor="start" x="1612" y="-3383.3" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR]</text>
-<polygon fill="none" stroke="black" points="1532,-3348.5 1532,-3373.5 1880,-3373.5 1880,-3348.5 1532,-3348.5"/>
-<text text-anchor="start" x="1537" y="-3358.3" font-family="Helvetica,sans-Serif" font-size="14.00">deploy_step</text>
-<text text-anchor="start" x="1621" y="-3358.3" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR]</text>
-<polygon fill="none" stroke="black" points="1532,-3323.5 1532,-3348.5 1880,-3348.5 1880,-3323.5 1532,-3323.5"/>
-<text text-anchor="start" x="1537" y="-3333.3" font-family="Helvetica,sans-Serif" font-size="14.00">deploy_workflow</text>
-<text text-anchor="start" x="1653" y="-3333.3" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR]</text>
-<polygon fill="none" stroke="black" points="1532,-3298.5 1532,-3323.5 1880,-3323.5 1880,-3298.5 1532,-3298.5"/>
-<text text-anchor="start" x="1537" y="-3308.3" font-family="Helvetica,sans-Serif" font-size="14.00">from_provenance</text>
-<text text-anchor="start" x="1658" y="-3308.3" font-family="Helvetica,sans-Serif" font-size="14.00"> [BOOLEAN]</text>
-<text text-anchor="start" x="1742" y="-3308.3" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
-<polygon fill="none" stroke="black" points="1532,-3273.5 1532,-3298.5 1880,-3298.5 1880,-3273.5 1532,-3273.5"/>
-<text text-anchor="start" x="1537" y="-3283.3" font-family="Helvetica,sans-Serif" font-size="14.00">published_before_commit</text>
-<text text-anchor="start" x="1715" y="-3283.3" font-family="Helvetica,sans-Serif" font-size="14.00"> [BOOLEAN]</text>
-<text text-anchor="start" x="1799" y="-3283.3" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
-<polygon fill="none" stroke="black" points="1532,-3248.5 1532,-3273.5 1880,-3273.5 1880,-3248.5 1532,-3248.5"/>
-<text text-anchor="start" x="1537" y="-3258.3" font-family="Helvetica,sans-Serif" font-size="14.00">run_deleted</text>
-<text text-anchor="start" x="1620" y="-3258.3" font-family="Helvetica,sans-Serif" font-size="14.00"> [BOOLEAN]</text>
-<text text-anchor="start" x="1704" y="-3258.3" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
-<polygon fill="none" stroke="black" points="1532,-3223.5 1532,-3248.5 1880,-3248.5 1880,-3223.5 1532,-3223.5"/>
-<text text-anchor="start" x="1537" y="-3233.3" font-family="Helvetica,sans-Serif" font-size="14.00">run_url</text>
-<text text-anchor="start" x="1587" y="-3233.3" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR]</text>
+<polygon fill="none" stroke="black" points="1472.98,-3679.2 1472.98,-3708.4 1799.67,-3708.4 1799.67,-3679.2 1472.98,-3679.2"/>
+<text text-anchor="start" x="1543.39" y="-3690" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="16.00">_artifact_pipeline_check</text>
+<polygon fill="none" stroke="black" points="1472.98,-3652.4 1472.98,-3679.2 1799.67,-3679.2 1799.67,-3652.4 1472.98,-3652.4"/>
+<text text-anchor="start" x="1477.98" y="-3662.6" font-family="Helvetica,sans-Serif" text-decoration="underline" font-size="14.00">id</text>
+<text text-anchor="start" x="1488.88" y="-3662.6" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="1492.77" y="-3662.6" font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
+<text text-anchor="start" x="1566.67" y="-3662.6" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<polygon fill="none" stroke="black" points="1472.98,-3625.6 1472.98,-3652.4 1799.67,-3652.4 1799.67,-3625.6 1472.98,-3625.6"/>
+<text text-anchor="start" x="1477.98" y="-3635.8" font-family="Helvetica,sans-Serif" font-size="14.00">deploy_job</text>
+<text text-anchor="start" x="1545.71" y="-3635.8" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="1549.6" y="-3635.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR]</text>
+<polygon fill="none" stroke="black" points="1472.98,-3598.8 1472.98,-3625.6 1799.67,-3625.6 1799.67,-3598.8 1472.98,-3598.8"/>
+<text text-anchor="start" x="1477.98" y="-3609" font-family="Helvetica,sans-Serif" font-size="14.00">deploy_step</text>
+<text text-anchor="start" x="1553.49" y="-3609" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="1557.38" y="-3609" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR]</text>
+<polygon fill="none" stroke="black" points="1472.98,-3572 1472.98,-3598.8 1799.67,-3598.8 1799.67,-3572 1472.98,-3572"/>
+<text text-anchor="start" x="1477.98" y="-3582.2" font-family="Helvetica,sans-Serif" font-size="14.00">deploy_workflow</text>
+<text text-anchor="start" x="1581.48" y="-3582.2" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="1585.37" y="-3582.2" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR]</text>
+<polygon fill="none" stroke="black" points="1472.98,-3545.2 1472.98,-3572 1799.67,-3572 1799.67,-3545.2 1472.98,-3545.2"/>
+<text text-anchor="start" x="1477.98" y="-3555.4" font-family="Helvetica,sans-Serif" font-size="14.00">from_provenance</text>
+<text text-anchor="start" x="1586.93" y="-3555.4" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="1590.82" y="-3555.4" font-family="Helvetica,sans-Serif" font-size="14.00"> [BOOLEAN]</text>
+<text text-anchor="start" x="1670.18" y="-3555.4" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<polygon fill="none" stroke="black" points="1472.98,-3518.4 1472.98,-3545.2 1799.67,-3545.2 1799.67,-3518.4 1472.98,-3518.4"/>
+<text text-anchor="start" x="1477.98" y="-3528.6" font-family="Helvetica,sans-Serif" font-size="14.00">published_before_commit</text>
+<text text-anchor="start" x="1638.3" y="-3528.6" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="1642.19" y="-3528.6" font-family="Helvetica,sans-Serif" font-size="14.00"> [BOOLEAN]</text>
+<text text-anchor="start" x="1721.55" y="-3528.6" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<polygon fill="none" stroke="black" points="1472.98,-3491.6 1472.98,-3518.4 1799.67,-3518.4 1799.67,-3491.6 1472.98,-3491.6"/>
+<text text-anchor="start" x="1477.98" y="-3501.8" font-family="Helvetica,sans-Serif" font-size="14.00">run_deleted</text>
+<text text-anchor="start" x="1551.93" y="-3501.8" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="1555.82" y="-3501.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [BOOLEAN]</text>
+<text text-anchor="start" x="1635.18" y="-3501.8" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<polygon fill="none" stroke="black" points="1472.98,-3464.8 1472.98,-3491.6 1799.67,-3491.6 1799.67,-3464.8 1472.98,-3464.8"/>
+<text text-anchor="start" x="1477.98" y="-3475" font-family="Helvetica,sans-Serif" font-size="14.00">run_url</text>
+<text text-anchor="start" x="1521.56" y="-3475" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="1525.45" y="-3475" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR]</text>
 </g>
 <!-- _check_facts&#45;&#45;_artifact_pipeline_check -->
 <g id="edge2" class="edge">
 <title>_check_facts&#45;&#45;_artifact_pipeline_check</title>
-<path fill="none" stroke="#7f7f7f" stroke-dasharray="5,2" d="M1311.74,-1672.45C1321.06,-1962.56 1364.06,-2946.88 1524,-3210.5 1525.79,-3213.45 1527.68,-3216.36 1529.66,-3219.21"/>
-<text text-anchor="start" x="1519.66" y="-3208.01" font-family="Times,serif" font-size="14.00">1</text>
-<text text-anchor="start" x="1301.74" y="-1676.25" font-family="Times,serif" font-size="14.00">1</text>
+<path fill="none" stroke="#7f7f7f" stroke-dasharray="5,2" d="M1257.85,-1824.16C1266.14,-2130.21 1305.67,-3167.49 1464.98,-3451.6 1466.74,-3454.73 1468.59,-3457.81 1470.55,-3460.84"/>
+<text text-anchor="start" x="1463.55" y="-3448.24" font-family="Times,serif" font-size="14.00">1</text>
+<text text-anchor="start" x="1250.85" y="-1828.36" font-family="Times,serif" font-size="14.00">1</text>
 </g>
 <!-- _build_as_code_check -->
 <g id="node5" class="node">
 <title>_build_as_code_check</title>
-<polygon fill="none" stroke="black" points="1565,-3168.5 1565,-3196.5 1848,-3196.5 1848,-3168.5 1565,-3168.5"/>
-<text text-anchor="start" x="1610" y="-3179.7" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="16.00">_build_as_code_check</text>
-<polygon fill="none" stroke="black" points="1565,-3143.5 1565,-3168.5 1848,-3168.5 1848,-3143.5 1565,-3143.5"/>
-<text text-anchor="start" x="1570" y="-3153.3" font-family="Helvetica,sans-Serif" text-decoration="underline" font-size="14.00">id</text>
-<text text-anchor="start" x="1583" y="-3153.3" font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
-<text text-anchor="start" x="1660" y="-3153.3" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
-<polygon fill="none" stroke="black" points="1565,-3118.5 1565,-3143.5 1848,-3143.5 1848,-3118.5 1565,-3118.5"/>
-<text text-anchor="start" x="1570" y="-3128.3" font-family="Helvetica,sans-Serif" font-size="14.00">build_tool_name</text>
-<text text-anchor="start" x="1683" y="-3128.3" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR]</text>
-<text text-anchor="start" x="1766" y="-3128.3" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
-<polygon fill="none" stroke="black" points="1565,-3093.5 1565,-3118.5 1848,-3118.5 1848,-3093.5 1565,-3093.5"/>
-<text text-anchor="start" x="1570" y="-3103.3" font-family="Helvetica,sans-Serif" font-size="14.00">build_trigger</text>
-<text text-anchor="start" x="1659" y="-3103.3" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR]</text>
-<polygon fill="none" stroke="black" points="1565,-3068.5 1565,-3093.5 1848,-3093.5 1848,-3068.5 1565,-3068.5"/>
-<text text-anchor="start" x="1570" y="-3078.3" font-family="Helvetica,sans-Serif" font-size="14.00">ci_service_name</text>
-<text text-anchor="start" x="1684" y="-3078.3" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR]</text>
-<text text-anchor="start" x="1767" y="-3078.3" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
-<polygon fill="none" stroke="black" points="1565,-3043.5 1565,-3068.5 1848,-3068.5 1848,-3043.5 1565,-3043.5"/>
-<text text-anchor="start" x="1570" y="-3053.3" font-family="Helvetica,sans-Serif" font-size="14.00">deploy_command</text>
-<text text-anchor="start" x="1693" y="-3053.3" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR]</text>
-<polygon fill="none" stroke="black" points="1565,-3018.5 1565,-3043.5 1848,-3043.5 1848,-3018.5 1565,-3018.5"/>
-<text text-anchor="start" x="1570" y="-3028.3" font-family="Helvetica,sans-Serif" font-size="14.00">language</text>
-<text text-anchor="start" x="1635" y="-3028.3" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR]</text>
-<text text-anchor="start" x="1718" y="-3028.3" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
-<polygon fill="none" stroke="black" points="1565,-2993.5 1565,-3018.5 1848,-3018.5 1848,-2993.5 1565,-2993.5"/>
-<text text-anchor="start" x="1570" y="-3003.3" font-family="Helvetica,sans-Serif" font-size="14.00">language_distributions</text>
-<text text-anchor="start" x="1729" y="-3003.3" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR]</text>
-<polygon fill="none" stroke="black" points="1565,-2968.5 1565,-2993.5 1848,-2993.5 1848,-2968.5 1565,-2968.5"/>
-<text text-anchor="start" x="1570" y="-2978.3" font-family="Helvetica,sans-Serif" font-size="14.00">language_url</text>
-<text text-anchor="start" x="1661" y="-2978.3" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR]</text>
-<polygon fill="none" stroke="black" points="1565,-2943.5 1565,-2968.5 1848,-2968.5 1848,-2943.5 1565,-2943.5"/>
-<text text-anchor="start" x="1570" y="-2953.3" font-family="Helvetica,sans-Serif" font-size="14.00">language_versions</text>
-<text text-anchor="start" x="1700" y="-2953.3" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR]</text>
+<polygon fill="none" stroke="black" points="1500.23,-3409.6 1500.23,-3438.8 1772.42,-3438.8 1772.42,-3409.6 1500.23,-3409.6"/>
+<text text-anchor="start" x="1549.17" y="-3420.4" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="16.00">_build_as_code_check</text>
+<polygon fill="none" stroke="black" points="1500.23,-3382.8 1500.23,-3409.6 1772.42,-3409.6 1772.42,-3382.8 1500.23,-3382.8"/>
+<text text-anchor="start" x="1505.23" y="-3393" font-family="Helvetica,sans-Serif" text-decoration="underline" font-size="14.00">id</text>
+<text text-anchor="start" x="1516.13" y="-3393" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="1520.02" y="-3393" font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
+<text text-anchor="start" x="1593.92" y="-3393" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<polygon fill="none" stroke="black" points="1500.23,-3356 1500.23,-3382.8 1772.42,-3382.8 1772.42,-3356 1500.23,-3356"/>
+<text text-anchor="start" x="1505.23" y="-3366.2" font-family="Helvetica,sans-Serif" font-size="14.00">build_tool_name</text>
+<text text-anchor="start" x="1607.98" y="-3366.2" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="1611.87" y="-3366.2" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR]</text>
+<text text-anchor="start" x="1691.99" y="-3366.2" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<polygon fill="none" stroke="black" points="1500.23,-3329.2 1500.23,-3356 1772.42,-3356 1772.42,-3329.2 1500.23,-3329.2"/>
+<text text-anchor="start" x="1505.23" y="-3339.4" font-family="Helvetica,sans-Serif" font-size="14.00">build_trigger</text>
+<text text-anchor="start" x="1582.28" y="-3339.4" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="1586.17" y="-3339.4" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR]</text>
+<polygon fill="none" stroke="black" points="1500.23,-3302.4 1500.23,-3329.2 1772.42,-3329.2 1772.42,-3302.4 1500.23,-3302.4"/>
+<text text-anchor="start" x="1505.23" y="-3312.6" font-family="Helvetica,sans-Serif" font-size="14.00">ci_service_name</text>
+<text text-anchor="start" x="1610.28" y="-3312.6" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="1614.17" y="-3312.6" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR]</text>
+<text text-anchor="start" x="1694.3" y="-3312.6" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<polygon fill="none" stroke="black" points="1500.23,-3275.6 1500.23,-3302.4 1772.42,-3302.4 1772.42,-3275.6 1500.23,-3275.6"/>
+<text text-anchor="start" x="1505.23" y="-3285.8" font-family="Helvetica,sans-Serif" font-size="14.00">deploy_command</text>
+<text text-anchor="start" x="1615.74" y="-3285.8" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="1619.63" y="-3285.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR]</text>
+<polygon fill="none" stroke="black" points="1500.23,-3248.8 1500.23,-3275.6 1772.42,-3275.6 1772.42,-3248.8 1500.23,-3248.8"/>
+<text text-anchor="start" x="1505.23" y="-3259" font-family="Helvetica,sans-Serif" font-size="14.00">language</text>
+<text text-anchor="start" x="1562.85" y="-3259" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="1566.74" y="-3259" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR]</text>
+<text text-anchor="start" x="1646.86" y="-3259" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<polygon fill="none" stroke="black" points="1500.23,-3222 1500.23,-3248.8 1772.42,-3248.8 1772.42,-3222 1500.23,-3222"/>
+<text text-anchor="start" x="1505.23" y="-3232.2" font-family="Helvetica,sans-Serif" font-size="14.00">language_distributions</text>
+<text text-anchor="start" x="1645.34" y="-3232.2" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="1649.23" y="-3232.2" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR]</text>
+<polygon fill="none" stroke="black" points="1500.23,-3195.2 1500.23,-3222 1772.42,-3222 1772.42,-3195.2 1500.23,-3195.2"/>
+<text text-anchor="start" x="1505.23" y="-3205.4" font-family="Helvetica,sans-Serif" font-size="14.00">language_url</text>
+<text text-anchor="start" x="1586.19" y="-3205.4" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="1590.08" y="-3205.4" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR]</text>
+<polygon fill="none" stroke="black" points="1500.23,-3168.4 1500.23,-3195.2 1772.42,-3195.2 1772.42,-3168.4 1500.23,-3168.4"/>
+<text text-anchor="start" x="1505.23" y="-3178.6" font-family="Helvetica,sans-Serif" font-size="14.00">language_versions</text>
+<text text-anchor="start" x="1622.77" y="-3178.6" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="1626.65" y="-3178.6" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR]</text>
 </g>
 <!-- _check_facts&#45;&#45;_build_as_code_check -->
 <g id="edge3" class="edge">
 <title>_check_facts&#45;&#45;_build_as_code_check</title>
-<path fill="none" stroke="#7f7f7f" stroke-dasharray="5,2" d="M1314.63,-1672.17C1332.07,-1927.75 1395.27,-2715.44 1524,-2931.5 1532.82,-2946.31 1543.87,-2960.09 1556.14,-2972.78"/>
-<text text-anchor="start" x="1546.14" y="-2961.58" font-family="Times,serif" font-size="14.00">1</text>
-<text text-anchor="start" x="1314.63" y="-1675.97" font-family="Times,serif" font-size="14.00">1</text>
+<path fill="none" stroke="#7f7f7f" stroke-dasharray="5,2" d="M1260.75,-1824.02C1277.29,-2093.7 1337.56,-2922.9 1464.98,-3155.6 1472.6,-3169.52 1482.08,-3182.73 1492.62,-3195.13"/>
+<text text-anchor="start" x="1485.62" y="-3182.53" font-family="Times,serif" font-size="14.00">1</text>
+<text text-anchor="start" x="1260.75" y="-1828.22" font-family="Times,serif" font-size="14.00">1</text>
 </g>
 <!-- _build_script_check -->
 <g id="node6" class="node">
 <title>_build_script_check</title>
-<polygon fill="none" stroke="black" points="1565,-2889.5 1565,-2917.5 1848,-2917.5 1848,-2889.5 1565,-2889.5"/>
-<text text-anchor="start" x="1620" y="-2900.7" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="16.00">_build_script_check</text>
-<polygon fill="none" stroke="black" points="1565,-2864.5 1565,-2889.5 1848,-2889.5 1848,-2864.5 1565,-2864.5"/>
-<text text-anchor="start" x="1570" y="-2874.3" font-family="Helvetica,sans-Serif" text-decoration="underline" font-size="14.00">id</text>
-<text text-anchor="start" x="1583" y="-2874.3" font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
-<text text-anchor="start" x="1660" y="-2874.3" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
-<polygon fill="none" stroke="black" points="1565,-2839.5 1565,-2864.5 1848,-2864.5 1848,-2839.5 1565,-2839.5"/>
-<text text-anchor="start" x="1570" y="-2849.3" font-family="Helvetica,sans-Serif" font-size="14.00">build_tool_command</text>
-<text text-anchor="start" x="1713" y="-2849.3" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR]</text>
-<polygon fill="none" stroke="black" points="1565,-2814.5 1565,-2839.5 1848,-2839.5 1848,-2814.5 1565,-2814.5"/>
-<text text-anchor="start" x="1570" y="-2824.3" font-family="Helvetica,sans-Serif" font-size="14.00">build_tool_name</text>
-<text text-anchor="start" x="1683" y="-2824.3" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR]</text>
-<text text-anchor="start" x="1766" y="-2824.3" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
-<polygon fill="none" stroke="black" points="1565,-2789.5 1565,-2814.5 1848,-2814.5 1848,-2789.5 1565,-2789.5"/>
-<text text-anchor="start" x="1570" y="-2799.3" font-family="Helvetica,sans-Serif" font-size="14.00">build_trigger</text>
-<text text-anchor="start" x="1659" y="-2799.3" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR]</text>
-<polygon fill="none" stroke="black" points="1565,-2764.5 1565,-2789.5 1848,-2789.5 1848,-2764.5 1565,-2764.5"/>
-<text text-anchor="start" x="1570" y="-2774.3" font-family="Helvetica,sans-Serif" font-size="14.00">ci_service_name</text>
-<text text-anchor="start" x="1684" y="-2774.3" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR]</text>
-<text text-anchor="start" x="1767" y="-2774.3" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
-<polygon fill="none" stroke="black" points="1565,-2739.5 1565,-2764.5 1848,-2764.5 1848,-2739.5 1565,-2739.5"/>
-<text text-anchor="start" x="1570" y="-2749.3" font-family="Helvetica,sans-Serif" font-size="14.00">language</text>
-<text text-anchor="start" x="1635" y="-2749.3" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR]</text>
-<text text-anchor="start" x="1718" y="-2749.3" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
-<polygon fill="none" stroke="black" points="1565,-2714.5 1565,-2739.5 1848,-2739.5 1848,-2714.5 1565,-2714.5"/>
-<text text-anchor="start" x="1570" y="-2724.3" font-family="Helvetica,sans-Serif" font-size="14.00">language_distributions</text>
-<text text-anchor="start" x="1729" y="-2724.3" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR]</text>
-<polygon fill="none" stroke="black" points="1565,-2689.5 1565,-2714.5 1848,-2714.5 1848,-2689.5 1565,-2689.5"/>
-<text text-anchor="start" x="1570" y="-2699.3" font-family="Helvetica,sans-Serif" font-size="14.00">language_url</text>
-<text text-anchor="start" x="1661" y="-2699.3" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR]</text>
-<polygon fill="none" stroke="black" points="1565,-2664.5 1565,-2689.5 1848,-2689.5 1848,-2664.5 1565,-2664.5"/>
-<text text-anchor="start" x="1570" y="-2674.3" font-family="Helvetica,sans-Serif" font-size="14.00">language_versions</text>
-<text text-anchor="start" x="1700" y="-2674.3" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR]</text>
+<polygon fill="none" stroke="black" points="1500.23,-3113.6 1500.23,-3142.8 1772.42,-3142.8 1772.42,-3113.6 1500.23,-3113.6"/>
+<text text-anchor="start" x="1559.41" y="-3124.4" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="16.00">_build_script_check</text>
+<polygon fill="none" stroke="black" points="1500.23,-3086.8 1500.23,-3113.6 1772.42,-3113.6 1772.42,-3086.8 1500.23,-3086.8"/>
+<text text-anchor="start" x="1505.23" y="-3097" font-family="Helvetica,sans-Serif" text-decoration="underline" font-size="14.00">id</text>
+<text text-anchor="start" x="1516.13" y="-3097" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="1520.02" y="-3097" font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
+<text text-anchor="start" x="1593.92" y="-3097" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<polygon fill="none" stroke="black" points="1500.23,-3060 1500.23,-3086.8 1772.42,-3086.8 1772.42,-3060 1500.23,-3060"/>
+<text text-anchor="start" x="1505.23" y="-3070.2" font-family="Helvetica,sans-Serif" font-size="14.00">build_tool_command</text>
+<text text-anchor="start" x="1634.43" y="-3070.2" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="1638.32" y="-3070.2" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR]</text>
+<polygon fill="none" stroke="black" points="1500.23,-3033.2 1500.23,-3060 1772.42,-3060 1772.42,-3033.2 1500.23,-3033.2"/>
+<text text-anchor="start" x="1505.23" y="-3043.4" font-family="Helvetica,sans-Serif" font-size="14.00">build_tool_name</text>
+<text text-anchor="start" x="1607.98" y="-3043.4" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="1611.87" y="-3043.4" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR]</text>
+<text text-anchor="start" x="1691.99" y="-3043.4" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<polygon fill="none" stroke="black" points="1500.23,-3006.4 1500.23,-3033.2 1772.42,-3033.2 1772.42,-3006.4 1500.23,-3006.4"/>
+<text text-anchor="start" x="1505.23" y="-3016.6" font-family="Helvetica,sans-Serif" font-size="14.00">build_trigger</text>
+<text text-anchor="start" x="1582.28" y="-3016.6" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="1586.17" y="-3016.6" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR]</text>
+<polygon fill="none" stroke="black" points="1500.23,-2979.6 1500.23,-3006.4 1772.42,-3006.4 1772.42,-2979.6 1500.23,-2979.6"/>
+<text text-anchor="start" x="1505.23" y="-2989.8" font-family="Helvetica,sans-Serif" font-size="14.00">ci_service_name</text>
+<text text-anchor="start" x="1610.28" y="-2989.8" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="1614.17" y="-2989.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR]</text>
+<text text-anchor="start" x="1694.3" y="-2989.8" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<polygon fill="none" stroke="black" points="1500.23,-2952.8 1500.23,-2979.6 1772.42,-2979.6 1772.42,-2952.8 1500.23,-2952.8"/>
+<text text-anchor="start" x="1505.23" y="-2963" font-family="Helvetica,sans-Serif" font-size="14.00">language</text>
+<text text-anchor="start" x="1562.85" y="-2963" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="1566.74" y="-2963" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR]</text>
+<text text-anchor="start" x="1646.86" y="-2963" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<polygon fill="none" stroke="black" points="1500.23,-2926 1500.23,-2952.8 1772.42,-2952.8 1772.42,-2926 1500.23,-2926"/>
+<text text-anchor="start" x="1505.23" y="-2936.2" font-family="Helvetica,sans-Serif" font-size="14.00">language_distributions</text>
+<text text-anchor="start" x="1645.34" y="-2936.2" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="1649.23" y="-2936.2" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR]</text>
+<polygon fill="none" stroke="black" points="1500.23,-2899.2 1500.23,-2926 1772.42,-2926 1772.42,-2899.2 1500.23,-2899.2"/>
+<text text-anchor="start" x="1505.23" y="-2909.4" font-family="Helvetica,sans-Serif" font-size="14.00">language_url</text>
+<text text-anchor="start" x="1586.19" y="-2909.4" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="1590.08" y="-2909.4" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR]</text>
+<polygon fill="none" stroke="black" points="1500.23,-2872.4 1500.23,-2899.2 1772.42,-2899.2 1772.42,-2872.4 1500.23,-2872.4"/>
+<text text-anchor="start" x="1505.23" y="-2882.6" font-family="Helvetica,sans-Serif" font-size="14.00">language_versions</text>
+<text text-anchor="start" x="1622.77" y="-2882.6" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="1626.65" y="-2882.6" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR]</text>
 </g>
 <!-- _check_facts&#45;&#45;_build_script_check -->
 <g id="edge4" class="edge">
 <title>_check_facts&#45;&#45;_build_script_check</title>
-<path fill="none" stroke="#7f7f7f" stroke-dasharray="5,2" d="M1318.43,-1672.32C1343.7,-1890.6 1420.63,-2486.77 1524,-2652.5 1533.02,-2666.96 1544.11,-2680.48 1556.33,-2692.97"/>
-<text text-anchor="start" x="1546.33" y="-2681.77" font-family="Times,serif" font-size="14.00">1</text>
-<text text-anchor="start" x="1318.43" y="-1676.12" font-family="Times,serif" font-size="14.00">1</text>
+<path fill="none" stroke="#7f7f7f" stroke-dasharray="5,2" d="M1264.49,-1824.03C1288.77,-2054.07 1362.81,-2681.13 1464.98,-2859.6 1472.67,-2873.03 1482.04,-2885.84 1492.39,-2897.9"/>
+<text text-anchor="start" x="1485.39" y="-2885.3" font-family="Times,serif" font-size="14.00">1</text>
+<text text-anchor="start" x="1264.49" y="-1828.23" font-family="Times,serif" font-size="14.00">1</text>
 </g>
 <!-- _build_service_check -->
 <g id="node7" class="node">
 <title>_build_service_check</title>
-<polygon fill="none" stroke="black" points="1565,-2610.5 1565,-2638.5 1848,-2638.5 1848,-2610.5 1565,-2610.5"/>
-<text text-anchor="start" x="1613.5" y="-2621.7" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="16.00">_build_service_check</text>
-<polygon fill="none" stroke="black" points="1565,-2585.5 1565,-2610.5 1848,-2610.5 1848,-2585.5 1565,-2585.5"/>
-<text text-anchor="start" x="1570" y="-2595.3" font-family="Helvetica,sans-Serif" text-decoration="underline" font-size="14.00">id</text>
-<text text-anchor="start" x="1583" y="-2595.3" font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
-<text text-anchor="start" x="1660" y="-2595.3" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
-<polygon fill="none" stroke="black" points="1565,-2560.5 1565,-2585.5 1848,-2585.5 1848,-2560.5 1565,-2560.5"/>
-<text text-anchor="start" x="1570" y="-2570.3" font-family="Helvetica,sans-Serif" font-size="14.00">build_command</text>
-<text text-anchor="start" x="1681" y="-2570.3" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR]</text>
-<polygon fill="none" stroke="black" points="1565,-2535.5 1565,-2560.5 1848,-2560.5 1848,-2535.5 1565,-2535.5"/>
-<text text-anchor="start" x="1570" y="-2545.3" font-family="Helvetica,sans-Serif" font-size="14.00">build_tool_name</text>
-<text text-anchor="start" x="1683" y="-2545.3" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR]</text>
-<text text-anchor="start" x="1766" y="-2545.3" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
-<polygon fill="none" stroke="black" points="1565,-2510.5 1565,-2535.5 1848,-2535.5 1848,-2510.5 1565,-2510.5"/>
-<text text-anchor="start" x="1570" y="-2520.3" font-family="Helvetica,sans-Serif" font-size="14.00">build_trigger</text>
-<text text-anchor="start" x="1659" y="-2520.3" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR]</text>
-<polygon fill="none" stroke="black" points="1565,-2485.5 1565,-2510.5 1848,-2510.5 1848,-2485.5 1565,-2485.5"/>
-<text text-anchor="start" x="1570" y="-2495.3" font-family="Helvetica,sans-Serif" font-size="14.00">ci_service_name</text>
-<text text-anchor="start" x="1684" y="-2495.3" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR]</text>
-<text text-anchor="start" x="1767" y="-2495.3" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
-<polygon fill="none" stroke="black" points="1565,-2460.5 1565,-2485.5 1848,-2485.5 1848,-2460.5 1565,-2460.5"/>
-<text text-anchor="start" x="1570" y="-2470.3" font-family="Helvetica,sans-Serif" font-size="14.00">language</text>
-<text text-anchor="start" x="1635" y="-2470.3" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR]</text>
-<text text-anchor="start" x="1718" y="-2470.3" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
-<polygon fill="none" stroke="black" points="1565,-2435.5 1565,-2460.5 1848,-2460.5 1848,-2435.5 1565,-2435.5"/>
-<text text-anchor="start" x="1570" y="-2445.3" font-family="Helvetica,sans-Serif" font-size="14.00">language_distributions</text>
-<text text-anchor="start" x="1729" y="-2445.3" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR]</text>
-<polygon fill="none" stroke="black" points="1565,-2410.5 1565,-2435.5 1848,-2435.5 1848,-2410.5 1565,-2410.5"/>
-<text text-anchor="start" x="1570" y="-2420.3" font-family="Helvetica,sans-Serif" font-size="14.00">language_url</text>
-<text text-anchor="start" x="1661" y="-2420.3" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR]</text>
-<polygon fill="none" stroke="black" points="1565,-2385.5 1565,-2410.5 1848,-2410.5 1848,-2385.5 1565,-2385.5"/>
-<text text-anchor="start" x="1570" y="-2395.3" font-family="Helvetica,sans-Serif" font-size="14.00">language_versions</text>
-<text text-anchor="start" x="1700" y="-2395.3" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR]</text>
+<polygon fill="none" stroke="black" points="1500.23,-2817.6 1500.23,-2846.8 1772.42,-2846.8 1772.42,-2817.6 1500.23,-2817.6"/>
+<text text-anchor="start" x="1553.61" y="-2828.4" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="16.00">_build_service_check</text>
+<polygon fill="none" stroke="black" points="1500.23,-2790.8 1500.23,-2817.6 1772.42,-2817.6 1772.42,-2790.8 1500.23,-2790.8"/>
+<text text-anchor="start" x="1505.23" y="-2801" font-family="Helvetica,sans-Serif" text-decoration="underline" font-size="14.00">id</text>
+<text text-anchor="start" x="1516.13" y="-2801" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="1520.02" y="-2801" font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
+<text text-anchor="start" x="1593.92" y="-2801" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<polygon fill="none" stroke="black" points="1500.23,-2764 1500.23,-2790.8 1772.42,-2790.8 1772.42,-2764 1500.23,-2764"/>
+<text text-anchor="start" x="1505.23" y="-2774.2" font-family="Helvetica,sans-Serif" font-size="14.00">build_command</text>
+<text text-anchor="start" x="1604.07" y="-2774.2" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="1607.96" y="-2774.2" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR]</text>
+<polygon fill="none" stroke="black" points="1500.23,-2737.2 1500.23,-2764 1772.42,-2764 1772.42,-2737.2 1500.23,-2737.2"/>
+<text text-anchor="start" x="1505.23" y="-2747.4" font-family="Helvetica,sans-Serif" font-size="14.00">build_tool_name</text>
+<text text-anchor="start" x="1607.98" y="-2747.4" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="1611.87" y="-2747.4" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR]</text>
+<text text-anchor="start" x="1691.99" y="-2747.4" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<polygon fill="none" stroke="black" points="1500.23,-2710.4 1500.23,-2737.2 1772.42,-2737.2 1772.42,-2710.4 1500.23,-2710.4"/>
+<text text-anchor="start" x="1505.23" y="-2720.6" font-family="Helvetica,sans-Serif" font-size="14.00">build_trigger</text>
+<text text-anchor="start" x="1582.28" y="-2720.6" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="1586.17" y="-2720.6" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR]</text>
+<polygon fill="none" stroke="black" points="1500.23,-2683.6 1500.23,-2710.4 1772.42,-2710.4 1772.42,-2683.6 1500.23,-2683.6"/>
+<text text-anchor="start" x="1505.23" y="-2693.8" font-family="Helvetica,sans-Serif" font-size="14.00">ci_service_name</text>
+<text text-anchor="start" x="1610.28" y="-2693.8" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="1614.17" y="-2693.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR]</text>
+<text text-anchor="start" x="1694.3" y="-2693.8" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<polygon fill="none" stroke="black" points="1500.23,-2656.8 1500.23,-2683.6 1772.42,-2683.6 1772.42,-2656.8 1500.23,-2656.8"/>
+<text text-anchor="start" x="1505.23" y="-2667" font-family="Helvetica,sans-Serif" font-size="14.00">language</text>
+<text text-anchor="start" x="1562.85" y="-2667" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="1566.74" y="-2667" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR]</text>
+<text text-anchor="start" x="1646.86" y="-2667" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<polygon fill="none" stroke="black" points="1500.23,-2630 1500.23,-2656.8 1772.42,-2656.8 1772.42,-2630 1500.23,-2630"/>
+<text text-anchor="start" x="1505.23" y="-2640.2" font-family="Helvetica,sans-Serif" font-size="14.00">language_distributions</text>
+<text text-anchor="start" x="1645.34" y="-2640.2" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="1649.23" y="-2640.2" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR]</text>
+<polygon fill="none" stroke="black" points="1500.23,-2603.2 1500.23,-2630 1772.42,-2630 1772.42,-2603.2 1500.23,-2603.2"/>
+<text text-anchor="start" x="1505.23" y="-2613.4" font-family="Helvetica,sans-Serif" font-size="14.00">language_url</text>
+<text text-anchor="start" x="1586.19" y="-2613.4" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="1590.08" y="-2613.4" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR]</text>
+<polygon fill="none" stroke="black" points="1500.23,-2576.4 1500.23,-2603.2 1772.42,-2603.2 1772.42,-2576.4 1500.23,-2576.4"/>
+<text text-anchor="start" x="1505.23" y="-2586.6" font-family="Helvetica,sans-Serif" font-size="14.00">language_versions</text>
+<text text-anchor="start" x="1622.77" y="-2586.6" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="1626.65" y="-2586.6" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR]</text>
 </g>
 <!-- _check_facts&#45;&#45;_build_service_check -->
 <g id="edge5" class="edge">
 <title>_check_facts&#45;&#45;_build_service_check</title>
-<path fill="none" stroke="#7f7f7f" stroke-dasharray="5,2" d="M1314.79,-1672.21C1328.07,-1822.31 1373.41,-2149.47 1524,-2373.5 1533.28,-2387.31 1544.39,-2400.33 1556.48,-2412.45"/>
-<text text-anchor="start" x="1546.48" y="-2401.25" font-family="Times,serif" font-size="14.00">1</text>
-<text text-anchor="start" x="1304.79" y="-1676.01" font-family="Times,serif" font-size="14.00">1</text>
+<path fill="none" stroke="#7f7f7f" stroke-dasharray="5,2" d="M1260.82,-1824.05C1273.34,-1981.43 1316.83,-2322.96 1464.98,-2563.6 1472.89,-2576.44 1482.27,-2588.77 1492.51,-2600.45"/>
+<text text-anchor="start" x="1485.51" y="-2587.85" font-family="Times,serif" font-size="14.00">1</text>
+<text text-anchor="start" x="1253.82" y="-1828.25" font-family="Times,serif" font-size="14.00">1</text>
 </g>
 <!-- _build_tool_check -->
 <g id="node8" class="node">
 <title>_build_tool_check</title>
-<polygon fill="none" stroke="black" points="1565,-2331.5 1565,-2359.5 1847,-2359.5 1847,-2331.5 1565,-2331.5"/>
-<text text-anchor="start" x="1627.5" y="-2342.7" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="16.00">_build_tool_check</text>
-<polygon fill="none" stroke="black" points="1565,-2306.5 1565,-2331.5 1847,-2331.5 1847,-2306.5 1565,-2306.5"/>
-<text text-anchor="start" x="1570" y="-2316.3" font-family="Helvetica,sans-Serif" text-decoration="underline" font-size="14.00">id</text>
-<text text-anchor="start" x="1583" y="-2316.3" font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
-<text text-anchor="start" x="1660" y="-2316.3" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
-<polygon fill="none" stroke="black" points="1565,-2281.5 1565,-2306.5 1847,-2306.5 1847,-2281.5 1565,-2281.5"/>
-<text text-anchor="start" x="1570" y="-2291.3" font-family="Helvetica,sans-Serif" font-size="14.00">build_tool_name</text>
-<text text-anchor="start" x="1683" y="-2291.3" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR]</text>
-<text text-anchor="start" x="1766" y="-2291.3" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
-<polygon fill="none" stroke="black" points="1565,-2256.5 1565,-2281.5 1847,-2281.5 1847,-2256.5 1565,-2256.5"/>
-<text text-anchor="start" x="1570" y="-2266.3" font-family="Helvetica,sans-Serif" font-size="14.00">language</text>
-<text text-anchor="start" x="1635" y="-2266.3" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR]</text>
-<text text-anchor="start" x="1718" y="-2266.3" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<polygon fill="none" stroke="black" points="1501.39,-2521.2 1501.39,-2550.4 1771.27,-2550.4 1771.27,-2521.2 1501.39,-2521.2"/>
+<text text-anchor="start" x="1566.53" y="-2532" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="16.00">_build_tool_check</text>
+<polygon fill="none" stroke="black" points="1501.39,-2494.4 1501.39,-2521.2 1771.27,-2521.2 1771.27,-2494.4 1501.39,-2494.4"/>
+<text text-anchor="start" x="1506.39" y="-2504.6" font-family="Helvetica,sans-Serif" text-decoration="underline" font-size="14.00">id</text>
+<text text-anchor="start" x="1517.28" y="-2504.6" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="1521.17" y="-2504.6" font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
+<text text-anchor="start" x="1595.07" y="-2504.6" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<polygon fill="none" stroke="black" points="1501.39,-2467.6 1501.39,-2494.4 1771.27,-2494.4 1771.27,-2467.6 1501.39,-2467.6"/>
+<text text-anchor="start" x="1506.39" y="-2477.8" font-family="Helvetica,sans-Serif" font-size="14.00">build_tool_name</text>
+<text text-anchor="start" x="1609.13" y="-2477.8" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="1613.02" y="-2477.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR]</text>
+<text text-anchor="start" x="1693.14" y="-2477.8" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<polygon fill="none" stroke="black" points="1501.39,-2440.8 1501.39,-2467.6 1771.27,-2467.6 1771.27,-2440.8 1501.39,-2440.8"/>
+<text text-anchor="start" x="1506.39" y="-2451" font-family="Helvetica,sans-Serif" font-size="14.00">language</text>
+<text text-anchor="start" x="1564" y="-2451" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="1567.89" y="-2451" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR]</text>
+<text text-anchor="start" x="1648.01" y="-2451" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
 </g>
 <!-- _check_facts&#45;&#45;_build_tool_check -->
 <g id="edge6" class="edge">
 <title>_check_facts&#45;&#45;_build_tool_check</title>
-<path fill="none" stroke="#7f7f7f" stroke-dasharray="5,2" d="M1313.88,-1672.17C1325.53,-1808.06 1368.15,-2083.4 1524,-2243.5 1533.55,-2253.31 1544.68,-2261.64 1556.65,-2268.72"/>
-<text text-anchor="start" x="1546.65" y="-2257.52" font-family="Times,serif" font-size="14.00">1</text>
-<text text-anchor="start" x="1303.88" y="-1660.97" font-family="Times,serif" font-size="14.00">1</text>
+<path fill="none" stroke="#7f7f7f" stroke-dasharray="5,2" d="M1258.8,-1823.97C1268.13,-1966.76 1306.77,-2255.31 1464.98,-2427.6 1473.38,-2436.75 1483.18,-2444.69 1493.75,-2451.57"/>
+<text text-anchor="start" x="1486.75" y="-2438.97" font-family="Times,serif" font-size="14.00">1</text>
+<text text-anchor="start" x="1251.8" y="-1811.37" font-family="Times,serif" font-size="14.00">1</text>
 </g>
 <!-- _cue_expectation -->
 <g id="node9" class="node">
 <title>_cue_expectation</title>
-<polygon fill="none" stroke="black" points="1562,-2202.5 1562,-2230.5 1850,-2230.5 1850,-2202.5 1562,-2202.5"/>
-<text text-anchor="start" x="1629" y="-2213.7" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="16.00">_cue_expectation</text>
-<polygon fill="none" stroke="black" points="1562,-2177.5 1562,-2202.5 1850,-2202.5 1850,-2177.5 1562,-2177.5"/>
-<text text-anchor="start" x="1567" y="-2187.3" font-family="Helvetica,sans-Serif" text-decoration="underline" font-size="14.00">id</text>
-<text text-anchor="start" x="1580" y="-2187.3" font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
-<text text-anchor="start" x="1657" y="-2187.3" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
-<polygon fill="none" stroke="black" points="1562,-2152.5 1562,-2177.5 1850,-2177.5 1850,-2152.5 1562,-2152.5"/>
-<text text-anchor="start" x="1567" y="-2162.3" font-family="Helvetica,sans-Serif" font-size="14.00">asset_url</text>
-<text text-anchor="start" x="1630" y="-2162.3" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR]</text>
-<polygon fill="none" stroke="black" points="1562,-2127.5 1562,-2152.5 1850,-2152.5 1850,-2127.5 1562,-2127.5"/>
-<text text-anchor="start" x="1567" y="-2137.3" font-family="Helvetica,sans-Serif" font-size="14.00">description</text>
-<text text-anchor="start" x="1645" y="-2137.3" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR]</text>
-<text text-anchor="start" x="1728" y="-2137.3" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
-<polygon fill="none" stroke="black" points="1562,-2102.5 1562,-2127.5 1850,-2127.5 1850,-2102.5 1562,-2102.5"/>
-<text text-anchor="start" x="1567" y="-2112.3" font-family="Helvetica,sans-Serif" font-size="14.00">expectation_type</text>
-<text text-anchor="start" x="1686" y="-2112.3" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR]</text>
-<text text-anchor="start" x="1769" y="-2112.3" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
-<polygon fill="none" stroke="black" points="1562,-2077.5 1562,-2102.5 1850,-2102.5 1850,-2077.5 1562,-2077.5"/>
-<text text-anchor="start" x="1567" y="-2087.3" font-family="Helvetica,sans-Serif" font-size="14.00">path</text>
-<text text-anchor="start" x="1599" y="-2087.3" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR]</text>
-<text text-anchor="start" x="1682" y="-2087.3" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
-<polygon fill="none" stroke="black" points="1562,-2052.5 1562,-2077.5 1850,-2077.5 1850,-2052.5 1562,-2052.5"/>
-<text text-anchor="start" x="1567" y="-2062.3" font-family="Helvetica,sans-Serif" font-size="14.00">sha</text>
-<text text-anchor="start" x="1592" y="-2062.3" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR]</text>
-<polygon fill="none" stroke="black" points="1562,-2027.5 1562,-2052.5 1850,-2052.5 1850,-2027.5 1562,-2027.5"/>
-<text text-anchor="start" x="1567" y="-2037.3" font-family="Helvetica,sans-Serif" font-size="14.00">target</text>
-<text text-anchor="start" x="1609" y="-2037.3" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR]</text>
-<text text-anchor="start" x="1692" y="-2037.3" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
-<polygon fill="none" stroke="black" points="1562,-2002.5 1562,-2027.5 1850,-2027.5 1850,-2002.5 1562,-2002.5"/>
-<text text-anchor="start" x="1567" y="-2012.3" font-family="Helvetica,sans-Serif" font-size="14.00">text</text>
-<text text-anchor="start" x="1595" y="-2012.3" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR]</text>
+<polygon fill="none" stroke="black" points="1499.83,-2385.2 1499.83,-2414.4 1772.82,-2414.4 1772.82,-2385.2 1499.83,-2385.2"/>
+<text text-anchor="start" x="1569.19" y="-2396" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="16.00">_cue_expectation</text>
+<polygon fill="none" stroke="black" points="1499.83,-2358.4 1499.83,-2385.2 1772.82,-2385.2 1772.82,-2358.4 1499.83,-2358.4"/>
+<text text-anchor="start" x="1504.83" y="-2368.6" font-family="Helvetica,sans-Serif" text-decoration="underline" font-size="14.00">id</text>
+<text text-anchor="start" x="1515.73" y="-2368.6" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="1519.62" y="-2368.6" font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
+<text text-anchor="start" x="1593.51" y="-2368.6" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<polygon fill="none" stroke="black" points="1499.83,-2331.6 1499.83,-2358.4 1772.82,-2358.4 1772.82,-2331.6 1499.83,-2331.6"/>
+<text text-anchor="start" x="1504.83" y="-2341.8" font-family="Helvetica,sans-Serif" font-size="14.00">asset_url</text>
+<text text-anchor="start" x="1561.64" y="-2341.8" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="1565.53" y="-2341.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR]</text>
+<polygon fill="none" stroke="black" points="1499.83,-2304.8 1499.83,-2331.6 1772.82,-2331.6 1772.82,-2304.8 1499.83,-2304.8"/>
+<text text-anchor="start" x="1504.83" y="-2315" font-family="Helvetica,sans-Serif" font-size="14.00">description</text>
+<text text-anchor="start" x="1572.53" y="-2315" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="1576.42" y="-2315" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR]</text>
+<text text-anchor="start" x="1656.55" y="-2315" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<polygon fill="none" stroke="black" points="1499.83,-2278 1499.83,-2304.8 1772.82,-2304.8 1772.82,-2278 1499.83,-2278"/>
+<text text-anchor="start" x="1504.83" y="-2288.2" font-family="Helvetica,sans-Serif" font-size="14.00">expectation_type</text>
+<text text-anchor="start" x="1610.69" y="-2288.2" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="1614.58" y="-2288.2" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR]</text>
+<text text-anchor="start" x="1694.7" y="-2288.2" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<polygon fill="none" stroke="black" points="1499.83,-2251.2 1499.83,-2278 1772.82,-2278 1772.82,-2251.2 1499.83,-2251.2"/>
+<text text-anchor="start" x="1504.83" y="-2261.4" font-family="Helvetica,sans-Serif" font-size="14.00">path</text>
+<text text-anchor="start" x="1532.08" y="-2261.4" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="1535.97" y="-2261.4" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR]</text>
+<text text-anchor="start" x="1616.09" y="-2261.4" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<polygon fill="none" stroke="black" points="1499.83,-2224.4 1499.83,-2251.2 1772.82,-2251.2 1772.82,-2224.4 1499.83,-2224.4"/>
+<text text-anchor="start" x="1504.83" y="-2234.6" font-family="Helvetica,sans-Serif" font-size="14.00">sha</text>
+<text text-anchor="start" x="1527.4" y="-2234.6" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="1531.29" y="-2234.6" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR]</text>
+<polygon fill="none" stroke="black" points="1499.83,-2197.6 1499.83,-2224.4 1772.82,-2224.4 1772.82,-2197.6 1499.83,-2197.6"/>
+<text text-anchor="start" x="1504.83" y="-2207.8" font-family="Helvetica,sans-Serif" font-size="14.00">target</text>
+<text text-anchor="start" x="1540.63" y="-2207.8" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="1544.52" y="-2207.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR]</text>
+<text text-anchor="start" x="1624.65" y="-2207.8" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<polygon fill="none" stroke="black" points="1499.83,-2170.8 1499.83,-2197.6 1772.82,-2197.6 1772.82,-2170.8 1499.83,-2170.8"/>
+<text text-anchor="start" x="1504.83" y="-2181" font-family="Helvetica,sans-Serif" font-size="14.00">text</text>
+<text text-anchor="start" x="1527.4" y="-2181" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="1531.29" y="-2181" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR]</text>
 </g>
 <!-- _check_facts&#45;&#45;_cue_expectation -->
 <g id="edge7" class="edge">
 <title>_check_facts&#45;&#45;_cue_expectation</title>
-<path fill="none" stroke="#7f7f7f" stroke-dasharray="5,2" d="M1339.88,-1672.27C1374.89,-1757.84 1438.74,-1893.58 1524,-1989.5 1533.05,-1999.69 1543.08,-2009.49 1553.63,-2018.82"/>
-<text text-anchor="start" x="1543.63" y="-2007.62" font-family="Times,serif" font-size="14.00">1</text>
-<text text-anchor="start" x="1329.88" y="-1676.07" font-family="Times,serif" font-size="14.00">1</text>
+<path fill="none" stroke="#7f7f7f" stroke-dasharray="5,2" d="M1285.72,-1823.99C1319.73,-1913.41 1381.61,-2054.86 1464.98,-2157.6 1473.19,-2167.71 1482.27,-2177.54 1491.86,-2187"/>
+<text text-anchor="start" x="1484.86" y="-2174.4" font-family="Times,serif" font-size="14.00">1</text>
+<text text-anchor="start" x="1278.72" y="-1828.19" font-family="Times,serif" font-size="14.00">1</text>
 </g>
 <!-- _detect_malicious_metadata_check -->
 <g id="node10" class="node">
 <title>_detect_malicious_metadata_check</title>
-<polygon fill="none" stroke="black" points="1545,-1948.5 1545,-1976.5 1867,-1976.5 1867,-1948.5 1545,-1948.5"/>
-<text text-anchor="start" x="1550" y="-1959.7" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="16.00">_detect_malicious_metadata_check</text>
-<polygon fill="none" stroke="black" points="1545,-1923.5 1545,-1948.5 1867,-1948.5 1867,-1923.5 1545,-1923.5"/>
-<text text-anchor="start" x="1550" y="-1933.3" font-family="Helvetica,sans-Serif" text-decoration="underline" font-size="14.00">id</text>
-<text text-anchor="start" x="1563" y="-1933.3" font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
-<text text-anchor="start" x="1640" y="-1933.3" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
-<polygon fill="none" stroke="black" points="1545,-1898.5 1545,-1923.5 1867,-1923.5 1867,-1898.5 1545,-1898.5"/>
-<text text-anchor="start" x="1550" y="-1908.3" font-family="Helvetica,sans-Serif" font-size="14.00">detail_information</text>
-<text text-anchor="start" x="1675" y="-1908.3" font-family="Helvetica,sans-Serif" font-size="14.00"> [JSON]</text>
-<text text-anchor="start" x="1726" y="-1908.3" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
-<polygon fill="none" stroke="black" points="1545,-1873.5 1545,-1898.5 1867,-1898.5 1867,-1873.5 1545,-1873.5"/>
-<text text-anchor="start" x="1550" y="-1883.3" font-family="Helvetica,sans-Serif" font-size="14.00">known_malware</text>
-<text text-anchor="start" x="1662" y="-1883.3" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR]</text>
-<polygon fill="none" stroke="black" points="1545,-1848.5 1545,-1873.5 1867,-1873.5 1867,-1848.5 1545,-1848.5"/>
-<text text-anchor="start" x="1550" y="-1858.3" font-family="Helvetica,sans-Serif" font-size="14.00">result</text>
-<text text-anchor="start" x="1590" y="-1858.3" font-family="Helvetica,sans-Serif" font-size="14.00"> [JSON]</text>
-<text text-anchor="start" x="1641" y="-1858.3" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<polygon fill="none" stroke="black" points="1495.26,-2115.6 1495.26,-2144.8 1777.4,-2144.8 1777.4,-2115.6 1495.26,-2115.6"/>
+<text text-anchor="start" x="1500.26" y="-2126.4" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="16.00">_detect_malicious_metadata_check</text>
+<polygon fill="none" stroke="black" points="1495.26,-2088.8 1495.26,-2115.6 1777.4,-2115.6 1777.4,-2088.8 1495.26,-2088.8"/>
+<text text-anchor="start" x="1500.26" y="-2099" font-family="Helvetica,sans-Serif" text-decoration="underline" font-size="14.00">id</text>
+<text text-anchor="start" x="1511.15" y="-2099" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="1515.04" y="-2099" font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
+<text text-anchor="start" x="1588.94" y="-2099" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<polygon fill="none" stroke="black" points="1495.26,-2062 1495.26,-2088.8 1777.4,-2088.8 1777.4,-2062 1495.26,-2062"/>
+<text text-anchor="start" x="1500.26" y="-2072.2" font-family="Helvetica,sans-Serif" font-size="14.00">detail_information</text>
+<text text-anchor="start" x="1610.77" y="-2072.2" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="1614.66" y="-2072.2" font-family="Helvetica,sans-Serif" font-size="14.00"> [JSON]</text>
+<text text-anchor="start" x="1663.66" y="-2072.2" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<polygon fill="none" stroke="black" points="1495.26,-2035.2 1495.26,-2062 1777.4,-2062 1777.4,-2035.2 1495.26,-2035.2"/>
+<text text-anchor="start" x="1500.26" y="-2045.4" font-family="Helvetica,sans-Serif" font-size="14.00">known_malware</text>
+<text text-anchor="start" x="1601.42" y="-2045.4" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="1605.31" y="-2045.4" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR]</text>
+<polygon fill="none" stroke="black" points="1495.26,-2008.4 1495.26,-2035.2 1777.4,-2035.2 1777.4,-2008.4 1495.26,-2008.4"/>
+<text text-anchor="start" x="1500.26" y="-2018.6" font-family="Helvetica,sans-Serif" font-size="14.00">result</text>
+<text text-anchor="start" x="1534.49" y="-2018.6" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="1538.38" y="-2018.6" font-family="Helvetica,sans-Serif" font-size="14.00"> [JSON]</text>
+<text text-anchor="start" x="1587.39" y="-2018.6" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
 </g>
 <!-- _check_facts&#45;&#45;_detect_malicious_metadata_check -->
 <g id="edge8" class="edge">
 <title>_check_facts&#45;&#45;_detect_malicious_metadata_check</title>
-<path fill="none" stroke="#7f7f7f" stroke-dasharray="5,2" d="M1365.51,-1672.17C1404.97,-1724.26 1461.72,-1790.48 1524,-1835.5 1528.15,-1838.5 1532.44,-1841.41 1536.83,-1844.24"/>
-<text text-anchor="start" x="1526.83" y="-1833.04" font-family="Times,serif" font-size="14.00">1</text>
-<text text-anchor="start" x="1355.51" y="-1675.97" font-family="Times,serif" font-size="14.00">1</text>
+<path fill="none" stroke="#7f7f7f" stroke-dasharray="5,2" d="M1310.73,-1824.12C1348.91,-1878.53 1403.81,-1947.54 1464.98,-1995.6 1472.07,-2001.16 1479.59,-2006.47 1487.38,-2011.5"/>
+<text text-anchor="start" x="1480.38" y="-1998.9" font-family="Times,serif" font-size="14.00">1</text>
+<text text-anchor="start" x="1303.73" y="-1828.32" font-family="Times,serif" font-size="14.00">1</text>
 </g>
 <!-- _github_actions_vulnerabilities_check -->
 <g id="node11" class="node">
 <title>_github_actions_vulnerabilities_check</title>
-<polygon fill="none" stroke="black" points="1533,-1793.5 1533,-1821.5 1879,-1821.5 1879,-1793.5 1533,-1793.5"/>
-<text text-anchor="start" x="1538" y="-1804.7" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="16.00">_github_actions_vulnerabilities_check</text>
-<polygon fill="none" stroke="black" points="1533,-1768.5 1533,-1793.5 1879,-1793.5 1879,-1768.5 1533,-1768.5"/>
-<text text-anchor="start" x="1538" y="-1778.3" font-family="Helvetica,sans-Serif" text-decoration="underline" font-size="14.00">id</text>
-<text text-anchor="start" x="1551" y="-1778.3" font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
-<text text-anchor="start" x="1628" y="-1778.3" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
-<polygon fill="none" stroke="black" points="1533,-1743.5 1533,-1768.5 1879,-1768.5 1879,-1743.5 1533,-1743.5"/>
-<text text-anchor="start" x="1538" y="-1753.3" font-family="Helvetica,sans-Serif" font-size="14.00">caller_workflow</text>
-<text text-anchor="start" x="1645" y="-1753.3" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR]</text>
-<text text-anchor="start" x="1728" y="-1753.3" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
-<polygon fill="none" stroke="black" points="1533,-1718.5 1533,-1743.5 1879,-1743.5 1879,-1718.5 1533,-1718.5"/>
-<text text-anchor="start" x="1538" y="-1728.3" font-family="Helvetica,sans-Serif" font-size="14.00">github_actions_id</text>
-<text text-anchor="start" x="1659" y="-1728.3" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR]</text>
-<text text-anchor="start" x="1742" y="-1728.3" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
-<polygon fill="none" stroke="black" points="1533,-1693.5 1533,-1718.5 1879,-1718.5 1879,-1693.5 1533,-1693.5"/>
-<text text-anchor="start" x="1538" y="-1703.3" font-family="Helvetica,sans-Serif" font-size="14.00">github_actions_version</text>
-<text text-anchor="start" x="1698" y="-1703.3" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR]</text>
-<text text-anchor="start" x="1781" y="-1703.3" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
-<polygon fill="none" stroke="black" points="1533,-1668.5 1533,-1693.5 1879,-1693.5 1879,-1668.5 1533,-1668.5"/>
-<text text-anchor="start" x="1538" y="-1678.3" font-family="Helvetica,sans-Serif" font-size="14.00">vulnerability_urls</text>
-<text text-anchor="start" x="1658" y="-1678.3" font-family="Helvetica,sans-Serif" font-size="14.00"> [JSON]</text>
-<text text-anchor="start" x="1709" y="-1678.3" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<polygon fill="none" stroke="black" points="1481.16,-1953 1481.16,-1982.2 1791.5,-1982.2 1791.5,-1953 1481.16,-1953"/>
+<text text-anchor="start" x="1489.61" y="-1963.8" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="16.00">_github_actions_vulnerabilities_check</text>
+<polygon fill="none" stroke="black" points="1481.16,-1926.2 1481.16,-1953 1791.5,-1953 1791.5,-1926.2 1481.16,-1926.2"/>
+<text text-anchor="start" x="1486.16" y="-1936.4" font-family="Helvetica,sans-Serif" text-decoration="underline" font-size="14.00">id</text>
+<text text-anchor="start" x="1497.05" y="-1936.4" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="1500.94" y="-1936.4" font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
+<text text-anchor="start" x="1574.84" y="-1936.4" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<polygon fill="none" stroke="black" points="1481.16,-1899.4 1481.16,-1926.2 1791.5,-1926.2 1791.5,-1899.4 1481.16,-1899.4"/>
+<text text-anchor="start" x="1486.16" y="-1909.6" font-family="Helvetica,sans-Serif" font-size="14.00">caller_workflow</text>
+<text text-anchor="start" x="1581.85" y="-1909.6" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="1585.74" y="-1909.6" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR]</text>
+<text text-anchor="start" x="1665.87" y="-1909.6" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<polygon fill="none" stroke="black" points="1481.16,-1872.6 1481.16,-1899.4 1791.5,-1899.4 1791.5,-1872.6 1481.16,-1872.6"/>
+<text text-anchor="start" x="1486.16" y="-1882.8" font-family="Helvetica,sans-Serif" font-size="14.00">github_actions_id</text>
+<text text-anchor="start" x="1595.13" y="-1882.8" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="1599.02" y="-1882.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR]</text>
+<text text-anchor="start" x="1679.14" y="-1882.8" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<polygon fill="none" stroke="black" points="1481.16,-1845.8 1481.16,-1872.6 1791.5,-1872.6 1791.5,-1845.8 1481.16,-1845.8"/>
+<text text-anchor="start" x="1486.16" y="-1856" font-family="Helvetica,sans-Serif" font-size="14.00">github_actions_version</text>
+<text text-anchor="start" x="1629.36" y="-1856" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="1633.25" y="-1856" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR]</text>
+<text text-anchor="start" x="1713.38" y="-1856" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<polygon fill="none" stroke="black" points="1481.16,-1819 1481.16,-1845.8 1791.5,-1845.8 1791.5,-1819 1481.16,-1819"/>
+<text text-anchor="start" x="1486.16" y="-1829.2" font-family="Helvetica,sans-Serif" font-size="14.00">vulnerability_urls</text>
+<text text-anchor="start" x="1590.42" y="-1829.2" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="1594.31" y="-1829.2" font-family="Helvetica,sans-Serif" font-size="14.00"> [JSON]</text>
+<text text-anchor="start" x="1643.32" y="-1829.2" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
 </g>
 <!-- _check_facts&#45;&#45;_github_actions_vulnerabilities_check -->
 <g id="edge9" class="edge">
 <title>_check_facts&#45;&#45;_github_actions_vulnerabilities_check</title>
-<path fill="none" stroke="#7f7f7f" stroke-dasharray="5,2" d="M1451.17,-1646.66C1475.11,-1655.98 1500.24,-1665.77 1525,-1675.41"/>
-<text text-anchor="start" x="1515" y="-1664.21" font-family="Times,serif" font-size="14.00">1</text>
-<text text-anchor="start" x="1451.17" y="-1635.46" font-family="Times,serif" font-size="14.00">1</text>
+<path fill="none" stroke="#7f7f7f" stroke-dasharray="5,2" d="M1391.8,-1796.63C1418.17,-1807.89 1446.05,-1819.79 1473.17,-1831.37"/>
+<text text-anchor="start" x="1466.17" y="-1818.77" font-family="Times,serif" font-size="14.00">1</text>
+<text text-anchor="start" x="1391.8" y="-1784.03" font-family="Times,serif" font-size="14.00">1</text>
 </g>
 <!-- _provenance_available_check -->
 <g id="node12" class="node">
 <title>_provenance_available_check</title>
-<polygon fill="none" stroke="black" points="1570,-1614.5 1570,-1642.5 1842,-1642.5 1842,-1614.5 1570,-1614.5"/>
-<text text-anchor="start" x="1575" y="-1625.7" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="16.00">_provenance_available_check</text>
-<polygon fill="none" stroke="black" points="1570,-1589.5 1570,-1614.5 1842,-1614.5 1842,-1589.5 1570,-1589.5"/>
-<text text-anchor="start" x="1575" y="-1599.3" font-family="Helvetica,sans-Serif" text-decoration="underline" font-size="14.00">id</text>
-<text text-anchor="start" x="1588" y="-1599.3" font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
-<text text-anchor="start" x="1665" y="-1599.3" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
-<polygon fill="none" stroke="black" points="1570,-1564.5 1570,-1589.5 1842,-1589.5 1842,-1564.5 1570,-1564.5"/>
-<text text-anchor="start" x="1575" y="-1574.3" font-family="Helvetica,sans-Serif" font-size="14.00">asset_name</text>
-<text text-anchor="start" x="1658" y="-1574.3" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR]</text>
-<polygon fill="none" stroke="black" points="1570,-1539.5 1570,-1564.5 1842,-1564.5 1842,-1539.5 1570,-1539.5"/>
-<text text-anchor="start" x="1575" y="-1549.3" font-family="Helvetica,sans-Serif" font-size="14.00">asset_url</text>
-<text text-anchor="start" x="1638" y="-1549.3" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR]</text>
+<polygon fill="none" stroke="black" points="1516.59,-1764.2 1516.59,-1793.4 1756.07,-1793.4 1756.07,-1764.2 1516.59,-1764.2"/>
+<text text-anchor="start" x="1521.59" y="-1775" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="16.00">_provenance_available_check</text>
+<polygon fill="none" stroke="black" points="1516.59,-1737.4 1516.59,-1764.2 1756.07,-1764.2 1756.07,-1737.4 1516.59,-1737.4"/>
+<text text-anchor="start" x="1521.59" y="-1747.6" font-family="Helvetica,sans-Serif" text-decoration="underline" font-size="14.00">id</text>
+<text text-anchor="start" x="1532.49" y="-1747.6" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="1536.38" y="-1747.6" font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
+<text text-anchor="start" x="1610.27" y="-1747.6" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<polygon fill="none" stroke="black" points="1516.59,-1710.6 1516.59,-1737.4 1756.07,-1737.4 1756.07,-1710.6 1516.59,-1710.6"/>
+<text text-anchor="start" x="1521.59" y="-1720.8" font-family="Helvetica,sans-Serif" font-size="14.00">asset_name</text>
+<text text-anchor="start" x="1597.86" y="-1720.8" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="1601.75" y="-1720.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR]</text>
+<polygon fill="none" stroke="black" points="1516.59,-1683.8 1516.59,-1710.6 1756.07,-1710.6 1756.07,-1683.8 1516.59,-1683.8"/>
+<text text-anchor="start" x="1521.59" y="-1694" font-family="Helvetica,sans-Serif" font-size="14.00">asset_url</text>
+<text text-anchor="start" x="1578.4" y="-1694" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="1582.29" y="-1694" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR]</text>
 </g>
 <!-- _check_facts&#45;&#45;_provenance_available_check -->
 <g id="edge10" class="edge">
 <title>_check_facts&#45;&#45;_provenance_available_check</title>
-<path fill="none" stroke="#7f7f7f" stroke-dasharray="5,2" d="M1451.17,-1591.5C1487.19,-1591.5 1525.91,-1591.5 1561.99,-1591.5"/>
-<text text-anchor="start" x="1551.99" y="-1580.3" font-family="Times,serif" font-size="14.00">1</text>
-<text text-anchor="start" x="1451.17" y="-1580.3" font-family="Times,serif" font-size="14.00">1</text>
+<path fill="none" stroke="#7f7f7f" stroke-dasharray="5,2" d="M1391.8,-1738.6C1429.87,-1738.6 1471.08,-1738.6 1508.59,-1738.6"/>
+<text text-anchor="start" x="1501.59" y="-1726" font-family="Times,serif" font-size="14.00">1</text>
+<text text-anchor="start" x="1391.8" y="-1726" font-family="Times,serif" font-size="14.00">1</text>
 </g>
 <!-- _provenance_derived_commit_check -->
 <g id="node13" class="node">
 <title>_provenance_derived_commit_check</title>
-<polygon fill="none" stroke="black" points="1539,-1485.5 1539,-1513.5 1874,-1513.5 1874,-1485.5 1539,-1485.5"/>
-<text text-anchor="start" x="1544" y="-1496.7" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="16.00">_provenance_derived_commit_check</text>
-<polygon fill="none" stroke="black" points="1539,-1460.5 1539,-1485.5 1874,-1485.5 1874,-1460.5 1539,-1460.5"/>
-<text text-anchor="start" x="1544" y="-1470.3" font-family="Helvetica,sans-Serif" text-decoration="underline" font-size="14.00">id</text>
-<text text-anchor="start" x="1557" y="-1470.3" font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
-<text text-anchor="start" x="1634" y="-1470.3" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
-<polygon fill="none" stroke="black" points="1539,-1435.5 1539,-1460.5 1874,-1460.5 1874,-1435.5 1539,-1435.5"/>
-<text text-anchor="start" x="1544" y="-1445.3" font-family="Helvetica,sans-Serif" font-size="14.00">commit_info</text>
-<text text-anchor="start" x="1629" y="-1445.3" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR]</text>
+<polygon fill="none" stroke="black" points="1489.03,-1628.8 1489.03,-1658 1783.62,-1658 1783.62,-1628.8 1489.03,-1628.8"/>
+<text text-anchor="start" x="1494.03" y="-1639.6" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="16.00">_provenance_derived_commit_check</text>
+<polygon fill="none" stroke="black" points="1489.03,-1602 1489.03,-1628.8 1783.62,-1628.8 1783.62,-1602 1489.03,-1602"/>
+<text text-anchor="start" x="1494.03" y="-1612.2" font-family="Helvetica,sans-Serif" text-decoration="underline" font-size="14.00">id</text>
+<text text-anchor="start" x="1504.93" y="-1612.2" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="1508.82" y="-1612.2" font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
+<text text-anchor="start" x="1582.72" y="-1612.2" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<polygon fill="none" stroke="black" points="1489.03,-1575.2 1489.03,-1602 1783.62,-1602 1783.62,-1575.2 1489.03,-1575.2"/>
+<text text-anchor="start" x="1494.03" y="-1585.4" font-family="Helvetica,sans-Serif" font-size="14.00">commit_info</text>
+<text text-anchor="start" x="1569.5" y="-1585.4" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="1573.39" y="-1585.4" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR]</text>
 </g>
 <!-- _check_facts&#45;&#45;_provenance_derived_commit_check -->
 <g id="edge11" class="edge">
 <title>_check_facts&#45;&#45;_provenance_derived_commit_check</title>
-<path fill="none" stroke="#7f7f7f" stroke-dasharray="5,2" d="M1451.1,-1549.14C1475.41,-1541.9 1500.43,-1534.47 1524,-1527.5 1534.99,-1524.25 1546.36,-1520.9 1557.8,-1517.54"/>
-<text text-anchor="start" x="1547.8" y="-1521.34" font-family="Times,serif" font-size="14.00">1</text>
-<text text-anchor="start" x="1451.1" y="-1537.94" font-family="Times,serif" font-size="14.00">1</text>
+<path fill="none" stroke="#7f7f7f" stroke-dasharray="5,2" d="M1391.94,-1694.19C1416.25,-1686.3 1441.36,-1678.19 1464.98,-1670.6 1473.84,-1667.75 1482.97,-1664.83 1492.17,-1661.9"/>
+<text text-anchor="start" x="1485.17" y="-1666.1" font-family="Times,serif" font-size="14.00">1</text>
+<text text-anchor="start" x="1391.94" y="-1681.59" font-family="Times,serif" font-size="14.00">1</text>
 </g>
 <!-- _provenance_derived_repo_check -->
 <g id="node14" class="node">
 <title>_provenance_derived_repo_check</title>
-<polygon fill="none" stroke="black" points="1552,-1381.5 1552,-1409.5 1861,-1409.5 1861,-1381.5 1552,-1381.5"/>
-<text text-anchor="start" x="1557" y="-1392.7" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="16.00">_provenance_derived_repo_check</text>
-<polygon fill="none" stroke="black" points="1552,-1356.5 1552,-1381.5 1861,-1381.5 1861,-1356.5 1552,-1356.5"/>
-<text text-anchor="start" x="1557" y="-1366.3" font-family="Helvetica,sans-Serif" text-decoration="underline" font-size="14.00">id</text>
-<text text-anchor="start" x="1570" y="-1366.3" font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
-<text text-anchor="start" x="1647" y="-1366.3" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
-<polygon fill="none" stroke="black" points="1552,-1331.5 1552,-1356.5 1861,-1356.5 1861,-1331.5 1552,-1331.5"/>
-<text text-anchor="start" x="1557" y="-1341.3" font-family="Helvetica,sans-Serif" font-size="14.00">repository_info</text>
-<text text-anchor="start" x="1660" y="-1341.3" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR]</text>
+<polygon fill="none" stroke="black" points="1500.15,-1519.8 1500.15,-1549 1772.51,-1549 1772.51,-1519.8 1500.15,-1519.8"/>
+<text text-anchor="start" x="1505.15" y="-1530.6" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="16.00">_provenance_derived_repo_check</text>
+<polygon fill="none" stroke="black" points="1500.15,-1493 1500.15,-1519.8 1772.51,-1519.8 1772.51,-1493 1500.15,-1493"/>
+<text text-anchor="start" x="1505.15" y="-1503.2" font-family="Helvetica,sans-Serif" text-decoration="underline" font-size="14.00">id</text>
+<text text-anchor="start" x="1516.04" y="-1503.2" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="1519.93" y="-1503.2" font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
+<text text-anchor="start" x="1593.83" y="-1503.2" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<polygon fill="none" stroke="black" points="1500.15,-1466.2 1500.15,-1493 1772.51,-1493 1772.51,-1466.2 1500.15,-1466.2"/>
+<text text-anchor="start" x="1505.15" y="-1476.4" font-family="Helvetica,sans-Serif" font-size="14.00">repository_info</text>
+<text text-anchor="start" x="1596.98" y="-1476.4" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="1600.86" y="-1476.4" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR]</text>
 </g>
 <!-- _check_facts&#45;&#45;_provenance_derived_repo_check -->
 <g id="edge12" class="edge">
 <title>_check_facts&#45;&#45;_provenance_derived_repo_check</title>
-<path fill="none" stroke="#7f7f7f" stroke-dasharray="5,2" d="M1395.73,-1510.99C1432.93,-1479.73 1478.33,-1445.9 1524,-1422.5 1530.26,-1419.29 1536.74,-1416.26 1543.36,-1413.39"/>
-<text text-anchor="start" x="1533.36" y="-1402.19" font-family="Times,serif" font-size="14.00">1</text>
-<text text-anchor="start" x="1385.73" y="-1499.79" font-family="Times,serif" font-size="14.00">1</text>
+<path fill="none" stroke="#7f7f7f" stroke-dasharray="5,2" d="M1342.07,-1653.02C1377.78,-1621.18 1421.09,-1586.92 1464.98,-1562.6 1473.68,-1557.78 1482.87,-1553.31 1492.28,-1549.17"/>
+<text text-anchor="start" x="1485.28" y="-1536.57" font-family="Times,serif" font-size="14.00">1</text>
+<text text-anchor="start" x="1335.07" y="-1640.42" font-family="Times,serif" font-size="14.00">1</text>
 </g>
 <!-- _provenance_verified_check -->
 <g id="node15" class="node">
 <title>_provenance_verified_check</title>
-<polygon fill="none" stroke="black" points="1576,-1276.5 1576,-1304.5 1836,-1304.5 1836,-1276.5 1576,-1276.5"/>
-<text text-anchor="start" x="1581" y="-1287.7" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="16.00">_provenance_verified_check</text>
-<polygon fill="none" stroke="black" points="1576,-1251.5 1576,-1276.5 1836,-1276.5 1836,-1251.5 1576,-1251.5"/>
-<text text-anchor="start" x="1581" y="-1261.3" font-family="Helvetica,sans-Serif" text-decoration="underline" font-size="14.00">id</text>
-<text text-anchor="start" x="1594" y="-1261.3" font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
-<text text-anchor="start" x="1671" y="-1261.3" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
-<polygon fill="none" stroke="black" points="1576,-1226.5 1576,-1251.5 1836,-1251.5 1836,-1226.5 1576,-1226.5"/>
-<text text-anchor="start" x="1581" y="-1236.3" font-family="Helvetica,sans-Serif" font-size="14.00">build_level</text>
-<text text-anchor="start" x="1655" y="-1236.3" font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
-<text text-anchor="start" x="1732" y="-1236.3" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
-<polygon fill="none" stroke="black" points="1576,-1201.5 1576,-1226.5 1836,-1226.5 1836,-1201.5 1576,-1201.5"/>
-<text text-anchor="start" x="1581" y="-1211.3" font-family="Helvetica,sans-Serif" font-size="14.00">build_type</text>
-<text text-anchor="start" x="1654" y="-1211.3" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR]</text>
+<polygon fill="none" stroke="black" points="1521.93,-1411.2 1521.93,-1440.4 1750.72,-1440.4 1750.72,-1411.2 1521.93,-1411.2"/>
+<text text-anchor="start" x="1526.93" y="-1422" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="16.00">_provenance_verified_check</text>
+<polygon fill="none" stroke="black" points="1521.93,-1384.4 1521.93,-1411.2 1750.72,-1411.2 1750.72,-1384.4 1521.93,-1384.4"/>
+<text text-anchor="start" x="1526.93" y="-1394.6" font-family="Helvetica,sans-Serif" text-decoration="underline" font-size="14.00">id</text>
+<text text-anchor="start" x="1537.83" y="-1394.6" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="1541.72" y="-1394.6" font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
+<text text-anchor="start" x="1615.62" y="-1394.6" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<polygon fill="none" stroke="black" points="1521.93,-1357.6 1521.93,-1384.4 1750.72,-1384.4 1750.72,-1357.6 1521.93,-1357.6"/>
+<text text-anchor="start" x="1526.93" y="-1367.8" font-family="Helvetica,sans-Serif" font-size="14.00">build_level</text>
+<text text-anchor="start" x="1593.09" y="-1367.8" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="1596.98" y="-1367.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
+<text text-anchor="start" x="1670.88" y="-1367.8" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<polygon fill="none" stroke="black" points="1521.93,-1330.8 1521.93,-1357.6 1750.72,-1357.6 1750.72,-1330.8 1521.93,-1330.8"/>
+<text text-anchor="start" x="1526.93" y="-1341" font-family="Helvetica,sans-Serif" font-size="14.00">build_type</text>
+<text text-anchor="start" x="1590.76" y="-1341" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="1594.65" y="-1341" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR]</text>
 </g>
 <!-- _check_facts&#45;&#45;_provenance_verified_check -->
 <g id="edge13" class="edge">
 <title>_check_facts&#45;&#45;_provenance_verified_check</title>
-<path fill="none" stroke="#7f7f7f" stroke-dasharray="5,2" d="M1355.53,-1510.87C1393.71,-1450.42 1453.11,-1369.62 1524,-1318.5 1537.4,-1308.83 1552.39,-1300.47 1567.85,-1293.28"/>
-<text text-anchor="start" x="1557.85" y="-1282.08" font-family="Times,serif" font-size="14.00">1</text>
-<text text-anchor="start" x="1345.53" y="-1499.67" font-family="Times,serif" font-size="14.00">1</text>
+<path fill="none" stroke="#7f7f7f" stroke-dasharray="5,2" d="M1301.2,-1653.09C1338.08,-1590.53 1395.35,-1507.51 1464.98,-1453.6 1479.84,-1442.1 1496.89,-1432.29 1514.35,-1424"/>
+<text text-anchor="start" x="1507.35" y="-1411.4" font-family="Times,serif" font-size="14.00">1</text>
+<text text-anchor="start" x="1294.2" y="-1640.49" font-family="Times,serif" font-size="14.00">1</text>
 </g>
 <!-- _provenance_witness_l1_check -->
 <g id="node16" class="node">
 <title>_provenance_witness_l1_check</title>
-<polygon fill="none" stroke="black" points="1558,-1147.5 1558,-1175.5 1854,-1175.5 1854,-1147.5 1558,-1147.5"/>
-<text text-anchor="start" x="1568" y="-1158.7" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="16.00">_provenance_witness_l1_check</text>
-<polygon fill="none" stroke="black" points="1558,-1122.5 1558,-1147.5 1854,-1147.5 1854,-1122.5 1558,-1122.5"/>
-<text text-anchor="start" x="1563" y="-1132.3" font-family="Helvetica,sans-Serif" text-decoration="underline" font-size="14.00">id</text>
-<text text-anchor="start" x="1576" y="-1132.3" font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
-<text text-anchor="start" x="1653" y="-1132.3" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
-<polygon fill="none" stroke="black" points="1558,-1097.5 1558,-1122.5 1854,-1122.5 1854,-1097.5 1558,-1097.5"/>
-<text text-anchor="start" x="1563" y="-1107.3" font-family="Helvetica,sans-Serif" font-size="14.00">artifact_url</text>
-<text text-anchor="start" x="1639" y="-1107.3" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR]</text>
-<polygon fill="none" stroke="black" points="1558,-1072.5 1558,-1097.5 1854,-1097.5 1854,-1072.5 1558,-1072.5"/>
-<text text-anchor="start" x="1563" y="-1082.3" font-family="Helvetica,sans-Serif" font-size="14.00">provenance_name</text>
-<text text-anchor="start" x="1690" y="-1082.3" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR]</text>
-<text text-anchor="start" x="1773" y="-1082.3" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
-<polygon fill="none" stroke="black" points="1558,-1047.5 1558,-1072.5 1854,-1072.5 1854,-1047.5 1558,-1047.5"/>
-<text text-anchor="start" x="1563" y="-1057.3" font-family="Helvetica,sans-Serif" font-size="14.00">provenance_url</text>
-<text text-anchor="start" x="1670" y="-1057.3" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR]</text>
+<polygon fill="none" stroke="black" points="1494.77,-1275.6 1494.77,-1304.8 1777.88,-1304.8 1777.88,-1275.6 1494.77,-1275.6"/>
+<text text-anchor="start" x="1514.93" y="-1286.4" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="16.00">_provenance_witness_l1_check</text>
+<polygon fill="none" stroke="black" points="1494.77,-1248.8 1494.77,-1275.6 1777.88,-1275.6 1777.88,-1248.8 1494.77,-1248.8"/>
+<text text-anchor="start" x="1499.77" y="-1259" font-family="Helvetica,sans-Serif" text-decoration="underline" font-size="14.00">id</text>
+<text text-anchor="start" x="1510.67" y="-1259" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="1514.56" y="-1259" font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
+<text text-anchor="start" x="1588.46" y="-1259" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<polygon fill="none" stroke="black" points="1494.77,-1222 1494.77,-1248.8 1777.88,-1248.8 1777.88,-1222 1494.77,-1222"/>
+<text text-anchor="start" x="1499.77" y="-1232.2" font-family="Helvetica,sans-Serif" font-size="14.00">artifact_url</text>
+<text text-anchor="start" x="1565.13" y="-1232.2" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="1569.02" y="-1232.2" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR]</text>
+<polygon fill="none" stroke="black" points="1494.77,-1195.2 1494.77,-1222 1777.88,-1222 1777.88,-1195.2 1494.77,-1195.2"/>
+<text text-anchor="start" x="1499.77" y="-1205.4" font-family="Helvetica,sans-Serif" font-size="14.00">provenance_name</text>
+<text text-anchor="start" x="1615.74" y="-1205.4" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="1619.63" y="-1205.4" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR]</text>
+<text text-anchor="start" x="1699.76" y="-1205.4" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<polygon fill="none" stroke="black" points="1494.77,-1168.4 1494.77,-1195.2 1777.88,-1195.2 1777.88,-1168.4 1494.77,-1168.4"/>
+<text text-anchor="start" x="1499.77" y="-1178.6" font-family="Helvetica,sans-Serif" font-size="14.00">provenance_url</text>
+<text text-anchor="start" x="1596.28" y="-1178.6" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="1600.17" y="-1178.6" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR]</text>
 </g>
 <!-- _check_facts&#45;&#45;_provenance_witness_l1_check -->
 <g id="edge14" class="edge">
 <title>_check_facts&#45;&#45;_provenance_witness_l1_check</title>
-<path fill="none" stroke="#7f7f7f" stroke-dasharray="5,2" d="M1334.42,-1510.75C1365.68,-1421.47 1427.22,-1278.54 1524,-1189.5 1531.93,-1182.2 1540.65,-1175.52 1549.85,-1169.41"/>
-<text text-anchor="start" x="1539.85" y="-1158.21" font-family="Times,serif" font-size="14.00">1</text>
-<text text-anchor="start" x="1324.42" y="-1499.55" font-family="Times,serif" font-size="14.00">1</text>
+<path fill="none" stroke="#7f7f7f" stroke-dasharray="5,2" d="M1279.83,-1653.04C1309.67,-1560.05 1368.81,-1412.14 1464.98,-1317.6 1471.76,-1310.94 1479.18,-1304.75 1487.02,-1299.01"/>
+<text text-anchor="start" x="1480.02" y="-1286.41" font-family="Times,serif" font-size="14.00">1</text>
+<text text-anchor="start" x="1272.83" y="-1640.44" font-family="Times,serif" font-size="14.00">1</text>
 </g>
 <!-- _scm_authenticity_check -->
 <g id="node17" class="node">
 <title>_scm_authenticity_check</title>
-<polygon fill="none" stroke="black" points="1588,-992.5 1588,-1020.5 1824,-1020.5 1824,-992.5 1588,-992.5"/>
-<text text-anchor="start" x="1595.5" y="-1003.7" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="16.00">_scm_authenticity_check</text>
-<polygon fill="none" stroke="black" points="1588,-967.5 1588,-992.5 1824,-992.5 1824,-967.5 1588,-967.5"/>
-<text text-anchor="start" x="1593" y="-977.3" font-family="Helvetica,sans-Serif" text-decoration="underline" font-size="14.00">id</text>
-<text text-anchor="start" x="1606" y="-977.3" font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
-<text text-anchor="start" x="1683" y="-977.3" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
-<polygon fill="none" stroke="black" points="1588,-942.5 1588,-967.5 1824,-967.5 1824,-942.5 1588,-942.5"/>
-<text text-anchor="start" x="1593" y="-952.3" font-family="Helvetica,sans-Serif" font-size="14.00">build_tool</text>
-<text text-anchor="start" x="1660" y="-952.3" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR]</text>
-<text text-anchor="start" x="1743" y="-952.3" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
-<polygon fill="none" stroke="black" points="1588,-917.5 1588,-942.5 1824,-942.5 1824,-917.5 1588,-917.5"/>
-<text text-anchor="start" x="1593" y="-927.3" font-family="Helvetica,sans-Serif" font-size="14.00">fork_count</text>
-<text text-anchor="start" x="1667" y="-927.3" font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
-<polygon fill="none" stroke="black" points="1588,-892.5 1588,-917.5 1824,-917.5 1824,-892.5 1588,-892.5"/>
-<text text-anchor="start" x="1593" y="-902.3" font-family="Helvetica,sans-Serif" font-size="14.00">reason</text>
-<text text-anchor="start" x="1640" y="-902.3" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR]</text>
-<text text-anchor="start" x="1723" y="-902.3" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
-<polygon fill="none" stroke="black" points="1588,-867.5 1588,-892.5 1824,-892.5 1824,-867.5 1588,-867.5"/>
-<text text-anchor="start" x="1593" y="-877.3" font-family="Helvetica,sans-Serif" font-size="14.00">repo_link</text>
-<text text-anchor="start" x="1656" y="-877.3" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR]</text>
-<polygon fill="none" stroke="black" points="1588,-842.5 1588,-867.5 1824,-867.5 1824,-842.5 1588,-842.5"/>
-<text text-anchor="start" x="1593" y="-852.3" font-family="Helvetica,sans-Serif" font-size="14.00">stars_count</text>
-<text text-anchor="start" x="1674" y="-852.3" font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
-<polygon fill="none" stroke="black" points="1588,-817.5 1588,-842.5 1824,-842.5 1824,-817.5 1588,-817.5"/>
-<text text-anchor="start" x="1593" y="-827.3" font-family="Helvetica,sans-Serif" font-size="14.00">status</text>
-<text text-anchor="start" x="1636" y="-827.3" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR]</text>
-<text text-anchor="start" x="1719" y="-827.3" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<polygon fill="none" stroke="black" points="1522.79,-1112.8 1522.79,-1142 1749.87,-1142 1749.87,-1112.8 1522.79,-1112.8"/>
+<text text-anchor="start" x="1539.39" y="-1123.6" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="16.00">_scm_authenticity_check</text>
+<polygon fill="none" stroke="black" points="1522.79,-1086 1522.79,-1112.8 1749.87,-1112.8 1749.87,-1086 1522.79,-1086"/>
+<text text-anchor="start" x="1527.79" y="-1096.2" font-family="Helvetica,sans-Serif" text-decoration="underline" font-size="14.00">id</text>
+<text text-anchor="start" x="1538.69" y="-1096.2" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="1542.58" y="-1096.2" font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
+<text text-anchor="start" x="1616.47" y="-1096.2" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<polygon fill="none" stroke="black" points="1522.79,-1059.2 1522.79,-1086 1749.87,-1086 1749.87,-1059.2 1522.79,-1059.2"/>
+<text text-anchor="start" x="1527.79" y="-1069.4" font-family="Helvetica,sans-Serif" font-size="14.00">build_tool</text>
+<text text-anchor="start" x="1587.73" y="-1069.4" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="1591.62" y="-1069.4" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR]</text>
+<text text-anchor="start" x="1671.74" y="-1069.4" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<polygon fill="none" stroke="black" points="1522.79,-1032.4 1522.79,-1059.2 1749.87,-1059.2 1749.87,-1032.4 1522.79,-1032.4"/>
+<text text-anchor="start" x="1527.79" y="-1042.6" font-family="Helvetica,sans-Serif" font-size="14.00">fork_count</text>
+<text text-anchor="start" x="1593.16" y="-1042.6" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="1597.05" y="-1042.6" font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
+<polygon fill="none" stroke="black" points="1522.79,-1005.6 1522.79,-1032.4 1749.87,-1032.4 1749.87,-1005.6 1522.79,-1005.6"/>
+<text text-anchor="start" x="1527.79" y="-1015.8" font-family="Helvetica,sans-Serif" font-size="14.00">reason</text>
+<text text-anchor="start" x="1570.6" y="-1015.8" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="1574.49" y="-1015.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR]</text>
+<text text-anchor="start" x="1654.61" y="-1015.8" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<polygon fill="none" stroke="black" points="1522.79,-978.8 1522.79,-1005.6 1749.87,-1005.6 1749.87,-978.8 1522.79,-978.8"/>
+<text text-anchor="start" x="1527.79" y="-989" font-family="Helvetica,sans-Serif" font-size="14.00">repo_link</text>
+<text text-anchor="start" x="1584.6" y="-989" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="1588.49" y="-989" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR]</text>
+<polygon fill="none" stroke="black" points="1522.79,-952 1522.79,-978.8 1749.87,-978.8 1749.87,-952 1522.79,-952"/>
+<text text-anchor="start" x="1527.79" y="-962.2" font-family="Helvetica,sans-Serif" font-size="14.00">stars_count</text>
+<text text-anchor="start" x="1600.16" y="-962.2" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="1604.05" y="-962.2" font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
+<polygon fill="none" stroke="black" points="1522.79,-925.2 1522.79,-952 1749.87,-952 1749.87,-925.2 1522.79,-925.2"/>
+<text text-anchor="start" x="1527.79" y="-935.4" font-family="Helvetica,sans-Serif" font-size="14.00">status</text>
+<text text-anchor="start" x="1565.14" y="-935.4" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="1569.03" y="-935.4" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR]</text>
+<text text-anchor="start" x="1649.16" y="-935.4" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
 </g>
 <!-- _check_facts&#45;&#45;_scm_authenticity_check -->
 <g id="edge15" class="edge">
 <title>_check_facts&#45;&#45;_scm_authenticity_check</title>
-<path fill="none" stroke="#7f7f7f" stroke-dasharray="5,2" d="M1323.94,-1510.56C1348.11,-1394.35 1406.15,-1178.41 1524,-1034.5 1539.57,-1015.49 1559.14,-998.64 1579.62,-984.1"/>
-<text text-anchor="start" x="1569.62" y="-972.9" font-family="Times,serif" font-size="14.00">1</text>
-<text text-anchor="start" x="1313.94" y="-1499.36" font-family="Times,serif" font-size="14.00">1</text>
+<path fill="none" stroke="#7f7f7f" stroke-dasharray="5,2" d="M1269.92,-1653.02C1293.21,-1532.09 1349.23,-1308.87 1464.98,-1155.6 1478.9,-1137.17 1496.4,-1120.37 1514.84,-1105.54"/>
+<text text-anchor="start" x="1507.84" y="-1092.94" font-family="Times,serif" font-size="14.00">1</text>
+<text text-anchor="start" x="1262.92" y="-1640.42" font-family="Times,serif" font-size="14.00">1</text>
 </g>
 <!-- _trusted_builder_check -->
 <g id="node18" class="node">
 <title>_trusted_builder_check</title>
-<polygon fill="none" stroke="black" points="1565,-763.5 1565,-791.5 1848,-791.5 1848,-763.5 1565,-763.5"/>
-<text text-anchor="start" x="1603.5" y="-774.7" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="16.00">_trusted_builder_check</text>
-<polygon fill="none" stroke="black" points="1565,-738.5 1565,-763.5 1848,-763.5 1848,-738.5 1565,-738.5"/>
-<text text-anchor="start" x="1570" y="-748.3" font-family="Helvetica,sans-Serif" text-decoration="underline" font-size="14.00">id</text>
-<text text-anchor="start" x="1583" y="-748.3" font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
-<text text-anchor="start" x="1660" y="-748.3" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
-<polygon fill="none" stroke="black" points="1565,-713.5 1565,-738.5 1848,-738.5 1848,-713.5 1565,-713.5"/>
-<text text-anchor="start" x="1570" y="-723.3" font-family="Helvetica,sans-Serif" font-size="14.00">build_tool_name</text>
-<text text-anchor="start" x="1683" y="-723.3" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR]</text>
-<text text-anchor="start" x="1766" y="-723.3" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
-<polygon fill="none" stroke="black" points="1565,-688.5 1565,-713.5 1848,-713.5 1848,-688.5 1565,-688.5"/>
-<text text-anchor="start" x="1570" y="-698.3" font-family="Helvetica,sans-Serif" font-size="14.00">build_trigger</text>
-<text text-anchor="start" x="1659" y="-698.3" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR]</text>
-<polygon fill="none" stroke="black" points="1565,-663.5 1565,-688.5 1848,-688.5 1848,-663.5 1565,-663.5"/>
-<text text-anchor="start" x="1570" y="-673.3" font-family="Helvetica,sans-Serif" font-size="14.00">ci_service_name</text>
-<text text-anchor="start" x="1684" y="-673.3" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR]</text>
-<text text-anchor="start" x="1767" y="-673.3" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<polygon fill="none" stroke="black" points="1500.23,-869.6 1500.23,-898.8 1772.42,-898.8 1772.42,-869.6 1500.23,-869.6"/>
+<text text-anchor="start" x="1546.52" y="-880.4" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="16.00">_trusted_builder_check</text>
+<polygon fill="none" stroke="black" points="1500.23,-842.8 1500.23,-869.6 1772.42,-869.6 1772.42,-842.8 1500.23,-842.8"/>
+<text text-anchor="start" x="1505.23" y="-853" font-family="Helvetica,sans-Serif" text-decoration="underline" font-size="14.00">id</text>
+<text text-anchor="start" x="1516.13" y="-853" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="1520.02" y="-853" font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
+<text text-anchor="start" x="1593.92" y="-853" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<polygon fill="none" stroke="black" points="1500.23,-816 1500.23,-842.8 1772.42,-842.8 1772.42,-816 1500.23,-816"/>
+<text text-anchor="start" x="1505.23" y="-826.2" font-family="Helvetica,sans-Serif" font-size="14.00">build_tool_name</text>
+<text text-anchor="start" x="1607.98" y="-826.2" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="1611.87" y="-826.2" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR]</text>
+<text text-anchor="start" x="1691.99" y="-826.2" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<polygon fill="none" stroke="black" points="1500.23,-789.2 1500.23,-816 1772.42,-816 1772.42,-789.2 1500.23,-789.2"/>
+<text text-anchor="start" x="1505.23" y="-799.4" font-family="Helvetica,sans-Serif" font-size="14.00">build_trigger</text>
+<text text-anchor="start" x="1582.28" y="-799.4" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="1586.17" y="-799.4" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR]</text>
+<polygon fill="none" stroke="black" points="1500.23,-762.4 1500.23,-789.2 1772.42,-789.2 1772.42,-762.4 1500.23,-762.4"/>
+<text text-anchor="start" x="1505.23" y="-772.6" font-family="Helvetica,sans-Serif" font-size="14.00">ci_service_name</text>
+<text text-anchor="start" x="1610.28" y="-772.6" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="1614.17" y="-772.6" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR]</text>
+<text text-anchor="start" x="1694.3" y="-772.6" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
 </g>
 <!-- _check_facts&#45;&#45;_trusted_builder_check -->
 <g id="edge16" class="edge">
 <title>_check_facts&#45;&#45;_trusted_builder_check</title>
-<path fill="none" stroke="#7f7f7f" stroke-dasharray="5,2" d="M1309.52,-1510.78C1313.82,-1355.46 1344.52,-1012.14 1524,-805.5 1533.31,-794.78 1544.36,-785.48 1556.34,-777.43"/>
-<text text-anchor="start" x="1546.34" y="-766.23" font-family="Times,serif" font-size="14.00">1</text>
-<text text-anchor="start" x="1299.52" y="-1499.58" font-family="Times,serif" font-size="14.00">1</text>
+<path fill="none" stroke="#7f7f7f" stroke-dasharray="5,2" d="M1268.2,-1653.06C1296.6,-1465.77 1371.51,-1027.01 1464.98,-912.6 1472.87,-902.94 1482.18,-894.34 1492.3,-886.7"/>
+<text text-anchor="start" x="1485.3" y="-874.1" font-family="Times,serif" font-size="14.00">1</text>
+<text text-anchor="start" x="1268.2" y="-1640.46" font-family="Times,serif" font-size="14.00">1</text>
 </g>
 <!-- _vcs_check -->
 <g id="node19" class="node">
 <title>_vcs_check</title>
-<polygon fill="none" stroke="black" points="1618,-609.5 1618,-637.5 1794,-637.5 1794,-609.5 1618,-609.5"/>
-<text text-anchor="start" x="1656.5" y="-620.7" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="16.00">_vcs_check</text>
-<polygon fill="none" stroke="black" points="1618,-584.5 1618,-609.5 1794,-609.5 1794,-584.5 1618,-584.5"/>
-<text text-anchor="start" x="1623" y="-594.3" font-family="Helvetica,sans-Serif" text-decoration="underline" font-size="14.00">id</text>
-<text text-anchor="start" x="1636" y="-594.3" font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
-<text text-anchor="start" x="1713" y="-594.3" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
-<polygon fill="none" stroke="black" points="1618,-559.5 1618,-584.5 1794,-584.5 1794,-559.5 1618,-559.5"/>
-<text text-anchor="start" x="1623" y="-569.3" font-family="Helvetica,sans-Serif" font-size="14.00">git_repo</text>
-<text text-anchor="start" x="1679" y="-569.3" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR]</text>
+<polygon fill="none" stroke="black" points="1550.42,-706.8 1550.42,-736 1722.23,-736 1722.23,-706.8 1550.42,-706.8"/>
+<text text-anchor="start" x="1591.4" y="-717.6" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="16.00">_vcs_check</text>
+<polygon fill="none" stroke="black" points="1550.42,-680 1550.42,-706.8 1722.23,-706.8 1722.23,-680 1550.42,-680"/>
+<text text-anchor="start" x="1555.42" y="-690.2" font-family="Helvetica,sans-Serif" text-decoration="underline" font-size="14.00">id</text>
+<text text-anchor="start" x="1566.32" y="-690.2" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="1570.21" y="-690.2" font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
+<text text-anchor="start" x="1644.11" y="-690.2" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<polygon fill="none" stroke="black" points="1550.42,-653.2 1550.42,-680 1722.23,-680 1722.23,-653.2 1550.42,-653.2"/>
+<text text-anchor="start" x="1555.42" y="-663.4" font-family="Helvetica,sans-Serif" font-size="14.00">git_repo</text>
+<text text-anchor="start" x="1606.02" y="-663.4" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="1609.91" y="-663.4" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR]</text>
 </g>
 <!-- _check_facts&#45;&#45;_vcs_check -->
 <g id="edge17" class="edge">
 <title>_check_facts&#45;&#45;_vcs_check</title>
-<path fill="none" stroke="#7f7f7f" stroke-dasharray="5,2" d="M1317.44,-1510.7C1339.1,-1306.21 1405.69,-775.58 1524,-650.5 1546.35,-626.87 1578.67,-613.75 1609.84,-606.54"/>
-<text text-anchor="start" x="1599.84" y="-595.34" font-family="Times,serif" font-size="14.00">1</text>
-<text text-anchor="start" x="1307.44" y="-1499.5" font-family="Times,serif" font-size="14.00">1</text>
+<path fill="none" stroke="#7f7f7f" stroke-dasharray="5,2" d="M1263.07,-1653.18C1282.77,-1438.39 1344.42,-883.4 1464.98,-749.6 1485.06,-727.32 1514.2,-714.02 1542.73,-706.1"/>
+<text text-anchor="start" x="1535.73" y="-693.5" font-family="Times,serif" font-size="14.00">1</text>
+<text text-anchor="start" x="1256.07" y="-1640.58" font-family="Times,serif" font-size="14.00">1</text>
 </g>
 <!-- _check_result&#45;&#45;_check_facts -->
 <g id="edge28" class="edge">
 <title>_check_result&#45;&#45;_check_facts</title>
-<path fill="none" stroke="#7f7f7f" stroke-dasharray="5,2" d="M1041.12,-1528.2C1081.37,-1537.77 1125.42,-1548.23 1165.91,-1557.85"/>
-<text text-anchor="start" x="1134.91" y="-1546.65" font-family="Times,serif" font-size="14.00">0..N</text>
-<text text-anchor="start" x="1041.12" y="-1517" font-family="Times,serif" font-size="14.00">1</text>
+<path fill="none" stroke="#7f7f7f" stroke-dasharray="5,2" d="M998.31,-1672.53C1036.87,-1682.49 1079.12,-1693.42 1117.97,-1703.46"/>
+<text text-anchor="start" x="1093.86" y="-1690.86" font-family="Times,serif" font-size="14.00">0..N</text>
+<text text-anchor="start" x="998.31" y="-1659.93" font-family="Times,serif" font-size="14.00">1</text>
 </g>
 <!-- _release_artifact -->
 <g id="node29" class="node">
 <title>_release_artifact</title>
-<polygon fill="none" stroke="black" points="1204.5,-678.5 1204.5,-706.5 1413.5,-706.5 1413.5,-678.5 1204.5,-678.5"/>
-<text text-anchor="start" x="1235" y="-689.7" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="16.00">_release_artifact</text>
-<polygon fill="none" stroke="black" points="1204.5,-653.5 1204.5,-678.5 1413.5,-678.5 1413.5,-653.5 1204.5,-653.5"/>
-<text text-anchor="start" x="1209.5" y="-663.3" font-family="Helvetica,sans-Serif" text-decoration="underline" font-size="14.00">id</text>
-<text text-anchor="start" x="1222.5" y="-663.3" font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
-<text text-anchor="start" x="1299.5" y="-663.3" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
-<polygon fill="none" stroke="black" points="1204.5,-628.5 1204.5,-653.5 1413.5,-653.5 1413.5,-628.5 1204.5,-628.5"/>
-<text text-anchor="start" x="1209.5" y="-638.3" font-family="Helvetica,sans-Serif" font-size="14.00">name</text>
-<text text-anchor="start" x="1249.5" y="-638.3" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR]</text>
-<text text-anchor="start" x="1332.5" y="-638.3" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
-<polygon fill="none" stroke="black" points="1204.5,-603.5 1204.5,-628.5 1413.5,-628.5 1413.5,-603.5 1204.5,-603.5"/>
-<text text-anchor="start" x="1209.5" y="-613.3" font-family="Helvetica,sans-Serif" font-size="14.00">provenance_id</text>
-<text text-anchor="start" x="1310.5" y="-613.3" font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
-<polygon fill="none" stroke="black" points="1204.5,-578.5 1204.5,-603.5 1413.5,-603.5 1413.5,-578.5 1204.5,-578.5"/>
-<text text-anchor="start" x="1209.5" y="-588.3" font-family="Helvetica,sans-Serif" font-size="14.00">slsa_verified</text>
-<text text-anchor="start" x="1296.5" y="-588.3" font-family="Helvetica,sans-Serif" font-size="14.00"> [BOOLEAN]</text>
+<polygon fill="none" stroke="black" points="1153.81,-772.6 1153.81,-801.8 1355.97,-801.8 1355.97,-772.6 1153.81,-772.6"/>
+<text text-anchor="start" x="1191.73" y="-783.4" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="16.00">_release_artifact</text>
+<polygon fill="none" stroke="black" points="1153.81,-745.8 1153.81,-772.6 1355.97,-772.6 1355.97,-745.8 1153.81,-745.8"/>
+<text text-anchor="start" x="1158.81" y="-756" font-family="Helvetica,sans-Serif" text-decoration="underline" font-size="14.00">id</text>
+<text text-anchor="start" x="1169.71" y="-756" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="1173.6" y="-756" font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
+<text text-anchor="start" x="1247.49" y="-756" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<polygon fill="none" stroke="black" points="1153.81,-719 1153.81,-745.8 1355.97,-745.8 1355.97,-719 1153.81,-719"/>
+<text text-anchor="start" x="1158.81" y="-729.2" font-family="Helvetica,sans-Serif" font-size="14.00">name</text>
+<text text-anchor="start" x="1193.83" y="-729.2" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="1197.72" y="-729.2" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR]</text>
+<text text-anchor="start" x="1277.85" y="-729.2" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<polygon fill="none" stroke="black" points="1153.81,-692.2 1153.81,-719 1355.97,-719 1355.97,-692.2 1153.81,-692.2"/>
+<text text-anchor="start" x="1158.81" y="-702.4" font-family="Helvetica,sans-Serif" font-size="14.00">provenance_id</text>
+<text text-anchor="start" x="1250.66" y="-702.4" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="1254.55" y="-702.4" font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
+<polygon fill="none" stroke="black" points="1153.81,-665.4 1153.81,-692.2 1355.97,-692.2 1355.97,-665.4 1153.81,-665.4"/>
+<text text-anchor="start" x="1158.81" y="-675.6" font-family="Helvetica,sans-Serif" font-size="14.00">slsa_verified</text>
+<text text-anchor="start" x="1236.62" y="-675.6" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="1240.51" y="-675.6" font-family="Helvetica,sans-Serif" font-size="14.00"> [BOOLEAN]</text>
 </g>
 <!-- _provenance&#45;&#45;_release_artifact -->
 <g id="edge30" class="edge">
 <title>_provenance&#45;&#45;_release_artifact</title>
-<path fill="none" stroke="#7f7f7f" stroke-dasharray="5,2" d="M1066.96,-1038.22C1076.11,-1029.2 1084.88,-1019.93 1093,-1010.5 1173.74,-916.81 1240.53,-788.46 1277.15,-710.74"/>
-<text text-anchor="start" x="1246.15" y="-714.54" font-family="Times,serif" font-size="14.00">0..N</text>
-<text text-anchor="start" x="1066.96" y="-1027.02" font-family="Times,serif" font-size="14.00">{0,1}</text>
+<path fill="none" stroke="#7f7f7f" stroke-dasharray="5,2" d="M1022.43,-1099.44C1030.17,-1090.17 1037.68,-1080.86 1044.8,-1071.6 1111.48,-984.91 1175.74,-876 1215.02,-805.61"/>
+<text text-anchor="start" x="1190.91" y="-809.81" font-family="Times,serif" font-size="14.00">0..N</text>
+<text text-anchor="start" x="1022.43" y="-1086.84" font-family="Times,serif" font-size="14.00">{0,1}</text>
 </g>
 <!-- _hash_digest -->
 <g id="node28" class="node">
 <title>_hash_digest</title>
-<polygon fill="none" stroke="black" points="1563,-505.5 1563,-533.5 1849,-533.5 1849,-505.5 1563,-505.5"/>
-<text text-anchor="start" x="1648.5" y="-516.7" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="16.00">_hash_digest</text>
-<polygon fill="none" stroke="black" points="1563,-480.5 1563,-505.5 1849,-505.5 1849,-480.5 1563,-480.5"/>
-<text text-anchor="start" x="1568" y="-490.3" font-family="Helvetica,sans-Serif" text-decoration="underline" font-size="14.00">id</text>
-<text text-anchor="start" x="1581" y="-490.3" font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
-<text text-anchor="start" x="1658" y="-490.3" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
-<polygon fill="none" stroke="black" points="1563,-455.5 1563,-480.5 1849,-480.5 1849,-455.5 1563,-455.5"/>
-<text text-anchor="start" x="1568" y="-465.3" font-family="Helvetica,sans-Serif" font-size="14.00">artifact_id</text>
-<text text-anchor="start" x="1638" y="-465.3" font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
-<text text-anchor="start" x="1715" y="-465.3" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
-<polygon fill="none" stroke="black" points="1563,-430.5 1563,-455.5 1849,-455.5 1849,-430.5 1563,-430.5"/>
-<text text-anchor="start" x="1568" y="-440.3" font-family="Helvetica,sans-Serif" font-size="14.00">digest</text>
-<text text-anchor="start" x="1611" y="-440.3" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR]</text>
-<text text-anchor="start" x="1694" y="-440.3" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
-<polygon fill="none" stroke="black" points="1563,-405.5 1563,-430.5 1849,-430.5 1849,-405.5 1563,-405.5"/>
-<text text-anchor="start" x="1568" y="-415.3" font-family="Helvetica,sans-Serif" font-size="14.00">digest_algorithm</text>
-<text text-anchor="start" x="1685" y="-415.3" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR]</text>
-<text text-anchor="start" x="1768" y="-415.3" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<polygon fill="none" stroke="black" points="1501.4,-597.6 1501.4,-626.8 1771.26,-626.8 1771.26,-597.6 1501.4,-597.6"/>
+<text text-anchor="start" x="1585.2" y="-608.4" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="16.00">_hash_digest</text>
+<polygon fill="none" stroke="black" points="1501.4,-570.8 1501.4,-597.6 1771.26,-597.6 1771.26,-570.8 1501.4,-570.8"/>
+<text text-anchor="start" x="1506.4" y="-581" font-family="Helvetica,sans-Serif" text-decoration="underline" font-size="14.00">id</text>
+<text text-anchor="start" x="1517.29" y="-581" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="1521.18" y="-581" font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
+<text text-anchor="start" x="1595.08" y="-581" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<polygon fill="none" stroke="black" points="1501.4,-544 1501.4,-570.8 1771.26,-570.8 1771.26,-544 1501.4,-544"/>
+<text text-anchor="start" x="1506.4" y="-554.2" font-family="Helvetica,sans-Serif" font-size="14.00">artifact_id</text>
+<text text-anchor="start" x="1567.09" y="-554.2" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="1570.98" y="-554.2" font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
+<text text-anchor="start" x="1644.88" y="-554.2" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<polygon fill="none" stroke="black" points="1501.4,-517.2 1501.4,-544 1771.26,-544 1771.26,-517.2 1501.4,-517.2"/>
+<text text-anchor="start" x="1506.4" y="-527.4" font-family="Helvetica,sans-Serif" font-size="14.00">digest</text>
+<text text-anchor="start" x="1543.76" y="-527.4" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="1547.65" y="-527.4" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR]</text>
+<text text-anchor="start" x="1627.77" y="-527.4" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<polygon fill="none" stroke="black" points="1501.4,-490.4 1501.4,-517.2 1771.26,-517.2 1771.26,-490.4 1501.4,-490.4"/>
+<text text-anchor="start" x="1506.4" y="-500.6" font-family="Helvetica,sans-Serif" font-size="14.00">digest_algorithm</text>
+<text text-anchor="start" x="1609.12" y="-500.6" font-family="Helvetica,sans-Serif" font-size="14.00"> </text>
+<text text-anchor="start" x="1613.01" y="-500.6" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR]</text>
+<text text-anchor="start" x="1693.13" y="-500.6" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
 </g>
 <!-- _release_artifact&#45;&#45;_hash_digest -->
 <g id="edge29" class="edge">
 <title>_release_artifact&#45;&#45;_hash_digest</title>
-<path fill="none" stroke="#7f7f7f" stroke-dasharray="5,2" d="M1421.21,-592.03C1454.25,-577.23 1490.53,-561.11 1524,-546.5 1534.02,-542.13 1544.35,-537.65 1554.78,-533.15"/>
-<text text-anchor="start" x="1523.78" y="-521.95" font-family="Times,serif" font-size="14.00">0..N</text>
-<text text-anchor="start" x="1421.21" y="-580.83" font-family="Times,serif" font-size="14.00">1</text>
+<path fill="none" stroke="#7f7f7f" stroke-dasharray="5,2" d="M1363.86,-683.8C1404.17,-665.21 1450.57,-643.81 1493.47,-624.03"/>
+<text text-anchor="start" x="1469.36" y="-611.43" font-family="Times,serif" font-size="14.00">0..N</text>
+<text text-anchor="start" x="1363.86" y="-671.2" font-family="Times,serif" font-size="14.00">1</text>
 </g>
 </g>
 </svg>