Hi everyone,
We have recently integrated OutSystems CI/CD into our Azure DevOps pipelines using the Python-based approach and LifeTime APIs. However, we are facing a recurring bottleneck when deploying modules that do not yet exist in the target environment.
The Issue: Every time a new module is deployed, the pipeline pauses because manual intervention is required in LifeTime to select the appropriate Database Catalog. Since we have multiple catalogs (e.g., Main and Secondary), the deployment doesn't "guess" the destination, blocking the pipeline and impacting our release frequency.
We already attempted to associate the catalog to the module directly in Service Center, but LifeTime still prompts for manual selection during the deployment plan creation.
Our Goal: We want to force the "Main" catalog automatically via the pipeline script, ensuring a zero-touch deployment even for new modules.
Questions:
Thanks in advance for the help.
Hi @Pedro Pereira
The answer to all your three questions is NO.
Answer 1: The LifeTime APIs:
Note: The catalog decision is outside the API contract and must already exist in the target environment.
Answer 2: Lifetime:
Note: Every new module must be explicitly mapped once per environment.
Answer 3: Catalog bindings are:
Note: LifeTime intentionally avoids copying this configuration to prevent accidental cross‑catalog deployments.
Solution: Unfortunately, no solutions exist at present, but workarounds are there:
Workaround 1: Pre-bind catalog in target environment.
Before a module is ever deployed via CI/CD:
From that point onward, LifeTime no longer prompts and CI/CD becomes fully automated.
Workaround 2: Seed deployment
Pattern:
Think of it as: Environment provisioning vs application delivery for a module.
Hope this helps.
Cheers,
Saugat
A better approach could be to use architectural constraint:
If possible:
This may completely eliminate the issue. You may need to test this out.
I personally wasn't involved in this, but at one of my clients, i know they had a robot log in to lifetime and do the assigning of the catalog when needed for new modules.
That's a pretty bad workaround for something OutSystems could add so easily with api's
I agree, but until Outsystems does what is required!!
Also just checked that an idea is already in place for this:
Idea - During deployment of new module to an environment also prompt for catalog | OutSystems
Cheers.