Command-line client for the Kong admin
npm install -g konga-cli
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
$ konga api list
List all configured APIs
$ 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
$ konga api remove <api-name>
Ensure the api of that name does not exist
$ konga plugin list [--on <api-name>]
- List all available plugins
- List configured plugins on a given API
$ 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
$ 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
$ konga plugin remove <plugin-name> --on <api-name>
Ensure a given plugin is disabled for a given API
$ konga consumer list
$ konga consumer set <username> [--custom-id <custom-id>]
Ensure the consumer by that name is created
$ konga consumer remove <username>
Ensure the consumer by that name does not exist
$ 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
$ konga consumer plugin-read <username> <plugin-name> [fields...]
You can run the tests with npm test
. You will need to know mocha
Anyone is welcome to submit issues and pull requests
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.