How bytegitaccnt/nexusgate works
NexusGate is a reactive API gateway: it loads service and policy configuration, builds routes, applies authentication and optional rate limits, rewrites permitted management requests, then proxies traffic to downstream services. The principal request workflow and the documented outer-IP and inner-user limiter branches are represented. Some configuration, management-filter, and security wiring is documented or evident from the tree but was not sampled; those links are shown only where the README or sampled callers support them.
Main entry points: NexusRouteBuilder.java Route builder · OuterRateLimitFilter.java Outer IP limiter · InnerRateLimitGatewayFilterFactory.java Inner user limiter · RedisTokenBucket.java Token bucket
Components 19
Routing and config
- Gateway application
src/main/java/com/nexusgate/nexus_gateway/NexusGatewayApplication.java - Gateway YAML
nexus.yml - Config loader
src/main/java/com/nexusgate/nexus_gateway/Config/NexusConfigLoader.java - Route builder
src/main/java/com/nexusgate/nexus_gateway/Config/NexusRouteBuilder.java - Service settings
src/main/java/com/nexusgate/nexus_gateway/Config/ServiceConfig.java
Authentication
- JWT route filter
src/main/java/com/nexusgate/nexus_gateway/Filter/JwtAuthenticationGatewayFilterFactory.java - JWT verifier
src/main/java/com/nexusgate/nexus_gateway/Config/Security/HmacJwtTokenVerifier.java - JWT settings
src/main/java/com/nexusgate/nexus_gateway/Config/Security/JwtConfig.java
Rate limiting
- Outer IP limiter
src/main/java/com/nexusgate/nexus_gateway/Filter/OuterRateLimitFilter.java - Inner user limiter
src/main/java/com/nexusgate/nexus_gateway/Filter/InnerRateLimitGatewayFilterFactory.java - Client IP resolver
src/main/java/com/nexusgate/nexus_gateway/Config/RateLimit/ClientIpResolver.java - Rate-limit keys
src/main/java/com/nexusgate/nexus_gateway/Config/RateLimit/RateLimitKeyGenerator.java
Management access
- Management settings
src/main/java/com/nexusgate/nexus_gateway/Config/management/ManagementConfig.java - Management filter
src/main/java/com/nexusgate/nexus_gateway/Filter/ManagementEndpointGatewayFilterFactory.java
Redis state
- Token bucket
src/main/java/com/nexusgate/nexus_gateway/Config/RateLimit/RedisTokenBucket.java - Redis
- Bucket script
src/main/resources/redis/token_bucket.lua
Other components
- Client
- Downstream services
Connections 23
- Gateway application → Route builder: starts gateway
- Gateway YAML → Config loader: configures
- Route builder → Config loader: loads config
- Config loader → Service settings: binds services
- Route builder → JWT route filter: attaches filter
- Route builder → Inner user limiter: attaches limiter
- Route builder → Management settings: reads policy
- Route builder → Management filter: attaches filter
- Client → Outer IP limiter: sends request
- Outer IP limiter → Client IP resolver: resolves IP
- Outer IP limiter → Rate-limit keys: creates IP key
- Inner user limiter → Rate-limit keys: creates user key
- Inner user limiter → Token bucket: consumes tokens
- Outer IP limiter → Token bucket: consumes tokens
- JWT route filter → JWT verifier: verifies token
- JWT verifier → JWT settings: reads settings
- Token bucket → Bucket script: executes script
- Token bucket → Redis: reads and writes
- JWT route filter → Downstream services: forwards request
- Management filter → Downstream services: forwards request
- Outer IP limiter → Downstream services: continues chain
- Inner user limiter → Downstream services: continues chain
- Downstream services → Client: returns response