future-id/mdr-cli

View on GitHub
README.md

Summary

Maintainability
Test Coverage
[![Build](https://github.com/future-id/mdr-cli/workflows/Build/badge.svg)](https://github.com/future-id/mdr-cli)
[![NPM Version](https://img.shields.io/npm/v/mdr-cli/latest)](https://www.npmjs.com/package/mdr-cli)
[![Dependencies](https://img.shields.io/librariesio/release/npm/mdr-cli)](https://www.npmjs.com/package/mdr-cli)
[![Maintainability](https://img.shields.io/codeclimate/maintainability/future-id/mdr-cli)](https://codeclimate.com/github/future-id/mdr-cli/maintainability)
[![Code Climate issues](https://img.shields.io/codeclimate/issues/future-id/mdr-cli)](https://codeclimate.com/github/future-id/mdr-cli/maintainability)

# mdr-cli
cli to interact with the mijndomeinreseller api \
MijnDomeinReseller docs: https://pepijn98.github.io/mdr-docs/

# Requirements
- NodeJS 14+
- npm or yarn
- mijndomeinreseller account
- internet connection :)

# Installation
`npm i -g mdr-cli@latest` or `yarn global add mdr-cli@latest`

# Updating
### Via npm
`npm update -g mdr-cli`

### Via yarn
`yarn global upgrade mdr-cli`

# Setup
Initial usage will create a config file under your OS's preferred path \
linux: `/home/<user>/.config/mdr-cli/settings.toml` \
mac: `/Users/<user>/Library/Preferences/mdr-cli/settings.toml` \
windows: `Users\<user>\AppData\mdr-cli\settings.toml` \
It will quit after creating the config because you have to add a user and password to this file. \
Use `mdr set username <name>` and `mdr set password <pass>` for this!

# Usage
`mdr` \<subcommand(s)\> [...options]
- `-h`, `--help` - Show help message (`--help` also works on all subcommands, `-h` doesn't) **[optional]**
- `-v`, `--version` - Show current version **[optional]**
- `dns`
    - `record` - Add/remove dns records
        - `add`, `new` - Add a new record
            - `-q`, `--quiet`                   - Disables the loading indicator **[optional]**
            - `-d`, `--domain` \<domain\>       - Domain name **[required]**
            - `-t`, `--tld` \<tld\>             - TLD extension of the domain name **[required]**
            - `-r`, `--type` \<record_type\>    - Record type A, AAAA, TXT, MX..... **[required]**
            - `-h`, `--host` \<host\>           - Hostname of the record **[required]**
            - `-a`, `--address` \<address\>     - Address/url/hostname of new record **[required]**
            - `-p`, `--priority` \<priority\>   - Priority of the new record (SRV/MX ONLY) **[optional]**
            - `-w`, `--weight` \<weight\>       - Weight of the new record (SRV ONLY) **[optional]**
            - `--port` \<port\>                 - Port of the new record (SRV ONLY) **[optional]**
        - `remove`, `delete`, `del`, `rm` - Delete an existing record
            - `-q`, `--quiet`                   - Disables the loading indicator **[optional]**
            - `-d`, `--domain` \<domain\>       - Domain name **[required]**
            - `-t`, `--tld` \<tld\>             - TLD extension of the domain name **[required]**
            - `-r`, `--record` \<record_id\>    - Record ID of the record to be deleted **[required]**
    - `template` - Create, add, list or modify dns template records
        - `record` - Add/remove dns records
            - `add`, `new` - Add a new record to the template
                - `-q`, `--quiet`                       - Disables the loading indicator **[optional]**
                - `-i`, `--template-id` \<template_id\> - Template ID **[required]**
                - `-r`, `--type` \<record_type\>        - Record type A, AAAA, TXT, MX..... **[required]**
                - `-h`, `--host` \<host\>               - Hostname of the record **[required]**
                - `-a`, `--address` \<address\>         - Address/url/hostname of new record **[required]**
                - `-p`, `--priority` \<priority\>       - Priority of the new record (SRV/MX ONLY) **[optional]**
                - `-w`, `--weight` \<weight\>           - Weight of the new record (SRV ONLY) **[optional]**
                - `--port` \<port\>                     - Port of the new record (SRV ONLY) **[optional]**
            - `remove`, `delete`, `del`, `rm` - Delete an existing record from the template
                - `-q`, `--quiet`                       - Disables the loading indicator **[optional]**
                - `-i`, `--template-id` \<template_id\> - Template ID **[required]**
                - `-r`, `--record` \<record_id\>        - Record ID of the record to be deleted **[required]**
        - `details`, `info` - Get details about a specific dns template
            - `-i`, `--template-id` \<template_id\> - Template ID **[required]**
            - `-q`, `--quiet`                       - Disables the loading indicator **[optional]**
        - `list` - Get a list of all dns templates
            - `-q`, `--quiet` - Disables the loading indicator **[optional]**
        - `modify`, `mod` - Modify dns template records
            - `-d`, `--domain` \<domain\>           - Domain name **[required]**
            - `-t`, `--tld` \<tld\>                 - TLD extension of the domain name **[required]**
            - `-i`, `--template-id` \<template_id\> - Template id the record is part off **[required]**
            - `-r`, `--record` \<record\>           - recordId of the template record to be changed **[required]**
            - `-h`, `--host` \<host\>               - Host name of the template record **[required]**
            - `-a`, `--address` \<address\>         - Address, url or host name of new record **[required]**
            - `-q`, `--quiet`                       - Disables the loading indicator **[optional]**
    - `details`, `info` - Get dns details from a domain
        - `-d`, `--domain` \<domain\>   - Domain name **[required]**
        - `-t`, `--tld` \<tld\>         - TLD extension of the domain name **[required]**
        - `-q`, `--quiet`               - Disables the loading indicator **[optional]**
    - `modify`, `mod`  - Modify dns records
        - `-d`, `--domain` \<domain\>   - Domain name **[required]**
        - `-t`, `--tld` \<tld\>         - TLD extension of the domain name **[required]**
        - `-r`, `--record` \<record\>   - recordId of the record to be changed **[required]**
        - `-h`, `--host` \<host\>       - Host name of the record **[required]**
        - `-a`, `--address` \<address\> - Address, url or host name of new record **[required]**
        - `-q`, `--quiet`               - Disables the loading indicator **[optional]**
- `domain`
    - `list` - List all domains
        - `-t`, `--tld`   - Filter for a specific tld **[optional]**
        - `-s`, `--sort`  - Sort the list. Valid options are domein, registrant, admin, tech, verloopdatum or status **[optional]**
        - `-o`, `--order` - Specify in which order it should be shown (asc or desc) **[optional]**
        - `-b`, `--begin` - Show domain names starting with a letter of the alphabet, values: a-z or 0-9 **[optional]**
        - `-q`, `--quiet` - Disables the loading indicator **[optional]**
    - `record` - Get domain record data
        - `-f`, `--full-domain` - Instead of using `-d` and `-t` you can use this instead domain + tld `example.com` **[optional]**
        - `-d`, `--domain`      - Domain name **[optional]**
        - `-t`, `--tld`         - TLD extension of the domain name **[optional]**
        - `-i`, `--template-id` - Template ID **[optional]**
        - `-r`, `--type`        - Record type A, AAAA, TXT, MX..... (ALL to show all record types) **[required]**
        - `-h`, `--host`        - Record host **[optional]**
        - `-p`, `--property`    - Get a certain property e.g. id, type, host, address, priority, weight or port **[optional]**
        - `-q`, `--quiet`       - Disables the loading indicator and returns 0 instead of throwing an error when record not found **[optional]**
    - `template` - Get template id from domain
        - `-f`, `--full-domain` - Instead of using `-d` and `-t` you can use this instead domain + tld `example.com` **[optional]**
        - `-d`, `--domain`  - Domain name **[optional]**
        - `-t`, `--tld`     - TLD extension of the domain name **[optional]**
        - `-q`, `--quiet`       - Disables the loading indicator and returns 0 instead of throwing an error when record not found **[optional]**
- `get`
    - `apiPath`, `api-path`, `path`             - Get the current api path from the config file
    - `authType`, `auth-type`, `auth`           - Get the current auth type from the config file
    - `host`                                    - Get the current host from the config file
    - `lastNotif`, `last-notif`                 - Get the current lastNotification from the config file
    - `ssl`                                     - Get the current ssl value from the config file
    - `username`, `user`                        - Get the current username from the config file
- `set`
    - `apiPath`, `api-path`, `path`             - Update api path in the config file
    - `authType`, `auth-type`, `auth`           - Update auth type in the config file (plain or md5)
    - `host`                                    - Update host in the config file
    - `password`, `pwd`, `pw`, `pass`, `passwd` - Update the password in the config file
    - `ssl`                                     - Enable or disable ssl in the config file, when disabled auth type has to be md5
    - `username`, `user`                        - Update username in the config file