Application Lifecycle: 1-Click Publish, LifeTime, Environments, and Versioning
Key Takeaways
- 1-Click Publish runs TrueChange checks, compiles the module, and deploys it to the current environment in one action.
- LifeTime is the cross-environment deployment console that moves versioned applications between Development, Test, and Production.
- Service Center is the per-environment administration console for error logs, Site Property overrides, and runtime configuration.
- Site Property values set in Service Center override Service Studio defaults and survive republishing the module.
- The OnBeforeRequest callback modifies outgoing REST requests to add headers or auth tokens before sending.
Quick Answer: 1-Click Publish in Service Studio compiles, runs TrueChange checks, and deploys a module to the current environment in one action. LifeTime is the OutSystems deployment management console that moves versioned applications across environments (Dev, Test, Prod). Service Center is per-environment administration for logs, Site Properties, and runtime config. Site Properties let you override values per environment without republishing.
1-Click Publish
1-Click Publish is the single-button deployment mechanism in Service Studio. When clicked, it runs TrueChange — OutSystems' static analysis engine that checks for errors, broken references, dependency violations, and type mismatches. If TrueChange finds errors, the publish is blocked. Warnings do not block publishing. After TrueChange passes, the module is compiled into deployable artifacts (server-side code and client-side JavaScript bundles) and deployed to the current environment, typically Development. A new version number is registered automatically.
| Step | What Happens | Blocks Publish? |
|---|---|---|
| TrueChange errors | Type mismatches, broken references, missing dependencies | Yes |
| TrueChange warnings | Best-practice suggestions, unused variables | No |
| Compile | Server and client artifact generation | Yes if compile fails |
| Deploy | Push artifacts to the environment server | — |
LifeTime and Environments
LifeTime is the OutSystems deployment management console — a separate web application that manages applications across all environments. A typical OutSystems installation has at least three environments:
| Environment | Purpose | Deployed From |
|---|---|---|
| Development | Developer iteration; 1-Click Publish target | Service Studio directly |
| Test / QA | Integration testing, user acceptance | LifeTime deployment from Development |
| Production | Live application for end users | LifeTime deployment from Test (approved) |
LifeTime lets you create deployment plans that bundle one or more applications with specific versions and deploy them together to a target environment. Deployments are versioned and tracked — you can see who deployed what, when, and from which source environment. LifeTime also supports rollbacks to previously deployed versions when a deployment goes wrong.
Service Center
Service Center is the per-environment administration console. Each environment has its own Service Center instance. Through Service Center you can view application lists and module versions installed on that environment, inspect error logs and general logs for debugging runtime issues, override Site Property values without republishing, monitor environment health (memory, CPU, database connections), and manage security and authentication settings.
What is the primary difference between 1-Click Publish and LifeTime deployment?
Site Properties
Site Properties are module-level configuration values that can be changed per environment without republishing. You define a Site Property in Service Studio with a default value, then override it in Service Center for each environment. Changing a Site Property in Service Center takes effect immediately for new requests — no republish needed.
| Site Property Example | Dev Value | Prod Value |
|---|---|---|
| ApiBaseUrl | https://dev-api.example.com | https://api.example.com |
| FeatureFlagNewCheckout | True | False |
| MaxRetries | 3 | 5 |
A critical rule: Service Center overrides take precedence over Service Studio defaults. Republishing a module does not reset Service Center overrides — the environment-specific value remains in effect until manually changed in Service Center.
Expose REST API
OutSystems lets you expose REST APIs from a module. You define a REST API in Service Studio, add methods mapped to Server Actions, and specify HTTP methods (GET, POST, PUT, DELETE) and paths. The exposed endpoints are available at a URL like /<module>/rest/<api>/<method>. Input parameters become query params or request body fields; output parameters become the JSON response. This is how other systems or other OutSystems apps consume your module's logic without a direct module reference.
Send Email
The Send Email capability lets a Server Action compose and send an email using an email definition — a template with placeholders bound to input parameters. SMTP configuration is at the platform level in Service Center. Send Email is a server-side operation — Client Actions cannot send emails directly; they call a Server Action that performs the send.
OnBeforeRequest Callback
When consuming a REST API, the OnBeforeRequest callback lets you modify the outgoing HTTP request before it is sent. You add headers (e.g., Authorization: Bearer <token>), change the request body, or add query parameters. The callback is a Server Action that receives the Request structure and returns a modified version. This is the standard way to add authentication or custom headers to outbound REST calls.
Authentication and Users
The Users application is the end-user management console where administrators create user accounts, assign roles, and manage authentication. OutSystems supports multiple authentication methods per environment:
| Method | Configured In |
|---|---|
| OutSystems built-in | Default, no setup needed |
| Active Directory | Service Center, Security tab |
| SAML / SSO | Service Center, Security tab |
| External (custom) | Via authentication plugin |
Users are matched by username or email and assigned roles per application. When SSO is configured, role mapping can be automated based on directory groups.
Exam Traps
A common exam scenario: you change a Site Property default in Service Studio and republish — does that override the Service Center value? No. Service Center overrides take precedence; republishing does not reset them. Another trap involves deploying from Dev directly to Prod, skipping Test — LifeTime allows this but it bypasses QA validation and is considered bad practice. The recommended path is Dev to Test to Prod. Finally, remember that 1-Click Publish deploys only to the current environment; moving to other environments requires LifeTime or a deployment plan.
You change a Site Property's default value in Service Studio and republish the module. The same property was overridden in Service Center for Production. What value is used in Production after the republish?
When consuming a REST API in OutSystems, which callback lets you modify the outgoing HTTP request before it is sent?
You've completed this section
Continue exploring other exams