{"id":18291164,"url":"https://github.com/rhecosystemappeng/exate-api-gator-interceptor","last_synced_at":"2026-04-26T22:31:45.991Z","repository":{"id":194789859,"uuid":"691304511","full_name":"RHEcosystemAppEng/exate-api-gator-interceptor","owner":"RHEcosystemAppEng","description":"Quarkus application for injecting Exate's API-Gator to any service","archived":false,"fork":false,"pushed_at":"2023-09-19T00:10:42.000Z","size":112,"stargazers_count":1,"open_issues_count":0,"forks_count":2,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-04-09T07:49:30.905Z","etag":null,"topics":["microservice","quarkus"],"latest_commit_sha":null,"homepage":"https://quay.io/repository/ecosystem-appeng/gator-api-interceptor","language":"Java","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/RHEcosystemAppEng.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,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-09-13T23:05:09.000Z","updated_at":"2024-11-19T08:00:00.000Z","dependencies_parsed_at":"2024-12-22T23:33:26.214Z","dependency_job_id":null,"html_url":"https://github.com/RHEcosystemAppEng/exate-api-gator-interceptor","commit_stats":null,"previous_names":["rhecosystemappeng/exate-api-gator-interceptor"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/RHEcosystemAppEng/exate-api-gator-interceptor","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RHEcosystemAppEng%2Fexate-api-gator-interceptor","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RHEcosystemAppEng%2Fexate-api-gator-interceptor/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RHEcosystemAppEng%2Fexate-api-gator-interceptor/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RHEcosystemAppEng%2Fexate-api-gator-interceptor/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/RHEcosystemAppEng","download_url":"https://codeload.github.com/RHEcosystemAppEng/exate-api-gator-interceptor/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RHEcosystemAppEng%2Fexate-api-gator-interceptor/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32315711,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-26T21:09:39.134Z","status":"ssl_error","status_checked_at":"2026-04-26T21:09:21.240Z","response_time":129,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["microservice","quarkus"],"created_at":"2024-11-05T14:13:24.745Z","updated_at":"2026-04-26T22:31:45.975Z","avatar_url":"https://github.com/RHEcosystemAppEng.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Exate API-Gator Interceptor\n\nApplication build with [Quarkus][0] used for injecting [Exate's API-Gator][1] by intercepting requests to any\ntarget application.\n\n```mermaid\nsequenceDiagram\n    autonumber\n    actor U as Users\n    participant S as Service\u003cbr/\u003eRoute\n    box Pod\n        participant I as Interceptor\u003cbr/\u003e(sidecar)\n        participant T as Target\u003cbr/\u003eApplication\n    end\n    participant G as Exate\u003cbr/\u003eAPIGator\n\n    U-)S: Send requests to target\n    S-)I: Intercept requests\n    I-)T: Fetch dataset from target\n    I-)G: Protect data in dataset\n    I-)U: Return protected dataset\n```\n\n## Usage\n\n- Configure and deploy the *Interceptor App* next to the *Target App*, preferably as a sidecar container.\n- Redirect the *Target App*'s exposed service to the *Interceptor App*.\n\nFor any request, the *Interceptor App* will access the *Target App* and fetch the original dataset, it will then\nsend the dataset to *API-Gator*, and return the *Gator'ed* dataset as a response to the sender.\n\nThe *Interceptor App* image is pushed to [quay.io/ecosystem-appeng/gator-api-interceptor][3]\n\n## Request Headers\n\nAll known headers from [APIGator Docs][2] can be added to the original request, and they will override headers in\nAPIGator requests. This allows users to override any headers per-request.\n\nThe following headers are unique to the *Interceptor App* and will not appear in [APIGator Docs][2].\n\n| Header Key         | Description        | Required | Default Value |\n|--------------------|--------------------|----------|---------------|\n| Api-Gator-Bypass   | Bypass API Gator   | No       | false         | \n\n## Application Properties\n\n\u003e Visit [APIGator Docs][2] for possible values and types.\n\n| Property Name                      | Environment Variable               | Required | Default Value                |\n|------------------------------------|------------------------------------|:--------:|------------------------------|\n| target.server.host                 | TARGET_SERVER_HOST                 |    No    | localhost                    |\n| target.server.port                 | TARGET_SERVER_PORT                 |   Yes    |                              |\n| target.server.secure               | TARGET_SERVER_SECURE               |    No    | false                        |\n| api.gator.host                     | API_GATOR_HOST                     |    No    | api.exate.co                 |\n| api.gator.port                     | API_GATOR_API                      |    No    | 443                          |\n| api.gator.dataset-uri              | API_GATOR_DATASET_URI              |    No    | /apigator/protect/v1/dataset |\n| api.gator.token-uri                | API_GATOR_TOKEN_URI                |    No    | /apigator/identity/v1/token  |\n| api.gator.api-key                  | API_GATOR_API_KEY                  |   Yes    |                              |\n| api.gator.client-id                | API_GATOR_CLIENT_ID                |   Yes    |                              |\n| api.gator.client-secret            | API_GATOR_CLIENT_SECRET            |   Yes    |                              |\n| api.gator.grant-type               | API_GATOR_GRANT_TYPE               |    No    | client_credentials           |\n| api.gator.manifest-name            | API_GATOR_MANIFEST_NAME            |   Yes    |                              |\n| api.gator.dataset-type             | API_GATOR_DATASET_TYPE             |   Yes    |                              |\n| api.gator.job-type                 | API_GATOR_JOB_TYPE                 |   Yes    |                              |\n| api.gator.country-code             | API_GATOR_COUNTRY_CODE             |   Yes    |                              |\n| api.gator.data-owning-country-code | API_GATOR_DATA_OWNING_COUNTRY_CODE |    No    |                              |\n| api.gator.data-usage-id            | API_GATOR_DATA_USAGE_ID            |    No    |                              |\n| api.gator.protect-null-values      | API_GATOR_PROTECT_NULL_VALUES      |   Yes    |                              |\n| api.gator.restricted-text          | API_GATOR_RESTRICTED_TEXT          |    No    |                              |\n| api.gator.preserve-string-length   | API_GATOR_PRESERVE_STRING_LENGTH   |   Yes    |                              |\n| api.gator.sql-type                 | API_GATOR_SQL_TYPE                 |    No    |                              |\n| api.gator.classification-model     | API_GATOR_CLASSIFICATION_MODEL     |    No    |                              |\n| api.gator.third-party.name         | API_GATOR_THIRD_PARTY_NAME         |    No    |                              |\n| api.gator.third-party.id           | API_GATOR_THIRD_PARTY_ID           |    No    |                              |\n| api.gator.matchingrule.claims[#].X | API_GATOR_MATCHINGRULE_CLAIMS_#__X |    No    |                              |\n\n\u003e Note that *api.gator.third-party.name* and *api.gator.third-party.id* are mutually exclusive. If both are set, only\n\u003e the name will be used. The id will be set to null.\n\n\u003e Example for `api.gator.matchingrule.claims[#].X` property is: `api.gator.matchingrule.claims[0].mykey=myvalue`.\u003cbr/\u003e\n\u003e Example for `API_GATOR_MATCHINGRULE_CLAIMS_#__X` env var is: `API_GATOR_MATCHINGRULE_CLAIMS_0__MYKEY=MYVALUE`.\u003cbr/\u003e\n\u003e *0* is the index of the *claims* list, *mykey=myvalue* is one of the objects in a *claim* object. Note the double underscore.\n\n## Local Container Run\n\n\u003e The following example only uses mandatory properties. View the above table for all properties.\n\u003e Use API-Gator documentation for the potential values and types.\n\n```shell\npodman run --rm -p 8082:8082 --network=host \\\n-e TARGET_SERVER_PORT='8080' \\\n-e API_GATOR_API_KEY='api-key-goes-here' \\\n-e API_GATOR_CLIENT_ID='client-id-goes-here' \\\n-e API_GATOR_CLIENT_SECRET='client-secret-goes-here' \\\n-e API_GATOR_MANIFEST_NAME='Employee' \\\n-e API_GATOR_DATASET_TYPE='JSON' \\\n-e API_GATOR_JOB_TYPE='Restrict' \\\n-e API_GATOR_COUNTRY_CODE='GB' \\\n-e API_GATOR_PROTECT_NULL_VALUES='false' \\\n-e API_GATOR_PRESERVE_STRING_LENGTH='true' \\\nquay.io/ecosystem-appeng/gator-api-interceptor:tag-goes-here\n```\n\n\u003c!-- Links --\u003e\n[0]: https://quarkus.io/\n[1]: https://developer.exate.co/catalog/api/b49306b2-4040-429e-9306-b24040129ea1?aq=ALL\n[2]: https://developer.exate.co/catalog/api/b49306b2-4040-429e-9306-b24040129ea1/doc\n[3]: https://quay.io/repository/ecosystem-appeng/gator-api-interceptor\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frhecosystemappeng%2Fexate-api-gator-interceptor","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frhecosystemappeng%2Fexate-api-gator-interceptor","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frhecosystemappeng%2Fexate-api-gator-interceptor/lists"}