Version 19.11
The new November 2019 Release of ApiOmat features the Android SQLite SDK in a stable version, the Supporter Role, handles error responses with standard HTTP codes and a JSON body, offers App-Backend independent crawled JDBC modules and provides attribute encryption within the JavaScript SDK, besides additional changes. See below for further information on these topics.
Note that this is the first version with the changed versioning scheme. As of this version, we will provide larger releases every four months, which will contain a set of the different software parts in different versions. They can be installed over the provided meta packages. The version of these meta packages is oriented on the year and the month where it is released.
The version 19.11 consists of the following new versions:
-
ApiOmat Yambas 3.4.0
-
ApiOmat Dashboard 3.4.0
As well as the already released versions Explorer 1.1.1, Lurker 1.1.0 and Dispatcher 1.0.1
New Features
Android SQLite stable release
Finally the Android SQLite SDK is out of Beta and now more stable than before. Check out the new SDK, modify your code and feel the improvements:
-
stabilized and cleaned the access methods for referenced objects
-
added count functionality for SDK offline mode
-
added access to big offline files via chunking
-
changed method signatures:
-
Removed checked exception from method postMyRefAsync() and removeMyRefAsync()
-
old: postMyRefAsync()/removeMyRefAsync() throws ApiOmatRequestException
-
new: postMyRefAsync()/removeMyRefAsync()
-
-
Changed signature of method loadMyRef()
-
old: loadMyRef(Class<T> referenceClass, String query)
-
new: loadMyRef(String query, Class<T> referenceClass)
-
-
Removed signature of method loadMyRef()
-
loadMyRef(Class<T> referenceClass, String query, boolean usePersistentStorage)
-
-
New Response Code JSON
As you may know, ApiOmat Yambas provides a lot of custom response codes and messages. With Yambas 3.4.0 those response codes are replaced by standard HTTP codes to comply better with existing infrastructure and tooling. The customized ApiOmat codes and messages are now embedded within the response body as JSON object.
-
You can enable this feature by setting the request header X-apiomat-sdkVersion to 3.4.0 or higher.
-
Choose a lower version or leave out this header to retrieve your reponses from Yambas like before.
Note: The new behavior does not work with the response status code 401 and 407 when using the Android SQLite SDK. To avoid a different behavior the Android SQLite SDK uses as X-apiomat-sdkVersion version '3.3.999-99' instead of '3.4.0.'.
App-backend independent useable crawled JDBC Modules
Since this version, the JDBC Modules can be used independently from the App backend. Due to that, you don't need to re-crawl the database, if you want to change the connection credentials, the database url or use it on another app backend. You can simply configure the connection data as a configuration on your app backend. Additionally, this provides you the possibility to use the crawled module on different app backends and different databases. Therefore, it also reduces the infrastructure costs, as you don't need to crawl a new module for every backend.
Additionally, the meta data and connection information isn't stored in the app backend as data object anymore, which brings you more confidence on your data and improves performance due to less requests to the meta data.
Nevertheless, the drawback of this great feature is that you need to recrawl any of your already crawled modules. By default, the appName isn't encoded in the module name of the crawled module anymore, so the crawled module will probably have another name than a module which was crawled before. Luckily, if you rely on that name (f.i. due to existing code in modules which use the crawled module), the endpoint for crawling now provides you the opportunity to set a name for the crawled module. So you can set the name to the old one.
Encrypted Attributes for JavaScript SDK
It is now possible to encrypt String attributes on SDK side. The first SDK that implements this feature is the JavaScript SDK.
ApiOmat provides one simple flag to mark any string attribute of your customized classes as encrypted.
The SDK itself will take care about everything so you are able to use the getter and setter methods to access your class attributes like before.
Your benefit: the content of your attributes will be encrypted with AES-256 on the client side and is then only readable with your own secret passphrase.
-
check the SDK Reference documentation for more details
Supporter Role
This release also includes the new supporter role feature which was introduced earlier in Yambas 3.3.1. You can assign customers to be supporters using the SuperAdmin account.
A supporter is basically a customer with a special role that incorporates certain, statically assigned roles for monitoring Yambas itself.
-
For example by selecting the "Support access" flag in the customer creation form as a SuperAdmin:
-
This new customer can now access the vendor onboarding views with only read access:
-
With the button in the top right (left besides the logout button) you can switch to the customer dashboard, also with read rights for backends, which belong to others:
-
check the Supporter Role for further details
More Technical Improvements
The new version of ApiOmat also includes some technical improvements. Some of them are listed here:
-
Removing a reference will now return an exception if the given reference id doesn't match
-
outdated deprecations were removed like Chatmodul, C#, Xamarin, Backbone, Titanium, IModelHooks (see Deprecations and Migration)
-
new NativeModule method to read the module configuration across the used module hierarchy
-
new NativeModule methods to check whether a MetaModel or -attribute name is valid
-
new NativeModule method to get the url of the discovery service
-
fixes for C# SQLite SDK and Android SQLite SDK
-
all fixes of Yambas 3.3.1 are included (see Version 3.3.1)
Breaking changes
Breaking changes may require changes in configuration, apps, or native module code after an ApiOmat upgrade to ensure system stability.
Affects |
Change |
NativeModule |
Some of the deprecated methods were removed in NativeModule Code. |
Chat Module |
The static Chat module ran out of deprecation and was removed. Please use the native module GroupChat instead. |
old C# SDK, |
The following SDKs ran out of deprecation and were removed from ApiOmat:
Please use the following replacements instead: C# SQLite, Xamarin SQLite, Typescript. |
Remarkable changes
Remarkable changes do not affect system stability after ApiOmat upgrade, but may require changes in configuration, apps, or modules in the next development cycle.
Affects |
Change |
REST endpoint for reference deletion |
The endpoint to remove a referenced object from a referencing object will now return an error response if the given ID doesn't match the ID of the actual referenced object. Previously this error was only logged, while the response status code was 204 (not indicating an error). The related methods (e.g. obj.removeMyRef(...)) in the SDKs will now return an exception. If you use:
|
Android SQLite: removed checked exception and changed signature of methods |
|
All changes in the current and previous versions can be found at the root page.
All deprecations and their removal date can be found at Deprecations and Migration.
Changelog