What differentiates a Viewer user from regular users?

This is not (necessarily) about Apps, but about the underlying ONE DATA User Management.

When creating a ONE DATA user via the API, the field isViewer is mandatory. The API documentation also says about modules (when creating a user via API):

modules : (array of common.ModuleType)
The default is ‘APPS_VIEWER’ for viewer users and ‘USE_CASES’ for other users.

Is this the only effect that "isViewer": true has (the default module), or are there other implications as well?

1 Like

To my knowledge the isViewer flag dates back to times where reports in OD Core were our only way to visualize data to a consuming end-user.

Since OD Core is complex and actually not meant to be navigated by business users, we came up with the viewer idea where a viewer user can only consume reports. Projects were able to define viewer landing pages as far as I remember. Viewers then just navigated to the project and got the report selected as landing page as their entire view upon ONE DATA and removing any navigational elements towards other parts of the Core system.

With the inception of Apps, the initial viewer concept for navigation (or rather the hiding of navigation) got obsolete. How and if the flag was repurposed, I cannot say. I could imagine that in a transition step from Reports to Apps - also introducing the module nature into the mix - migration/mapping of viewers into APPS_VIEWER modules were/are conducted. That’s just an educated guess based on the API description, though.

Bottomline: If you are creating a user that should interact with Core, set it false, if you create an “App consumer” that should not be bothered with any other modules, set it to true.

Thanks @Flogge. @thommy.bachmaier do you maybe know something more about the current usage of the flag?

As @Flogge already mentioned the separation between viewer- and normal users was done for the old ONE DATA reports. Apps does not use that flag, but relies on the modules of a user instead. It would thus be possible to use Apps with a viewer user having the respective modules. But in general it is recommended to create a normal user and assign the modules as required. If a user has the APP_VIEWER module he/she will be able to use apps in the App Viewer (given the necessary access rights for the app). If the user has the module APP_BUILDER it will also be possible to access the App Builder and create/edit apps.

Thank you @matthias.fisch. The reason I am asking is mostly because there seems to be an issue with the module selection when creating a user (https://jira.intranet.onelogic.de/browse/QA-2810), and setting isViewer to true might help us to temporarily circumvent this issue. I just wanted to make sure there are no unintended side effects when doing so.