. . .

Version 2.6.0

New Features

ApiOmat Studio

Built for designers, ApiOmat Studio provides all the tools to quickly piece together iOS apps (Android & web apps coming soon).
Gain start up speed and give lines of business, departments, and designers the only tool to build native apps and digital services for their customers, without IT complexity.
Deliver rapid prototypes and digital services in hours and launch apps in as little as a day to digitalize how employees, customers and partners interact with your business.

  • Design apps tailored to your use-case

  • Generated native source code is 100% accessible

  • Supports all popular devices

  • Huge selection of native UI elements

  • Direct connection to the app backend

  • Free of charge: Included in ApiOmat 2.6

images/download/attachments/12650735/apiomat_studio2.jpg

New password policy configuration

Security and compliance guidelines are the Achilles heel of every IT infrastructure. Often it's the IT department's responsibility to ensure the security.
The new password configuration file supports the administration and guarantees individual compliance and data security policies, such as minimum password length, expiration, special characters and many more:

  • Configure your own system-wide password policy, including:

    • rules of minimum and maximum password lengths

    • rules of specific characters like digits, uppercase letters and special symbols

    • rules of forbidden last passwords and forbidden text parts (username, regEx)

    • rules of password expiration incl. sending reminder emails

    • rules for handling wrong login attempts and temporary account black listing

  • New REST endpoints to log in customers and organizations supporting the new password policies, see ApiDocs

  • Generate one-time passwords via Dashboard

  • Define different password policy configurations for technical and common accounts

For more details see Password Policy.

New ways for handling static data (images/files)

  • New REST endpoints for attaching images/files to objects, see ApiDocs

    • In the past you had to 1) upload the image/file with a POST request and then 2) save the returned data URL in the object and send a PUT request with the object

    • Now you can just send a POST request to the new REST endpoint and both steps get done automatically

    • Same for DELETE

    • When a request gets sent to one of these new REST endpoints, the below mentioned new hook methods get executed

  • New hook methods for handling images/files that are attached to objects, see Hook Classes

    • Transient: doPostData(), doGetData(), doDeleteData()

    • Non-transient: beforePostData(), afterPostData(), beforeGetData(), afterGetData(), beforeDeleteData(), afterDeleteData()

    • These hook methods get executed when a request gets sent to the above mentioned new REST endpoint

    • Allow you to inspect, transform, replace images/files

  • New object methods for handling attached images/files in Native Modules, see Accessing Data

    • obj.addReferencedData(), obj.GetReferencedData(), obj.DeleteReferencedData()

    • Calling these methods trigger the above mentioned new hook methods

Also see Images and Files.

Check the health of modules

Checking the funcionality of your modules is now very easy. The native module health check supports admins to deliver a fail-safe system and gives a quick overview of the health of your backend and your modules. Implementing the new health check method allows native modules to return integer values for specific module states:

  • Implement the checkHealth method in the native module, which can e.g. check if an connected system is responding.

  • By definition, -1 means no health check is implemented and 0 means "OK". All other values can be defined by the developer itself.

  • This health check has an rest endpoint which can be used by every customer having the READ_HEALTH role.

  • The health status of a module is also displayed in the ApiOmat Dashboard:

    • Get a quick overview on the left side of the module and class menu

      images/download/thumbnails/12650735/icon_hover.png
    • Or update the health status of a specific module:
      images/download/thumbnails/12650735/context_menu.png images/download/thumbnails/12650735/dialog.png

Also see Health Checks.

New modules in Marketplace

New modules expand the range of services in ApiOmat: Access data with the new OData Connector from any client or server library by using the OData protocol, generate PDF files (like invoices, tickets or forms) and connect to other folders in your ApiOmat network.

images/download/thumbnails/12650735/NetworkDrive_logo.png

NetworkDrive

Allows reading from and writing to samba share folders.

images/download/thumbnails/12650735/ODataConnector_logo.png

ODataConnector

Allows to read and write data from services that provide an OData RESTful service.

images/download/thumbnails/12650735/PDFGenerator_logo.png

PDFGenerator

Generates a PDF file from an HTML template.

Rebrand the dashboard with an individual color scheme

According to your requirements the ApiOmat Dashboard is now adaptable to your companys CI and brand guidelines.
With the color scheme comes a new way to customize the look of the Dashboard and rebrand it. There is now the possibility to upload a logo, configure displayed links and set colors of specific dashboard UI components.

E.g. changing the colors of the left side menu can look like this:

images/download/thumbnails/12650735/color_example.png

For more information, see here.

Important and breaking changes

Dashboard

The old Dashboard2 will not work anymore with ApiOmat Yambas 2.6. Please use the Dashboard3 instead.

New repository

For updating to ApiOmat 2.6 and later, you have to update to our new repository repo.apiomat.com. Also, new (personal) credentials are need, which will be kindly provided by your customer success manager at ApiOmat.

If upgrading from Windows, no further actions are necessary. If upgrading from Linux, just replace the repository entry before upgrade by replacing the file content of /etc/apt/sources.list.d/apiomat.list (Debian, Ubuntu) / /etc/yum.repos.d/apiomat.repo (Red Hat, CentOS) / /etc/zypp/repos.d/ApiOmat (SUSE) with the content provided in the installation manuals.

Twitter Module

The twitter module have been switched from a static module to native module. If you did not use the module in any of your modules or backends, it will simply be deleted.But if the installation have modules or backends that use the module, please contact us to get the new native module version of the twitter module. For more information about the possible implications when switching to the native module version, please visit the Twitter module page

New ways of handling static data (images/files) in JavaScript-SDK

The new REST endpoints are used within the JavaScript SDK. When loading an object with a reference to a file or image, that's file or image was deleted already, there won't be an invalid imageHref or fileHref anymore, so when trying to load the missing file or image an exception (ATTACHED_HREF_MISSING) will be thrown instead of triggering the error-callback (MODEL_NOT_FOUND). When loading a referenced file or image fails because the accoding Href is missing, you can check for this error within the onError callback instead of using a try-catch block.

Native Module hooks

When using the new REST endpoints for static data, a POST request of a referencing object won't include an image's or file's Href anymore. If you did use an image's or file's Href in hook classes within a native module and want to use the new REST endpoints for static data (that are already included in the JavaScript SDK), you have to move this logic to the new hook methods as well.

Download SDK Endpoint

The download SDK REST endpoint will now need an application/octet-stream accept header. You have to update the dashboard to the latest version and change legacy scripts to make the SDK download work again. If existing, check your own scripts using the REST endpoint and send the new header.

Date and simple types in iOS

Collections with simple types will return an optional in ObjectiveC now, which may require manual updates in iOS code when downloading a new SDK after 2.6 upgrade. Collections with date types will return null in ObjectiveC now, if initialized and saved with null before.

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

Key

Summary

T

Resolution

AOM-4451

Exception for Map parameter in own REST endpoint

images/jira.apiomat.com/secure/viewavatar

Fixed

AOM-4411

Calling getValueMap( ) on model in native module leads to endless loop in some cases

images/jira.apiomat.com/secure/viewavatar

Fixed

AOM-4394

Native module libs not updated after download

images/jira.apiomat.com/secure/viewavatar

Fixed

AOM-4379

Error when initializing empty git module

images/jira.apiomat.com/secure/viewavatar

Fixed

AOM-4376

Datamodel creation wrongly categorized as "Updated" instead of "Created"

images/jira.apiomat.com/secure/viewavatar

Fixed

AOM-4340

Add NetworkDrive, PDFGeneration and OData module to release notes

images/jira.apiomat0.com/secure/viewavatar

Fixed

AOM-4336

[Facebook] Update Graph API Version

images/jira.apiomat0.com/secure/viewavatar

Fixed

AOM-4299

[Objective-C] Objects are not deleted from storage that were deleted in Backend

images/jira.apiomat.com/secure/viewavatar

Fixed

AOM-4274

Cronjob not executed on full hour

images/jira.apiomat.com/secure/viewavatar

Fixed

AOM-4271

[Backbone] Wrong format and contentType when uploading files and images

images/jira.apiomat.com/secure/viewavatar

Fixed

AOM-4270

Module health check should return -1 if not implemented

images/jira.apiomat1.com/secure/viewavatar

Fixed

AOM-4267

Login doesn't work when inherited user in native module has no SALT value set

images/jira.apiomat.com/secure/viewavatar

Fixed

AOM-4265

OAuth2 tokens can't be created in stages other than LIVE

images/jira.apiomat.com/secure/viewavatar

Fixed

AOM-4231

[Webhosting] support read via token authentication

images/jira.apiomat1.com/secure/viewavatar

Fixed

AOM-4227

Audit log improvements - secure native module data

images/jira.apiomat2.com/secure/viewavatar

Fixed

AOM-4216

SuperAdmin password with first char "0" gets treated as octal value

images/jira.apiomat.com/secure/viewavatar

Fixed

AOM-4213

Support for Centos 7.3

images/jira.apiomat0.com/secure/viewavatar

Fixed

AOM-4200

[Facebook] Update to Graph API v2.4

images/jira.apiomat.com/secure/viewavatar

Fixed

AOM-4194

Add ReactNative SDK to Apidocs selection box

images/jira.apiomat1.com/secure/viewavatar

Fixed

AOM-4191

Generate new configEncryptionKey during installer

images/jira.apiomat1.com/secure/viewavatar

Fixed

AOM-4170

[ObjC] Reuse of NSOperationQueue

images/jira.apiomat1.com/secure/viewavatar

Fixed

AOM-4163

Installer not working when setting mongodb authentication data

images/jira.apiomat2.com/secure/viewavatar

Fixed

AOM-4160

[Obj C /SWIFT] Dependency problems using iOS 10

images/jira.apiomat.com/secure/viewavatar

Fixed

AOM-4151

get<refname> doesn't work for transient references

images/jira.apiomat.com/secure/viewavatar

Fixed

AOM-4130

Object specific role gets set automatically after creating the object

images/jira.apiomat.com/secure/viewavatar

Fixed

AOM-4110

Velocity Error for Git Modules when sending requests in specific order

images/jira.apiomat.com/secure/viewavatar

Fixed

AOM-4103

Apidocs autofill when opening from Dashboard not working

images/jira.apiomat.com/secure/viewavatar

Fixed

AOM-4102

Using a MongoDB Arbiter does not work anymore

images/jira.apiomat.com/secure/viewavatar

Fixed

AOM-4101

Add sendReasonPhrase in connector in server.xml

images/jira.apiomat0.com/secure/viewavatar

Fixed

AOM-4086

Differentiate between deleted and removed objects in DeltaSync response headers

images/jira.apiomat.com/secure/viewavatar

Fixed

AOM-4072

ResourceWrapper throws NPE instead of null

images/jira.apiomat.com/secure/viewavatar

Fixed

AOM-4071

Old license keys not readable with yambas 2.5.1

images/jira.apiomat.com/secure/viewavatar

Fixed

AOM-4061

Clear usedModules field after deleting parent module with deleteCompletely=false

images/jira.apiomat.com/secure/viewavatar

Fixed

AOM-4058

Copy shared/lib folder during post-install

images/jira.apiomat2.com/secure/viewavatar

Fixed

AOM-4055

Maven generates duplicate module jar with 1.0.0 version suffix

images/jira.apiomat.com/secure/viewavatar

Fixed

AOM-4054

CSV limit query not working if offset == 0

images/jira.apiomat.com/secure/viewavatar

Fixed

AOM-4051

CSV-Export throws RefKey exception on inherited references

images/jira.apiomat.com/secure/viewavatar

Fixed

AOM-4049

Queries not working in non-transient Hooks classes of old format

images/jira.apiomat.com/secure/viewavatar

Fixed

AOM-4044

SAP Module cannot load sapjco.jar twice

images/jira.apiomat.com/secure/viewavatar

Fixed

AOM-4013

[Webhosting] index.html will not be shown automatically in subdirectories

images/jira.apiomat.com/secure/viewavatar

Fixed

AOM-4009

[Swift] Support sending of custom header to yambas

images/jira.apiomat2.com/secure/viewavatar

Fixed

AOM-4008

Compile error when using a depending module with external libraries

images/jira.apiomat.com/secure/viewavatar

Fixed

AOM-4004

Update to JDK 1.8.0-131 and Apache Tomcat 8.5.15

images/jira.apiomat0.com/secure/viewavatar

Fixed

AOM-3999

Host parameter is null in DynamicWrapper.loadResource() method

images/jira.apiomat.com/secure/viewavatar

Fixed

AOM-3992

Old classes still cached by ObjectMapper

images/jira.apiomat.com/secure/viewavatar

Fixed

AOM-3983

Tomcat-user is not created if group exists during rpm/deb installer

images/jira.apiomat.com/secure/viewavatar

Fixed

AOM-3982

Git-Cluster Problems, Less Git.open and update jgit

images/jira.apiomat.com/secure/viewavatar

Fixed

AOM-3973

Classloaders not removed if module is using Distributed Maps

images/jira.apiomat.com/secure/viewavatar

Fixed

AOM-3965

Cronjob: Allow threading in cronjob

images/jira.apiomat1.com/secure/viewavatar

Fixed

AOM-3952

Disable Audit log by default

images/jira.apiomat2.com/secure/viewavatar

Fixed

AOM-3932

Users with no salt unusable after manual password update

images/jira.apiomat.com/secure/viewavatar

Fixed

AOM-3920

Objects in Hazelcast-Maps have "wrong" classloader when used across different modules

images/jira.apiomat.com/secure/viewavatar

Fixed

AOM-3907

[Backbone] SDK throws error on marionette emptyView

images/jira.apiomat.com/secure/viewavatar

Fixed

AOM-3903

Implement React Native SDK

images/jira.apiomat0.com/secure/viewavatar

Fixed

AOM-3897

Provide implementation of IModel for classes not known by module

images/jira.apiomat3.com/secure/viewavatar

Fixed

AOM-3896

[Xamarin] DeleteAllFromStorage() doesn't delete all data

images/jira.apiomat1.com/secure/viewavatar

Fixed

AOM-3892

[Xamarin] Offline Storage throws Exception sometimes

images/jira.apiomat.com/secure/viewavatar

Fixed

AOM-3890

Can't create instance of model of other module in auth method

images/jira.apiomat.com/secure/viewavatar

Fixed

AOM-3875

Cache the Customer internally

images/jira.apiomat1.com/secure/viewavatar

Fixed

AOM-3856

Show Module health status

images/jira.apiomat3.com/secure/viewavatar

Fixed

AOM-3849

[Android] Null handling in collections and map type

images/jira.apiomat.com/secure/viewavatar

Fixed

AOM-3840

Force customer auth for /yambas/rest/modules endpoint

images/jira.apiomat1.com/secure/viewavatar

Fixed

AOM-3828

User CREATE role configurable in Basics Module

images/jira.apiomat3.com/secure/viewavatar

Fixed

AOM-3822

Broken loading of references for transient classes in native modules

images/jira.apiomat.com/secure/viewavatar

Fixed

AOM-3819

Can't restart YAMBAS via windows service while webhosting is active

images/jira.apiomat.com/secure/viewavatar

Fixed

AOM-3802

Authorization too slow

images/jira.apiomat0.com/secure/viewavatar

Fixed

AOM-3801

Synchronize cleaning appcaches in cluster

images/jira.apiomat.com/secure/viewavatar

Fixed

AOM-3791

[Objective-C] Wrong default value for optional double attribute

images/jira.apiomat.com/secure/viewavatar

Fixed

AOM-3785

Reference query not working with global classes

images/jira.apiomat.com/secure/viewavatar

Fixed

AOM-3783

Restore module issues

images/jira.apiomat.com/secure/viewavatar

Fixed

AOM-3782

[ObjectiveC] Small date values are not handled correctly

images/jira.apiomat.com/secure/viewavatar

Fixed

AOM-3775

send() method in Push module not working

images/jira.apiomat.com/secure/viewavatar

Fixed

AOM-3771

Compile error when native module used a dynamic one

images/jira.apiomat.com/secure/viewavatar

Fixed

AOM-3765

Images and files with null value or empty byte array can be saved in SDKs and YAMBAS

images/jira.apiomat1.com/secure/viewavatar

Fixed

AOM-3758

Can't set date null in native module

images/jira.apiomat.com/secure/viewavatar

Fixed

AOM-3750

Exceptions in save() method are not populated to native module code

images/jira.apiomat.com/secure/viewavatar

Fixed

AOM-3734

Remove getter and setter for salt property from SDKs

images/jira.apiomat.com/secure/viewavatar

Fixed

AOM-3703

Native Module: NPE when creating dataModel in onConfigChanged()

images/jira.apiomat.com/secure/viewavatar

Fixed

AOM-3698

Do not generate invisible classes into SDKs

images/jira.apiomat1.com/secure/viewavatar

Fixed

AOM-3688

[Apidocs] JSON type information is missing in example for POST/PUT of model

images/jira.apiomat1.com/secure/viewavatar

Fixed

AOM-3687

Use full qualified class access in generated module code to prevent name clashes with own data models

images/jira.apiomat1.com/secure/viewavatar

Fixed

AOM-3685

Change module write role so that it's allowed to delete

images/jira.apiomat0.com/secure/viewavatar

Fixed

AOM-3642

Apidocs SDK Download delivers invalid zip file

images/jira.apiomat.com/secure/viewavatar

Fixed

AOM-3639

Implement grant role for apps

images/jira.apiomat3.com/secure/viewavatar

Fixed

AOM-3636

Native Module: Make customer available in NM-hooks

images/jira.apiomat3.com/secure/viewavatar

Fixed

AOM-3619

Uploaded byte[] for app config cannot be deleted

images/jira.apiomat.com/secure/viewavatar

Fixed

AOM-3607

Write Windows deinstallation documentation

images/jira.apiomat0.com/secure/viewavatar

Fixed

AOM-3542

Implement Password Policy for Accounts

images/jira.apiomat3.com/secure/viewavatar

Fixed

AOM-3518

A resource doesn't get assigned the object-specific roles of the object the resource gets attached to

images/jira.apiomat.com/secure/viewavatar

Fixed

AOM-3419

Add helper method to NM that checks a requesting user's password

images/jira.apiomat3.com/secure/viewavatar

Fixed

AOM-3327

Analytics SDK Update 16.12.3

images/jira.apiomat0.com/secure/viewavatar

Fixed

AOM-3216

It is not possible to delete previously defined roles.

images/jira.apiomat.com/secure/viewavatar

Fixed

AOM-3181

Add flag to module if it contains a documented REST API

images/jira.apiomat1.com/secure/viewavatar

Fixed

AOM-3042

Copy Models to other system should copy all MetaModels and dynamic and native Modules

images/jira.apiomat1.com/secure/viewavatar

Fixed

AOM-2930

Customizable installation path for deb

images/jira.apiomat2.com/secure/viewavatar

Fixed

AOM-2732

[Java+Android] Support sending of custom header to yambas

images/jira.apiomat2.com/secure/viewavatar

Fixed

AOM-2729

Support sending of custom header to yambas from SDKs

images/jira.apiomat1.com/secure/viewavatar

Fixed

AOM-2728

[Objective-C] Support sending of custom header to yambas

images/jira.apiomat2.com/secure/viewavatar

Fixed

AOM-2581

[Push] Support configuration of proxy server - GCM+APNS

images/jira.apiomat1.com/secure/viewavatar

Fixed

AOM-2362

[Java] image name is empty after upload

images/jira.apiomat2.com/secure/viewavatar

Fixed

AOM-2361

[Android] image name is empty after upload

images/jira.apiomat2.com/secure/viewavatar

Fixed

AOM-2334

Hooks for image and file uploading

images/jira.apiomat3.com/secure/viewavatar

Fixed

AOM-2015

Improve error message when yambas can't start because of locked MongoDB

images/jira.apiomat1.com/secure/viewavatar

Fixed

103 issues