/konga-cli

Command-line client for the Kong admin (http://getkong.org)

Primary LanguageJavaScript

Build Status Coverage

Konga

Command-line client for the Kong admin

Installation

npm install -g konga-cli

Complete Reference

The role of this command-line utility is to hit the Kong admin API. Most bindings are obvious and konga strives to have idempotent commands (that's why you have set instead of add). The complete guide to the Kong api lies on their website

Usage

APIs

List
$ konga api list

List all configured APIs

Set
$ konga api set <api-name> <api-upstream> \
  [--request-host <host>] \
  [--request-path <path>] \
  [--preserve-host] \
  [--strip-request-path]

Ensure the api with that given name is either created or updated with the given settings

Remove
$ konga api remove <api-name>

Ensure the api of that name does not exist

Plugins

List
$ konga plugin list [--on <api-name>]
  • List all available plugins
  • List configured plugins on a given API
Set
$ konga plugin set <plugin-name> --on <api-name> [field=value ...]

Ensure the plugin is enabled with the given settings on a given API. The field=value pair are the settings for the given plugin. Booleans can be specified as just field

Example:

$ konga plugin set oauth2 --on my-api enable_password_grant scopes=identity,messages
Read config
$ konga plugin read-config <plugin-name> --on <api-name> [fields...]

Read the config for a given configured plugin on a given API, optionally select fields to display

For example:

$ konga plugin read-config <oauth> --on my-api provision_key scopes --raw
a006d52004f7e7f028e0e62486f217ced1a6a0d5
identity,messages
Remove
$ konga plugin remove <plugin-name> --on <api-name>

Ensure a given plugin is disabled for a given API

Consumers

List
$ konga consumer list
Set
$ konga consumer set <username> [--custom-id <custom-id>]

Ensure the consumer by that name is created

Remove
$ konga consumer remove <username>

Ensure the consumer by that name does not exist

Configure plugin
$ konga consumer plugin <username> <plugin-name> [field=value...]

Configure a given plugin for that consumer The field=value pair are the settings for the given plugin

Read plugin config
$ konga consumer plugin-read <username> <plugin-name> [fields...]

Test

You can run the tests with npm test. You will need to know mocha

Contributing

Anyone is welcome to submit issues and pull requests

License

MIT

Copyright (c) 2015 Florent Jaby

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.