Hello Everyone,
I am working on creating an enterprise-level application in OutSystems ODC. Previously, I worked extensively on OutSystems 11, where user management and registration were very clear using built-in features.
However, in ODC, I am facing confusion at the very beginning of the project.
Problem Statement
When I started working in ODC, I noticed that:
I cannot find Create/Update actions for the OutSystems User entity
It seems users can only be created from the ODC Admin Portal
This approach is not practical for enterprise applications where hundreds or thousands of users need to register daily
Later, I learned that:
I can create a custom AppUser table for business data
But if users are stored only in AppUser:
How will authentication and session management work?
How will login, roles, and access control be handled?
How does this compare to the OS11 approach?
At this point, I am quite confused because:
Enterprise applications must support self-registration
Admin users cannot manually create every user
Session management must be secure and scalable
My Key Questions
What is the recommended best practice in ODC for user registration?
How should System Users and AppUsers be designed together?
How is session management handled when business users are stored in a custom table?
What is the ODC equivalent approach to what we used in OutSystems 11?
I would really appreciate guidance on the correct enterprise-level architecture for:
User registration
Authentication
Session handling
Role-based access (Front Office / Back Office)
Thank you in advance for your support.
Best regards, Vijay
Hello Vijay,
Putting a stamp on what you said in the first points, the built-in authentication and authorization mechanism is different between O11 and ODC. O11, as you mentioned, uses its built-in mechanism. It has its own User table (entity) and also provides actions to create, update, and delete users, so the manipulation is straightforward there.
When ODC came, things became different. Why? Because ODC’s built-in authentication and authorization is different, as it is built on top of an Identity Provider under the hood, which you can see in the documentation:
For that reason, only self-registration is available if you want to add a new user to the User table.
The self-registration approach you are seeking, I think, cannot be done without third-party interference.
In O11, that would be possible. You could just create another user provider besides Users and make it the default login mechanism. All of that is handled on the O11 side, of course you can also use external provider.
When it comes to ODC, that option is not available, which is why I believe the only way to achieve this is by integrating with an external Identity Provider through the ODC Portal. That external provider would then handle concerns such as session management, authentication flows, user lifecycle management, and the other aspects you mentioned.
Hello,
Thank you for the detailed explanation. I understand that in ODC the built-in authentication and authorization work differently from O11, and that under the hood it relies on an Identity Provider, which is why direct user creation in the User table is not available.
However, I still have an important concern regarding enterprise-scale front-office applications.
If user creation is limited to:
Self-registration only, or Manual management through the ODC Portal, or
Integration with a third-party Identity Provider
then how are applications with hundreds of thousands or millions of front-office users expected to be handled?
In real-world scenarios:
Front-office users usually self-register in bulk
Admins cannot manage users manually through the ODC Portal
Not every project is allowed or ready to integrate an external Identity Provider due to cost, governance, or client constraints
Also this one: https://success.outsystems.com/documentation/outsystems_developer_cloud/user_management/configuring_authentication_with_external_identity_providers/
Hi @Vijay Malviya ,
You can do operations on the built-in users table using the User and Access Management API .
Here you have a forge component that demonstrates some use-cases: Users Management (ODC) .