A Wishbone input module to receive events over HTTP.
Project description
::
__ __ __
.--.--.--|__.-----| |--| |--.-----.-----.-----.
| | | | |__ --| | _ | _ | | -__|
|________|__|_____|__|__|_____|_____|__|__|_____|
========================================
wishbone_contrib.module.input.httpserver
========================================
Version: 3.0.8
Receive events over HTTP.
-------------------------
**Receive events over HTTP.**
An HTTP server mapping URL endpoints to queues to which events can be
submitted.
Mapping queues to endpoints::
Connecting queues to this module automatically maps them to the equivalent
URL endpoint.
The "/" endpoint is by default mapped to the <outbox> queue.
Authentication and authorization behavior::
- The htpasswd and resource file content override any duplicate entries
defined in ``resource`` and ``htpasswd``.
- Htpasswd is evaluated first before token validation.
- You cannot define htpasswd and token authentication on the same
resource definition.
- Loading multiple htpasswd and resource files is supported. The
order of loading determines the priority.
Htpasswd and resource file loading behavior::
- Events submitted to queue '_htpasswd' should have the event payload
generated by wishbone.module.input.inotify.
- Events submitted to queue '_resource' should have the event payload
generated by wishbone.module.input.inotify.
- Files are removed from cache using ``IN_DELETE_SELF`` events.
- Files are loaded/updated to cache using ``WISHBONE_INIT`` and
``IN_CLOSE_WRITE`` events.
Available meta data::
Each event has some meta associated stored in tmp.<instance_name>
{
"env": {
"content_length": "288014336",
"content_type": "application/x-www-form-urlencoded",
"gateway_interface": "CGI/1.1",
"http_accept": "*/*",
"http_expect": "100-continue",
"http_host": "localhost:19283",
"http_user_agent": "curl/7.53.1",
"path_info": "/outbox",
"query_string": "one=1&two=2",
"remote_addr": "127.0.0.1",
"remote_port": "60924",
"request_method": "POST",
"script_name": "",
"server_name": "localhost",
"server_port": "19283",
"server_protocol": "HTTP/1.1",
"server_software": "gevent/1.2 Python/3.6",
"wsgi.url_scheme": "http"
},
"headers": {
"accept": "*/*",
"content-length": "288014336",
"content-type": "application/x-www-form-urlencoded",
"expect": "100-continue",
"host": "localhost:19283",
"user-agent": "curl/7.53.1"
},
"params": {
"one": "1",
"two": "2"
}
}
Parameters::
- address(str)("0.0.0.0")
| The address to bind to.
- destination(str)("data")
| The event field to store incoming data.
- htpasswd(dict)({})
| The htpasswd username and password data.
- native_events(bool)(False)
| Whether to expect Wishbone native events or not.
- poolsize(int)(1000)
| The connection pool size.
- port(int)(19283)
| The port to bind to.
- resource(dict)({".*": {"users:": [], "tokens": [], "response": "200 OK. {{uuid}}", "urldecoded_field": null}})
| Contains all endpoint authorization related config.
| The moment at least 1 user or token is defined the
| queue/endpoint needs authentication.
- so_reuseport(bool)(False)
| Enables socket option SO_REUSEPORT.
| See https://lwn.net/Articles/542629/
| Required when running multiple Wishbone instances.
- ssl_cacerts(str)(None)
| When SSL is required, the location of the ca certs to use.
- ssl_cert(str)(None)
| When SSL is required, the location of the ssl_cert to use.
- ssl_key(str)(None)
| When SSL is required, the location of the ssl_key to use.
- max_bytes(int)(16777216)
| The maximum amount of bytes the client can send to the endpoint
| when the expected content is application/x-www-form-urlencoded.
| Keep in mind that the configured decoder also has a max number
| of bytes defined.
Queues::
- outbox
| Incoming events submitted to /
- _resource
| Triggers the resource file to be reloaded.
| The event payload should contain the absolute filename to load
- _htpasswd
| Triggers the htpasswd file to be reloaded.
| The event payload should contain the absolute filename to load
- <queue_name>
| Incoming events submitted to /<queue_name>
__ __ __
.--.--.--|__.-----| |--| |--.-----.-----.-----.
| | | | |__ --| | _ | _ | | -__|
|________|__|_____|__|__|_____|_____|__|__|_____|
========================================
wishbone_contrib.module.input.httpserver
========================================
Version: 3.0.8
Receive events over HTTP.
-------------------------
**Receive events over HTTP.**
An HTTP server mapping URL endpoints to queues to which events can be
submitted.
Mapping queues to endpoints::
Connecting queues to this module automatically maps them to the equivalent
URL endpoint.
The "/" endpoint is by default mapped to the <outbox> queue.
Authentication and authorization behavior::
- The htpasswd and resource file content override any duplicate entries
defined in ``resource`` and ``htpasswd``.
- Htpasswd is evaluated first before token validation.
- You cannot define htpasswd and token authentication on the same
resource definition.
- Loading multiple htpasswd and resource files is supported. The
order of loading determines the priority.
Htpasswd and resource file loading behavior::
- Events submitted to queue '_htpasswd' should have the event payload
generated by wishbone.module.input.inotify.
- Events submitted to queue '_resource' should have the event payload
generated by wishbone.module.input.inotify.
- Files are removed from cache using ``IN_DELETE_SELF`` events.
- Files are loaded/updated to cache using ``WISHBONE_INIT`` and
``IN_CLOSE_WRITE`` events.
Available meta data::
Each event has some meta associated stored in tmp.<instance_name>
{
"env": {
"content_length": "288014336",
"content_type": "application/x-www-form-urlencoded",
"gateway_interface": "CGI/1.1",
"http_accept": "*/*",
"http_expect": "100-continue",
"http_host": "localhost:19283",
"http_user_agent": "curl/7.53.1",
"path_info": "/outbox",
"query_string": "one=1&two=2",
"remote_addr": "127.0.0.1",
"remote_port": "60924",
"request_method": "POST",
"script_name": "",
"server_name": "localhost",
"server_port": "19283",
"server_protocol": "HTTP/1.1",
"server_software": "gevent/1.2 Python/3.6",
"wsgi.url_scheme": "http"
},
"headers": {
"accept": "*/*",
"content-length": "288014336",
"content-type": "application/x-www-form-urlencoded",
"expect": "100-continue",
"host": "localhost:19283",
"user-agent": "curl/7.53.1"
},
"params": {
"one": "1",
"two": "2"
}
}
Parameters::
- address(str)("0.0.0.0")
| The address to bind to.
- destination(str)("data")
| The event field to store incoming data.
- htpasswd(dict)({})
| The htpasswd username and password data.
- native_events(bool)(False)
| Whether to expect Wishbone native events or not.
- poolsize(int)(1000)
| The connection pool size.
- port(int)(19283)
| The port to bind to.
- resource(dict)({".*": {"users:": [], "tokens": [], "response": "200 OK. {{uuid}}", "urldecoded_field": null}})
| Contains all endpoint authorization related config.
| The moment at least 1 user or token is defined the
| queue/endpoint needs authentication.
- so_reuseport(bool)(False)
| Enables socket option SO_REUSEPORT.
| See https://lwn.net/Articles/542629/
| Required when running multiple Wishbone instances.
- ssl_cacerts(str)(None)
| When SSL is required, the location of the ca certs to use.
- ssl_cert(str)(None)
| When SSL is required, the location of the ssl_cert to use.
- ssl_key(str)(None)
| When SSL is required, the location of the ssl_key to use.
- max_bytes(int)(16777216)
| The maximum amount of bytes the client can send to the endpoint
| when the expected content is application/x-www-form-urlencoded.
| Keep in mind that the configured decoder also has a max number
| of bytes defined.
Queues::
- outbox
| Incoming events submitted to /
- _resource
| Triggers the resource file to be reloaded.
| The event payload should contain the absolute filename to load
- _htpasswd
| Triggers the htpasswd file to be reloaded.
| The event payload should contain the absolute filename to load
- <queue_name>
| Incoming events submitted to /<queue_name>
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
File details
Details for the file wishbone_input_httpserver-3.0.8.tar.gz
.
File metadata
- Download URL: wishbone_input_httpserver-3.0.8.tar.gz
- Upload date:
- Size: 10.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 273175f650c26bc27e217ea585cdcb35b4ccb177991d18389f2fc04d1f9231a8 |
|
MD5 | 3cee5a8054b934a57cc75df89e1d1cbc |
|
BLAKE2b-256 | 408879661b25c0bd96d814de496521ab4e4563f136c4bee4a165045e1ae7455b |