{"id":24685010,"url":"https://github.com/surister/queryzen","last_synced_at":"2025-03-21T20:40:46.800Z","repository":{"id":274034306,"uuid":"921692248","full_name":"surister/queryzen","owner":"surister","description":"Parametrized, named and versioned SQL queries over HTTP","archived":false,"fork":false,"pushed_at":"2025-03-14T10:07:41.000Z","size":262,"stargazers_count":4,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-14T11:23:32.508Z","etag":null,"topics":["backend","http","queries","sql"],"latest_commit_sha":null,"homepage":"","language":"Python","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/surister.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":"2025-01-24T12:38:57.000Z","updated_at":"2025-03-14T10:07:38.000Z","dependencies_parsed_at":null,"dependency_job_id":"a556497d-d160-42ae-af63-0ba8fe7667b0","html_url":"https://github.com/surister/queryzen","commit_stats":null,"previous_names":["surister/queryzen"],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/surister%2Fqueryzen","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/surister%2Fqueryzen/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/surister%2Fqueryzen/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/surister%2Fqueryzen/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/surister","download_url":"https://codeload.github.com/surister/queryzen/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244867992,"owners_count":20523581,"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","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":["backend","http","queries","sql"],"created_at":"2025-01-26T15:17:22.881Z","updated_at":"2025-03-21T20:40:46.788Z","avatar_url":"https://github.com/surister.png","language":"Python","readme":"# QueryZen - SQL over HTTP made easy.\n[![📝🐍 Integration tests - master](https://github.com/surister/queryzen/actions/workflows/client_test.yml/badge.svg)](https://github.com/surister/queryzen/actions/workflows/client_test.yml)\n[![.github/workflows/release.yml](https://github.com/surister/queryzen/actions/workflows/release.yml/badge.svg)](https://github.com/surister/queryzen/actions/workflows/release.yml)\n![PyPI - Status](https://img.shields.io/pypi/status/queryzen)\n\n[![Quality Gate Status](https://sonar.pyramidops.com/api/project_badges/measure?project=surister_queryzen_c0946901-04b6-4415-85f3-a9b95135b8e1\u0026metric=alert_status\u0026token=sqb_a2b02087bce2cb15b3cc68c0d4c03243da867f08)](https://sonar.pyramidops.com/dashboard?id=surister_queryzen_c0946901-04b6-4415-85f3-a9b95135b8e1)\n[![Security Hotspots](https://sonar.pyramidops.com/api/project_badges/measure?project=surister_queryzen_c0946901-04b6-4415-85f3-a9b95135b8e1\u0026metric=security_hotspots\u0026token=sqb_a2b02087bce2cb15b3cc68c0d4c03243da867f08)](https://sonar.pyramidops.com/dashboard?id=surister_queryzen_c0946901-04b6-4415-85f3-a9b95135b8e1)\n[![Vulnerabilities](https://sonar.pyramidops.com/api/project_badges/measure?project=surister_queryzen_c0946901-04b6-4415-85f3-a9b95135b8e1\u0026metric=vulnerabilities\u0026token=sqb_a2b02087bce2cb15b3cc68c0d4c03243da867f08)](https://sonar.pyramidops.com/dashboard?id=surister_queryzen_c0946901-04b6-4415-85f3-a9b95135b8e1)\n[![Code Smells](https://sonar.pyramidops.com/api/project_badges/measure?project=surister_queryzen_c0946901-04b6-4415-85f3-a9b95135b8e1\u0026metric=code_smells\u0026token=sqb_a2b02087bce2cb15b3cc68c0d4c03243da867f08)](https://sonar.pyramidops.com/dashboard?id=surister_queryzen_c0946901-04b6-4415-85f3-a9b95135b8e1)\n[![Maintainability Rating](https://sonar.pyramidops.com/api/project_badges/measure?project=surister_queryzen_c0946901-04b6-4415-85f3-a9b95135b8e1\u0026metric=sqale_rating\u0026token=sqb_a2b02087bce2cb15b3cc68c0d4c03243da867f08)](https://sonar.pyramidops.com/dashboard?id=surister_queryzen_c0946901-04b6-4415-85f3-a9b95135b8e1)\n\nQueryZen allows you to create and run `Zens`, a `Zen` is a named, parameterized and versioned SQL query\nthat is run over HTTP REST endpoints. Decouple your SQL from you application, version it, \nand secure it from development to production.\n\nQueryZen ships:\n- HTTP REST backend to handle the lifetime of Zens.\n- Task execution backend to handle the execution of the queries.\n- Database driver abstraction for Python SQL drivers.\n- Pythonic package to programmatically use QueryZen.\n\nWe also have a docker-compose to streamline development and deployment.\n\n## Quick example using HTTP.\n\n### Create a Zen.\n```sh\ncurl -X PUT https://your-queryzen-server.com/v1/collection/development/zen/summits \\\n     -H \"Authorization: Bearer YOUR_API_KEY\" \\\n     -H \"Content-Type: application/json\" \\\n     -d '{\n          \"sql\": \"SELECT * FROM sys.summits WHERE height = :height and COUNTRY = :country\n           \"parameters\": {\n             \"height\": {\n                  \"type\": \"integer\",\n                  \"default\" 2500\n             },\n             \"country\": {\n                 \"type\": \"string\",\n                 \"default\": \"Canada\"\n             }\n           }\n         }'\n```\n\n### Run a Zen.\n```sh\ncurl -X POST https://your-queryzen-server.com/v1/collection/development/zen/summits \\\n     -H \"Authorization: Bearer YOUR_API_KEY\" \\\n     -H \"Content-Type: application/json\" \\\n     -d '{\n           \"parameters\": {\n             \"height\": 1000,\n             \"country\": \"Austria\"\n           }\n         }'\n```\n\n## Quick example using our python library.\n\n```python\n...\n```\n\n# Why QueryZen \u0026 Use cases.\nWith QueryZen you can:\n- Quickly create HTTP Rest endpoints of your SQL data.\n- Integrate your SQL data in your data pipelines with minimal configuration.\n- Monitor individual query executions and analyze metrics.\n- Version your SQL queries, build and test queries without affecting production.\n- Create materialized views for SQL databases that do not support them.\n\ntodo Add an example of each.\n\n\n# Architecture overview\ntodo Explain architecture","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsurister%2Fqueryzen","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsurister%2Fqueryzen","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsurister%2Fqueryzen/lists"}