{ "info": { "author": "Jelle Smet", "author_email": "development@smetj.net", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Intended Audience :: Developers", "Intended Audience :: System Administrators", "License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)", "Programming Language :: Python", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: Implementation :: PyPy" ], "description": "::\n __ __ __\n .--.--.--|__.-----| |--| |--.-----.-----.-----.\n | | | | |__ --| | _ | _ | | -__|\n |________|__|_____|__|__|_____|_____|__|__|_____|\n\n\n ========================================\n wishbone_contrib.module.input.httpserver\n ========================================\n\n Version: 3.0.8\n\n Receive events over HTTP.\n -------------------------\n\n **Receive events over HTTP.**\n\n An HTTP server mapping URL endpoints to queues to which events can be\n submitted.\n\n Mapping queues to endpoints::\n\n Connecting queues to this module automatically maps them to the equivalent\n URL endpoint.\n\n The \"/\" endpoint is by default mapped to the queue.\n\n\n Authentication and authorization behavior::\n\n - The htpasswd and resource file content override any duplicate entries\n defined in ``resource`` and ``htpasswd``.\n - Htpasswd is evaluated first before token validation.\n - You cannot define htpasswd and token authentication on the same\n resource definition.\n - Loading multiple htpasswd and resource files is supported. The\n order of loading determines the priority.\n\n Htpasswd and resource file loading behavior::\n\n - Events submitted to queue '_htpasswd' should have the event payload\n generated by wishbone.module.input.inotify.\n - Events submitted to queue '_resource' should have the event payload\n generated by wishbone.module.input.inotify.\n - Files are removed from cache using ``IN_DELETE_SELF`` events.\n - Files are loaded/updated to cache using ``WISHBONE_INIT`` and\n ``IN_CLOSE_WRITE`` events.\n\n Available meta data::\n\n Each event has some meta associated stored in tmp.\n\n {\n \"env\": {\n \"content_length\": \"288014336\",\n \"content_type\": \"application/x-www-form-urlencoded\",\n \"gateway_interface\": \"CGI/1.1\",\n \"http_accept\": \"*/*\",\n \"http_expect\": \"100-continue\",\n \"http_host\": \"localhost:19283\",\n \"http_user_agent\": \"curl/7.53.1\",\n \"path_info\": \"/outbox\",\n \"query_string\": \"one=1&two=2\",\n \"remote_addr\": \"127.0.0.1\",\n \"remote_port\": \"60924\",\n \"request_method\": \"POST\",\n \"script_name\": \"\",\n \"server_name\": \"localhost\",\n \"server_port\": \"19283\",\n \"server_protocol\": \"HTTP/1.1\",\n \"server_software\": \"gevent/1.2 Python/3.6\",\n \"wsgi.url_scheme\": \"http\"\n },\n \"headers\": {\n \"accept\": \"*/*\",\n \"content-length\": \"288014336\",\n \"content-type\": \"application/x-www-form-urlencoded\",\n \"expect\": \"100-continue\",\n \"host\": \"localhost:19283\",\n \"user-agent\": \"curl/7.53.1\"\n },\n \"params\": {\n \"one\": \"1\",\n \"two\": \"2\"\n }\n }\n\n Parameters::\n\n - address(str)(\"0.0.0.0\")\n | The address to bind to.\n\n - destination(str)(\"data\")\n | The event field to store incoming data.\n\n - htpasswd(dict)({})\n | The htpasswd username and password data.\n\n - native_events(bool)(False)\n | Whether to expect Wishbone native events or not.\n\n - poolsize(int)(1000)\n | The connection pool size.\n\n - port(int)(19283)\n | The port to bind to.\n\n - resource(dict)({\".*\": {\"users:\": [], \"tokens\": [], \"response\": \"200 OK. {{uuid}}\", \"urldecoded_field\": null}})\n | Contains all endpoint authorization related config.\n | The moment at least 1 user or token is defined the\n | queue/endpoint needs authentication.\n\n - so_reuseport(bool)(False)\n | Enables socket option SO_REUSEPORT.\n | See https://lwn.net/Articles/542629/\n | Required when running multiple Wishbone instances.\n\n - ssl_cacerts(str)(None)\n | When SSL is required, the location of the ca certs to use.\n\n - ssl_cert(str)(None)\n | When SSL is required, the location of the ssl_cert to use.\n\n - ssl_key(str)(None)\n | When SSL is required, the location of the ssl_key to use.\n\n - max_bytes(int)(16777216)\n | The maximum amount of bytes the client can send to the endpoint\n | when the expected content is application/x-www-form-urlencoded.\n | Keep in mind that the configured decoder also has a max number\n | of bytes defined.\n\n Queues::\n\n - outbox\n | Incoming events submitted to /\n\n - _resource\n | Triggers the resource file to be reloaded.\n | The event payload should contain the absolute filename to load\n\n - _htpasswd\n | Triggers the htpasswd file to be reloaded.\n | The event payload should contain the absolute filename to load\n\n - \n | Incoming events submitted to /\n\n", "description_content_type": "", "docs_url": null, "download_url": "https://github.com/smetj/wishbone-input-httpserver/tarball/master", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/smetj/wishbone-input-httpserver", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "wishbone_input_httpserver", "package_url": "https://pypi.org/project/wishbone_input_httpserver/", "platform": "Linux", "project_url": "https://pypi.org/project/wishbone_input_httpserver/", "project_urls": { "Download": "https://github.com/smetj/wishbone-input-httpserver/tarball/master", "Homepage": "https://github.com/smetj/wishbone-input-httpserver" }, "release_url": "https://pypi.org/project/wishbone_input_httpserver/3.0.8/", "requires_dist": null, "requires_python": "", "summary": "A Wishbone input module to receive events over HTTP.", "version": "3.0.8" }, "last_serial": 3722807, "releases": { "1.0.0": [ { "comment_text": "", "digests": { "md5": "6648b78f01ab954314bb7917dbf85a07", "sha256": "ac81775f1f1984412e544e5ca5672f39dc1fbea2b7dbad435454d70f7d8bcd20" }, "downloads": -1, "filename": "wishbone_input_httpserver-1.0.0.tar.gz", "has_sig": false, "md5_digest": "6648b78f01ab954314bb7917dbf85a07", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4645, "upload_time": "2016-03-28T10:53:19", "url": "https://files.pythonhosted.org/packages/19/f4/c20dd34d8d31fff7960aaf4d2a5fb137aa3625e6c2c1288b006faee4679e/wishbone_input_httpserver-1.0.0.tar.gz" } ], "1.0.2": [ { "comment_text": "", "digests": { "md5": "987d0118d5b78e39fd757690e4a32fc7", "sha256": "9647dc48b75ed96deb1e9d57c6ed2d3bba8016f873b64bf2b51a031ab2c489e8" }, "downloads": -1, "filename": "wishbone_input_httpserver-1.0.2.tar.gz", "has_sig": false, "md5_digest": "987d0118d5b78e39fd757690e4a32fc7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4878, "upload_time": "2016-05-27T17:54:23", "url": "https://files.pythonhosted.org/packages/c2/25/971036ec873067bd969ea11d3bc4bd511955212479557b7f944afeb391db/wishbone_input_httpserver-1.0.2.tar.gz" } ], "3.0.0": [ { "comment_text": "", "digests": { "md5": "5e66dc8a46f12c1cd766afdada5965f3", "sha256": "752dc9885b82e60c0faa5c24e64c296d3f79da11803c2476060ce12df976b339" }, "downloads": -1, "filename": "wishbone_input_httpserver-3.0.0.tar.gz", "has_sig": false, "md5_digest": "5e66dc8a46f12c1cd766afdada5965f3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9158, "upload_time": "2018-01-11T19:58:25", "url": "https://files.pythonhosted.org/packages/ec/1d/9f5d8c94f2f7d94f10c40e353883d335732ac1bc776ba537c67438f5ad18/wishbone_input_httpserver-3.0.0.tar.gz" } ], "3.0.4": [ { "comment_text": "", "digests": { "md5": "2e26791f19fed38b936b956a2936d778", "sha256": "45ccf5703ab775e65411f73a8f4326cff10a7936a3d37e9d969fe9854772a785" }, "downloads": -1, "filename": "wishbone_input_httpserver-3.0.4.tar.gz", "has_sig": false, "md5_digest": "2e26791f19fed38b936b956a2936d778", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9478, "upload_time": "2018-03-07T21:47:39", "url": "https://files.pythonhosted.org/packages/07/aa/27538ae1833d9f48b44284c712c033cf6cafbdc84c1ba393f30e80b50cba/wishbone_input_httpserver-3.0.4.tar.gz" } ], "3.0.5": [ { "comment_text": "", "digests": { "md5": "bd9ebf9abd354cb427f6a7fbfb2c9f30", "sha256": "6edda08ec65ff7acceafba8a52f163fec3809ca3ede8b5a99c7eb753c1f062a8" }, "downloads": -1, "filename": "wishbone_input_httpserver-3.0.5.tar.gz", "has_sig": false, "md5_digest": "bd9ebf9abd354cb427f6a7fbfb2c9f30", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9457, "upload_time": "2018-03-17T09:18:36", "url": "https://files.pythonhosted.org/packages/df/4d/78f1d51ed49350c0ccb90564988e86c0ab39b82de8a250091a119671e488/wishbone_input_httpserver-3.0.5.tar.gz" } ], "3.0.6": [ { "comment_text": "", "digests": { "md5": "9a832626fc328a03bc6d3507bb41563e", "sha256": "ea8ba5acaf7ab38b21a5c2e87dd071694f7e71ce5b0c7ee2e82470bfc95122b2" }, "downloads": -1, "filename": "wishbone_input_httpserver-3.0.6.tar.gz", "has_sig": false, "md5_digest": "9a832626fc328a03bc6d3507bb41563e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9470, "upload_time": "2018-03-27T21:11:56", "url": "https://files.pythonhosted.org/packages/7a/e2/2f25b6a7754aad384710f7d0a0791f44d4631b9ef9357528729842f6dc8f/wishbone_input_httpserver-3.0.6.tar.gz" } ], "3.0.7": [ { "comment_text": "", "digests": { "md5": "e841f7aa3d37f17574b024f253a9fa02", "sha256": "495832a27afe33b0302394e5bbc1e0db502a87c9921f646de0909a414b0b4d4e" }, "downloads": -1, "filename": "wishbone_input_httpserver-3.0.7.tar.gz", "has_sig": false, "md5_digest": "e841f7aa3d37f17574b024f253a9fa02", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10414, "upload_time": "2018-03-31T19:50:28", "url": "https://files.pythonhosted.org/packages/68/84/635ce1d5d189911e7ed20276119247de706189ccffddb53058a2b8aedf91/wishbone_input_httpserver-3.0.7.tar.gz" } ], "3.0.8": [ { "comment_text": "", "digests": { "md5": "3cee5a8054b934a57cc75df89e1d1cbc", "sha256": "273175f650c26bc27e217ea585cdcb35b4ccb177991d18389f2fc04d1f9231a8" }, "downloads": -1, "filename": "wishbone_input_httpserver-3.0.8.tar.gz", "has_sig": false, "md5_digest": "3cee5a8054b934a57cc75df89e1d1cbc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10586, "upload_time": "2018-03-31T22:15:13", "url": "https://files.pythonhosted.org/packages/40/88/79661b25c0bd96d814de496521ab4e4563f136c4bee4a165045e1ae7455b/wishbone_input_httpserver-3.0.8.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "3cee5a8054b934a57cc75df89e1d1cbc", "sha256": "273175f650c26bc27e217ea585cdcb35b4ccb177991d18389f2fc04d1f9231a8" }, "downloads": -1, "filename": "wishbone_input_httpserver-3.0.8.tar.gz", "has_sig": false, "md5_digest": "3cee5a8054b934a57cc75df89e1d1cbc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10586, "upload_time": "2018-03-31T22:15:13", "url": "https://files.pythonhosted.org/packages/40/88/79661b25c0bd96d814de496521ab4e4563f136c4bee4a165045e1ae7455b/wishbone_input_httpserver-3.0.8.tar.gz" } ] }