diff --git a/README.md b/README.md index 621b35e..123f873 100644 --- a/README.md +++ b/README.md @@ -93,7 +93,7 @@ docker run --rm --name goma-gateway \ ### 4. Healthcheck - Goma Gateway health check: `/health/live` -- Routes health check: `health/live` +- Routes health check: `health/routes` ### 5. Simple deployment in docker compose file diff --git a/docs/middleware.md b/docs/middleware.md index c721c0f..0d16cc1 100644 --- a/docs/middleware.md +++ b/docs/middleware.md @@ -19,7 +19,6 @@ Goma Gateway supports : - JWT `client authorization based on the result of a request` - Basic-Auth - Rate limiting middleware - - In-Memory Token Bucket based - In-Memory client IP based - Access middleware diff --git a/docs/quickstart.md b/docs/quickstart.md index 9f25f6b..fe9ec69 100644 --- a/docs/quickstart.md +++ b/docs/quickstart.md @@ -29,7 +29,7 @@ docker run --rm --name goma-gateway \ ### 4. Healthcheck - Goma Gateway health check: `/health/live` -- Routes health check: `health/live` +- Routes health check: `health/routes` ### 5. Simple deployment in docker compose file diff --git a/docs/route.md b/docs/route.md index 6e6bfda..d5f860d 100644 --- a/docs/route.md +++ b/docs/route.md @@ -54,22 +54,25 @@ The Route allows you to match on HTTP traffic and direct it to the backend. ### Full example of route ```yaml -## Goma - simple lightweight API Gateway and Reverse Proxy. # Goma Gateway configurations gateway: - ########## Global settings - listenAddr: 0.0.0.0:80 # Proxy write timeout writeTimeout: 15 # Proxy read timeout readTimeout: 15 # Proxy idle timeout idleTimeout: 60 + ## SSL Certificate file + sslCertFile: '' #cert.pem + ## SSL Private Key file + sslKeyFile: ''#key.pem # Proxy rate limit, it's In-Memory IP based # Distributed Rate Limiting for Token based across multiple instances is not yet integrated rateLimiter: 0 accessLog: "/dev/Stdout" errorLog: "/dev/stderr" + ## Enable, disable routes health check + disableHealthCheckStatus: false ## Returns backend route healthcheck errors disableRouteHealthCheckError: false # Disable display routes on start @@ -111,40 +114,32 @@ gateway: healthCheck: '' #/internal/health/ready # Route Cors, global cors will be overridden by route cors: - # Route Origins Cors, global cors will be overridden by route + # Route Origins Cors, route will override global cors origins origins: - https://dev.example.com - http://localhost:3000 - https://example.com - # Route Cors headers, route will override global cors + # Route Cors headers, route will override global cors headers headers: Access-Control-Allow-Methods: 'GET' Access-Control-Allow-Headers: 'Origin, Authorization, Accept, Content-Type, Access-Control-Allow-Headers, X-Client-Id, X-Session-Id' Access-Control-Allow-Credentials: 'true' Access-Control-Max-Age: 1728000 - ##### Define route middlewares from middlewares names + ##### Apply middlewares to the route ## The name must be unique ## List of middleware name middlewares: - api-forbidden-paths - - basic-auth # Example of a route | 2 - - name: Authentication service - path: /auth - rewrite: / - destination: https://example.com - healthCheck: / - cors: {} - middlewares: - - api-forbidden-paths - # Example of a route | 3 - name: Basic auth path: /protected rewrite: / - destination: 'http://notification-service:8080' + destination: https://example.com healthCheck: cors: {} - middlewares: [] + middlewares: + - api-forbidden-paths + - basic-auth #Defines proxy middlewares # middleware name must be unique @@ -176,20 +171,16 @@ middlewares: # Required headers, if not present in the request, the proxy will return 403 requiredHeaders: - Authorization - #Sets the request variable to the given value after the authorization request completes. - # - # Add header to the next request from AuthRequest header, depending on your requirements - # Key is AuthRequest's response header Key, and value is Request's header Key - # In case you want to get headers from the Authentication service and inject them into the next request's headers - #Sets the request variable to the given value after the authorization request completes. - # - # Add header to the next request from AuthRequest header, depending on your requirements - # Key is AuthRequest's response header Key, and value is Request's header Key + # You can also get headers from the authentication request result and inject them into the next request header or params. + # In case you want to get headers from the authentication service and inject them into the next request headers. + # Set the request variable to the given value after the authorization request completes. # In case you want to get headers from the authentication service and inject them into the next request headers. + # Key is authentication request response header Key. Value is the next Request header Key. headers: - userId: X-Auth-UserId - userCountryId: X-Auth-UserCountryId - # In case you want to get headers from the Authentication service and inject them to the next request params. + userId: Auth-UserId + userCountryId: Auth-UserCountryId + # In case you want to get headers from the Authentication service and inject them to the next request params. + #Key is authentication request response header Key. Value is the next Request parameter Key. params: userCountryId: countryId # The server will return 403