Releases: coupergateway/couper
v1.13.2
v1.13.1
v1.13.0
1.13.0
-
Added
can()function (#699)url_decode()function (#781)bearer = trueattribute forjwtblock to indicate retrieving token fromAuthorization: Bearer .... This is the new default token source indicator.header = "Authorization"is now deprecated in favour of this new attribute. (#724)- IPv6 support via
-bind-addressoption. (#752) - also watch files which has been referenced within the configuration file when using [
-watch] (https://docs.couper.io/configuration/command-line#basic-options) (#747) - automatic
MAXPROCSsetting for Couper runtime to respect the number of available CPU resources in cloud environments (#840)
-
Changed
- More specific error log messages for
oauth2andbeta_token_requesttoken request errors (#755) - In addition to having an appropriate JSON media type in the
Content-Typeheader field, (backend) requests or backend responses for an endpoint are only JSON-parsed if indicated by a.json_bodyreference in the endpoint configuration (#749) beta_rate_limitstatus code429responses are no longer wrapped as a Couper error (#827)
- More specific error log messages for
-
Fixed
WWW-Authenticateheaderrealmparam value forbasic_auth(#715)Server-Timingheader only reporting last requests/proxies of endpoint sequences (#751)- Selecting of appropriate error handler in two cases (#753)
- Storing of digit-starting string object keys in request context and of digit-starting string header field names in request variable (#799)
- Use of boolean values for the
headersattribute or modifiers (#805) - Duplicate CORS response headers (with backend sending CORS response headers, too) (#804)
- Erroneously sending 404 when serving from
filesdue to wrong registration ofbase_paths, and when serving from multiplefilesorspain combination withapidue to wrong selecting of the API error template (#803) - Possible deadlock for
beta_rate_limit(#827)
-
Dependencies
v1.12.2
Note: The Couper project has been moved to a new home: https://github.com/coupergateway/couper !
The maintainer is still the same (@malud) and supported with ❤️ by Milecrew.
This affects the following locations which you have to update accordingly:
Dockerhub:
coupergateway/couperandcoupergateway/couper-oidc-gateway
VSCode-Extension: Couper Configuration (Marketplace / Open VSX)
Homebrew:brew tap coupergateway/couperand thenbrew install couper(formula)
Examples: https://github.com/coupergateway/couper-examples
- Fixed
- Reading the origin response-body even if there is no origin
bodyorjson_bodyvariable reference; piping the response-body again to the client (#766)
- Reading the origin response-body even if there is no origin
v1.12.1
1.12.1
- Fixed
- Erroneously sending an empty
Server-Timingheader (#700) - URL scheme while using the
tlsblock (#703) - For OIDC, trying to request userinfo from a non-existing (not required, though recommended) userinfo endpoint (#709)
- Use of
backend_responses'bodyorjson_bodyproperties in api-level error handlers (#710) - Some
..._fileattributes missing for path absolutizing (#713) WWW-Authenticateheaderrealmparam value forbasic_auth(#715)- JWT access control now creating
401error status code, adding aWWW-Authenticate: Bearer[...]response header if appropriate (#719) - Erroneous multiplying of health probes, jobs and requests to JWKS and OpenID configuration resources after a reload with
-watch(#730, #736) - Reading PEM-encoded CA certificates (
ca_filesetting or-ca-fileoption) containing bytes trailing the PEM message (#739)
- Erroneously sending an empty
v1.12.0
1.12.0
-
Added
beta_jobblock to describe one or more jobdefinitionsfor simple recurring http tasks (#610)server_timing_headersetting, that allows Couper to include an additionalServer-TimingHTTP response header field detailing connection and transport relevant metrics for each backend request. (#657)
-
Changed
- Use nested
jwt_signing_profileblock inoauth2block forgrant_type"urn:ietf:params:oauth:grant-type:jwt-bearer"in absence ofassertionattribute (#619) - Improved the way an SPA
bootstrap_filegets cached and served in combination withbootstrap_data(#656) - Harmonized and improved logged error information for references to undefined blocks (#651)
- Unbeta permission features: (#673)
beta_required_permissionattribute forapiandendpointblocks,beta_granted_permissionsandbeta_required_permissionrequest context variables,beta_insufficient_permissionserror type,beta_permissions_claim,beta_permissions_map,beta_permissions_map_file,beta_roles_claim,beta_roles_mapandbeta_roles_map_fileattributes forjwtblock.
- Use nested
-
Fixed
- Use of backend-related variables in
custom_log_fieldswithin abackendblock (#658) - Loop with evaluation error in
custom_log_fieldsif log level is"debug"(#659) - Removed error message with
couper helpcommand (#678)
- Use of backend-related variables in
VSCode-Extension
The vscode extension has been moved to our own publisher couper. The new extension can be found here:
- Marketplace: https://marketplace.visualstudio.com/items?itemName=couper.couperconf
- Open-VSX: https://open-vsx.org/extension/couper/couperconf (claiming the namespace is still pending)
v1.11.2
1.11.2
- Fixed
- Requests to wildcard (
**) endpoints using backends with a wildcardpathattribue, where the wildcard matches the empty string (regression; since v1.11.0) (#655) - [internal alloc] stop creating request context based jwt, oauth2 and saml (hcl) functions without related definitions (#666)
- [internal alloc] reduced allocation amount while proxying requests (#666)
- Removing websockets related headers while the proxy
websocketsoption isfalse(or no block definition exist) (#666)
- Requests to wildcard (
v1.11.1
1.11.1
- Fixed
- Endpoint sequences not being terminated by errors (e.g.
unexpected_status) (regression; since v1.11.0) (#648) - Health route affected by access control (regression; since v1.11.0) (#654)
- Endpoint sequences not being terminated by errors (e.g.
v1.11.0
1.11.0
With this release Couper brings even more value when it comes to connecting services and security. We made mTLS configurable for both sides, the server side and the backend one. Couper is normally used behind an ingress but is now able to serve secured content and forces clients to present a valid certificate if configured. For the backend blocks Couper acts as client and is able to present a client certificate to the origin. This feature also allows to additionally configure a CA certificate per backend, unlike the ca_file option which configures a certificate for all outgoing connections.
To configure a Single Page Application for different environments, believe it or not, things could get complicated. Couper comes with a simple but powerful spa attribute to inject a custom JSON object into the bootstrap file via a defined placeholder while serving this to the client.
-
Added
- mTLS Support for
serverandbackendblocks (#615) spablock option to inject server-data to the applicationsbootstrap_filewithbootstrap_data(#626)- OAuth2 client authentication methods (
token_endpoint_auth_methodvalues)"client_secret_jwt"and"private_key_jwt"includingjwt_signing_profileblock foroauth2,beta_oauth2andoidcblocks (#599) trim()function (#605)beta_roles_map_fileandbeta_permissions_map_fileattributes tojwtblock (#613)
- mTLS Support for
-
Changed
- Replaced the JWT library because the former library was no longer maintained (#612)
- Routing and OpenAPI validation now use gorilla/mux (#614)
- Usage of
envvariables and functions is now possible for thedefaultsblock (#630)
-
Fixed
- Aligned the evaluation of
beta_oauth2/oidcredirect_uritosamlsp_acs_url(#589) - Proper handling of empty
beta_oauth2/oidcscope(#593) - Throwing sequence errors and selecting appropriate error handlers (#595)
- Allow setting of the
typJWT header injwt_signing_profiles (#616) - CVE-2021-3538 related to our
request_id_formatoption if switched touuid4: replaced the underlying package togithub.com/google/uuid(#611) - Possible panic for nested endpoint sequences (#618)
- Cycle check for endpoint sequences (#623)
- In endpoint sequences send requests only once (#624)
- Aligned the evaluation of
v1.10.1
1.10.1
- Fixed
- endpoint
/**path wildcards sometimes not matching (#603) - Some errors in the
default()function (#596)
- endpoint