Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
3.3.0 - 22-11-2024
Added
BASE_PATH_MATCHERS: to make it possible to fetch complex base paths when using dynamic configuration rather than taking the first segment only.DISABLE_PROXY_CACHE: to make it possible to disable the in-memory proxy cache when using dynamic configuration.
3.2.0 - 15-11-2024
Added
- Added GET
/-/proxiesAPI - Added POST
/-/proxiesAPI - Added DELETE
/-/proxiesAPI - Added PATCH
/-/proxies/:proxyIdAPI - Added PATCH
/-/proxiesAPI
Refactor
- internal component refactor and improved standard library usage
Fixed
- sanitize target base url trailing slash to prevent
//token in final path
3.1.0 - 2024-10-29
Added
ADDITIONAL_HEADERS_TO_REDACTenvironment variable to set additional headers to redact in logs
Security
- Redacted sensitive headers in logs
3.0.0 - 2023-09-14
BREAKING CHANGES
- remove trailing slash to handle requests without path parameters. Using the following configuration and calling the path
/docsthe proxy-manager will callhttps://docs.mia-platform.eu/docsand no more../../:
{
"targetBaseUrl": "https://docs.mia-platform.eu/docs",
"basePath": "/docs"
}
Added
- add request body log
2.0.0 - 2023-05-24
BREAKING CHANGES
SERVICE_PREFIXmust match the following regex^/[a-zA-Z0-9_-]+$- remove entire
basePathfrom request path and not only the first segment. Using the following configuration and calling the path/mia/docs/fast-datathe proxy-manager will callhttps://docs.mia-platform.eu/fast-dataand no more../../fast-data:
{
"targetBaseUrl": "https://docs.mia-platform.eu/",
"basePath": "/mia/docs"
}
1.6.2 - 2023-05-23
Fixed
- remove configuration
targetBaseUrlwrong update
1.6.1 - 2023-05-19
Fixed
retrieveUrlcorrectly interpolates path parameters in case ofSERVICE_PREFIX
1.6.0 - 2023-05-18
Added
- add
additionalHeadersto configuration to handle headers that will be proxied to target url
Changed
targetBaseUrlandbasePathcan contain path parameters
1.5.1 - 29-09-2022
Changed
- update AccessToken.ExpiresIn type from int to json.RawMessage
1.5.0 - 1/09/2022
Added
- Support to dynamic configuration: proxies are fetched from a CRUD collection
1.4.1 - 31-07-2022
Fixed
- the service now is able to proxy the query parameters
Changed
- delete token from cache when response returns an HTTP 403 error
1.4.0 - 29-04-2022
Added
- logic to refresh a token if its ExpiresAt date is set and the ExpiresAt date is earlier than current moment
Fixed
- added a modify response logic to reverse proxy, so that when an HTTP 401 error is encountered
cached access token is removed. This allow to clean up token cache upon token expiration
when parameter
TokenIssuerValidationUrlis not set
Changed
- updated service dependencies
1.3.0 - 25-11-2021
Changed
- debug logs added to improve the troubleshooting experience
- the service now support optimized proxy without saving request body in memory, this feature is controlled by
ALLOW_PROXY_OPTIMIZERenvironment variables and does not perform any retry upon request failures - fix proxy manager optimized with rewrite req host and x-forwarded-for header
1.2.0 - 18-10-2021
Added
- introduced a mechanism that allows, for each proxy config, to select whether all the headers or only a subset of them should be forwarded to the corresponding external service
1.1.0 - 11-05-2021
Added
- introduced the support for the legacy grant type
password - introduced support to custom auth fields, so that it is possible to provide additional body fields in the token
Changed
- improved how url-encoded forms are created
Fixed
- added return keyword to proxy handler function to prevent continuing the execution when an unexpected status code is encountered
- restored original request body after reading it to prevent error in the case of token expiration
1.0.1 - 09-04-2021
- Docker image name changed to core/proxy-manager
1.0.0 - 08-03-2021
Added
- First implementation featuring the following capabilities:
client_credentialsgrant type with theclient_secret_basicauthentication method.httpandhttpsprotocol schemes for target URL