How is your experience with the OutSystems Community?
18
Views
2
Comments
Solved
Guidance on Integrating OutSystems Reactive App with Third-Party Database for POC
Application Type
Reactive

Hi All,
Hope you are doing well.

 I am working on a POC using an OutSystems Reactive Application and would appreciate some guidance. I have a screen where users can enter personal details. Upon clicking Save, I want the data to be stored in a third-party database instead of (or in addition to) the OutSystems built-in database entities. 

Similarly, any update or delete operations performed in the app should also be reflected in the external database. I have the following questions: Which free trial database options (such as SQL Server, MySQL, PostgreSQL,Free cloud storage etc.) would you recommend for demo/POC purposes? 

What are the best practices to integrate OutSystems with an external database to perform CRUD operations?
 What is the recommended approach for integration — should I use REST APIs, external database connections, or integration services? 

From a security standpoint, how can I securely integrate OutSystems with the external database?
 How should credentials and connection strings be managed? 

What are the recommended practices for authentication, encryption, and secure data transfer? 

How can I ensure that update/delete operations are safely handled without exposing the external database? 

Any guidance, documentation references, or sample implementations would be greatly appreciated.

 Thank you in advance! 

2026-06-20 17-43-43
Sherif El-Habibi
Champion
Solution

Hello @Ajit Kurane,

First, I am not entirely sure whether there are free or open-source cloud databases that would fit your exact testing scenario. Most managed cloud database solutions, such as those provided by Amazon or Microsoft Azure, are paid services, although some may offer limited free tiers.

For the recommended approach in OutSystems, you would typically use either Integration Studio or Integration Builder to connect to an external database.

Of course, you can also use APIs for this integration, but that usually requires additional effort. For example, you may need separate endpoints for Create, Update, Delete, and Read operations, along with handling authentication, credentials, error handling, and maintenance for each one.

That is why I think the integration approach is generally easier in this scenario, as it packages all of these operations together and allows you to work with the external data source in a more streamlined way. It also reduces the amount of custom integration logic you need to build and maintain.

You can refer to the official documentation here:

Integrate with an External Database

Regarding credentials and connection strings, their management is primarily the responsibility of the external database provider. From the OutSystems side, your role is mainly to establish the connection. The security of the database infrastructure itself is handled by the external source.

What you can do on your side is add additional security layers before triggering any CRUD operation against the external entities. For example:

  • Token validation
  • Credential verification
  • Role and permission checks
  • Request validation

As for ensuring that update and delete operations are safely handled without directly exposing the external database, the approach is similar to working with local entities. Instead of exposing the database operations directly, encapsulate the logic inside Server Actions and expose only the required functionality through Service Actions that are consumed by the UI.

It is also recommended to follow a layered architecture approach, such as: 

UI → SL → BL → CS → External Database

2026-06-05 12-38-17
Eduardo Jauch
Solution

Hello @Ajit Kurane
 
Sherif gave you a lot to think about.

I will assume that the security questions you made, related to the connection with the Database, are important for the POC itself (you wants to demonstrate that it is possible and secure, maybe?).

If that's true, you should chose the database based on the needs of your client.
Not only that. Where will the database be? Only when you know that you can think about how to secure connect to it. Will it be through a VPN? Will you expose the database over the Net? Will the database be in the same infrastructure than the application? Are you required to create a Private Gateway?

I am assuming you don't want to expose the database as a service through REST endpoints, but sometimes that's what the client needs.

Whatever you chose, the ideal way to integrate is to use the Integration Builder and create a connection for your database. After that, you can import the entities (that represent the tables/views in the external database) and just use them in your application. An entity is an entity, does not matter if they are connected to the OutSystems database or an external database.

Using APIs will require you to consume the APIs and you will lose the ability to interact directly with the database through entities.

There are lot's of material on how to do that (both for O11 and ODC) on the OutSystems Documentation.

Cheers!

2026-06-20 17-43-43
Sherif El-Habibi
Champion
Solution

Hello @Ajit Kurane,

First, I am not entirely sure whether there are free or open-source cloud databases that would fit your exact testing scenario. Most managed cloud database solutions, such as those provided by Amazon or Microsoft Azure, are paid services, although some may offer limited free tiers.

For the recommended approach in OutSystems, you would typically use either Integration Studio or Integration Builder to connect to an external database.

Of course, you can also use APIs for this integration, but that usually requires additional effort. For example, you may need separate endpoints for Create, Update, Delete, and Read operations, along with handling authentication, credentials, error handling, and maintenance for each one.

That is why I think the integration approach is generally easier in this scenario, as it packages all of these operations together and allows you to work with the external data source in a more streamlined way. It also reduces the amount of custom integration logic you need to build and maintain.

You can refer to the official documentation here:

Integrate with an External Database

Regarding credentials and connection strings, their management is primarily the responsibility of the external database provider. From the OutSystems side, your role is mainly to establish the connection. The security of the database infrastructure itself is handled by the external source.

What you can do on your side is add additional security layers before triggering any CRUD operation against the external entities. For example:

  • Token validation
  • Credential verification
  • Role and permission checks
  • Request validation

As for ensuring that update and delete operations are safely handled without directly exposing the external database, the approach is similar to working with local entities. Instead of exposing the database operations directly, encapsulate the logic inside Server Actions and expose only the required functionality through Service Actions that are consumed by the UI.

It is also recommended to follow a layered architecture approach, such as: 

UI → SL → BL → CS → External Database

2026-06-05 12-38-17
Eduardo Jauch
Solution

Hello @Ajit Kurane
 
Sherif gave you a lot to think about.

I will assume that the security questions you made, related to the connection with the Database, are important for the POC itself (you wants to demonstrate that it is possible and secure, maybe?).

If that's true, you should chose the database based on the needs of your client.
Not only that. Where will the database be? Only when you know that you can think about how to secure connect to it. Will it be through a VPN? Will you expose the database over the Net? Will the database be in the same infrastructure than the application? Are you required to create a Private Gateway?

I am assuming you don't want to expose the database as a service through REST endpoints, but sometimes that's what the client needs.

Whatever you chose, the ideal way to integrate is to use the Integration Builder and create a connection for your database. After that, you can import the entities (that represent the tables/views in the external database) and just use them in your application. An entity is an entity, does not matter if they are connected to the OutSystems database or an external database.

Using APIs will require you to consume the APIs and you will lose the ability to interact directly with the database through entities.

There are lot's of material on how to do that (both for O11 and ODC) on the OutSystems Documentation.

Cheers!

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