Vercel Schema

        graph LR
T(Team) -- RESOURCE --> P(Project)
T -- RESOURCE --> D(Domain)
T -- RESOURCE --> SEV(SharedEnvironmentVariable)
T -- RESOURCE --> I(Integration)
T -- RESOURCE --> AG(AccessGroup)
T -- RESOURCE --> W(Webhook)
T -- RESOURCE --> LD(LogDrain)
T -- RESOURCE --> N(SecureComputeNetwork)
T -- RESOURCE --> AL(Alias)
T -- RESOURCE --> EC(EdgeConfig)
T -- RESOURCE --> DR(DNSRecord)
T -- RESOURCE --> ECT(EdgeConfigToken)
T -- RESOURCE --> U(User)
P -- RESOURCE --> DP(Deployment)
P -- RESOURCE --> EV(EnvironmentVariable)
P -- HAS_DOMAIN --> D
P -- RESOURCE --> FC(FirewallConfig)
P -- RESOURCE --> FBR(FirewallBypassRule)
D -- HAS_DNS_RECORD --> DR
EC -- HAS_TOKEN --> ECT
U -- MEMBER_OF --> T
DP -- CREATED_BY --> U
FBR -- CREATED_BY --> U
EV -- REFERENCES --> EC
I -- CONFIGURED_FOR --> P
AG -- HAS_MEMBER --> U
AG -- HAS_ACCESS_TO --> P
W -- WATCHES --> P
LD -- MONITORS --> P
N -- CONNECTS --> P
AL -- DEPLOYED_TO --> DP
AL -- BELONGS_TO_PROJECT --> P
    

VercelTeam

Represents a Vercel team (organization).

Ontology Mapping: This node has the extra label Tenant to enable cross-platform queries for organizational tenants across different systems (e.g., OktaOrganization, AzureTenant, GCPOrganization).

Field

Description

id

Team ID.

firstseen

Timestamp of when a sync job first created this node.

lastupdated

Timestamp of the last time the node was updated.

name

Team display name.

slug

URL slug of the team.

created_at

Team creation timestamp (ms).

avatar

URL of the team avatar.

Relationships

  • Team members belong to the team. Each user also carries a MEMBER_OF relationship with membership properties (role, confirmed, joined_from).

    (:VercelTeam)-[:RESOURCE]->(:VercelUser)
    (:VercelUser)-[:MEMBER_OF]->(:VercelTeam)
    
  • All Vercel resources belong to the team.

    (:VercelTeam)-[:RESOURCE]->(:VercelProject | :VercelDomain | :VercelDNSRecord | :VercelSharedEnvironmentVariable | :VercelIntegration | :VercelAccessGroup | :VercelWebhook | :VercelLogDrain | :VercelSecureComputeNetwork | :VercelAlias | :VercelEdgeConfig | :VercelEdgeConfigToken)
    

VercelUser

Represents a Vercel team member.

Ontology Mapping: This node has the extra label UserAccount to enable cross-platform queries for user accounts across different systems (e.g., OktaUser, EntraUser, GSuiteUser).

Field

Description

id

User UID.

firstseen

Timestamp of when a sync job first created this node.

lastupdated

Timestamp of the last time the node was updated.

email

User email.

username

Vercel username.

name

Display name.

role

Team role (owner, member, developer, viewer, billing).

created_at

Account creation timestamp (ms).

joined_from

How the user joined the team.

confirmed

Whether the membership is confirmed.

Relationships

  • A user is both owned by the team (RESOURCE) and linked to it via MEMBER_OF. The MEMBER_OF relationship carries membership properties (role, confirmed, joined_from) that describe the user’s role within that specific team.

    (:VercelTeam)-[:RESOURCE]->(:VercelUser)
    (:VercelUser)-[:MEMBER_OF]->(:VercelTeam)
    

VercelProject

Represents a Vercel project.

Field

Description

id

Project ID.

firstseen

Timestamp of when a sync job first created this node.

lastupdated

Timestamp of the last time the node was updated.

name

Project name.

framework

Framework preset (nextjs, gatsby, etc.).

node_version

Node.js version.

build_command

Build command override.

dev_command

Dev command override.

install_command

Install command override.

output_directory

Build output directory.

public_source

Whether the source code is publicly viewable.

serverless_function_region

Region where serverless functions are deployed.

created_at

Creation timestamp (ms).

updated_at

Last update timestamp (ms).

auto_expose_system_envs

Whether system env vars are auto-exposed.

root_directory

Root directory for the project.

git_fork_protection

Whether fork PRs can trigger deployments.

skew_protection_max_age

Max age of deployments kept for skew protection.

Relationships

  • A project belongs to a team.

    (:VercelTeam)-[:RESOURCE]->(:VercelProject)
    
  • Projects own deployments, env vars, project domains, firewall config, and firewall bypass rules.

    (:VercelProject)-[:RESOURCE]->(:VercelDeployment | :VercelEnvironmentVariable | :VercelFirewallConfig | :VercelFirewallBypassRule)
    

VercelDeployment

Represents an individual deployment.

Field

Description

id

Deployment UID.

firstseen

Timestamp of when a sync job first created this node.

lastupdated

Timestamp of the last time the node was updated.

name

Deployment name.

url

Public deployment URL.

created_at

Creation timestamp (ms).

ready_at

Ready timestamp (ms).

state

State (READY, BUILDING, ERROR, CANCELED, QUEUED).

target

Target environment (production, preview).

source

Source (git, cli, api).

creator_uid

UID of the user who created the deployment.

meta_git_commit_sha

Commit SHA of the deployment source.

meta_git_branch

Branch alias of the deployment source.

Relationships

  • A deployment belongs to a project.

    (:VercelProject)-[:RESOURCE]->(:VercelDeployment)
    
  • A deployment was created by a user.

    (:VercelDeployment)-[:CREATED_BY]->(:VercelUser)
    

VercelDomain

Represents a domain owned by the team.

Field

Description

id

Domain name (used as ID).

firstseen

Timestamp of when a sync job first created this node.

lastupdated

Timestamp of the last time the node was updated.

name

Domain name.

service_type

external or zeit.world.

verified

Whether the domain is verified.

created_at

Creation timestamp (ms).

expires_at

Registration expiration timestamp (ms).

cdn_enabled

Whether the CDN is enabled.

bought_at

Timestamp the domain was purchased (ms).

Relationships

  • A domain belongs to a team.

    (:VercelTeam)-[:RESOURCE]->(:VercelDomain)
    
  • A domain contains DNS records via HAS_DNS_RECORD.

    (:VercelDomain)-[:HAS_DNS_RECORD]->(:VercelDNSRecord)
    
  • Projects attach to domains via HAS_DOMAIN, which carries per-project configuration (redirect, redirect_status_code, git_branch, verified, created_at, updated_at, project_domain_id). Auto-generated *.vercel.app and external CNAMEd domains are also upserted as VercelDomain nodes via this relationship, without clobbering team-level domain fields.

    (:VercelProject)-[:HAS_DOMAIN]->(:VercelDomain)
    

VercelDNSRecord

Represents a DNS record on a Vercel-managed domain.

Ontology Mapping: This node has the extra label DNSRecord to enable cross-platform queries for DNS records across different systems.

Field

Description

id

Record ID.

firstseen

Timestamp of when a sync job first created this node.

lastupdated

Timestamp of the last time the node was updated.

name

Record name.

type

Record type (A, AAAA, CNAME, MX, TXT, etc.).

value

Record value.

ttl

Record TTL.

priority

MX priority (when applicable).

created_at

Creation timestamp (ms).

Relationships

  • A DNS record belongs to the team and is contained in a domain via HAS_DNS_RECORD.

    (:VercelTeam)-[:RESOURCE]->(:VercelDNSRecord)
    (:VercelDomain)-[:HAS_DNS_RECORD]->(:VercelDNSRecord)
    

VercelEnvironmentVariable

Represents a per-project environment variable. The value is intentionally not stored.

Field

Description

id

Env var ID.

firstseen

Timestamp of when a sync job first created this node.

lastupdated

Timestamp of the last time the node was updated.

key

Variable name.

type

Variable type (encrypted, plain, sensitive, secret).

target

List of target environments (production, preview, development).

git_branch

Git branch scope.

created_at

Creation timestamp (ms).

updated_at

Last update timestamp (ms).

edge_config_id

Linked Edge Config ID, if any.

comment

Optional description.

Relationships

  • A project contains env vars.

    (:VercelProject)-[:RESOURCE]->(:VercelEnvironmentVariable)
    
  • An env var can reference an edge config.

    (:VercelEnvironmentVariable)-[:REFERENCES]->(:VercelEdgeConfig)
    

VercelSharedEnvironmentVariable

Represents a team-level shared env var. The value is intentionally not stored.

Field

Description

id

Env var ID.

firstseen

Timestamp of when a sync job first created this node.

lastupdated

Timestamp of the last time the node was updated.

key

Variable name.

type

Variable type.

target

List of target environments.

created_at

Creation timestamp (ms).

updated_at

Last update timestamp (ms).

Relationships

  • Shared env vars belong to a team.

    (:VercelTeam)-[:RESOURCE]->(:VercelSharedEnvironmentVariable)
    

VercelFirewallConfig

Represents the WAF / firewall configuration for a project.

Field

Description

id

Synthesized ID ({project_id}_firewall).

firstseen

Timestamp of when a sync job first created this node.

lastupdated

Timestamp of the last time the node was updated.

enabled

Whether the firewall is enabled.

updated_at

Last update timestamp (ms).

Relationships

  • A firewall config belongs to a project.

    (:VercelProject)-[:RESOURCE]->(:VercelFirewallConfig)
    

VercelFirewallBypassRule

Represents a firewall bypass rule that weakens WAF protections.

Field

Description

id

Rule ID.

firstseen

Timestamp of when a sync job first created this node.

lastupdated

Timestamp of the last time the node was updated.

domain

Domain the rule applies to.

ip

IP address allowlisted.

note

Operator-provided note.

created_at

Creation timestamp (ms).

actor_id

UID of the user who created the bypass.

Relationships

  • A bypass rule belongs to a project and was created by a user.

    (:VercelProject)-[:RESOURCE]->(:VercelFirewallBypassRule)-[:CREATED_BY]->(:VercelUser)
    

VercelIntegration

Represents a third-party integration installed on the team.

Field

Description

id

Integration ID.

firstseen

Timestamp of when a sync job first created this node.

lastupdated

Timestamp of the last time the node was updated.

slug

Integration slug.

integration_id

Integration marketplace ID.

status

Status (installed, removed).

scopes

Granted scopes.

project_selection

all or selected.

project_ids

List of selected project IDs.

source

How the integration was installed.

created_at

Creation timestamp (ms).

updated_at

Last update timestamp (ms).

Relationships

  • An integration belongs to a team and is configured for specific projects.

    (:VercelTeam)-[:RESOURCE]->(:VercelIntegration)-[:CONFIGURED_FOR]->(:VercelProject)
    

VercelAccessGroup

Represents a team access group used for RBAC.

Ontology Mapping: This node has the extra label Group to enable cross-platform queries for user groups across different systems (e.g., OktaGroup, GoogleWorkspaceGroup, AWSGroup).

Field

Description

id

Access group ID.

firstseen

Timestamp of when a sync job first created this node.

lastupdated

Timestamp of the last time the node was updated.

name

Access group name.

created_at

Creation timestamp (ms).

updated_at

Last update timestamp (ms).

members_count

Number of members.

projects_count

Number of projects.

is_dsync_managed

Whether the group is managed via directory sync.

member_ids

List of user IDs.

Relationships

  • An access group groups users.

    (:VercelTeam)-[:RESOURCE]->(:VercelAccessGroup)-[:HAS_MEMBER]->(:VercelUser)
    
  • An access group grants access to projects. The HAS_ACCESS_TO relationship carries a role property (ADMIN, PROJECT_DEVELOPER, PROJECT_VIEWER, or PROJECT_GUEST) describing the per-project privilege level.

    (:VercelAccessGroup)-[:HAS_ACCESS_TO]->(:VercelProject)
    

VercelWebhook

Represents a team webhook endpoint.

Field

Description

id

Webhook ID.

firstseen

Timestamp of when a sync job first created this node.

lastupdated

Timestamp of the last time the node was updated.

url

Destination URL.

events

List of subscribed event types.

project_ids

List of project IDs this webhook watches.

created_at

Creation timestamp (ms).

updated_at

Last update timestamp (ms).

Relationships

  • Webhooks belong to a team and watch specific projects.

    (:VercelTeam)-[:RESOURCE]->(:VercelWebhook)-[:WATCHES]->(:VercelProject)
    

VercelLogDrain

Represents a log delivery drain.

Field

Description

id

Drain ID.

firstseen

Timestamp of when a sync job first created this node.

lastupdated

Timestamp of the last time the node was updated.

name

Drain name.

url

Destination URL.

delivery_format

Format (json, ndjson, syslog).

status

Drain status (enabled, disabled, errored).

sources

List of log sources.

environments

List of environments monitored.

project_ids

List of monitored project IDs.

created_at

Creation timestamp (ms).

Relationships

  • Log drains belong to a team and monitor specific projects.

    (:VercelTeam)-[:RESOURCE]->(:VercelLogDrain)-[:MONITORS]->(:VercelProject)
    

VercelSecureComputeNetwork

Represents a Vercel Connect private network.

Field

Description

id

Network ID.

firstseen

Timestamp of when a sync job first created this node.

lastupdated

Timestamp of the last time the node was updated.

name

Network name.

region

AWS region.

status

Network status.

created_at

Creation timestamp (ms).

Relationships

  • Networks belong to a team.

    (:VercelTeam)-[:RESOURCE]->(:VercelSecureComputeNetwork)
    
  • Networks attach to projects per environment. The CONNECTS relationship carries an environments list (e.g. ["production", "preview"]) and a passive_environments list with the subset of those environments where the network is configured as a passive (failover) attachment.

    (:VercelSecureComputeNetwork)-[:CONNECTS]->(:VercelProject)
    

VercelAlias

Represents a URL alias pointing at a deployment.

Field

Description

id

Alias UID.

firstseen

Timestamp of when a sync job first created this node.

lastupdated

Timestamp of the last time the node was updated.

alias

Alias hostname.

deployment_id

Deployment UID this alias points to.

project_id

Project ID this alias belongs to.

created_at

Creation timestamp (ms).

Relationships

  • An alias belongs to a team, points to a deployment, and belongs to a project.

    (:VercelTeam)-[:RESOURCE]->(:VercelAlias)-[:DEPLOYED_TO]->(:VercelDeployment)
    (:VercelAlias)-[:BELONGS_TO_PROJECT]->(:VercelProject)
    

VercelEdgeConfig

Represents an edge configuration used to serve runtime data from the edge.

Field

Description

id

Edge config ID.

firstseen

Timestamp of when a sync job first created this node.

lastupdated

Timestamp of the last time the node was updated.

slug

Edge config slug.

created_at

Creation timestamp (ms).

updated_at

Last update timestamp (ms).

item_count

Number of items.

size_in_bytes

Size in bytes.

digest

Content digest.

Relationships

  • Edge configs belong to a team and expose access tokens via HAS_TOKEN.

    (:VercelTeam)-[:RESOURCE]->(:VercelEdgeConfig)
    (:VercelEdgeConfig)-[:HAS_TOKEN]->(:VercelEdgeConfigToken)
    

VercelEdgeConfigToken

Represents a read token granting access to an edge config. The token value is intentionally not stored.

Field

Description

id

Token ID.

firstseen

Timestamp of when a sync job first created this node.

lastupdated

Timestamp of the last time the node was updated.

label

Token label.

created_at

Creation timestamp (ms).

Relationships

  • Tokens belong to the team and are exposed by an edge config via HAS_TOKEN.

    (:VercelTeam)-[:RESOURCE]->(:VercelEdgeConfigToken)
    (:VercelEdgeConfig)-[:HAS_TOKEN]->(:VercelEdgeConfigToken)