Modules@robinpath/vercel
vercel

@robinpath/vercel

0.1.1Node.jsPublic

Vercel module for RobinPath.

Vercel

Vercel module for RobinPath.

Package: @robinpath/vercel | Category: Devops | Type: Integration

Authentication

vercel.setToken "my-vercel-token"

Call this once at the start of your script before using any other function. Credentials persist for the duration of the script execution.

Use Cases

Use the vercel module when you need to:

  • List all projects in the authenticated account -- Use vercel.listProjects to perform this operation
  • Get details of a project by ID or name -- Use vercel.getProject to perform this operation
  • Create a new Vercel project -- Use vercel.createProject to perform this operation
  • Update settings of an existing project -- Use vercel.updateProject to perform this operation
  • Delete a Vercel project -- Use vercel.deleteProject to perform this operation

Quick Reference

FunctionDescriptionReturns
setTokenSet the Vercel API bearer token for authentication{configured}
listProjectsList all projects in the authenticated account{projects[], pagination}
getProjectGet details of a project by ID or nameProject object with id, name, framework, targets, etc.
createProjectCreate a new Vercel projectCreated project object
updateProjectUpdate settings of an existing projectUpdated project object
deleteProjectDelete a Vercel project{deleted, projectId}
listDeploymentsList deployments, optionally filtered by project, state, or target{deployments[], pagination}
getDeploymentGet details of a specific deploymentDeployment object with id, url, state, meta, etc.
createDeploymentCreate a new deployment with filesCreated deployment object
cancelDeploymentCancel an in-progress deploymentCancelled deployment object
deleteDeploymentDelete a deployment{deleted, deploymentId}
redeployDeploymentRedeploy an existing deployment (create from existing)New deployment object
listDomainsList all domains in the authenticated account{domains[], pagination}
getDomainGet information about a specific domainDomain object with name, serviceType, verified, etc.
addDomainRegister a new domain to the accountCreated domain object
removeDomainRemove a domain from the account{deleted, domain}
listProjectDomainsList all domains assigned to a project{domains[]}
addProjectDomainAdd a domain to a projectDomain configuration object
removeProjectDomainRemove a domain from a project{deleted, projectId, domain}
getDomainConfigGet DNS configuration for a domainDomain DNS config with misconfigured, cnames, aValues, etc.
verifyDomainVerify a domain attached to a projectVerification result object
listEnvVarsList all environment variables for a project{envs[]} with key, value, target, type, id
getEnvVarGet details of a specific environment variableEnv var object with key, value, target, type
createEnvVarCreate a new environment variable for a projectCreated env var object
updateEnvVarUpdate an existing environment variableUpdated env var object
deleteEnvVarDelete an environment variable from a project{deleted, projectId, envId}
getUserGet the authenticated user's profileUser object with id, email, name, username, etc.
listTeamsList all teams the authenticated user belongs to{teams[], pagination}
getTeamGet details of a specific teamTeam object with id, slug, name, etc.
getDeploymentLogsGet build logs for a deploymentArray of log event objects

Functions

setToken

Set the Vercel API bearer token for authentication

Module: vercel | Returns: object -- {configured}

vercel.setToken "my-vercel-token"
ParameterTypeRequiredDescription
tokenstringYesVercel API token

listProjects

List all projects in the authenticated account

Module: vercel | Returns: object -- {projects[], pagination}

vercel.listProjects {"limit": 20, "search": "my-app"}
ParameterTypeRequiredDescription
optionsobjectNo{limit, from, search}

getProject

Get details of a project by ID or name

Module: vercel | Returns: object -- Project object with id, name, framework, targets, etc.

vercel.getProject "my-project"
ParameterTypeRequiredDescription
projectIdstringYesProject ID or name

createProject

Create a new Vercel project

Module: vercel | Returns: object -- Created project object

vercel.createProject "my-app" {"framework": "nextjs"}
ParameterTypeRequiredDescription
namestringYesProject name
optionsobjectNo{framework, gitRepository, buildCommand, rootDirectory}

updateProject

Update settings of an existing project

Module: vercel | Returns: object -- Updated project object

vercel.updateProject "my-project" {"buildCommand": "npm run build"}
ParameterTypeRequiredDescription
projectIdstringYesProject ID or name
optionsobjectYesFields to update (name, framework, buildCommand, etc.)

deleteProject

Delete a Vercel project

Module: vercel | Returns: object -- {deleted, projectId}

vercel.deleteProject "my-project"
ParameterTypeRequiredDescription
projectIdstringYesProject ID or name

listDeployments

List deployments, optionally filtered by project, state, or target

Module: vercel | Returns: object -- {deployments[], pagination}

vercel.listDeployments {"projectId": "prj_abc123", "limit": 10}
ParameterTypeRequiredDescription
optionsobjectNo{projectId, limit, state, target}

getDeployment

Get details of a specific deployment

Module: vercel | Returns: object -- Deployment object with id, url, state, meta, etc.

vercel.getDeployment "dpl_abc123"
ParameterTypeRequiredDescription
deploymentIdstringYesDeployment ID or URL

createDeployment

Create a new deployment with files

Module: vercel | Returns: object -- Created deployment object

vercel.createDeployment "my-app" [{"file": "index.html", "data": "<h1>Hello</h1>"}]
ParameterTypeRequiredDescription
namestringYesProject name for the deployment
filesarrayYesArray of file objects [{file, data}]
optionsobjectNo{target, gitSource}

cancelDeployment

Cancel an in-progress deployment

Module: vercel | Returns: object -- Cancelled deployment object

vercel.cancelDeployment "dpl_abc123"
ParameterTypeRequiredDescription
deploymentIdstringYesDeployment ID

deleteDeployment

Delete a deployment

Module: vercel | Returns: object -- {deleted, deploymentId}

vercel.deleteDeployment "dpl_abc123"
ParameterTypeRequiredDescription
deploymentIdstringYesDeployment ID or URL

redeployDeployment

Redeploy an existing deployment (create from existing)

Module: vercel | Returns: object -- New deployment object

vercel.redeployDeployment "dpl_abc123" {"target": "production"}
ParameterTypeRequiredDescription
deploymentIdstringYesSource deployment ID to redeploy
optionsobjectNo{target, name}

listDomains

List all domains in the authenticated account

Module: vercel | Returns: object -- {domains[], pagination}

vercel.listDomains
ParameterTypeRequiredDescription
optionsobjectNo{limit, since, until}

getDomain

Get information about a specific domain

Module: vercel | Returns: object -- Domain object with name, serviceType, verified, etc.

vercel.getDomain "example.com"
ParameterTypeRequiredDescription
domainstringYesDomain name

addDomain

Register a new domain to the account

Module: vercel | Returns: object -- Created domain object

vercel.addDomain "example.com"
ParameterTypeRequiredDescription
domainstringYesDomain name to add
optionsobjectNo{cdnEnabled}

removeDomain

Remove a domain from the account

Module: vercel | Returns: object -- {deleted, domain}

vercel.removeDomain "example.com"
ParameterTypeRequiredDescription
domainstringYesDomain name to remove

listProjectDomains

List all domains assigned to a project

Module: vercel | Returns: object -- {domains[]}

vercel.listProjectDomains "my-project"
ParameterTypeRequiredDescription
projectIdstringYesProject ID or name

addProjectDomain

Add a domain to a project

Module: vercel | Returns: object -- Domain configuration object

vercel.addProjectDomain "my-project" "example.com"
ParameterTypeRequiredDescription
projectIdstringYesProject ID or name
domainstringYesDomain name to add

removeProjectDomain

Remove a domain from a project

Module: vercel | Returns: object -- {deleted, projectId, domain}

vercel.removeProjectDomain "my-project" "example.com"
ParameterTypeRequiredDescription
projectIdstringYesProject ID or name
domainstringYesDomain name to remove

getDomainConfig

Get DNS configuration for a domain

Module: vercel | Returns: object -- Domain DNS config with misconfigured, cnames, aValues, etc.

vercel.getDomainConfig "example.com"
ParameterTypeRequiredDescription
domainstringYesDomain name

verifyDomain

Verify a domain attached to a project

Module: vercel | Returns: object -- Verification result object

vercel.verifyDomain "my-project" "example.com"
ParameterTypeRequiredDescription
projectIdstringYesProject ID or name
domainstringYesDomain name to verify

listEnvVars

List all environment variables for a project

Module: vercel | Returns: object -- {envs[]} with key, value, target, type, id

vercel.listEnvVars "my-project"
ParameterTypeRequiredDescription
projectIdstringYesProject ID or name

getEnvVar

Get details of a specific environment variable

Module: vercel | Returns: object -- Env var object with key, value, target, type

vercel.getEnvVar "my-project" "env_abc123"
ParameterTypeRequiredDescription
projectIdstringYesProject ID or name
envIdstringYesEnvironment variable ID

createEnvVar

Create a new environment variable for a project

Module: vercel | Returns: object -- Created env var object

vercel.createEnvVar "my-project" "API_KEY" "secret123" ["production", "preview"]
ParameterTypeRequiredDescription
projectIdstringYesProject ID or name
keystringYesEnvironment variable name
valuestringYesEnvironment variable value
targetsarrayYesDeployment targets: production, preview, development
optionsobjectNo{type, gitBranch} type: encrypted

updateEnvVar

Update an existing environment variable

Module: vercel | Returns: object -- Updated env var object

vercel.updateEnvVar "my-project" "env_abc123" "newValue"
ParameterTypeRequiredDescription
projectIdstringYesProject ID or name
envIdstringYesEnvironment variable ID
valuestringYesNew value
optionsobjectNo{target, type, gitBranch}

deleteEnvVar

Delete an environment variable from a project

Module: vercel | Returns: object -- {deleted, projectId, envId}

vercel.deleteEnvVar "my-project" "env_abc123"
ParameterTypeRequiredDescription
projectIdstringYesProject ID or name
envIdstringYesEnvironment variable ID

getUser

Get the authenticated user's profile

Module: vercel | Returns: object -- User object with id, email, name, username, etc.

vercel.getUser
ParameterTypeRequiredDescription
(none)NoCall with no arguments

listTeams

List all teams the authenticated user belongs to

Module: vercel | Returns: object -- {teams[], pagination}

vercel.listTeams
ParameterTypeRequiredDescription
optionsobjectNo{limit, since, until}

getTeam

Get details of a specific team

Module: vercel | Returns: object -- Team object with id, slug, name, etc.

vercel.getTeam "team_abc123"
ParameterTypeRequiredDescription
teamIdstringYesTeam ID

getDeploymentLogs

Get build logs for a deployment

Module: vercel | Returns: array -- Array of log event objects

vercel.getDeploymentLogs "dpl_abc123"
ParameterTypeRequiredDescription
deploymentIdstringYesDeployment ID

Error Handling

All functions throw on failure. Common errors:

ErrorCause
Vercel API token not set. Call vercel.setToken first.Check the error message for details
Vercel API error (${response.status}): ${errMsg}Check the error message for details
token is requiredCheck the error message for details
projectId is requiredCheck the error message for details
name is requiredCheck the error message for details
deploymentId is requiredCheck the error message for details
files must be an arrayCheck the error message for details
domain is requiredCheck the error message for details
@desc "List projects and validate result"
do
  set $result as vercel.listProjects {"limit": 20, "search": "my-app"}
  if $result != null
    print "Success"
  else
    print "No result"
  end
enddo

Recipes

1. List and iterate Projects

Retrieve all items and loop through them.

@desc "Setup authentication"
do
  vercel.setToken $token
enddo

@desc "List projects and iterate results"
do
  set $result as vercel.listProjects {"limit": 20, "search": "my-app"}
  each $item in $result
    print $item
  end
enddo

2. Create a new item with createProject

Create a new resource and capture the result.

@desc "Setup authentication"
do
  vercel.setToken $token
enddo

@desc "Create project"
do
  set $result as vercel.createProject "my-app" {"framework": "nextjs"}
  print "Created: " + $result
enddo

3. Create and update workflow

Create an item and then update it.

@desc "Setup authentication"
do
  vercel.setToken $token
enddo

@desc "Create project and update project"
do
  set $created as vercel.createProject "my-app" {"framework": "nextjs"}
  # Update the created item
  vercel.updateProject "my-project" {"buildCommand": "npm run build"}
enddo

4. Check before creating

List existing items and only create if needed.

@desc "Setup authentication"
do
  vercel.setToken $token
enddo

@desc "List projects and create project"
do
  set $existing as vercel.listProjects {"limit": 20, "search": "my-app"}
  if $existing == null
    vercel.createProject "my-app" {"framework": "nextjs"}
    print "Item created"
  else
    print "Item already exists"
  end
enddo

5. Multi-step Vercel workflow

Chain multiple vercel operations together.

@desc "Setup authentication"
do
  vercel.setToken $token
enddo

@desc "List projects, get project, and more"
do
  set $r_listProjects as vercel.listProjects {"limit": 20, "search": "my-app"}
  set $r_getProject as vercel.getProject "my-project"
  set $r_createProject as vercel.createProject "my-app" {"framework": "nextjs"}
  print "All operations complete"
enddo

6. Safe listProjects with validation

Check results before proceeding.

@desc "Setup authentication"
do
  vercel.setToken $token
enddo

@desc "List projects and validate result"
do
  set $result as vercel.listProjects {"limit": 20, "search": "my-app"}
  if $result != null
    print "Success: " + $result
  else
    print "Operation returned no data"
  end
enddo

Related Modules

  • docker -- Docker module for complementary functionality
  • git -- Git module for complementary functionality
  • github -- GitHub module for complementary functionality
  • gitlab -- GitLab module for complementary functionality
  • netlify -- Netlify module for complementary functionality

Versions (1)

VersionTagPublished
0.1.1latest1 months ago
Install
$ robinpath add @robinpath/vercel

Collaborators

Dumitru Balaban
Dumitru Balaban
@dumitru
View all @robinpath modules
Version0.1.1
LicenseMIT
Unpacked Size8.6 KB
Versions1
Weekly Downloads21
Total Downloads21
Stars0
Last Publish1 months ago
Created1 months ago

Keywords

Category

devops