Changelog
Added
provide request info as a HAR file if
flat/collect-request-infois enabled
Fixed
More helpful error message for misspelled type names in
Swagger schemasdon't leak Authorization in FLAT::getRequestInfo()
fixed a mixup of JSON DOM representation styles
Added
Fixed
set-envnow does not produce unnecessary quotes for numeric valuesProblem in the
split()function, if called with a string containing an ampersandSend
Vary: Originresponse headers for non-preflight requests if CORS is enabled butOriginwas not sent
Added
The
scope-claimandpost-check-flowpropertiesSpecifying the required token scope
Merging directives into
php.inivia environment variables
Fixed
Path parameters were not usable in error flows
Added
FLAT_DEBUG_ALLOW_HEADERto enable debugging using theDebugrequest header, defaults tofalseThe request option
force-cache-refreshThe
cacheHitproperty in the upstream response information ($upstream)
Fixed
Empty objects are no longer logged as empty arrays.
The
json-to-csv()function allowsnullvalues in array entry objects.
Changed
The log action can no longer override system log fields.
Added
Beta image now publicly available. More about Docker images…
Warnings in debug log about invalid Swagger definitions
The
erroractionadditional configuration options for the PHP-FPM process management
out-headerproperty for easy JWT forwarding
Fixed
Calls to the
content()function affecting the result of thebody()function
Added
Swagger
securityrequirements can now also be specified at the path level.x-flat-proxyto configure proxies without a flowEnhanced
proxy-requestaction withorigin,query,stripEndpointandaddPrefixproperties
Fixed
If a client URL path is below the API base path, does not match any defined route, and a path is defined which equals the API base path, so that a matching client URL path is the concatenation of the API base path with itself (e.g.
/api/apiif thebasePathis/api), the fallback flow is now properly executed.Some PEM formatted keys could not be recognized during JWT processing.
Multi-line values for environment variables are now supported.
Changed
If the
definitionrequest option is given with either aproxy-requestaction orx-flat-proxy, the defaults for theexit-on-error,validate-requestandvalidate-responserequest options are changed totrue.
Added
The FLAT revision is shown when FLAT is started and is available in
$env/FLAT_REVISION
Changed
Enhanced
flat_accesslog with new fields
Fixed
When testing multiple test files with
flat test, each test now tests its own response.Fatal errors when using certain combinations of
jwt-decode()and<eval/>
Fixed
Environment variables are shown in the debug log if the debug topic is
envWith activated upstream validation, a missing
definitionoption or adefinitionvalue referencing a non-existant resource now results in a 500 response with a proper error message.Swagger security scheme objects without
x-flat-jwtare ignored for security checks.
Added
Changed
set-response-headersaction now accepts the empty object{}Reading
swagger.yamlis faster because of caching
Added
Validation for
application/x-www-form-urlencodedencodedformDataparametersThe
proxy-requestactionThe functions
verify-xmldsig()anddecrypt-xml().
Fixed
Parameter handling of the functions
decrypt()andcalc-signature().
Changed
Padding scheme for
encrypt()anddecrypt()to RSAES-OAEP.Relative paths in the
json-doc()function are resolved relative to the flow file's path.
Added
The Swagger extension
x-flat-validateis now also recognized belowpaths/<path>andpaths/<path>/<operation>.The
force-cache-ttlrequest option
Changed
Only allow operations defined in OpenAPI version 2.0 to be used in the
swagger.yaml
Fixed
The default value for the
use-http-cacherequest option is now false, even if no request options are configured.Segmentation fault (or double free) when eval is used to assign nodes from a node-set variable to another variable
Added
The functions
apply-codecs(),encrypt(),decrypt(),calc-signature()andverify-signature()The function
file-exists()The
$errorvariable is set andexit-on-error/error flowhandling is triggered if a request error occursMore environment variables for system configuration and tuning
If a path in
swagger.yamlends with/**, this entry matches the given path as well as arbitrary paths below it.
Changed
Swagger validation now gracefully accepts empty objects in the definition.
Logging of template results for more flow actions
Fixed
Some alert messages were logged twice
Evaluating an undefined or
nullvariable, as a string, now returns the empty string instead of the stringnullIncorrect default content-type
text/xmlfor request bodiesThe
set-response-headersaction now replacesCache-Controlheaders instead of merging themThe
serveaction now correctly handles whitespace and other URL-Encoded characters in the name of thefallback-doc
Added
Swagger definition supports
discriminator, JSON schema$idreferences and JSON schemapropertyNamesThe
array-reverse()andsort(),xml-parse()andhtml-parse()functionsValidation of the
request,requestsandset-response-headersaction JSON bodiesThe expected result in an
assertaction's assertion can now benullThe
logaction, theget-log()function
Changed
Fixed
The
report-onlyvalidation modesThe
exit-on-error,mockandvalidaterequest options also for XML-configured requestsRelative paths for e.g.
inwithcopyinbackend-flows
Added
The
$errorvariable containing error information for client request/response validation errorsThe error flow, called if an error occurs, and referenced by
flowinx-flat-errorin the swagger.yamlThe
exit-on-errorrequest option (for JSON-configured requests) to trigger the error flowAn additional parameter
algorithmfor thejwt-decode()function to limit the acceptable signing algorithms. Mandatory for RSASSA based signaturesThe
containsandpatterncompare flags for theassertactionThe
flat testFramework withassert,test-request,backend-flowandset-envactionsThe
json-stringify()andjson-parse()functions
Changed
The default
User-Agentfor upstream requests isFLATUnless
terminate="false"is set, theserveaction will terminate the flowFor the
requestaction: values inheadersmay now also be numeric or booleanIf the signature cannot be created, the
jwt-encode()function returns an empty string and an error message is loggedThe
keyfor thejwt-encode()andjwt-decode()functions must not be emptyHTML error page only if HTML is accepted; plain text otherwise
Fixed
Fatal error when creating requests with
nullquery parameterFatal error when creating requests with invalid body source
Requests are now rejected if upstream validation is enabled, but no
definitionoption is configured or the given definition is not foundThe results of the
split()function can now be used as input forjoin()orfit-serialize()
Last updated
Was this helpful?