New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

outline-vpn-api-client

Package Overview
Dependencies
Maintainers
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

outline-vpn-api-client

  • 1.2.2
  • PyPI
  • Socket score

Maintainers
1

OUTLINE-VPN-API-CLIENT

PyPI - Version PyPI - Format GitHub Release GitHub Actions Workflow Status PyPI - Python Version GitHub License

DESCRIPTION

This library provides a convenient interface for managing an Outline VPN server in Python using the official Outline Management API. It simplifies server interaction by enabling you to:

  • Programmatically manage user keys, including creation, updates, and deletion.
  • Monitor server usage and retrieve detailed statistics.
  • Configure server settings such as bandwidth limits and access rules.
  • Automate routine maintenance and management tasks.

The library is suitable for both individual users and administrators of corporate VPN solutions, helping to streamline server management, save time, and improve operational efficiency.

It is designed with simplicity in mind and features cleanly implemented, well-documented methods.

INSTALLATION

Using pip

pip install outline-vpn-api-client

Using poetry

poetry add outline-vpn-api-client

USAGE

To get started with the library, you need to obtain the management_url for your Outline VPN server. Once you have the management_url, you can create an instance of the OutlineClient class to interact with the server.

Initializing the Client

from outline_vpn_api_client import OutlineClient

# Replace 'your.management.url' with your actual management URL
management_url = "your.management.url"

# Create an OutlineClient instance
client = OutlineClient(management_url=management_url)

Retrieving Server Information

import json

# Fetch server information and pretty-print it
print(json.dumps(client.get_information(), ensure_ascii=False, indent=4))

Creating Access Keys

Creating a Key Without Limits
# Replace 'name' with a meaningful identifier for the key
client.access_keys.create(name="Example Key")
Creating a Key With a Limit
# Replace 'name' with a meaningful identifier for the key
# Replace 'limit' with the desired bandwidth limit in bytes
client.access_keys.create(name="Example Key with Limit", limit=10**9)  # Example: 1 GB limit

Handling Errors

The library uses a custom exception, ResponseNotOkException, to handle server-side errors. This exception is raised whenever the API returns an unexpected response.

from outline_vpn_api_client import ResponseNotOkException

try:
    # Attempting to fetch server information
    info = client.get_information()
    print(info)
except ResponseNotOkException as e:
    print(e)

The error message provides details about the HTTP status code and the error message returned by the API. It follows this format:

def _get_error_message(status_code: int, error: str) -> str:
    return f"An error occurred: {status_code} - {error}"

For example, if the API returns a 404 error with the message "Not Found", the exception will produce the message:

outline_vpn_api_client.client.ResponseNotOkException: An error occured: 404 - {'code': 'NotFound', 'message': 'Access key "100" not found'}    

Async Usage

For use async client install async version of package:

pip install outline-vpn-api-client[async]

Then import async client and create instance of this

from outline_vpn_api_client.async_client import AsyncOutlineClient

# Replace 'your.management.url' with your actual management URL
management_url = "your.management.url"

# Create an AsyncOutlineClient instance
client = AsyncOutlineClient(management_url=management_url)

Console Version

The library also includes a command-line interface (CLI) for quick access. You can use the following command to interact with the server:

python3 -m outline_vpn_api_client management_url get_info

AUTHOR

Created by zeph1rr
Email: grianton535@gmail.com

FAQs


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