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
Tenantto 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_OFrelationship 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
UserAccountto 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. |
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 viaMEMBER_OF. TheMEMBER_OFrelationship 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 |
|
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.appand external CNAMEd domains are also upserted asVercelDomainnodes 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
DNSRecordto 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)
VercelFirewallConfig¶
Represents the WAF / firewall configuration for a project.
Field |
Description |
|---|---|
id |
Synthesized ID ( |
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 |
|
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
Groupto 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_TOrelationship carries aroleproperty (ADMIN,PROJECT_DEVELOPER,PROJECT_VIEWER, orPROJECT_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
CONNECTSrelationship carries anenvironmentslist (e.g.["production", "preview"]) and apassive_environmentslist 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)