schema

Gitlab Schema

graph LR
    GitLabCIConfig -- REFERENCES_VARIABLE --> GitLabCIVariable
    GitLabCIConfig -- USES_INCLUDE --> GitLabCIInclude
    GitLabContainerImage -- BUILT_FROM --> GitLabContainerImage
    GitLabContainerImage -- CONTAINS_IMAGE --> GitLabContainerImage
    GitLabContainerImage -- HAS_LAYER --> GitLabContainerImageLayer
    GitLabContainerImage -- HEAD --> GitLabContainerImageLayer
    GitLabContainerImage -- TAIL --> GitLabContainerImageLayer
    GitLabContainerImageAttestation -- ATTESTS --> GitLabContainerImage
    GitLabContainerImageLayer -- NEXT --> GitLabContainerImageLayer
    GitLabContainerRepository -- HAS_TAG --> GitLabContainerRepositoryTag
    GitLabContainerRepository -- REPO_IMAGE --> GitLabContainerRepositoryTag
    GitLabContainerRepositoryTag -- IMAGE --> GitLabContainerImage
    GitLabContainerRepositoryTag -- REFERENCES --> GitLabContainerImage
    GitLabDependencyFile -- HAS_DEP --> GitLabDependency
    GitLabEnvironment -- HAS_CI_VARIABLE --> GitLabCIVariable
    GitLabGroup -- CAN_ACCESS --> GitLabProject
    GitLabGroup -- HAS_CI_VARIABLE --> GitLabCIVariable
    GitLabGroup -- MEMBER_OF --> GitLabGroup
    GitLabGroup -- RESOURCE --> GitLabCIVariable
    GitLabGroup -- RESOURCE --> GitLabRunner
    GitLabOrganization -- RESOURCE --> GitLabContainerImage
    GitLabOrganization -- RESOURCE --> GitLabContainerImageAttestation
    GitLabOrganization -- RESOURCE --> GitLabContainerImageLayer
    GitLabOrganization -- RESOURCE --> GitLabContainerRepository
    GitLabOrganization -- RESOURCE --> GitLabContainerRepositoryTag
    GitLabOrganization -- RESOURCE --> GitLabGroup
    GitLabOrganization -- RESOURCE --> GitLabProject
    GitLabOrganization -- RESOURCE --> GitLabRunner
    GitLabOrganization -- RESOURCE --> GitLabUser
    GitLabProject -- HAS_BRANCH --> GitLabBranch
    GitLabProject -- HAS_CI_VARIABLE --> GitLabCIVariable
    GitLabProject -- HAS_DEPENDENCY_FILE --> GitLabDependencyFile
    GitLabProject -- HAS_ENVIRONMENT --> GitLabEnvironment
    GitLabProject -- MEMBER_OF --> GitLabGroup
    GitLabProject -- REQUIRES --> GitLabDependency
    GitLabProject -- RESOURCE --> GitLabBranch
    GitLabProject -- RESOURCE --> GitLabCIConfig
    GitLabProject -- RESOURCE --> GitLabCIInclude
    GitLabProject -- RESOURCE --> GitLabCIVariable
    GitLabProject -- RESOURCE --> GitLabDependency
    GitLabProject -- RESOURCE --> GitLabDependencyFile
    GitLabProject -- RESOURCE --> GitLabEnvironment
    GitLabProject -- RESOURCE --> GitLabRunner
    GitLabUser -- COMMITTED_TO --> GitLabProject
    GitLabUser -- MEMBER_OF --> GitLabGroup

GitLabBranch

Schema for GitLab Branch nodes.

Branches belong to projects and have two relationships:

  • RESOURCE: Sub-resource relationship for cleanup scoping (Branch -> Project)
  • HAS_BRANCH: Semantic relationship showing project ownership (Project -> Branch)

Properties

Field Index Description
id Yes Unique branch identifier formed from the project URL and branch name.
firstseen Timestamp when a sync job first created this node.
lastupdated Yes Timestamp of the last sync that observed this node.
default Whether this is the project's default branch.
name Yes Branch name.
protected Whether the branch is protected.
web_url URL for viewing the branch in GitLab.

Relationships

  • (:GitLabProject)-[:HAS_BRANCH]->(:GitLabBranch): Relationship from GitLabProject to GitLabBranch. Created when branches are loaded to establish the project-branch connection.

  • (:GitLabProject)-[:RESOURCE]->(:GitLabBranch): Sub-resource relationship from GitLabBranch to GitLabProject.

GitLabCIConfig

A parsed GitLab CI/CD pipeline configuration.

Ontology Mapping: This node uses the ontology label CICDPipeline.

Properties

Ontology-generated fields are shown in italics.

Field Index Description
id Yes Composite identifier formed from the project ID and CI config file path.
firstseen Timestamp when a sync job first created this node.
lastupdated Yes Timestamp of the last sync that observed this node.
default_image Top-level or default container image configured for CI jobs.
file_path Path of the CI config file in the repository.
gitlab_url Yes URL of the GitLab instance.
has_includes Whether the pipeline has any include entries.
include_count Number of resolved CI config include entries.
is_merged Whether the parsed YAML was GitLab's merged config with includes expanded.
is_valid Whether GitLab CI lint validated the config, or null when lint was unavailable.
job_count Number of CI jobs detected in the parsed config.
project_id Yes Numeric ID of the GitLab project that owns the config.
referenced_protected_variables Referenced variable keys that match protected project variables.
referenced_variable_keys Non-predefined CI/CD variable keys referenced in the config.
stages Pipeline stage names declared by the config.
trigger_rules Trigger categories heuristically detected in the config.
_ont_name Yes Normalized field sourced from file_path.
_ont_source Module that populated this node's ontology fields.
_ont_type Yes Property generated by the ontology mapping.

Relationships

  • (:GitLabCIConfig)-[:REFERENCES_VARIABLE]->(:GitLabCIVariable): Links a GitLab CI configuration to the CI variables it references.

  • (:GitLabCIConfig)-[:USES_INCLUDE]->(:GitLabCIInclude): Links a GitLab CI configuration to an include it uses.

  • (:GitLabProject)-[:RESOURCE]->(:GitLabCIConfig): Sub-resource relationship — scoped to GitLabProject.

GitLabCIInclude

An include entry referenced by a GitLab CI/CD configuration.

Properties

Field Index Description
id Yes Composite identifier formed from the project ID, include type, location, and ref.
firstseen Timestamp when a sync job first created this node.
lastupdated Yes Timestamp of the last sync that observed this node.
gitlab_url Yes URL of the GitLab instance.
include_type Yes Include type: local, project, remote, template, or component.
is_local Whether the include references a file in the same repository.
is_pinned Whether the include resolves to an immutable target.
location Yes Included path, project path, URL, template name, or component identifier.
ref Commit SHA, tag, or branch used by a project include.

Relationships

  • (:GitLabCIConfig)-[:USES_INCLUDE]->(:GitLabCIInclude): Links a GitLab CI configuration to an include it uses.

  • (:GitLabProject)-[:RESOURCE]->(:GitLabCIInclude): Sub-resource relationship — scoped to GitLabProject.

GitLabCIVariable

A GitLab CI/CD variable defined at group or project scope.

Properties

Field Index Description
id Yes Composite identifier formed from scope type, scope ID, key, and environment scope.
firstseen Timestamp when a sync job first created this node.
lastupdated Yes Timestamp of the last sync that observed this node.
description Human-readable description of the variable.
environment_scope Yes Environment name or glob that controls where the variable is available.
gitlab_url Yes URL of the GitLab instance.
key Yes Variable key exposed to CI/CD jobs.
masked Whether GitLab attempts to mask the variable value in job logs.
masked_and_hidden Whether the value is masked and cannot be retrieved after creation.
protected Yes Whether the variable is exposed only to pipelines on protected refs.
raw Whether GitLab skips variable expansion for the value.
scope_type Variable ownership scope: group or project.
variable_type GitLab variable type: env_var or file.

Relationships

  • (:GitLabCIConfig)-[:REFERENCES_VARIABLE]->(:GitLabCIVariable): Links a GitLab CI configuration to the CI variables it references.

  • (:GitLabEnvironment)-[:HAS_CI_VARIABLE]->(:GitLabCIVariable): An environment uses each project CI variable whose scope applies to it.

  • (:GitLabGroup)-[:HAS_CI_VARIABLE]->(:GitLabCIVariable): Links a GitLab group to a CI variable it defines.

  • (:GitLabGroup)-[:RESOURCE]->(:GitLabCIVariable): Sub-resource for group-level CI variables — scoped to GitLabGroup.

  • (:GitLabProject)-[:HAS_CI_VARIABLE]->(:GitLabCIVariable): Links a GitLab project to a CI variable it defines.

  • (:GitLabProject)-[:RESOURCE]->(:GitLabCIVariable): Sub-resource for project-level CI variables — scoped to GitLabProject.

GitLabContainerImage

This node label is loaded by more than one sync path:

  • A digest-addressed container image or multi-architecture manifest list.
  • Build provenance attached to an image already present in the graph.

Conditional Labels:

  • Image (ontology label) when type equals image. A concrete single-platform container image.
  • ImageManifestList (ontology label) when type equals manifest_list. A cross-provider ImageManifestList resource in Cartography's ontology.

Properties

Ontology-generated fields are shown in italics.

Field Index Description
id Yes Content-addressable container image digest.
firstseen Timestamp when a sync job first created this node.
lastupdated Yes Timestamp of the last sync that observed this node.
architecture CPU architecture from the image config.
child_image_digests Digests of platform-specific images contained by a manifest list.
digest Yes Content-addressable container image digest.
head_layer_diff_id Uncompressed digest of the first base layer.
layer_diff_ids Ordered uncompressed layer digests that compose the image.
media_type OCI or Docker media type of the image manifest.
os Operating system from the image config.
parent_image_digest Parent image digest extracted from image provenance.
parent_image_uri Parent image reference extracted from image provenance.
schema_version Container image manifest schema version.
source_file Source definition file extracted from image provenance.
source_revision Source revision extracted from image provenance.
source_uri Yes Normalized source repository URL extracted from image provenance.
tail_layer_diff_id Uncompressed digest of the final topmost layer.
type Yes Image type: image or manifest_list.
uri Yes Container registry repository URI without a tag or digest.
variant CPU architecture variant from the image config.
_ont_architecture Yes Normalized field sourced from architecture.
_ont_digest Yes Normalized field sourced from digest.
_ont_os Yes Normalized field sourced from os.
_ont_source Module that populated this node's ontology fields.
_ont_uri Yes Normalized field sourced from uri.

Relationships

  • (:AWSECSContainer)-[:HAS_IMAGE]->(:GitLabContainerImage): Relationship from AWSECSContainer to GitLabContainerImage. Matches containers to GitLab registry images by runtime digest (imageDigest).

  • (:AWSLambda)-[:HAS_IMAGE]->(:GitLabContainerImage)

  • (:AzureContainerInstance)-[:HAS_IMAGE]->(:GitLabContainerImage): An Azure container uses a GitLab container image with the same digest.

  • (:AzureFunctionApp)-[:HAS_IMAGE]->(:GitLabContainerImage): An Azure Function App uses a GitLab container image with the same digest.

  • (:GCPCloudRunJobContainer)-[:HAS_IMAGE]->(:GitLabContainerImage)

  • (:GCPCloudRunServiceContainer)-[:HAS_IMAGE]->(:GitLabContainerImage)

  • (:GitLabContainerImage)-[:BUILT_FROM]->(:GitLabContainerImage): Relationship from a GitLabContainerImage to its parent/base image.

    • Properties:

      Field Description
      confidence Confidence score for the parent image match.
      from_attestation Whether the parent image was identified from an attestation.
      parent_image_uri Parent image reference reported by provenance.
  • (:GitLabContainerImage)-[:CONTAINS_IMAGE]->(:GitLabContainerImage): Relationship from a manifest list to its platform-specific child images. Only applies to images with type="manifest_list".

  • (:GitLabContainerImage)-[:HAS_LAYER]->(:GitLabContainerImageLayer): Relationship from an image to its constituent layers. Only applies to images with type="image" (not manifest lists). Layers are ordered using NEXT relationships and layer_diff_ids array on the image.

  • (:GitLabContainerImage)-[:HEAD]->(:GitLabContainerImageLayer): Relationship from an image to its first (base) layer. Direction: (GitLabContainerImage)-[:HEAD]->(GitLabContainerImageLayer)

  • (:GitLabContainerImage)-[:TAIL]->(:GitLabContainerImageLayer): Relationship from an image to its last (topmost) layer. Direction: (GitLabContainerImage)-[:TAIL]->(GitLabContainerImageLayer)

  • (:GitLabContainerImageAttestation)-[:ATTESTS]->(:GitLabContainerImage): Relationship from attestation to the image it attests.

  • (:GitLabContainerRepositoryTag)-[:IMAGE]->(:GitLabContainerImage): Generic cross-registry edge from ImageTag to Image.

  • (:GitLabContainerRepositoryTag)-[:REFERENCES]->(:GitLabContainerImage): Links a tag to the container image it references via digest. Multiple tags can reference the same image.

  • (:GitLabOrganization)-[:RESOURCE]->(:GitLabContainerImage): Sub-resource relationship from GitLabContainerImage to GitLabOrganization. Images are scoped to organizations for cleanup and to allow cross-project deduplication.

  • (:KubernetesContainer)-[:HAS_IMAGE]->(:GitLabContainerImage): Links a container to the image it runs, hosted in the GitLab registry.

  • (:PackageVersion)-[:DEPLOYED]->(:Image): A canonical package version is deployed on a container image.

GitLabContainerImageAttestation

Schema for GitLab Container Image Attestation nodes.

Relationships:

  • RESOURCE: Sub-resource to GitLabOrganization for cleanup
  • ATTESTS: Links to the GitLabContainerImage this attestation validates

Properties

Field Index Description
id Yes Attestation manifest digest.
firstseen Timestamp when a sync job first created this node.
lastupdated Yes Timestamp of the last sync that observed this node.
attestation_type Yes Discovery type: sig, att, or buildx.
attests_digest Yes Digest of the container image attested by this manifest.
digest Yes Attestation manifest digest.
media_type OCI media type of the attestation manifest.
predicate_type In-toto predicate type reported by the attestation manifest.
source_file Source definition file extracted from provenance.
source_revision Source revision extracted from provenance.
source_uri Normalized source repository URL extracted from provenance.

Relationships

  • (:GitLabContainerImageAttestation)-[:ATTESTS]->(:GitLabContainerImage): Relationship from attestation to the image it attests.

  • (:GitLabOrganization)-[:RESOURCE]->(:GitLabContainerImageAttestation): Sub-resource relationship from GitLabContainerImageAttestation to GitLabOrganization.

GitLabContainerImageLayer

Schema for GitLab Container Image Layer nodes.

Relationships:

  • RESOURCE: Sub-resource to GitLabOrganization for cleanup
  • HAS_LAYER: Inward relationship from GitLabContainerImage (defined in image schema)
  • NEXT: Outward relationship to the next layer in the stack (linked list)
  • HEAD: Inward relationship from images to their first layer (defined in image schema)
  • TAIL: Inward relationship from images to their last layer (defined in image schema)

Ontology Mapping: This node uses the ontology label ImageLayer.

Properties

Field Index Description
id Yes Uncompressed layer digest from the image config.
firstseen Timestamp when a sync job first created this node.
lastupdated Yes Timestamp of the last sync that observed this node.
diff_id Yes Uncompressed layer digest used for cross-registry deduplication.
digest Yes Compressed layer digest from the image manifest.
history Image build command associated with the layer.
is_empty Whether the layer represents an empty filesystem change.
media_type OCI or Docker media type of the compressed layer.
size Compressed layer size in bytes.

Relationships

  • (:GitLabContainerImage)-[:HAS_LAYER]->(:GitLabContainerImageLayer): Relationship from an image to its constituent layers. Only applies to images with type="image" (not manifest lists). Layers are ordered using NEXT relationships and layer_diff_ids array on the image.

  • (:GitLabContainerImage)-[:HEAD]->(:GitLabContainerImageLayer): Relationship from an image to its first (base) layer. Direction: (GitLabContainerImage)-[:HEAD]->(GitLabContainerImageLayer)

  • (:GitLabContainerImage)-[:TAIL]->(:GitLabContainerImageLayer): Relationship from an image to its last (topmost) layer. Direction: (GitLabContainerImage)-[:TAIL]->(GitLabContainerImageLayer)

  • (:GitLabContainerImageLayer)-[:NEXT]->(:GitLabContainerImageLayer): Relationship from a layer to the next layer in the image stack. Forms a linked list structure allowing traversal of layers in order.

  • (:GitLabOrganization)-[:RESOURCE]->(:GitLabContainerImageLayer): Sub-resource relationship from GitLabContainerImageLayer to GitLabOrganization. Layers are scoped to organizations for cleanup and to allow cross-image deduplication.

GitLabContainerRepository

A container registry repository belonging to a GitLab project.

Ontology Mapping: This node uses the ontology label ContainerRegistry.

Properties

Ontology-generated fields are shown in italics.

Field Index Description
id Yes Full registry location of the container repository.
firstseen Timestamp when a sync job first created this node.
lastupdated Yes Timestamp of the last sync that observed this node.
cleanup_policy_started_at Timestamp when the repository cleanup policy last started.
created_at Timestamp when GitLab created the container repository.
name Yes Container repository name.
path Yes Container repository path within the GitLab project.
project_id Numeric ID of the parent GitLab project.
repository_id Numeric GitLab container repository ID.
size Container repository size in bytes.
status GitLab container repository status.
tags_count Number of tags in the container repository.
_ont_created_at Yes Normalized field sourced from created_at.
_ont_name Yes Normalized field sourced from name.
_ont_size_bytes Yes Normalized field sourced from size.
_ont_source Module that populated this node's ontology fields.
_ont_uri Yes Normalized field sourced from path.

Relationships

  • (:GitLabContainerRepository)-[:HAS_TAG]->(:GitLabContainerRepositoryTag): Links a tag to its parent container repository.

  • (:GitLabContainerRepository)-[:REPO_IMAGE]->(:GitLabContainerRepositoryTag): Generic cross-registry edge from ContainerRegistry to ImageTag.

  • (:GitLabOrganization)-[:RESOURCE]->(:GitLabContainerRepository): Sub-resource relationship from GitLabContainerRepository to GitLabOrganization. All container registry resources are scoped to the organization for cleanup.

GitLabContainerRepositoryTag

A named tag that points to an image in a GitLab container repository.

Ontology Mapping: This node uses the ontology label ImageTag.

Properties

Field Index Description
id Yes Full registry location of the tagged image.
firstseen Timestamp when a sync job first created this node.
lastupdated Yes Timestamp of the last sync that observed this node.
created_at Timestamp when GitLab created the tag.
digest Yes Digest of the container image referenced by the tag.
name Yes Container image tag name.
path Container repository path including the tag name.
repository_location Full registry location of the parent container repository.
revision Full revision reported for the tag.
short_revision Abbreviated revision reported for the tag.
total_size Total size of the tagged image in bytes.

Relationships

  • (:GitLabContainerRepository)-[:HAS_TAG]->(:GitLabContainerRepositoryTag): Links a tag to its parent container repository.

  • (:GitLabContainerRepository)-[:REPO_IMAGE]->(:GitLabContainerRepositoryTag): Generic cross-registry edge from ContainerRegistry to ImageTag.

  • (:GitLabContainerRepositoryTag)-[:IMAGE]->(:GitLabContainerImage): Generic cross-registry edge from ImageTag to Image.

  • (:GitLabContainerRepositoryTag)-[:REFERENCES]->(:GitLabContainerImage): Links a tag to the container image it references via digest. Multiple tags can reference the same image.

  • (:GitLabOrganization)-[:RESOURCE]->(:GitLabContainerRepositoryTag): Sub-resource relationship from GitLabContainerRepositoryTag to GitLabOrganization. All container registry resources are scoped to the organization for cleanup.

GitLabDependency

A package dependency reported by a GitLab dependency scanning artifact.

Ontology Projection: GitLabDependency contributes data to canonical PackageVersion nodes.

Properties

Field Index Description
id Yes Unique dependency identifier within the GitLab project.
firstseen Timestamp when a sync job first created this node.
lastupdated Yes Timestamp of the last sync that observed this node.
gitlab_url Yes URL of the GitLab instance.
name Yes Dependency package name.
normalized_id Yes Normalized cross-tool package identifier.
package_manager Package manager reported by the dependency scanning artifact.
project_id Numeric ID of the GitLab project where the dependency was detected.
purl Package URL identifying the dependency.
type Package type derived from the package URL.
version Dependency package version.

Relationships

  • (:GitLabDependencyFile)-[:HAS_DEP]->(:GitLabDependency): Relationship from GitLabDependencyFile to Dependency. This relationship is optional - only created when manifest_id is present.

  • (:GitLabProject)-[:REQUIRES]->(:GitLabDependency): Relationship from GitLabProject to Dependency.

  • (:GitLabProject)-[:RESOURCE]->(:GitLabDependency): Sub-resource relationship from Dependency to GitLabProject.

  • (:PackageVersion)-[:DETECTED_AS]->(:GitLabDependency): A canonical package version was detected as a GitLab dependency.

GitLabDependencyFile

A dependency manifest file found in a GitLab project.

Properties

Field Index Description
id Yes Unique identifier formed from the project URL and file path.
firstseen Timestamp when a sync job first created this node.
lastupdated Yes Timestamp of the last sync that observed this node.
filename Yes Dependency file name.
gitlab_url Yes URL of the GitLab instance.
path Path to the dependency file in the repository.
project_id Numeric ID of the parent GitLab project.
project_url URL of the parent GitLab project.

Relationships

  • (:GitLabDependencyFile)-[:HAS_DEP]->(:GitLabDependency): Relationship from GitLabDependencyFile to Dependency. This relationship is optional - only created when manifest_id is present.

  • (:GitLabProject)-[:HAS_DEPENDENCY_FILE]->(:GitLabDependencyFile): Relationship from GitLabProject to GitLabDependencyFile. Created when dependency files are loaded to establish the project-file connection.

  • (:GitLabProject)-[:RESOURCE]->(:GitLabDependencyFile): Sub-resource relationship from GitLabDependencyFile to GitLabProject.

GitLabEnvironment

A deployment environment defined within a GitLab project.

Properties

Field Index Description
id Yes Composite identifier formed from the project ID and GitLab environment ID.
firstseen Timestamp when a sync job first created this node.
lastupdated Yes Timestamp of the last sync that observed this node.
auto_stop_at Timestamp when GitLab is scheduled to stop the environment automatically.
created_at Timestamp when GitLab created the environment.
external_url URL where the deployment environment is reachable.
gitlab_id Numeric GitLab environment ID, unique within its project.
gitlab_url Yes URL of the GitLab instance.
name Yes Deployment environment name.
slug URL-safe deployment environment slug.
state Deployment environment state: available or stopped.
tier Deployment tier: production, staging, testing, development, or other.
updated_at Timestamp when GitLab last updated the environment.

Relationships

  • (:GitLabEnvironment)-[:HAS_CI_VARIABLE]->(:GitLabCIVariable): An environment uses each project CI variable whose scope applies to it.

  • (:GitLabProject)-[:HAS_ENVIRONMENT]->(:GitLabEnvironment): A GitLab project contains a deployment environment.

  • (:GitLabProject)-[:RESOURCE]->(:GitLabEnvironment): A GitLab project owns the environment as a sub-resource.

GitLabGroup

A nested GitLab group within the configured top-level organization.

Ontology Mapping: This node uses the ontology label UserGroup.

Properties

Ontology-generated fields are shown in italics.

Field Index Description
id Yes Numeric GitLab group ID.
firstseen Timestamp when a sync job first created this node.
lastupdated Yes Timestamp of the last sync that observed this node.
created_at Timestamp when GitLab created the group.
description Human-readable description of the group.
full_path Yes Full group path including parent groups.
gitlab_url Yes URL of the GitLab instance.
name Yes Display name of the group.
parent_id Numeric ID of the immediate parent group.
path Yes URL path slug of the group.
visibility Group visibility: private, internal, or public.
web_url Yes URL for viewing the group in GitLab.
_ont_description Normalized field sourced from description.
_ont_name Yes Normalized field sourced from name.
_ont_source Module that populated this node's ontology fields.

Relationships

  • (:GitLabGroup)-[:CAN_ACCESS]->(:GitLabProject): Relationship from GitLabGroup to GitLabProject representing group access.

    • Properties:

      Field Description
      access_level Numeric GitLab access level granted to the group.
  • (:GitLabGroup)-[:HAS_CI_VARIABLE]->(:GitLabCIVariable): Links a GitLab group to a CI variable it defines.

  • (:GitLabGroup)-[:MEMBER_OF]->(:GitLabGroup): Relationship from a child GitLabGroup to its parent GitLabGroup. Used to represent the nested group hierarchy.

  • (:GitLabGroup)-[:RESOURCE]->(:GitLabCIVariable): Sub-resource for group-level CI variables — scoped to GitLabGroup.

  • (:GitLabGroup)-[:RESOURCE]->(:GitLabRunner): Sub-resource for group-level runners — scoped to GitLabGroup.

  • (:GitLabOrganization)-[:RESOURCE]->(:GitLabGroup): Sub-resource relationship from GitLabGroup to GitLabOrganization. All groups belong to an organization, used for cleanup scoping.

  • (:GitLabProject)-[:MEMBER_OF]->(:GitLabGroup): Relationship from GitLabProject to GitLabGroup via MEMBER_OF. Represents the immediate parent group of a project (for projects in nested groups).

  • (:GitLabUser)-[:MEMBER_OF]->(:GitLabGroup): Relationship from GitLabUser to GitLabGroup via MEMBER_OF. Represents user membership in a group with access permissions.

    • Properties:

      Field Description
      access_level Numeric GitLab access level for the group membership.
      role GitLab membership role, such as owner, maintainer, or developer.

GitLabOrganization

A configured GitLab top-level group that scopes an organization sync.

Properties

Field Index Description
id Yes Numeric GitLab ID of the top-level group.
firstseen Timestamp when a sync job first created this node.
lastupdated Yes Timestamp of the last sync that observed this node.
created_at Timestamp when GitLab created the top-level group.
description Human-readable description of the organization.
full_path Yes Full path of the top-level group.
gitlab_url Yes URL of the GitLab instance.
name Yes Display name of the organization.
path Yes URL path slug of the organization.
visibility Organization visibility: private, internal, or public.
web_url Yes URL for viewing the organization in GitLab.

Relationships

  • (:GitLabOrganization)-[:RESOURCE]->(:GitLabContainerImage): Sub-resource relationship from GitLabContainerImage to GitLabOrganization. Images are scoped to organizations for cleanup and to allow cross-project deduplication.

  • (:GitLabOrganization)-[:RESOURCE]->(:GitLabContainerImageAttestation): Sub-resource relationship from GitLabContainerImageAttestation to GitLabOrganization.

  • (:GitLabOrganization)-[:RESOURCE]->(:GitLabContainerImageLayer): Sub-resource relationship from GitLabContainerImageLayer to GitLabOrganization. Layers are scoped to organizations for cleanup and to allow cross-image deduplication.

  • (:GitLabOrganization)-[:RESOURCE]->(:GitLabContainerRepository): Sub-resource relationship from GitLabContainerRepository to GitLabOrganization. All container registry resources are scoped to the organization for cleanup.

  • (:GitLabOrganization)-[:RESOURCE]->(:GitLabContainerRepositoryTag): Sub-resource relationship from GitLabContainerRepositoryTag to GitLabOrganization. All container registry resources are scoped to the organization for cleanup.

  • (:GitLabOrganization)-[:RESOURCE]->(:GitLabGroup): Sub-resource relationship from GitLabGroup to GitLabOrganization. All groups belong to an organization, used for cleanup scoping.

  • (:GitLabOrganization)-[:RESOURCE]->(:GitLabProject): Sub-resource relationship from GitLabProject to GitLabOrganization. All projects belong to an organization, used for cleanup scoping. Projects are cleaned up per organization.

  • (:GitLabOrganization)-[:RESOURCE]->(:GitLabRunner): Sub-resource for instance-level runners — scoped to GitLabOrganization.

  • (:GitLabOrganization)-[:RESOURCE]->(:GitLabUser): Sub-resource relationship from GitLabUser to GitLabOrganization. All users belong to an organization, used for cleanup scoping.

GitLabProject

A GitLab project containing a source code repository.

Ontology Mapping: This node uses the ontology label CodeRepository.

Additional Labels: This node also uses GitLabRepository.

Additional Label Definitions:

  • GitLabRepository: A gitlab node participating in the shared GitLabRepository graph interface.

Properties

Ontology-generated fields are shown in italics.

Field Index Description
id Yes Numeric GitLab project ID.
firstseen Timestamp when a sync job first created this node.
lastupdated Yes Timestamp of the last sync that observed this node.
archived Whether the project is archived.
created_at Timestamp when GitLab created the project.
default_branch Name of the project's default branch.
description Human-readable description of the project.
gitlab_url Yes URL of the GitLab instance.
languages Yes JSON object mapping detected programming languages to percentages.
last_activity_at Timestamp of the project's most recent activity.
name Yes Project name.
path Yes URL path slug of the project.
path_with_namespace Yes Full project path including its namespace.
visibility Project visibility: private, internal, or public.
web_url Yes URL for viewing the project in GitLab.
_ont_archived Yes Normalized field sourced from archived.
_ont_default_branch Yes Normalized field sourced from default_branch.
_ont_description Normalized field sourced from description.
_ont_fullname Yes Normalized field sourced from path_with_namespace.
_ont_name Yes Normalized field sourced from name.
_ont_public Yes Normalized field sourced from visibility.
_ont_source Module that populated this node's ontology fields.
_ont_url Yes Normalized field sourced from web_url.

Relationships

  • (:AIBOMComponent)-[:DETECTED_IN]->(:GitLabProject): Links a component occurrence to its scanned GitLab project.

  • (:AIBOMSource)-[:SCANNED_REPOSITORY]->(:GitLabProject): Links an AIBOM source to the GitLab project it scanned.

  • (:CircleCIProject)-[:BUILDS]->(:GitLabProject): The CircleCI project builds a matching GitLab project.

  • (:GitLabGroup)-[:CAN_ACCESS]->(:GitLabProject): Relationship from GitLabGroup to GitLabProject representing group access.

    • Properties:

      Field Description
      access_level Numeric GitLab access level granted to the group.
  • (:GitLabOrganization)-[:RESOURCE]->(:GitLabProject): Sub-resource relationship from GitLabProject to GitLabOrganization. All projects belong to an organization, used for cleanup scoping. Projects are cleaned up per organization.

  • (:GitLabProject)-[:HAS_BRANCH]->(:GitLabBranch): Relationship from GitLabProject to GitLabBranch. Created when branches are loaded to establish the project-branch connection.

  • (:GitLabProject)-[:HAS_CI_VARIABLE]->(:GitLabCIVariable): Links a GitLab project to a CI variable it defines.

  • (:GitLabProject)-[:HAS_DEPENDENCY_FILE]->(:GitLabDependencyFile): Relationship from GitLabProject to GitLabDependencyFile. Created when dependency files are loaded to establish the project-file connection.

  • (:GitLabProject)-[:HAS_ENVIRONMENT]->(:GitLabEnvironment): A GitLab project contains a deployment environment.

  • (:GitLabProject)-[:MEMBER_OF]->(:GitLabGroup): Relationship from GitLabProject to GitLabGroup via MEMBER_OF. Represents the immediate parent group of a project (for projects in nested groups).

  • (:GitLabProject)-[:REQUIRES]->(:GitLabDependency): Relationship from GitLabProject to Dependency.

  • (:GitLabProject)-[:REQUIRES]->(:SemgrepGoLibrary): Links a GitLab project to a dependency it requires.

    • Properties:

      Field Description
      specifier Version specifier required by the repository.
      transitivity Whether the dependency is direct or transitive.
      url URL of the manifest location declaring the dependency.
  • (:GitLabProject)-[:REQUIRES]->(:SemgrepNpmLibrary): Links a GitLab project to a dependency it requires.

    • Properties:

      Field Description
      specifier Version specifier required by the repository.
      transitivity Whether the dependency is direct or transitive.
      url URL of the manifest location declaring the dependency.
  • (:GitLabProject)-[:RESOURCE]->(:GitLabBranch): Sub-resource relationship from GitLabBranch to GitLabProject.

  • (:GitLabProject)-[:RESOURCE]->(:GitLabCIConfig): Sub-resource relationship — scoped to GitLabProject.

  • (:GitLabProject)-[:RESOURCE]->(:GitLabCIInclude): Sub-resource relationship — scoped to GitLabProject.

  • (:GitLabProject)-[:RESOURCE]->(:GitLabCIVariable): Sub-resource for project-level CI variables — scoped to GitLabProject.

  • (:GitLabProject)-[:RESOURCE]->(:GitLabDependency): Sub-resource relationship from Dependency to GitLabProject.

  • (:GitLabProject)-[:RESOURCE]->(:GitLabDependencyFile): Sub-resource relationship from GitLabDependencyFile to GitLabProject.

  • (:GitLabProject)-[:RESOURCE]->(:GitLabEnvironment): A GitLab project owns the environment as a sub-resource.

  • (:GitLabProject)-[:RESOURCE]->(:GitLabRunner): Sub-resource for project-level runners — scoped to GitLabProject.

  • (:GitLabUser)-[:COMMITTED_TO]->(:GitLabProject): Relationship from GitLabUser to GitLabProject via COMMITTED_TO. Represents commit activity by a user on a project.

    • Properties:

      Field Description
      commit_count Number of commits made by the user to the project.
      first_commit_date Timestamp of the user's oldest commit to the project.
      last_commit_date Timestamp of the user's most recent commit to the project.
  • (:Image)-[:PACKAGED_FROM]->(:GitLabProject): Links an image to the GitLab project that packaged it. MatchLink for CircleCI fallback matching: (Image)-[:PACKAGED_FROM]->(GitLabProject).

Matches Image.digest to the specific image identified by the matcher, and GitLabProject.web_url to the (normalized) repo URL from the CircleCI run's vcs block (GitLabProject.id is numeric, so web_url is the URL-bearing key, consistent with the existing GitLab provenance matcher).

  • Properties:

    Field Description
    command_similarity Similarity score between image build commands and Dockerfile commands.
    confidence Confidence score for the image-to-project match.
    dockerfile_path Path of the Dockerfile associated with the image.
    match_method Matching method: provenance, dockerfile_analysis, or dockerfile_singleton_fallback.
    matched_commands Number of image build commands matched to Dockerfile commands.
    total_commands Command count used to normalize the Dockerfile comparison.
  • (:SemgrepSASTFinding)-[:FOUND_IN]->(:GitLabProject): Links a SAST finding to the GitLab project containing the affected code.

  • (:SemgrepSCAFinding)-[:FOUND_IN]->(:GitLabProject): Links an SCA finding to the GitLab project containing the dependency.

  • (:SemgrepSecretsFinding)-[:FOUND_IN]->(:GitLabProject): Links a secret finding to the GitLab project containing the secret.

GitLabRunner

A GitLab CI/CD runner at instance, group, or project scope.

Properties

Field Index Description
id Yes Numeric GitLab runner ID.
firstseen Timestamp when a sync job first created this node.
lastupdated Yes Timestamp of the last sync that observed this node.
access_level Ref protection level required for jobs assigned to the runner.
active Whether the runner is enabled.
architecture CPU architecture reported by the runner.
contacted_at Timestamp when the runner last contacted GitLab.
description Human-readable runner description.
gitlab_url Yes URL of the GitLab instance.
ip_address Last known IP address of the runner.
is_shared Whether the runner is shared across the GitLab instance.
locked Whether the runner is locked from assignment to additional projects.
maximum_timeout Maximum job timeout enforced by the runner, in seconds.
online Whether the runner has contacted GitLab recently.
paused Whether the runner is paused from accepting new jobs.
platform Operating system platform reported by the runner.
run_untagged Whether the runner accepts jobs without matching tags.
runner_type Yes Runner scope: instance_type, group_type, or project_type.
status Yes Current GitLab runner status.
tag_list Tags used to route CI/CD jobs to the runner.

Relationships

  • (:GitLabGroup)-[:RESOURCE]->(:GitLabRunner): Sub-resource for group-level runners — scoped to GitLabGroup.

  • (:GitLabOrganization)-[:RESOURCE]->(:GitLabRunner): Sub-resource for instance-level runners — scoped to GitLabOrganization.

  • (:GitLabProject)-[:RESOURCE]->(:GitLabRunner): Sub-resource for project-level runners — scoped to GitLabProject.

GitLabUser

A current GitLab organization or group member.

Ontology Mapping: This node uses the ontology label UserAccount.

Properties

Ontology-generated fields are shown in italics.

Field Index Description
id Yes Numeric GitLab user ID.
firstseen Timestamp when a sync job first created this node.
lastupdated Yes Timestamp of the last sync that observed this node.
email Email address exposed for the user.
gitlab_url Yes URL of the GitLab instance.
is_admin Whether the user is a GitLab administrator.
name Full name of the user.
state GitLab account state, such as active or blocked.
username Yes GitLab username.
web_url Yes URL for viewing the user in GitLab.
_ont_active Yes Normalized field sourced from state.
_ont_email Yes Normalized field sourced from email.
_ont_fullname Yes Normalized field sourced from name.
_ont_source Module that populated this node's ontology fields.
_ont_username Yes Normalized field sourced from username.

Relationships

  • (:GitLabOrganization)-[:RESOURCE]->(:GitLabUser): Sub-resource relationship from GitLabUser to GitLabOrganization. All users belong to an organization, used for cleanup scoping.

  • (:GitLabUser)-[:COMMITTED_TO]->(:GitLabProject): Relationship from GitLabUser to GitLabProject via COMMITTED_TO. Represents commit activity by a user on a project.

    • Properties:

      Field Description
      commit_count Number of commits made by the user to the project.
      first_commit_date Timestamp of the user's oldest commit to the project.
      last_commit_date Timestamp of the user's most recent commit to the project.
  • (:GitLabUser)-[:MEMBER_OF]->(:GitLabGroup): Relationship from GitLabUser to GitLabGroup via MEMBER_OF. Represents user membership in a group with access permissions.

    • Properties:

      Field Description
      access_level Numeric GitLab access level for the group membership.
      role GitLab membership role, such as owner, maintainer, or developer.
  • (:User)-[:HAS_ACCOUNT]->(:UserAccount)