- Default enable_api_key_uid_reporting to true (#871)
- Add flag enable_api_key_uid_reporting and report unknown when the check response status is not OK. (#865)
- Propagates Api Key UID in ESP. (#864)
- Update to the latest root ca to fix Lets Encrypt cert expiration (#852)
- Remove X-Endpoint-API-UserInfo for all header occurrences. (#845)
- Update googleapis to the 05/18/2021 (#837)
- Add back
authorizationUrl
redirect feature with a flag (#828)
- Remove authorizationUrl redirect (#824)
- Change to warning for duplicated http options template (#820)
- Replace flag service_control_network_fail_open with service_control_network_fail_policy (#818)
- Add appengine's nginx latency status module (#810)
- Increase metadata fetch timeout to 30s (#803)
- Increase timeout of fetching access token from metadata server to 5s (#798)
- Fix grpc transcoding bugs for unknown fields (#797)
- Replace docker base with debian:buster (#792)
- Convert 4xx ServiceControl failures to 500 (#785)
- Add Brotli Support for NGINX in ESP (#784)
- Only apply network_fail_open policy to 5xx Http status code (#779)
- Add trace span for metadata fetching (#778)
- Copy the original
Authorization
header toX-Forwarded-Authorization
for backend auth (#772) - Fetch access token for rollout change timer (#774)
- Periodically send empty report to detect rollout changes (#769)
- Add flag --client_body_timeout (#765)
- Add support for Http rule additional_bindings (#761)
- forward the User-Agent header to grpc backend (#760)
- Log error log for access token fetching failure (#754)
- Add audiences in userInfo (#744)
- Fix ESP crash when fetching large jwt public keys (#745)
- Fix backend routing with CONSTANT_ADDRESS (#736)
- Log service config rollout fetching error (#734)
- fixed option description for disable sampling (#733)
- add flag --keepalive_timeout (#727)
- Add a script to build service config into image (#725)
- Update googleapis with latest CheckError codes (#722)
- Get ready for building service config into serverless docker image (#719)
- fix google-auth bug (#714)
- Replace oauth2client with google-auth(#706)
- metadata: add fetch failure status timeout (#701)
- start_esp adds 2 more values to nginx config template(#694)
- Add client_ip to the log entries (#690)
- Grpc transcoding supports preserve proto name (#685)
- Escape query parameters in backend_routing (#683)
- Change metadata token request url for getting full JWT (#676)
- Fix a rare crash: not to overwrite same config_id (#669)
- Add api-key to Header when doing json-grpc transcoding (#661)
- Log message clearly for invalid http template errors (#657)
- Throttle the time to call ServiceManagement for new rollout (#654)
- Allow JWT from authorization without Bearer prefix (#653)
- Make JWT sub field optional (#647)
- Using a more unique fileanme for service config when using multiple services (#641) (#642)
- Fix backend address with path (#638)
- Allow nginx config to include other custom configs (#631)
- Change flag service_control_network_fail_open default to true (#629)
- Upgrade grpc version to 1.21 (#624)
- Set grpc.max_metadata_size to INT_MAX (#620)
- Append error message to log_message (#616)
- Add service_agent and service_config_id to log_entries (#615)
- Use the service_rollout_id from Check/Report response (#613)
- Fix grpc percent encode reserved code table (#614)
- Change service control calls default timeout (#611)
- Add a flag to config jwks cache duration (#607)
- Add network_fail_open flag for service control check (#603)
- Add retry for service control calls (#601)
- Improve JWT verification error reporting (#599)
- Percent encode for grpc tailer: grpc-message (#588)
- Support SSL for gRPC backend (#582)
- Handle API_TARGET_BLOCKED and RESOURCE_EXHAUSTED (#581)
- Override Compute Platform in serverless docker image (#579)
- Support large_client_header_buffers via flag (#571)
- Update the base image from jessie to stretch (#572)
- Support compute_platform_override (#570)
- Build a secure ESP docker image run as non-root (#563)
- Not to send connection headers to gRPC upstream (#562)
- Build with latest Bazel(upgrade Bazel from 0.5.4 to 0.21.0) (#529)
- Fix grpc long stream memory leak by using re-cycled buffers (#552)
- Improve env variable handling in serverless image startup script. (#544)
- Increase timeout for checking new service rollout (#543)
- Log JWT Payloads if configured (#531)
- CONSTANT ADDRESS backend routing always use jsonName instead of snake… (#537)
- Support gRPC client RST_STREAM (#530)
- Build ESP Docker image which accepts start_esp arguments from environment variables (#527)
- Add the agent label to all trace spans. (#526)
- Log http request and response headers if configured (#524)
- Add prefix [ESP] in error logging for clarification (#525)
- Add support for grpc tracing header. (#503)
- Add access token to upstream requests for backend routing (#518)
- Support backend routing, based on backed rules (#514)
-
Not log JWT error when trying multiple public keys (#511)
-
Not to extract api-key and use it if not required (#500)
- Fix grpc_web crash at sending trailers (#496)
- Clear SSL errors if JWT signature validation fails (#494)
- Not call service management rollouts if not traffic (#492)
- Support downloading large service config (#491)
- Move strict_tls_security header from server level to location level (#487)
- Upgraded nginx to 1.15.0 (#447)
- Correctly convert gRPC custom Status to JSON in transcoding. (#479)
- Add start_esp flag: experiental_proxy_backend_host_header. (#476)
- Add an option to enable HSTS (HTTP Strict Transport Security) (#474)
- Add enable_debug flag (#471)
- Not to log access token (#470)
- Upgrade gRPC from 1.4.2 to 1.15.0 (#450)
- CORS always adds the Access-Control-Allow-Origin header (#449)
- Change side-way http to use 1.1 (#453)
- Upgrade gRPC from 1.4.2 to 1.15.0 (#450)
- CORS always adds the Access-Control-Allow-Origin header (#449)
- Add --experimental_enable_multiple_api_configs flag (#439)
- Proxy multiple Endpoints services (#434)
- Move GceMetadata fetching to start_esp. (#435)
- Harden code, not to free nullptr pool (#436)
- Add the start_esp_test to the BUILD file (#433)
- Add two options --generate_config_file_only and --server_config_generation_path
- Skip the host header in the grpc metadata (#424)
- Add JWT claims to the X-Endpoint-API-UserInfo header (#409)
- Add cloud_trace_url_override option
- add service_control_url_override option
- Add the parameter ssl_protocols to specify the SSL protocols
- Add cors_with_regex preset with --cors_allow_origin_regex flag
- Add --cors_allow_credentials option
- Add SNI support to ESP for https clients (#399)
- Added --disable_trace_sampling flag
- Separated location related changes
- Added condition to check non_gcp and service_account_key
- Fixed metadata configuration for GCP
- Fix typo in the default CORS headers.
- Returns Status::OK when metadata service is not available (#386)
- Added client IP address extraction for GAE Flex (#359)
- add --worker-processes argument to scale nginx workers with number of cores
- Fixed the args.rollout_id not defined bug when --service_json_path is specified
- Not to set default location (#353)
- Add option to generate self-signed certificate at start
- Added enable_websocket argument to start_esp
- Remove X-Endpoint-API-UserInfo header from clients (#339)
- support "grpc-status-details-bin" (#334)
- Fix transcoding issue with h2 (#320)
- Fix possible segmentation fault in rewrite rule debugging mode (#318)
- Change skip_service_control not to skip auth. (#311)
- Added --rewrite argument supporting rewrite rule
- Added --client_max_body_size argument
- Added --transcoding_always_print_primitive_fields true/false (#227)
- Added always_print_primitive_fields experimental option (#295)
- Added rewrite rule support instead of basepath match (#292)
- Fix a bug in path match for OPTIONS. (#285)
- Bare minimum support for gRPC-Web. (#283)
- Add start_esp options to allow more characters in HTTP headers
- Add --check_metadata option to disable checking metadata service
- Add --pid_file flag to configure PID file location.
- Add the support of JWK keys without the alg field (#274)
- Auto detect custom verb to support : in the path. (#257)
- Upgrade nginx to 1.13.4 (#242)
- Adding ES256 for auth jwt validator (#231)
- Support Nginx restart (#252)
- Add IAP header support (#251)
- Adding authz cache. (#225)
- Fixed the server config file backward compatibility
- Integrate IAP JWT auto-verification for GAE Flex (#240)
- Added by-consumer metrics to report request, X-Endpoint-API-Project-I… (#235)
- Support authorization url (#228)
- Added esp service config rollouts info to /endpoints_status (#222)
- Update gRPC to 1.4.2 (#220)
- Update NGINX to 1.13.3.
- Add support for skip_service_control usage rule.
- Fixed a Firebase rule bug when api-key is in query parameter.
- Use producer project for Quota if api-key is not provided.
- Added /producer/by_consumer metrics.
- Add backend_protocol in the Report call.
- Support endpoint authorization via firebase rules
- Update Dockerfile to expose port 8080 by default
- Support rate-limit.
- Set 443 for the default port of https backend in start_esp.
- Support escaped / in the URL path.
- Support X-HTTP-Method-Override.
- not to send api_key in Report if service is not activated.
- Set gRPC max send/receive message size to unlimited.
- Support apikey based traffic restriction.
- Rename log entry name request_size to request_size_in_bytes.
- Start deprecation of OpenAPI x-security to security (#101)
- Stop using api_key if service is not activated. (#98)
- Fail request if api_key is not valid
- Basic GRPC request compression support (#94)
- Support HEAD request in transcoding (#74)
- Rename release GCR images to gcr.io/endpoints-release (#60)
- NGINX high connection usage optimizations (#57)
- Make TLS client certificate optional in start_esp
- Start using AuthProvider audiences
- Notable bug fixes:
- Fix ProxyFlow leak (#93)
- Do not report latency for streaming requests
- Validate if contents of x-jwks_uri contains a public key
- General improvements to testing and build infrastructure:
- Update GRPC to 1.1.1
- Update grpc test service.json (#61)
- Add t test for fail wrong api key. (#104)
- Fix grpc interop stress test script. (#103)
- Use grpc-go for interop tests (#88)
- Fix debian jessie package issue
- Upgrade bazel to 0.4.4 (#92)
- t-test changes to check that x-endpoint-api-userinfo is received by grpc (#96) service.
- Add transcoding metadata test
- Change scripts for new version file location.
- Move nginx_repositories close to its load.
- Fix start_esp main entry problem.
- Change script/release_tag_git to use upstream. (#44)
- Change release_tag_git to use absolute path.
- Not to save huge access.log for GCE. (#41)
- Fix bugs in script/release-publish. (#42)
- Use newer protobuf.bzl (#39)
- Use bazel to pull NGINX (#38)
- Fix GRPC interop test BUILD file (#37)
- Fix GRPC test BUILD file (#35)
- Use GOOGLE_APPLICATION_CREDENTIALS in start-up script
- service_control_client not to send large Report (<1MB)
- Add max_report_size to statistics
- Package start-up script with Python PEX
- ESP CLI use same version for ESP docker image
- A workaround for Proto2.MessageOptions.* options
- Not call Check if api_key not provided
- Respect allow_cors configuration
- Log a warning if service control replies with a different service config
- Fix for rename version => config_id
- Usability improvements to the fetching script
- Add support for HTTPS upstream to the start script
- Adds support for binding request fields using query parameters.
- Add health endpoint to application port
- Change the prefix for /credential_id label to lowercase.
- Fixed wrong protocol value in Report for grpc pass-though
- Send service_config_id to service control server.
- Upgrade nginx to 1.11.5
- Upgrade GPRC and protobuf
- Enable padding when base64 "X-Endpoints-API-UserInfo" HTTP header
- Fail open for method with
allow_unregistered_calls
. - Ingress controller
- Update googleapis and service-control-client-cxx submodules.
- Cleanups, bug fixes and infrastructure improvements
- Increase disk size for GCE raw test.
- Use correct build paramater for rapture repo.
- Fix gce test for latest release.
- Adding fetch and retries for bazel builds.
- Tempory fix for performance test.
- Fix debian package dependencies.
- Changed memory detection for stress tests.
- Update kubernetes client to 1.5.
- Adds missing informer framework from kubernetes.
- Adds support for GCP auth provider (used by gcloud).
- Fix transcoding error test failures under TSAN.
- Fix a shutdown crash found by TSAN tests.
- Enable memory leak detection in grpc stress test.
- Disable liveness probe for GKE tests.
- Fix handling large responses in gRPC handler.
- Fix memory leak caused by aborted client calls and report more detailed memory usage.
- Test presubmits in Jenkins and test improvement.
- Use instance internal ip instead of hostname.
- Add a test to make sure the "nbf" claim is checked.
- Report start_time correctly.
- Use Google APIs to deploy service configs.
- Use github Dockerfile to build Flex docker image.
- Add grpc interop stress test to Jenkins test.
- Read the "azp" (authorized party) claim from an auth token.
- Improve error handling logic.
- Enabling hazelcast in Jenkins.
- Stop collecting access logs in e2e tests.
- Stop status print outs in custom nginx.conf.
- Use espcli for GKE e2e tests.
- Calculate memory usage for long-run test.
- Add Google APIs Go bindings.
- Added a t test for invalid api_key case.
- Accept Issuer with or without https prefix for OpenID discovery.
- Removed testing for go binary for new docker slave.
- Update version number to 0.3.8.
- Switch to using start_esp for GCE raw VM.
- Do not send consumer metrics if api_key is not provided.
- Remove /producer/by_consumer metrics.
- Set api_version correctly in Report calls.
- Update to use googleapis proto from Github.
- Update googleapis submodule.
- Update platform from GAE to GAE Flex.
- Log fetching steps in the start script, disable status print outs.
- Initial CLI for GKE deployment management using k8s Go client.
- Cleanups, bug fixes and infrastructure improvements
- Use perl bazel rules from github
- Remove grpc in script/release-publish and script/release-stable.
- Fix flaky tests by disabling service control cache.
- Add configuration option for the subrequest certificate files
- Fix a memory leak in grpc transcode
- Add grpc large transcoding to stress test.
- Add endpoints_resolver in nginx config for HTTP subrequests DNS
- Upgrade to use GRPC to 1.0.0 GA and Protobuf to 3.0.0 GA
- Propagate grpc metadata from downstream to upstream
- Expose http and grpc ports when deploying grpc.
- Add gprc interop tests
- Switch to start_esp.py in docker generic image
- Extract api key from header x-api-key by default.
- Add bindings and body prefix test for transcoding
- Allow multiple HTTP rules for the same RPC method
- Add cloud trace request sampling.
- Add doc for ESP on k8s.
- Added a test to verify service control data.
- Cleanups, bug fixes & Infrastructure improvements
- Set corret LANG environment variable for Jenkins
- Fix ASAN failure in jenkins presubmit
- Fix error handling of release-stable script
- Fix Travis TSAN build
- Implement books support in grpc bookstore backend
- Add invalid JSON cases to transcoding errors test
- Check HTTP status code in transcoding tests
- Fix ASAN heap-use-after-free warning
- Fixed metadata_timeout t asan failure.
- Integrate GKE go script into Jenkins pipeline
- Running e2e test on released artifacts and gcloud release candidate
- Add Kubernetes support & deployment improvements.
- Add configuration settings for local development using ESP.
- Aggregate traces and batch to CloudTrace API.
- Consolidate docs into a tutorial.
- Do not report producer project in errors.
- Improve GRPC/transcoding error handling.
- Print ESP version when running nginx-esp -V.
- Start a new Go based Test Infrastructure.
- Cleanups, bug fixes & Infrastructure improvements:
- Add more test coverage.
- Add presubmits to Jenkins.
- Apply buildifer to BUILD files.
- Parallelize t-tests.
- Remove libgrpc based downstream implementation.
- Stabilize stress tests.
- Update Bazel to 0.3.1.
- Update NGINX to 1.11.3.
- Use NGINX trailers when finalizing gRPC response.
- etc
- Add HTTP2 load test. Refactored common functionality in the load test client to support both wrk and h2load.
- Check logs on passing release quals only.
- Clean-up test transcoding proto.
- Add test to share port with HTTPS and GRPC.
- Increase keepalive and port range for GKE tests.
- Save GKE & GCE container logs.
- Improve grpc_pass stability; fixed a crash with large payload.
- Support grpc long run stress test.
- Pass cloud trace span id to backend.
- Pass x-endpoints-user-info to backend automatically, Not require a variable in nginx config.
- Update NGINX to 1.11.2 with self-managed workspace dependencies.
- Upgrade protobuf to 3.0.0-beta-4
- Use WRK for benchmarking instead of AB
- Add debug nginx binary into deb image.
- Add HTTP request retry logic
- HTTP/JSON <=> gRPC Transcoding
- Print endpoints status in nginx error log.
- Setup Travis CI
Extensible Service Proxy, a.k.a. ESP is a proxy which enables API management capabilities for API services. It supports HTTP/JSON and gRPC APIs.
- Authentication (auth0, gitkit)
- API key validation
- API-level monitoring and logging
- Integration with Cloud Tracing