{"id":22278759,"url":"https://github.com/lyes-sefiane/api-gateway","last_synced_at":"2026-04-25T16:34:17.643Z","repository":{"id":261491964,"uuid":"884462485","full_name":"lyes-sefiane/api-gateway","owner":"lyes-sefiane","description":"API Gateway with Spring Cloud Gateway ","archived":false,"fork":false,"pushed_at":"2025-09-22T14:58:57.000Z","size":213,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-09-22T16:34:10.720Z","etag":null,"topics":["dockerhub","github-actions","java-17","owasp-dependencycheck","snyk","sonar-cloud","spring-cloud-gateway"],"latest_commit_sha":null,"homepage":"https://lyes-sefiane.web.app","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/lyes-sefiane.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE.md","code_of_conduct":"CODE_OF_CONDUCT.md","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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-11-06T19:48:00.000Z","updated_at":"2025-09-22T14:41:08.000Z","dependencies_parsed_at":"2024-11-06T21:23:45.553Z","dependency_job_id":"7c37d60f-b136-44c1-a573-4da970115899","html_url":"https://github.com/lyes-sefiane/api-gateway","commit_stats":null,"previous_names":["lyes-sefiane/api-gateway"],"tags_count":28,"template":false,"template_full_name":null,"purl":"pkg:github/lyes-sefiane/api-gateway","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lyes-sefiane%2Fapi-gateway","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lyes-sefiane%2Fapi-gateway/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lyes-sefiane%2Fapi-gateway/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lyes-sefiane%2Fapi-gateway/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lyes-sefiane","download_url":"https://codeload.github.com/lyes-sefiane/api-gateway/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lyes-sefiane%2Fapi-gateway/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32269462,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-25T09:15:33.318Z","status":"ssl_error","status_checked_at":"2026-04-25T09:15:31.997Z","response_time":59,"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":["dockerhub","github-actions","java-17","owasp-dependencycheck","snyk","sonar-cloud","spring-cloud-gateway"],"created_at":"2024-12-03T15:15:50.233Z","updated_at":"2026-04-25T16:34:17.636Z","avatar_url":"https://github.com/lyes-sefiane.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# API Gateway with Spring Cloud Gateway\n\n### Copyright © Lyes SEFIANE. All Rights Reserved | [CC BY-NC-ND 4.0](https://creativecommons.org/licenses/by-nc-nd/4.0/)\n\n[![CC BY-NC-ND 4.0][cc-by-nc-nd-image]][cc-by-nc-nd]\n\n[cc-by-nc-nd]: http://creativecommons.org/licenses/by-nc-nd/4.0/\n[cc-by-nc-nd-image]: https://licensebuttons.net/l/by-nc-nd/4.0/88x31.png\n[cc-by-nc-nd-shield]: https://img.shields.io/badge/License-CC%20BY--NC--ND%204.0-lightgrey.svg\n\n# GitHub Badges\n\n![License](https://img.shields.io/static/v1?label=License\u0026message=CC-BY-NC-ND-4.0\u0026color=green)\n[![Contributor Covenant](https://img.shields.io/badge/Contributor%20Covenant-2.1-4baaaa.svg)](code_of_conduct.md)\n[![CodeQL](https://github.com/lyes-sefiane/api-gateway/actions/workflows/github-code-scanning/codeql/badge.svg)](https://github.com/lyes-sefiane/api-gateway/actions/workflows/github-code-scanning/codeql)\n[![Automatic Dependency Submission](https://github.com/lyes-sefiane/api-gateway/actions/workflows/dependency-graph/auto-submission/badge.svg)](https://github.com/lyes-sefiane/api-gateway/actions/workflows/dependency-graph/auto-submission)\n[![Java CI with Maven](https://github.com/lyes-sefiane/api-gateway/actions/workflows/maven.yml/badge.svg)](https://github.com/lyes-sefiane/api-gateway/actions/workflows/maven.yml)\n[![Docker Publish](https://github.com/lyes-sefiane/api-gateway/actions/workflows/docker-publish.yml/badge.svg)](https://github.com/lyes-sefiane/api-gateway/actions/workflows/docker-publish.yml)\n[![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=lyes-sefiane_api-gateway\u0026metric=alert_status)](https://sonarcloud.io/summary/new_code?id=lyes-sefiane_api-gateway)\n[![Bugs](https://sonarcloud.io/api/project_badges/measure?project=lyes-sefiane_api-gateway\u0026metric=bugs)](https://sonarcloud.io/summary/new_code?id=lyes-sefiane_api-gateway)\n[![Code Smells](https://sonarcloud.io/api/project_badges/measure?project=lyes-sefiane_api-gateway\u0026metric=code_smells)](https://sonarcloud.io/summary/new_code?id=lyes-sefiane_api-gateway)\n[![Reliability Rating](https://sonarcloud.io/api/project_badges/measure?project=lyes-sefiane_api-gateway\u0026metric=reliability_rating)](https://sonarcloud.io/summary/new_code?id=lyes-sefiane_api-gateway)\n[![Security Rating](https://sonarcloud.io/api/project_badges/measure?project=lyes-sefiane_api-gateway\u0026metric=security_rating)](https://sonarcloud.io/summary/new_code?id=lyes-sefiane_api-gateway)\n[![Maintainability Rating](https://sonarcloud.io/api/project_badges/measure?project=lyes-sefiane_api-gateway\u0026metric=sqale_rating)](https://sonarcloud.io/summary/new_code?id=lyes-sefiane_api-gateway)\n[![Technical Debt](https://sonarcloud.io/api/project_badges/measure?project=lyes-sefiane_api-gateway\u0026metric=sqale_index)](https://sonarcloud.io/summary/new_code?id=lyes-sefiane_api-gateway)\n[![Vulnerabilities](https://sonarcloud.io/api/project_badges/measure?project=lyes-sefiane_api-gateway\u0026metric=vulnerabilities)](https://sonarcloud.io/summary/new_code?id=lyes-sefiane_api-gateway)\n![Docker Pulls](https://img.shields.io/docker/pulls/lsefiane/api-gateway)\n![GitHub top language](https://img.shields.io/github/languages/top/lyes-sefiane/api-gateway)\n![GitHub Release](https://img.shields.io/github/v/release/lyes-sefiane/api-gateway)\n![GitHub Release Date](https://img.shields.io/github/release-date/lyes-sefiane/api-gateway)\n![GitHub contributors](https://img.shields.io/github/contributors/lyes-sefiane/api-gateway)\n![GitHub Repo stars](https://img.shields.io/github/stars/lyes-sefiane/api-gateway?style=social)\n\n# Properties\n\n### Redis\n\n| Property                               | Value             |\n|----------------------------------------|-------------------|\n| spring.profiles.active                 | prod, test        |\n| spring.application.name                | api-gateway       |\n| spring.data.redis.repositories.enabled | false             |\n| spring.cache.type                      | redis             |\n| spring.data.redis.database             | ${REDIS_DATABASE} |\n| spring.data.redis.host                 | ${REDIS_HOST}     |\n| spring.data.redis.port                 | ${REDIS_PORT}     |\n| spring.data.redis.password             | ${REDIS_PASSWORD} |\n| spring.data.redis.timeout              | 60000             |\n\n\n### Routes\n\n| Property                                                                           | Value                       |\n|------------------------------------------------------------------------------------|-----------------------------|\n| spring.cloud.gateway.routes[0].id                                                  | ${ROUTE_0_ID}               |\n| spring.cloud.gateway.routes[0].uri                                                 | ${ROUTE_0_URI}              |\n| spring.cloud.gateway.routes[0].predicates[0]                                       | Path=${PATH}                |\n| spring.cloud.gateway.routes[0].predicates[1]                                       | Method=GET,POST,PUT,DELETE  |\n\n\n### Rate Limiting\n\n| Property                                                                           | Value                  |\n|------------------------------------------------------------------------------------|------------------------|\n| spring.cloud.gateway.routes[0].filters[0].name                                     | RequestRateLimiter     |\n| spring.cloud.gateway.routes[0].filters[0].args[redis-rate-limiter.replenishRate]   | 10                     |\n| spring.cloud.gateway.routes[0].filters[0].args[redis-rate-limiter.burstCapacity]   | 20                     |\n| spring.cloud.gateway.routes[0].filters[0].args[redis-rate-limiter.requestedTokens] | 1                      |\n| spring.cloud.gateway.routes[0].filters[0].args[key-resolver]                       | #{@customKeyResolver}  |\n\n\n\n### Retry\n\n| Property                                                                     | Value               |\n|------------------------------------------------------------------------------|---------------------|\n| spring.cloud.gateway.routes[0].filters[1].name                               | Retry               |\n| spring.cloud.gateway.routes[0].filters[1].args[retries]                      | 2                   |\n| spring.cloud.gateway.routes[0].filters[1].args[statuses]                     | SERVICE_UNAVAILABLE |\n| spring.cloud.gateway.routes[0].filters[1].args[methods]                      | GET,POST,PUT,DELETE |\n| spring.cloud.gateway.routes[0].filters[1].args[backoff.firstBackoff]         | 10ms                |\n| spring.cloud.gateway.routes[0].filters[1].args[backoff.maxBackoff]           | 50ms                |\n| spring.cloud.gateway.routes[0].filters[1].args[backoff.factor]               | 3                   |\n| spring.cloud.gateway.routes[0].filters[1].args[backoff.basedOnPreviousValue] | false               |\n\n\n### Circuit Breaker\n\n| Property                                                     | Value                         |\n|--------------------------------------------------------------|-------------------------------|\n| spring.cloud.gateway.routes[0].filters[2].name               | CircuitBreaker                |  \n| spring.cloud.gateway.routes[0].filters[2].args[name]         | myCircuitBreaker              |\n| spring.cloud.gateway.routes[0].filters[2].args[fallbackUri]  | forward:/service-unavailable  |\n\n\n### HashiCorp Consul\n\n| Property                                        | Value                       |\n|-------------------------------------------------|-----------------------------|\n| spring.cloud.consul.enabled                     | true/false                  | \n| spring.cloud.consul.host                        | ${SPRING_CLOUD_CONSUL_HOST} | \n| spring.cloud.consul.port                        | ${SPRING_CLOUD_CONSUL_PORT} | \n| spring.cloud.consul.discovery_register          | true/false                  | \n| spring.cloud.gateway.discovery.locator.enabled  | ture/false                  | \n\n\n### Zipkin\n\n| Property                                 | Value                                 |\n|------------------------------------------|---------------------------------------|\n| management.tracing.enabled               | true/false                            | \n| management.zipkin.tracing.endpoint       | ${MANAGEMENT_ZIPKIN_TRACING_ENDPOINT} | \n| management.tracing.sampling.probability  | 1.0                                   | \n\n# CI/CD with GitHub Actions\n\n![GitHub Release](https://img.shields.io/github/v/release/lyes-sefiane/api-gateway)\n![GitHub Release Date](https://img.shields.io/github/release-date/lyes-sefiane/api-gateway)\n\n## GitHub Actions Pipeline\n\n\u003cimg title=\"GitHub Actions Pipeline\" alt=\"GitHub Actions Pipeline\" src=\"https://raw.githubusercontent.com/wiki/lyes-sefiane/api-gateway/images/lyes-sefiane-github-actions.PNG\"\u003e\n\n\n## SonarQube Cloud\n\n[![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=lyes-sefiane_api-gateway\u0026metric=alert_status)](https://sonarcloud.io/summary/new_code?id=lyes-sefiane_api-gateway)\n[![Bugs](https://sonarcloud.io/api/project_badges/measure?project=lyes-sefiane_api-gateway\u0026metric=bugs)](https://sonarcloud.io/summary/new_code?id=lyes-sefiane_api-gateway)\n[![Code Smells](https://sonarcloud.io/api/project_badges/measure?project=lyes-sefiane_api-gateway\u0026metric=code_smells)](https://sonarcloud.io/summary/new_code?id=lyes-sefiane_api-gateway)\n[![Reliability Rating](https://sonarcloud.io/api/project_badges/measure?project=lyes-sefiane_api-gateway\u0026metric=reliability_rating)](https://sonarcloud.io/summary/new_code?id=lyes-sefiane_api-gateway)\n[![Security Rating](https://sonarcloud.io/api/project_badges/measure?project=lyes-sefiane_api-gateway\u0026metric=security_rating)](https://sonarcloud.io/summary/new_code?id=lyes-sefiane_api-gateway)\n[![Maintainability Rating](https://sonarcloud.io/api/project_badges/measure?project=lyes-sefiane_api-gateway\u0026metric=sqale_rating)](https://sonarcloud.io/summary/new_code?id=lyes-sefiane_api-gateway)\n[![Technical Debt](https://sonarcloud.io/api/project_badges/measure?project=lyes-sefiane_api-gateway\u0026metric=sqale_index)](https://sonarcloud.io/summary/new_code?id=lyes-sefiane_api-gateway)\n[![Vulnerabilities](https://sonarcloud.io/api/project_badges/measure?project=lyes-sefiane_api-gateway\u0026metric=vulnerabilities)](https://sonarcloud.io/summary/new_code?id=lyes-sefiane_api-gateway)\n\n\u003cimg title=\"SonarQube Cloud\" alt=\"SonarQube Cloud\" src=\"https://raw.githubusercontent.com/wiki/lyes-sefiane/api-gateway/images/lyes-sefiane-sonarcloud.PNG\"\u003e\n\n\n## Snyk Maven Analysis\n\n```bash\n\nRun snyk/actions/maven-3-jdk-17@master\n  with:\n    command: monitor\n    args: --severity-threshold=low\n    json: false\n  env:\n    SNYK_TOKEN: ***\n/usr/bin/docker run --name snyksnykmaven3jdk17_8bea9f --label 2de416 --workdir /github/workspace --rm -e \"SNYK_TOKEN\" -e \"INPUT_COMMAND\" -e \"INPUT_ARGS\" -e \"INPUT_JSON\" -e \"FORCE_COLOR\" -e \"SNYK_INTEGRATION_NAME\" -e \"SNYK_INTEGRATION_VERSION\" -e \"HOME\" -e \"GITHUB_JOB\" -e \"GITHUB_REF\" -e \"GITHUB_SHA\" -e \"GITHUB_REPOSITORY\" -e \"GITHUB_REPOSITORY_OWNER\" -e \"GITHUB_REPOSITORY_OWNER_ID\" -e \"GITHUB_RUN_ID\" -e \"GITHUB_RUN_NUMBER\" -e \"GITHUB_RETENTION_DAYS\" -e \"GITHUB_RUN_ATTEMPT\" -e \"GITHUB_REPOSITORY_ID\" -e \"GITHUB_ACTOR_ID\" -e \"GITHUB_ACTOR\" -e \"GITHUB_TRIGGERING_ACTOR\" -e \"GITHUB_WORKFLOW\" -e \"GITHUB_HEAD_REF\" -e \"GITHUB_BASE_REF\" -e \"GITHUB_EVENT_NAME\" -e \"GITHUB_SERVER_URL\" -e \"GITHUB_API_URL\" -e \"GITHUB_GRAPHQL_URL\" -e \"GITHUB_REF_NAME\" -e \"GITHUB_REF_PROTECTED\" -e \"GITHUB_REF_TYPE\" -e \"GITHUB_WORKFLOW_REF\" -e \"GITHUB_WORKFLOW_SHA\" -e \"GITHUB_WORKSPACE\" -e \"GITHUB_ACTION\" -e \"GITHUB_EVENT_PATH\" -e \"GITHUB_ACTION_REPOSITORY\" -e \"GITHUB_ACTION_REF\" -e \"GITHUB_PATH\" -e \"GITHUB_ENV\" -e \"GITHUB_STEP_SUMMARY\" -e \"GITHUB_STATE\" -e \"GITHUB_OUTPUT\" -e \"RUNNER_OS\" -e \"RUNNER_ARCH\" -e \"RUNNER_NAME\" -e \"RUNNER_ENVIRONMENT\" -e \"RUNNER_TOOL_CACHE\" -e \"RUNNER_TEMP\" -e \"RUNNER_WORKSPACE\" -e \"ACTIONS_RUNTIME_URL\" -e \"ACTIONS_RUNTIME_TOKEN\" -e \"ACTIONS_CACHE_URL\" -e \"ACTIONS_RESULTS_URL\" -e GITHUB_ACTIONS=true -e CI=true -v \"/var/run/docker.sock\":\"/var/run/docker.sock\" -v \"/home/runner/work/_temp/_github_home\":\"/github/home\" -v \"/home/runner/work/_temp/_github_workflow\":\"/github/workflow\" -v \"/home/runner/work/_temp/_runner_file_commands\":\"/github/file_commands\" -v \"/home/runner/work/api-gateway/api-gateway\":\"/github/workspace\" snyk/snyk:maven-3-jdk-17  \"snyk\" \"monitor\" \"--severity-threshold=low\"\n\nMonitoring /github/workspace (io.github.lyes-sefiane:api-gateway)...\n\nExplore this snapshot at https://app.snyk.io/org/lyes-sefiane/project/8bb8216c-fa31-4e01-be2d-990dc42d1e2a/history/7ecdd7e5-51dd-4481-b97e-f0a73d476b67\n\nNotifications about newly disclosed issues related to these dependencies will be emailed to you.\n```\n\n\u003cimg title=\"Snyk\" alt=\"Snyk\" src=\"https://raw.githubusercontent.com/wiki/lyes-sefiane/api-gateway/images/lyes-sefiane-snyk-analysis.PNG\"\u003e\n\n## DockerHub\n\n### Docker Scout\n\n```bash\n\nRun docker/scout-action@v1\nquickview\ncves\n            ✓ SBOM of image already cached, 138 packages indexed\n  \n  \n  ## Overview\n  \n                      │         Analyzed Image          \n  ────────────────────┼─────────────────────────────────\n    Target            │  ***:v1.7.13   \n      digest          │  28a0e5e97111                   \n      platform        │ linux/amd64                     \n      vulnerabilities │    0C     0H     0M     0L      \n      size            │ 211 MB                          \n      packages        │ 138                             \n  \n  \n  ## Packages and Vulnerabilities\n  \n    No vulnerable packages detected\n  \n  \nrecommendations\n\n\n```\n\u003cimg title=\"Docker Scout\" alt=\"Docker Scout\" src=\"https://raw.githubusercontent.com/wiki/lyes-sefiane/api-gateway/images/lyes-sefiane-docker-scout.PNG\"\u003e\n\n\u003cimg title=\"DockerHub\" alt=\"DockerHub\" src=\"https://raw.githubusercontent.com/wiki/lyes-sefiane/api-gateway/images/lyes-sefiane-dockerhub.PNG\"\u003e\n\n\n# Contributing\n\nPull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.\n\nPlease make sure to update tests as appropriate.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flyes-sefiane%2Fapi-gateway","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flyes-sefiane%2Fapi-gateway","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flyes-sefiane%2Fapi-gateway/lists"}