v2.7.0
Server
- Feature: Config and method to set request timeout for 4D Mobile Queries.
- Feature:
OnSendRequest
event to customize Rest Requests on the fly.
- Fix: Timestamp compatibility issue with 4D V17
- Fix: Single Quote issue in Rest Queries
- Fix: Disabled community mode, License is now required to start the server.
v2.6.0
Server
- Ubuntu 18.04 only support
- Upgrade Ubuntu package from
upstart
to systemd
(doc) (#152, #213, #220, #243, #244)
- Fix: Readable error on wrong relatedEntity/ies (#209)
v2.5.0
Studio
Server
- Add restrict event on 4D / MySQL remote dataclasses
- Add global custom HTTP headers (doc)
- Add forward secrecy and HSTS (#231)(doc)
- Export requireNode.cache attribute
- Security fix: Specific HTTP request causes server crash
- Security fix: scope not working on remote dataclasses (#240)
- Fix: crashing duplicated
addRemoteStore()
with same parameters
- Fix: orderBy issue on type object sorts by ID (#242)
- Fix: system worker with array or string params does not use the same PATH
v2.4.0
Studio
- Fix: Studio cannot start Server if its path contains space character
Server
- Use
Accept
HTTP request header to format HTTP error response [issue 203]
- Add XHR timeout (doc) [issue 189]
- Set cookie's
Secure
flag on HTTPS
- Authorise requests where
Origin
header's protocol is HTTP on HTTPS port (Case of reverse proxies)
- Fix: Server crash with NodeWorker & Windows Service
- Fix:
query()
on Object
attribute [issue 237]
- Fix: Multiparameter
orderBy()
on Object
attribute [issue 233]
- Fix:
getStorage()
returned a storage with volatile prototype
- Fix: storage's
clear()
was missing (shared storage)
- Fix: storage's
removeItem()
was missing (shared storage)
- Fix:
NodeWorker
and SharedWorker
now accept a File
object as parameter (doc)
- Doc: Fix
slice()
documentation (doc)
v2.3.0
Server
- Add server routing HTTP to HTTPS (doc)
- Add Multi stage deployment feature (doc)
- Fix: Error returned on wrong NodeWorker or SharedWorker definition
- Fix: Error on 'File already exist' with Linux
copyTo
- Fix: Image insertion in a remote ODBC database
- Fix: Duplicated entity on
n-1
query on a remote ODBC database
Studio
v2.2.0
Server
- NodeWorkers now are based on NodeJS v8.1.3.
- NodeJS v6 has a garbage collector issue fixed in NodeJS v8 #167
- Add datastore
pauseTransaction()
and resumeTransaction()
: doc
- Add dataclass
setCollectionPageLength()
and getCollectionPageLength()
: doc
- Add entity collection
splice()
method: doc
- Add datastore
distinctPath()
method: doc
- Add shared storage
tryLock()
method: doc
- Fix: Dataclass method calls must use POST request (GET not supported anymore for security reasons).
- Fix: Worker exceptions not passed to
port.onerror
callback
Studio
- Fix #208
- Fix: backend user templates get mixed up with user mobile templates
v2.1.0
Studio
- Write and run tests for your Wakanda backend : screenshot, doc
- Configure and manage your Android packages from the studio preferences : screenshot-1, screenshot-2
- Configure your environment variables from the studio preferences : screenshot
- Interact with command line tools directly from the studio as in the command line : screenshot-1, screenshot-2
.wakanda
folder versioning and update support (to get fixes and enhancements for tasks, troubleshooting when downloading new Wakanda Versions)
- Create your own project templates by putting them inside
Documents/Wakanda/templates
: screenshot
- Change Server administration ports from studio preferences : screenshot
- Add visual feedback when task is terminated : screenshot
- Better Server restart handling
- Save user default solutions path in preferences
- Add OS specific
PATH
env variable default values
- Update Ionic & Angular templates
- Better Ionic & Ionic1 troubleshooting
- Change template defaults : Angular & Ionic instead of Angular 1 & Ionic 1
- Fix default solution creation template for Mobile
- Fix project add #204
Server
- NodeWorkers now are based on NodeJS v6.10.2 LTS
- New server module
Threadify
included in the server github, doc
- New
getStorage
and removeStorage
API doc
- SystemWorker API can now emulate a terminal doc
- Admin UI Jobs now run inside of a NodeWorker
- Enterprise feature:
setLogListener()
API doc
- Add
compute()
controlMethod to Virtual DataClass
- No need to declare controlMethods with default or inherited behaviour for Virtual DataClass
- Better placeholders handling for db drivers
- Fix:
getUserSessions()
date Wakanda/wakanda-issues#168
- Fix: crash when using
forEach()
V8 garbage collector Wakanda/wakanda-issues#167
- Fix:
describe
permission issue
- Fix: Untie describe & read model permissions
- Fix: alias attribut not updated when related attribut is Wakanda/wakanda-issues#148
- Fix: forEach and toArray slower in wakanda v2.0 than v1.1.4 on 4D MOBILE
- Fix: getTimestamp returns a wrong value on 4D MOBILE
- Fix: query with NULL value on 3rd level relations for MySQL Pro Connector
v2.0.3
- Fix: [Server] Linux service cannot start after a reboot
- Fix: [Server] Unparsable CS-URI* fields in HTTP logs
- Fix: [MySQL Connector] Save Bool with null value
- Fix: [Virtual Model] Init event triggered twice
- Fix: [Oracle Driver] Blob and Dates Type
- Fix: [Studio] lack of visual feedback during package installation (Angular4 & Ionic2)
- Fix: [Studio] no more
brew install android-sdk
- Fix: [Studio] focus issue on Windows 10 & macOS Sierra for dialogs with webviews
v2.0.2
- Fix: Installer cannot update a previous installed version
v2.0.1
Studio
- Fix: Studio runtime missing (Windows only)
- Git : disable diff on removed files
- Fix: Studio becomes unresponsive for a while if git UI is open and a run solution is performed on Angular2
v2.0.0
New SSJS APIs
How to use the new admin dashboard
addHttpRequestHandler
& removeHttpRequestHandler
replaced by httpServer.addRequestHandler
& httpServer.removeRequestHandler
currentUser
& currentSession
replaced by directory.currentUser
& directory.currentSession
createUserSession
replaced by directory.createUserSession
directory.setLoginListener
replaced by directory.setLoginManager
(not the same APIs)
getSession()
replaced by directory.getSession()
getUserSessions()
replaced by directory.getUserSessions()
loginByKey()
replaced by directory.loginByKey()
loginByPassword()
replaced by directory.loginByPassword()
logout()
replaced by directory.logout()
setCurrentSession()
replaced by directory.setCurrentSession()
solution.quitServer()
removed for security reasons