{"id":23663456,"url":"https://github.com/eyolas/kong-plugin-http-log-advanced","last_synced_at":"2025-09-01T17:31:50.708Z","repository":{"id":67394513,"uuid":"339673566","full_name":"eyolas/kong-plugin-http-log-advanced","owner":"eyolas","description":"PLUGIN KONG: Send request and response logs to multiple HTTP servers with body and multiple configuration.","archived":false,"fork":false,"pushed_at":"2021-02-23T14:15:20.000Z","size":15,"stargazers_count":4,"open_issues_count":0,"forks_count":3,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-02T22:04:30.254Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Lua","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/eyolas.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-02-17T09:38:13.000Z","updated_at":"2023-06-25T09:39:33.000Z","dependencies_parsed_at":"2023-02-23T15:01:16.857Z","dependency_job_id":null,"html_url":"https://github.com/eyolas/kong-plugin-http-log-advanced","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/eyolas/kong-plugin-http-log-advanced","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eyolas%2Fkong-plugin-http-log-advanced","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eyolas%2Fkong-plugin-http-log-advanced/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eyolas%2Fkong-plugin-http-log-advanced/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eyolas%2Fkong-plugin-http-log-advanced/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/eyolas","download_url":"https://codeload.github.com/eyolas/kong-plugin-http-log-advanced/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eyolas%2Fkong-plugin-http-log-advanced/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":273162388,"owners_count":25056463,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-01T02:00:09.058Z","response_time":120,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-12-29T05:28:22.989Z","updated_at":"2025-09-01T17:31:50.700Z","avatar_url":"https://github.com/eyolas.png","language":"Lua","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Kong http log advanced\n\nSend request and response logs to multiple HTTP servers.\nWith many configuration + body\n\n\n## Installation\n\nWIP\n\n## Configuration\n\nYou can add the plugin on top of an API by executing the following request on your Kong server:\n\n```sh\n$ http POST :8001/services/{api}/plugins name=middleman-advanced config:='{ \"services\": [{\"url\": \"http://myserver.io/validate\", \"timeout\": 10000, \"keepalive\": 60000}]}'\n```\n\n\u003ctable\u003e\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eform parameter\u003c/th\u003e\n\u003cth\u003edefault\u003c/th\u003e\n\u003cth\u003edescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003ename\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003c/td\u003e\n\u003ctd\u003eThe name of the plugin to use, in this case: \u003ccode\u003emiddleman\u003c/code\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003econfig.services\u003c/code\u003e\u003cbr\u003e\u003cem\u003erequired\u003c/em\u003e\u003c/td\u003e\n\u003ctd\u003e\u003c/td\u003e\n\u003ctd\u003eThe list of services witch the plugin make a JSON \u003ccode\u003ePOST\u003c/code\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\n\u003c/tbody\u003e\u003c/table\u003e\u003cbr /\u003e\n\n### Service config\n\u003ctable\u003e\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eform parameter\u003c/th\u003e\n\u003cth\u003edefault\u003c/th\u003e\n\u003cth\u003edescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eurl\u003c/code\u003e\u003cbr\u003e\u003cem\u003erequired\u003c/em\u003e\u003c/td\u003e\n\u003ctd\u003e\u003c/td\u003e\n\u003ctd\u003eThe URL to which the plugin will make a JSON \u003ccode\u003ePOST\u003c/code\u003e request before proxying the original request.\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003etimeout\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e10000\u003c/td\u003e\n\u003ctd\u003eTimeout (miliseconds) for the request to the URL specified above. Default value is 10000.\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003ekeepalive\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e60000\u003c/td\u003e\n\u003ctd\u003eKeepalive time (miliseconds) for the request to the URL specified above. Default value is 60000.\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003einclude_cert\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003efalse\u003c/td\u003e\n\u003ctd\u003eInclude the original certificate in JSON POST\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003einclude_credential\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003efalse\u003c/td\u003e\n\u003ctd\u003eInclude the credential in JSON POST\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003einclude_consumer\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003efalse\u003c/td\u003e\n\u003ctd\u003eInclude the consumer in JSON POST\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003einclude_route\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003efalse\u003c/td\u003e\n\u003ctd\u003eInclude the route in JSON POST\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\u003c/table\u003e\n\nMiddleman will execute a JSON \u003ccode\u003ePOST\u003c/code\u003e request to the specified \u003ccode\u003eurl\u003c/code\u003e with the following body:\n\n\n## Payload\n```lua\nlocal payload = {\n    ['certificate'] = certificate,\n    ['consumer'] = consumer,\n    ['credential'] = credential,\n    ['kong_routing'] = kong_routing,\n    ['message'] = message,\n    ['request'] = {\n      ['headers'] = headers,\n      ['params'] = params,\n      ['body'] = json_body,\n    }\n  }\n```\n\n\u003ctable\u003e\n    \u003ctr\u003e\n        \u003cth\u003eAttribute\u003c/th\u003e\n        \u003cth\u003eDescription\u003c/th\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n    \u003ctd\u003e\u003ccode\u003ecertificate\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003csmall\u003eThe certificate of the original request if include_credential \u003cbr/\u003e see resty_kong_tls.get_full_client_certificate_chain()\u003c/small\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003e\u003ccode\u003econsumer\u003c/code\u003e\u003c/td\u003e\n        \u003ctd\u003e\u003csmall\u003eThe consumer of the original request \u003cbr/\u003e see kong.client.get_consumer()\u003c/small\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003e\u003ccode\u003ecredential\u003c/code\u003e\u003c/td\u003e\n        \u003ctd\u003e\u003csmall\u003eThe consumer of the original request \u003cbr/\u003e see kong.client.get_credential()\u003c/small\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003e\u003ccode\u003ekong_routing\u003c/code\u003e\u003c/td\u003e\n        \u003ctd\u003e\u003csmall\u003eThe kong_routing of the original request \u003cbr/\u003e see kong.router.get_route() and kong.router.get_service()\u003c/small\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003e\u003ccode\u003erequest\u003c/code\u003e\u003c/td\u003e\n        \u003ctd\u003e\u003csmall\u003eThe request of the original request \u003cbr /\u003e see the next table : request\u003c/small\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003e\u003ccode\u003emessage\u003c/code\u003e\u003c/td\u003e\n        \u003ctd\u003e\u003csmall\u003eThe original log send by kong \u003cbr /\u003e see basic_serializer.serialize(ngx)\u003c/small\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n\u003c/table\u003e\n\nRequest\n\u003ctable\u003e\n    \u003ctr\u003e\n        \u003cth\u003eAttribute\u003c/th\u003e\n        \u003cth\u003eDescription\u003c/th\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n    \u003ctd\u003e\u003ccode\u003ebody\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003csmall\u003eThe body of the original request\u003c/small\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003e\u003ccode\u003eparams\u003c/code\u003e\u003c/td\u003e\n        \u003ctd\u003e\u003csmall\u003eThe url arguments of the original request\u003c/small\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003e\u003ccode\u003eheaders\u003c/code\u003e\u003c/td\u003e\n        \u003ctd\u003e\u003csmall\u003eThe headers of the original request\u003c/small\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n\u003c/table\u003e\n\n## Author\nDavid TOUZET\n\n## License\n\u003cpre\u003e\nThe MIT License (MIT)\n=====================\n\nCopyright (c) 2020-2021 David TOUZET\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n\u003c/pre\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feyolas%2Fkong-plugin-http-log-advanced","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Feyolas%2Fkong-plugin-http-log-advanced","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feyolas%2Fkong-plugin-http-log-advanced/lists"}