Repository navigation
v1.2 #131
mobius1qwe
announced in
Announcements
v1.2
#131
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
PascalRAL v1.2
What's Changed?
HideErrorDetails,SecurityHeaders,SameSitecookies, PBKDF2 for AES).New Features
Transports and protocols
TRALClient.HTTPVersionrequests it, andProtocolVersionreports what was actually negotiated. It works with netHTTP (Windows) and OkHttp (Android) on the client, and withTRALSynopseServerinsmHttpSysmode on the server.TRALMsQuicServer/TRALMsQuicClientHTTP): RAL's own frame over QUIC streams, for Windows, Linux and Android 9+, client and server. It gives one stream per request and a 1-RTT handshake. Both ends must be RAL, because it is not HTTP/3.OkHttpRALdesign package.TRALClient(PoolConnection), plusShareConnectionandKeepAliveInterval(HTTP/2 PING).smThreads,smAsync(event loop) andsmHttpSys(Windows kernel, HTTP/2).MaxConnectionsworks the same way on all servers, andTRALClientInfo.ConnectionIDidentifies the connection behind each request.WebModule
ETag,Last-Modifiedand304 Not Modified.206/416,If-Range).CacheControl(per extension),ServePrecompressed(.br/.gzfiles next to the original),MaxFileSize,FileCacheTime,IndexFile(index.html),FollowLinksandBlockedExtensions.HEADon the file route, which is now listed in the Swagger and Postman exports.OpenSession,SessionTimeout), with secure cookies.Security (opt-in)
TRALServer.HideErrorDetails: a 500 answer no longer exposes driver messages or SQL.TRALServer.SecurityHeaders:nosniff,X-Frame-Options,Referrer-Policy, HSTS and CSP.TRALServerJWTAuth.CookieSameSite. The session cookie isSameSite=Lax.RALCriptoKeyDerivation := rkdPBKDF2).OnValidateSQLandOnValidateApplyUpdateson the FireDAC DAO.Routes and API
TRALRequest.Route(the route answering the request) andOutputParamson routes.Allow()andSkipAuth()helpers forAllowedMethodsandSkipAuthMethods.TRALServer.GetServerAddressandRALGetLocalAddress: find the IP the server is reachable at (IPv4 and the stable IPv6 address).NativeConnection/GetNativeConnectionon the DBWare drivers.Data
sftBCDfield type: exact NUMERIC/DECIMAL values in every storage (BIN, JSON, BSON, CSV) and in DBWare params.RALLegacyWirelets a 1.2 side talk to older RAL peers.CountUpdatedRecordson the memtables.Documentation
src/engine/SSL.md), with theopensslcommands.src/engine/HTTP2.md).Highlight Changes
The most important differences from 1.1:
Security
DocumentRootin the WebModule and the FireDAC DAO no longer serves the executable's folder (.inifiles, certificates, databases).BlockedExtensionscan no longer be bypassed with NTFS stream names, 8.3 short names or trailing dots.501instead of running the GET handler.?&a=1and on an empty brotli body are gone.Breaking changes
CORSOptions.AllowOrigin := '*'(or list your origins) if a browser app calls your server. Forms saved with'*'keep it.ebSingleThread,ShareConnectionandPoolConnection.Enabledare now on by default. PassebMultiThreadwhere a call must not block the UI.ParamByNamebehaves as before.RALLegacyWire := Trueon a side whose peers are still on an older version.ApplyUpdatesandExecSQLraise on failure, as the DAO does. A record that was changed or deleted by someone else is no longer reported as saved.CountUpdatedRecordsturns the row count check off.TRALParams.BodyandTRALParam.AsStream, which allocate an object on every read. UseContent,SaveToStream,Count(rpkBODY)orSingleBodyinstead.Reliability
BaseURLworks on every path, and a401no longer throws away a freshly fetched token.Cookieheader.Openno longer leaks its query.Active = Truein a form now readsPort,SSLandIPConfigbefore it starts.$R+ $Q+) are supported. The build was fixed for Android, Linux, FPC, Delphi XE2 and Delphi 10.0 Seattle.Performance
Full Changelog: Changelog
1.1...1.2
This discussion was created from the release v1.2.
All reactions