{"id":27643732,"url":"https://github.com/ikethecoder/proxy-wasm-go-jq-filter","last_synced_at":"2026-05-05T08:31:48.465Z","repository":{"id":200053145,"uuid":"704264372","full_name":"ikethecoder/proxy-wasm-go-jq-filter","owner":"ikethecoder","description":"A data transformation Filter using JQ for Kong packaged as a WASM","archived":false,"fork":false,"pushed_at":"2023-10-13T22:49:49.000Z","size":22,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-09-10T00:34:22.924Z","etag":null,"topics":["apis","jq","json","kong","transformation","wasm"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ikethecoder.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2023-10-12T22:34:07.000Z","updated_at":"2023-10-14T13:17:17.000Z","dependencies_parsed_at":null,"dependency_job_id":"a4ae28df-0c93-4907-baf8-2825faad0f30","html_url":"https://github.com/ikethecoder/proxy-wasm-go-jq-filter","commit_stats":null,"previous_names":["ikethecoder/proxy-wasm-go-jq-filter","ikethecoder/proxy-wasm-go-filter-template"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/ikethecoder/proxy-wasm-go-jq-filter","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ikethecoder%2Fproxy-wasm-go-jq-filter","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ikethecoder%2Fproxy-wasm-go-jq-filter/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ikethecoder%2Fproxy-wasm-go-jq-filter/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ikethecoder%2Fproxy-wasm-go-jq-filter/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ikethecoder","download_url":"https://codeload.github.com/ikethecoder/proxy-wasm-go-jq-filter/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ikethecoder%2Fproxy-wasm-go-jq-filter/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32642007,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-04T10:08:07.713Z","status":"online","status_checked_at":"2026-05-05T02:00:06.033Z","response_time":54,"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":["apis","jq","json","kong","transformation","wasm"],"created_at":"2025-04-24T00:17:29.509Z","updated_at":"2026-05-05T08:31:48.448Z","avatar_url":"https://github.com/ikethecoder.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Proxy-Wasm Go JQ Filter\n\nA plugin for the [Kong Microservice API Gateway](https://konghq.com/solutions/gateway/) to transform payloads using [JQ](https://jqlang.github.io/jq/). It is a [Proxy-Wasm](https://github.com/proxy-wasm/spec) filter that uses the [jqgo library](https://github.com/itchyny/gojq) for transforming JSON Responses.\n\n## Tested and working for\n\n| Kong Version |   Tests passing    |\n| ------------ | :----------------: |\n| 3.4.x        | :white_check_mark: |\n\n## Installation\n\n### Using docker\n\n```\ndocker build --tag kong-wasm-test  .\n```\n\n### Running Kong\n\n```\ndocker run --rm --name kong \\\n     -e \"KONG_LOG_LEVEL=info\" \\\n     -e \"KONG_WASM=on\" \\\n     -e \"KONG_DATABASE=off\" \\\n     -e \"KONG_DECLARATIVE_CONFIG=/kong/config/kong.yml\" \\\n     -e \"KONG_PROXY_ACCESS_LOG=/dev/stdout\" \\\n     -e \"KONG_ADMIN_ACCESS_LOG=/dev/stdout\" \\\n     -e \"KONG_PROXY_ERROR_LOG=/dev/stderr\" \\\n     -e \"KONG_ADMIN_ERROR_LOG=/dev/stderr\" \\\n     -e \"KONG_ADMIN_LISTEN=0.0.0.0:8001, 0.0.0.0:8444 ssl\" \\\n     -e \"KONG_UNTRUSTED_LUA_SANDBOX_REQUIRES=cjson,cjson.safe\" \\\n     -e \"KONG_UNTRUSTED_LUA_SANDBOX_ENVIRONMENT=table.concat\" \\\n     -v `pwd`/local/kong_config.yml:/kong/config/kong.yml \\\n     -p 6200:8000 \\\n     -p 6443:8443 \\\n     -p 8001:8001 \\\n     -p 127.0.0.1:8444:8444 \\\n     kong-wasm-test\n```\n\n## Usage\n\n### Filter Structure\n\n```\nfilter_chains:\n  - name: my-filter-chain\n    tags: [ns.sample]\n    filters:\n     - name: jq-filter\n       config: \u003e-\n            {\n            \"Query\": \".data | fromjson | .[] | select(.Priority == \\\"Urgent\\\") | .Id\"\n            }\n\n```\n\n### Parameters\n\n| Parameter    | Required | Default | Description                                              |\n| ------------ | -------- | ------- | -------------------------------------------------------- |\n| name         | yes      |         | The name of the filter to use, in this case `jq-filter`. |\n| config       | yes      |         | A JSON object represented as a string.                   |\n| config.Query | no       | \".\"     | The JQ query to perform on the response payload.         |\n\n### Example\n\n```\ncurl -d @local/sample_payload.json \\\n  -H \"Content-Type: application/json\" \\\n  http://127.0.0.1:6200/post\n```\n\nResult:\n\n```json\n[\"1\", \"3\"]\n```\n\n## Testing\n\n### Prerequisites\n\n- [tinygo](https://tinygo.org) - a Go compiler that can produce WebAssembly code.\n\n### Build\n\nOnce the Go environment is set up and tinygo is in the PATH, build the filter running\n`make`.\n\nThis will produce a .wasm file in the root of the project.\n\n### Running Tests\n\n```sh\ntinygo test\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fikethecoder%2Fproxy-wasm-go-jq-filter","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fikethecoder%2Fproxy-wasm-go-jq-filter","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fikethecoder%2Fproxy-wasm-go-jq-filter/lists"}