Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

outlinevpn-api

Package Overview
Dependencies
Maintainers
0
Versions
23
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

outlinevpn-api

The Outline VPN API client

  • 3.0.0
  • latest
  • npm
  • Socket score

Version published
Weekly downloads
21
decreased by-51.16%
Maintainers
0
Weekly downloads
 
Created
Source

Outline VPN API

Badges: DeepScan grade

A Nodejs Client package for managing Outline servers: Jigsaw-Code/outline-server

GitHub: github.com/murka/outlinevpn-api
NPM: npm.im/outlinevpn-api

Usage

import { OutlineVPN } from "outlinevpn-api";

const client = new OutlineVPN({
  apiUrl: "https://your-server.com/api",
  fingerprint: "your-server-certificate-fingerprint",
});

Server Management

Get Server Info

// Returns: Server details including name, ID, metrics status etc.
const server = await client.getServer();

Rename Server

const success = await client.renameServer("My Server");

Configure Server Settings

Set Hostname
const success = await client.setHostnameForAccessKeys("example.com");
Set Default Port
const success = await client.setPortForNewAccessKeys(12345);
Manage Data Limits
// Set default data limit for new keys
await client.setDefaultDataLimit(1000000000); // 1GB in bytes

// Remove default data limit
await client.deleteDefaultDataLimit();

Access Key Management

List Access Keys
const accessKeys = await client.getAccessKeys();
Create Access Key
// Create with default settings
const key = await client.createAccessKey();

// Create with custom options
const customKey = await client.createAccessKey({
  name: "Custom Key",
  password: "custom-password",
  port: 8388,
});

// Create with specific ID
const keyWithId = await client.createAccessKeyWithId("custom-id", {
  name: "Named Key",
});
Manage Existing Access Key
// Get specific key
const key = await client.getAccessKey("key-id");

// Rename key
await client.renameAccessKey("key-id", "New Name");

// Set data limit for key
await client.addDataLimit("key-id", 1000000000); // 1GB

// Remove data limit
await client.deleteDataLimit("key-id");

// Delete key
await client.deleteAccessKey("key-id");

Metrics

Usage Statistics

// Get data usage per access key
const usage = await client.getDataUsage();

// Get metrics sharing status
const metrics = await client.getShareMetrics();

// Enable/disable metrics sharing
await client.setShareMetrics(true);

Error Handling

The API throws several types of errors:

try {
  await client.getAccessKey("non-existent");
} catch (error) {
  if (error instanceof NotFoundError) {
    // Handle 404
  } else if (error instanceof ValidationError) {
    // Handle validation errors
  } else if (error instanceof OutlineError) {
    // Handle other API errors
  }
}

Types

Server

interface Server {
  name: string;
  serverId: string;
  metricsEnabled: boolean;
  createdTimestampMs: number;
  portForNewAccessKeys?: number;
  hostnameForAccessKeys?: string;
  accessKeyDataLimit?: {
    bytes: number;
  };
  version?: string;
}

Access Key

interface AccessKey {
  id: string;
  name: string;
  password: string;
  port: number;
  method: string;
  accessUrl: string;
  limit?: {
    bytes: number;
  };
}

Response Codes

CodeDescription
200Successful GET request
201Resource created successfully
204Successful operation with no content
400Invalid request/parameters
404Resource not found
409Conflict (e.g., port already in use)
500Server error

Keywords

FAQs

Package last updated on 14 Nov 2024

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc