Static web publishing CLI tool for deploying web applications to a CDN with a single command
—
User collaboration features for managing project access, team permissions, and multi-user workflows on the Surge platform.
Invite users to collaborate on projects with appropriate access permissions.
/**
* Invite users as collaborators on projects
* @param hooks - Optional lifecycle hooks
* @returns Command function
*/
function invite(hooks?: HookConfig): CommandFunction;CLI Usage:
# Invite collaborator to specific project
surge invite user@example.com example.surge.sh
# Interactive invitation
surge invite
# Invite with specific permissions
surge invite user@example.com --role developer
# Bulk invite
surge invite user1@example.com user2@example.com --project example.surge.shCLI Options:
-a, --add: Add collaborator (alias for invite)--role: Specify collaborator role (owner, admin, developer, viewer)--project: Specify project for collaboration--message: Custom invitation messageLibrary Usage:
surge.invite({})(process.argv.slice(2));Remove collaborator access from projects and revoke permissions.
/**
* Revoke collaborator access from projects
* @param hooks - Optional lifecycle hooks
* @returns Command function
*/
function revoke(hooks?: HookConfig): CommandFunction;CLI Usage:
# Revoke access from specific project
surge revoke user@example.com example.surge.sh
# Interactive revocation
surge revoke
# Revoke from all projects
surge revoke user@example.com --all
# Revoke specific permissions
surge revoke user@example.com --role developerCLI Options:
-r, --remove: Remove collaborator (alias for revoke)--all: Revoke access from all projects--role: Revoke specific role/permissions--project: Specify project for revocationLibrary Usage:
surge.revoke({})(process.argv.slice(2));Owner:
Admin:
Developer:
Viewer:
# Assign specific role during invitation
surge invite developer@example.com --role developer
# Change existing collaborator role
surge invite developer@example.com --role admin --update
# View current collaborators and roles
surge list --collaborators example.surge.shProject-Level Permissions:
Organization-Level Access:
Development Teams:
# Frontend team
surge invite frontend@company.com --role developer
surge invite designer@company.com --role viewer
# Backend team
surge invite backend@company.com --role admin
surge invite devops@company.com --role ownerClient Collaboration:
# Give client view access
surge invite client@external.com --role viewer
# Temporary contractor access
surge invite contractor@freelance.com --role developer --expire 30daysProject Groups:
# Add collaborator to multiple projects
surge invite developer@company.com staging.company.surge.sh production.company.surge.sh
# Bulk role assignment
surge invite team@company.com --role developer --projects staging,production,demoTemplate Permissions:
# Apply permission template
surge invite newuser@company.com --template developer-standard
# Create permission template
surge config --template developer-standard --role developer --projects staging,demoInvitation Flow:
Invitation Status:
# View pending invitations
surge invite --status pending
# Resend invitation
surge invite user@example.com --resend
# Cancel pending invitation
surge invite user@example.com --cancel
# Set invitation expiration
surge invite user@example.com --expire 14daysAccess Restrictions:
Security Policies:
# Require 2FA for collaborators
surge config example.surge.sh --require-2fa
# Set IP restrictions
surge config example.surge.sh --ip-whitelist 192.168.1.0/24
# Enable audit logging
surge config example.surge.sh --audit-log enabledSSO Integration (Enterprise):
API Access:
# Generate team API tokens
surge token --team frontend-team
# Revoke team tokens
surge token --revoke --team frontend-team
# List team tokens
surge token --list --team allProject Comments:
# Add deployment comment
surge comment "Fixed navigation bug" --tag @developer@company.com
# View deployment comments
surge comments example.surge.sh --deployment latestActivity Feed:
Team Settings:
# Share project configuration
surge config example.surge.sh --share-with team@company.com
# Synchronize settings across projects
surge config --sync staging.surge.sh production.surge.sh
# Team-wide defaults
surge config --team-defaults --ssl enabled --analytics detailedEnvironment Management:
Notification Types:
Notification Settings:
# Configure notification preferences
surge notifications --email deploy,invite,security
# Disable specific notifications
surge notifications --disable analytics
# Set notification frequency
surge notifications --frequency dailyCustom Webhooks:
# Add deployment webhook
surge webhook add https://api.company.com/deploy --events deploy,rollback
# Slack integration
surge webhook add slack --channel #deployments --events deploy,invite
# Remove webhook
surge webhook remove webhook-idWebhook Events:
deploy: New deploymentsrollback: Deployment rollbacksinvite: New collaborator invitationsrevoke: Access revocationserror: Deployment failuresInvitation Not Received:
Cannot Accept Invitation:
Permission Denied:
Missing Projects:
Simultaneous Deployments:
Configuration Conflicts:
# Check current project settings
surge config example.surge.sh --show
# Resolve configuration conflicts
surge config example.surge.sh --merge-conflicts
# Reset to default configuration
surge config example.surge.sh --resetInstall with Tessl CLI
npx tessl i tessl/npm-surge