kong-python-pluginserver
Plugin server and PDK (Plugin Development Kit) for Python language support in Kong.
Requires Kong >= 2.3.0.
Documentation
See in Kong Docs
Install the plugin server
pip3 install kong-pdk
Usage
usage: kong-python-pluginserver [-h] [-p prefix] [-v] [--version] [--socket-name SOCKET_NAME] [--listen-queue-size LISTEN_QUEUE_SIZE]
[--no-lua-style] [-m | -g] -d directory [--dump-plugin-info name] [--dump-all-plugins]
Kong Python Plugin Server.
optional arguments:
-h, --help show this help message and exit
-p prefix, --kong-prefix prefix, -kong-prefix prefix
unix domain socket path to listen (default: /usr/local/kong/)
-v, --verbose turn on verbose logging (default: 1)
--version, -version show program's version number and exit
--socket-name SOCKET_NAME
socket name to listen on (default: python_pluginserver.sock)
--listen-queue-size LISTEN_QUEUE_SIZE
socket listen queue size (default: 4096)
--no-lua-style turn off Lua-style "data, err" return values for PDK functions and throw exception instead (default: False)
-m, --multiprocessing
enable multiprocessing (default: False)
-g, --gevent enable gevent (default: False)
-d directory, --plugins-directory directory, -plugins-directory directory
plugins directory
--dump-plugin-info name, -dump-plugin-info name
dump specific plugin info into stdout
--dump-all-plugins, -dump-all-plugins
dump all plugins info into stdout
PDK API reference
The PDK (plugin developemet kit) API document can be viewed here.
Reference is generated by Sphinx under doc folder and published to the gh-pages branch.
To generate updated docs, use:
git worktree add docs/build/html gh-pages
cd docs
make deps && make html
Deprecation Notice
In next major release of Kong Python PDK, return values will default to use Python style error handling instead of
Lua style. The new style API can be turned on now with --no-lua-style.
# old lua-style PDK API
host, err = kong.request.get_header("host")
if err:
pass # error handling
# new python-style PDK API
try:
host = kong.request.get_header("host")
# no err in return, instead they are thrown if any
except Exception as ex:
pass # error handling
TODO
- Tests
- Hot reload
Unreleased
0.3.6 - 2023-06-27
bug fixes
- add missing file enterprise_edition e8d7c86
0.3.5 - 2023-06-20
bug fixes
0.3.4 - 2023-06-20
bug fixes
0.3.2 - 2022-11-08
bug fixes
0.3.1 - 2022-06-13
bug fixes
- plugin closure syntax correction (#64) 920cc26
- removing upper() to allow matching of attributes (#69) 1997a6c
- #50: return type of get_raw_bodys should be binary string 59ab367
- catch error from PDK methods (#53) 7f82677
- #50: return type should support binary string fdb2c9b
0.3.0 - 2022-02-17
bug fixes
- add option to use python style error handling to be consistent with style headers 39a75bd
- include correct instances list in get_status 56d7ad7
- exit immediately from kong.response.{error,exit} ba3d5fa
0.2.7 - 2021-08-04
bug fixes
- correctly pass schema in embedded server 099a498
- no longer normalize hyphens in socket name in embedded server to keep consistent with what Kong expects 20c01da
0.2.6 - 2021-07-19
bug fixes
- listener to use msgpack.Unpacker iterrator bed56c4
0.2.5 - 2021-06-24
bug fixes
0.2.4 - 2021-06-17
bug fixes
- check correct flags existence in dedicated server (#10) b18dd45
- set larger listen queue size (#9) a3eb340
0.2.3 - 2021-05-13
bug fixes
- display defaults on cli and print PluginServerException to warning 13991ec
- skip running cleanup timer e10c098
- standarlize error on instance not found 0dfc94f
features
0.2.2 - 2021-03-29
bug fixes
- correct license in setup.py (#3) b257c98
- threading mode pipe and styles 6f73ac7
- enable plugin server without gevent mode a29c4d7
features
- add typed interfaces f98e44d
0.2.1 - 2021-02-24
bug fixes
features
0.2.0 - 2021-02-22
bug fixes
- sync with Kong 2.3 update d42de7e
code refactoring
- rename kong_pluginserver to kong_pdk e802627
features
0.1.2 - 2020-02-21
bug fixes
- python2 compatibility 0e4cf1c
0.1.1 - 2020-02-20
0.1.0 - 2020-01-03
Metadata
Release files for kong-pdk 0.36
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| kong_pdk-0.36.tar.gz | 45.3 kB | Without provenance | Details for kong_pdk-0.36.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| kong_pdk-0.36-py3-none-any.whl | Python 3 | none | any | Details for kong_pdk-0.36-py3-none-any.whl |
Total release size: 99.9 kB
Release files / kong_pdk-0.36.tar.gz
| Download URL | kong_pdk-0.36.tar.gz |
|---|---|
| Size | 45.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
45e7a2b1914fc7b452876b52f938f9406fbf5d0e7ef594f4371eaa2f16bfff08
|
|
BLAKE2b-256 checksum How to use checksums |
033f4deb10b341bf5551422493fce3c646c2cb8d58e4d218f2974d32f1343266
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.1 CPython/3.10.12
|
Release files / kong_pdk-0.36-py3-none-any.whl
| Download URL | kong_pdk-0.36-py3-none-any.whl |
|---|---|
| Size | 54.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
c4a67cf6fbe89a9b6d1e57f21e8f09dba0356011d51ca076ee0c70f05c738a94
|
|
BLAKE2b-256 checksum How to use checksums |
f64a1b33c8e4675996db97d3961c257350c8ad74cb727a91d1179b666239ba50
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.1 CPython/3.10.12
|
Security for kong-pdk 0.36
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.