Skip to main content

A command line interface to modify DNS entries in Proteus.

Project description

Proteus Command Line Client

A simple command line client to modify DNS entries in Proteus.

Installation

Use pip to install proteuscmd:

❯ pip install proteuscmd

Configuration

Configure access credentials in ~/.proteus.json:

{
	"user": "api-user",
	"password": "super.secret!",
	"url": "https://proteus.example.com"
}

Instead of putting in a plaintext password, you can also specify a command to run for getting the password. This way, you can e.g. extract the password from a password manager:

{
	"user": "api-user",
	"password_cmd": ["gopass", "show", "-o", "/my/proteus/pass"],
	"url": "https://proteus.example.com"
}

The comand can be set either as an array, or as a shell string.

You can also specify a map of automatic replacements for domains. This can be useful if, for example, all your domains also have an alternate domain with a DNAME record.

{
	...
	"replace": {
		".ex.com": ".example.com"
	}
}

You can configure maps between IPv4 and IPv6 networks:

{
    ...
    "v4_v6_map": [
        {
            "cidr": "192.168.22.0/23",
            "prefix": "2001:123:456:789::/64"
        }
    ]

Finally, you can configure default values for admin information. You can still overwrite them on the command line if needed.

{
    ...
    "admin_email": "someone@example.com",
    "admin_name": "John Doe",
    "admin_phone": "1234"

Usage

❯ proteuscmd
Usage: python -m proteuscmd [OPTIONS] COMMAND [ARGS]...

Options:
  --help  Show this message and exit.

Commands:
  dns  Get information about or update DNS entries.
  ip   Register IP addresses.

Get information about a DNS record:

❯ proteuscmd dns get lktest.uni-osnabrueck.de

The ip get, ip set, and ip delete commands support a --version option to control which IP version to operate on. You can use 4, 6, or both. When --version both is specified, the command will execute for both IPv4 and IPv6 simultaneously using the v4/v6 mapping configuration:

# Get IP info for both IPv4 and IPv6
❯ proteuscmd ip get 192.168.1.1 --version both
{
  "v4": { "id": "...", "address": "192.168.1.1", ... },
  "v6": { "id": "...", "address": "2001:db8::1", ... }
}

# Assign an IP to both IPv4 and IPv6
❯ proteuscmd ip set 192.168.1.1 AA:BB:CC:DD:EE:FF --version both -e admin@example.com -n Admin -p 555-1234

# Delete an IP assignment for both IPv4 and IPv6
❯ proteuscmd ip delete 192.168.1.1 --version both

Shell Completion

The proteuscmd command line tool supports shell completion for several major shells:

For Bash, add to ~/.bashrc:

eval "$(_PROTEUSCMD_COMPLETE=bash_source proteuscmd)"

For ZSH, add to ~/.zshrc:

eval "$(_PROTEUSCMD_COMPLETE=zsh_source proteuscmd)"

For fish, add to ~/.config/fish/completions/proteuscmd.fish:

_PROTEUSCMD_COMPLETE=fish_source proteuscmd | source

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

proteuscmd-1.2.tar.gz (10.9 kB view details)

Uploaded Source

File details

Details for the file proteuscmd-1.2.tar.gz.

File metadata

  • Download URL: proteuscmd-1.2.tar.gz
  • Upload date:
  • Size: 10.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.6

File hashes

Hashes for proteuscmd-1.2.tar.gz
Algorithm Hash digest
SHA256 efc6103bc89dfcddbda4f29ab7c5bd56601c92934e1e3339114344d4430d0a28
MD5 2e63de5cb73ed9bbcdc228cc0740cd0a
BLAKE2b-256 a5f888b42f27a56e1888efcabca332fa3709616d50b13767a127c3c0e98c51dc

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page