Skip to content

built-fast/vector-pro-sdk-node

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Vector Pro SDK for Node.js

Official Node.js SDK for the Vector Pro API by BuiltFast.

npm version License: MIT

Installation

npm install vector-pro-sdk

Usage

import { VectorProClient } from 'vector-pro-sdk';

const client = new VectorProClient({
  apiKey: 'your-api-key',
});

// List sites
const sites = await client.sites.list();

// Create a site
const site = await client.sites.create({
  partner_customer_id: 'customer-123',
  dev_php_version: '8.3',
});

// Get a specific site
const site = await client.sites.get('site-id');

// Manage environments
const envs = await client.environments.list('site-id');
await client.environments.deploy('site-id', 'production');
await client.environments.rollback('site-id', 'production');

// Database operations
await client.sites.db.createExport('site-id');
await client.sites.db.importDirect('site-id', { dropTables: true });

// WAF management
await client.sites.waf.addBlockedIP('site-id', '1.2.3.4');
await client.sites.waf.listRateLimits('site-id');

// SSH keys
await client.sites.sshKeys.add('site-id', {
  name: 'my-key',
  public_key: 'ssh-rsa ...',
});

// Account management
const summary = await client.account.getSummary();
await client.account.apiKeys.create({ name: 'ci-token' });
await client.account.secrets.create({ key: 'MY_SECRET', value: 'secret-value' });

// Webhooks
await client.webhooks.create({
  url: 'https://example.com/webhook',
  events: ['site.created', 'deployment.completed'],
});

API Reference

Sites

  • client.sites.list(options?) - List all sites
  • client.sites.get(siteId) - Get a site
  • client.sites.create(data) - Create a site
  • client.sites.update(siteId, data) - Update a site
  • client.sites.delete(siteId) - Delete a site
  • client.sites.clone(siteId, data?) - Clone a site
  • client.sites.suspend(siteId) - Suspend a site
  • client.sites.unsuspend(siteId) - Unsuspend a site
  • client.sites.getLogs(siteId, options?) - Get site logs
  • client.sites.purgeCache(siteId, options?) - Purge CDN cache

Sites - Database

  • client.sites.db.importDirect(siteId, options?) - Import SQL directly
  • client.sites.db.createImportSession(siteId, data?) - Create import session for large files
  • client.sites.db.runImport(siteId, importId) - Run a pending import
  • client.sites.db.getImportStatus(siteId, importId) - Get import status
  • client.sites.db.createExport(siteId, options?) - Create database export
  • client.sites.db.getExportStatus(siteId, exportId) - Get export status

Sites - WAF

  • client.sites.waf.listAllowedReferrers(siteId) - List allowed referrers
  • client.sites.waf.addAllowedReferrer(siteId, hostname) - Add allowed referrer
  • client.sites.waf.removeAllowedReferrer(siteId, hostname) - Remove allowed referrer
  • client.sites.waf.listBlockedReferrers(siteId) - List blocked referrers
  • client.sites.waf.addBlockedReferrer(siteId, hostname) - Add blocked referrer
  • client.sites.waf.removeBlockedReferrer(siteId, hostname) - Remove blocked referrer
  • client.sites.waf.listBlockedIPs(siteId) - List blocked IPs
  • client.sites.waf.addBlockedIP(siteId, ip) - Add blocked IP
  • client.sites.waf.removeBlockedIP(siteId, ip) - Remove blocked IP
  • client.sites.waf.listRateLimits(siteId) - List rate limits
  • client.sites.waf.createRateLimit(siteId, data) - Create rate limit
  • client.sites.waf.getRateLimit(siteId, ruleId) - Get rate limit
  • client.sites.waf.updateRateLimit(siteId, ruleId, data) - Update rate limit
  • client.sites.waf.deleteRateLimit(siteId, ruleId) - Delete rate limit

Sites - SSH Keys

  • client.sites.sshKeys.list(siteId, options?) - List SSH keys
  • client.sites.sshKeys.add(siteId, data) - Add SSH key
  • client.sites.sshKeys.remove(siteId, keyId) - Remove SSH key

Sites - SSL

  • client.sites.ssl.getStatus(siteId, envId) - Get SSL status
  • client.sites.ssl.nudge(siteId, envId, options?) - Nudge SSL provisioning

Environments

  • client.environments.list(siteId, options?) - List environments
  • client.environments.get(siteId, envId) - Get an environment
  • client.environments.create(siteId, data) - Create an environment
  • client.environments.update(siteId, envId, data) - Update an environment
  • client.environments.delete(siteId, envId) - Delete an environment
  • client.environments.deploy(siteId, envId) - Deploy an environment
  • client.environments.rollback(siteId, envId, targetDeploymentId?) - Rollback deployment
  • client.environments.resetDatabasePassword(siteId, envId) - Reset database password

Environments - Deployments

  • client.environments.deployments.list(siteId, envId, options?) - List deployments
  • client.environments.deployments.get(siteId, envId, deploymentId) - Get deployment

Environments - Secrets

  • client.environments.secrets.list(siteId, envId, options?) - List secrets
  • client.environments.secrets.create(siteId, envId, data) - Create secret
  • client.environments.secrets.get(siteId, envId, secretId) - Get secret
  • client.environments.secrets.update(siteId, envId, secretId, data) - Update secret
  • client.environments.secrets.delete(siteId, envId, secretId) - Delete secret

Account

  • client.account.getSummary() - Get account summary
  • client.account.sshKeys.list(options?) - List account SSH keys
  • client.account.sshKeys.create(data) - Create SSH key
  • client.account.sshKeys.get(keyId) - Get SSH key
  • client.account.sshKeys.delete(keyId) - Delete SSH key
  • client.account.apiKeys.list(options?) - List API keys
  • client.account.apiKeys.create(data) - Create API key
  • client.account.apiKeys.delete(tokenId) - Delete API key
  • client.account.secrets.list(options?) - List global secrets
  • client.account.secrets.create(data) - Create global secret
  • client.account.secrets.get(secretId) - Get global secret
  • client.account.secrets.update(secretId, data) - Update global secret
  • client.account.secrets.delete(secretId) - Delete global secret

Webhooks

  • client.webhooks.list(options?) - List webhooks
  • client.webhooks.get(webhookId) - Get a webhook
  • client.webhooks.create(data) - Create a webhook
  • client.webhooks.update(webhookId, data) - Update a webhook
  • client.webhooks.delete(webhookId) - Delete a webhook
  • client.webhooks.rotateSecret(webhookId) - Rotate webhook secret
  • client.webhooks.listLogs(webhookId, options?) - List webhook delivery logs

Events

  • client.events.list(options?) - List events

PHP Versions

  • client.phpVersions.list() - List available PHP versions

TypeScript

Full TypeScript support with exported types for all API responses:

import { VectorProClient } from 'vector-pro-sdk';
import type { Site, Environment, ApiResponse, ListResponse } from 'vector-pro-sdk';

const client = new VectorProClient({ apiKey: 'your-api-key' });

// Responses are fully typed
const sites: ListResponse<Site> = await client.sites.list();
const site: ApiResponse<Site> = await client.sites.get('site-id');

// Access typed data
sites.data?.forEach(site => {
  console.log(site.id, site.status);
});

Error Handling

import { VectorProClient, VectorProApiError } from 'vector-pro-sdk';

try {
  await client.sites.get('invalid-id');
} catch (error) {
  if (error instanceof VectorProApiError) {
    console.log(error.status);  // HTTP status code
    console.log(error.body);    // Response body
  }
}

Development

# Install dependencies
npm install

# Build
npm run build

License

MIT - see LICENSE for details.

About

Node/Typescript SDK for Vector Pro by BuiltFast

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published