205
Views
4
Comments
Solved
Where to put Roles in an Application Architecture?
Question

I know this is a duplicate and that there exists an article, but I'm still asking because everyone gives a different answer. Some say it's always in the Foundation layer, some say it should always be in the Core layer, and still some say that you should put it in the End-User layer if it's only used on a single screen. The article says to put all the different roles in a separate module, but on a previous exam this was not an option. In what scenarios should the Roles be defined in which layer, and why?

2025-09-21 06-51-05
Mohd Anees Mansoori
Solution

Hello,

I think the right answer to this question may depends on what application you are creating,

suppose there is an 'Admin' role who has access to all the applications you have created in your environment such as DirectoryApp, BookingApp, MovieApp then this 'Admin' role should be part of the module which is placed in the foundation layer.

If you are creating roles specific to a business need like 'Manager' and 'Clerk' for BookingApp, then these roles should be kept in the core layer module.

Hope this example help.

Also refer to the medium article written by Justin James.

https://jmjames.medium.com/where-should-i-put-my-applications-roles-in-outsystems-a971bf51e55f

Regards,

Anees

UserImage.jpg
Nils Kimman

Hi, 

Thanks for your answer, this is what I concluded also. The medium article you linked is the one I described in my original post, and is uninformative, misleading, and the main reason I asked this question

2024-03-22 09-17-23
Chandra Vikas Sharma

Hi nils,

If your roles are not specific to a certain screen and are reusable across multiple screens, then add them to a foundation module   as per my suggestion it should be foundation layer.

thanks

CV 

2023-02-09 12-36-42
Damian Fonville

In our larger project, we have a module for each domain. For example, DOC_DomainSecurity_FS holds all roles and business logic for these roles. 

2025-09-21 06-51-05
Mohd Anees Mansoori
Solution

Hello,

I think the right answer to this question may depends on what application you are creating,

suppose there is an 'Admin' role who has access to all the applications you have created in your environment such as DirectoryApp, BookingApp, MovieApp then this 'Admin' role should be part of the module which is placed in the foundation layer.

If you are creating roles specific to a business need like 'Manager' and 'Clerk' for BookingApp, then these roles should be kept in the core layer module.

Hope this example help.

Also refer to the medium article written by Justin James.

https://jmjames.medium.com/where-should-i-put-my-applications-roles-in-outsystems-a971bf51e55f

Regards,

Anees

UserImage.jpg
Nils Kimman

Hi, 

Thanks for your answer, this is what I concluded also. The medium article you linked is the one I described in my original post, and is uninformative, misleading, and the main reason I asked this question

Community GuidelinesBe kind and respectful, give credit to the original source of content, and search for duplicates before posting.