__ __ __
.--.--.-- | | | | _ | _ | | -__| ________________| version 3.0.2
Version: 3.0.3
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. - port(int)(19283) | The port to bind to. - ssl_key(str)(None) | When SSL is required, the location of the ssl_key to use. - ssl_cert(str)(None) | When SSL is required, the location of the ssl_cert to use. - ssl_cacerts(str)(None) | When SSL is required, the location of the ca certs to use. - poolsize(int)(1000) | The connection pool size. - so_reuseport(bool)(False) | Enables socket option SO_REUSEPORT. | See https://lwn.net/Articles/542629/ | Required when running multiple Wishbone instances. - resource(dict)({".*": {"users:": [], "tokens": [], "response": "200 OK. {{uuid}}"}}) | Contains all endpoint authorization related config. | The moment at least 1 user or token is defined the | queue/endpoint needs authentication. - htpasswd(dict)({}) | The htpasswd username and password data.
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>