Know where your app is running, straight from the platform.
v1.4.0
Environment Info gives your server-side logic the details the System module doesn't: the server mode, environment name and key, hostname, Front-End, the real client IP and the server's runtime. No configuration needed: add the dependency and call the actions.
Typical uses: turning features on or off per environment, building links in Timers, and richer logs and audits.
None of the actions has inputs. They never throw: when a value isn't available, they return an empty one.
IsProductionEnvironment
GetEnvironmentServerMode
GetEnvironmentServerModes
GetEnvironmentHostname
env-dev.outsystemsenterprise.com
GetEnvironmentName
GetEnvironmentKey
GetFrontEndName
GetClientIPAddress
GetRuntimeInfo
IsProductionEnvironment is False in Disaster Recovery too. To turn on debug features, check for Development instead of "not Production".
X-Forwarded-For
Changed in 1.4.0: on OutSystems Cloud, a forged X-Forwarded-For header used to be returned as the client IP. It's now ignored.
The environment key, hostname, Front-End name and runtime details help attackers map your infrastructure. Don't show them to anonymous users or return them from public APIs.
ServerMode: Id (Integer), Name (Text).
Id
Name
RuntimeInfo: CLRVersion (Text, the .NET Framework description), OSVersion (Text), MachineName (Text), ProcessorCount (Integer), Is64BitOS (Boolean), Is64BitProcess (Boolean).
CLRVersion
OSVersion
MachineName
ProcessorCount
Is64BitOS
Is64BitProcess
Environment Info reads values through OutSystems platform assemblies that aren't a documented public API. A platform update can change them without notice, so test your apps after upgrading the platform and report any issue on GitHub.
Source code, full documentation and changelog: github.com/promonteiro89/environment-info-o11
Runtime introspection & diagnostics for OutSystems applications.
v1.3.0
Environment Info is a utility extension for OutSystems that exposes server-side environment and runtime details to your application logic. It surfaces information the built-in System module doesn't readily provide — server mode, environment name/key, DNS hostname, Front-End identity, originating client IP, and a full server runtime snapshot — by interfacing directly with the OutSystems.HubEdition.RuntimePlatform and .NET runtime APIs.
OutSystems.HubEdition.RuntimePlatform
Typical uses: environment-aware feature flags, richer diagnostic logging, request auditing, and support tooling.
Quick reference — every action returns its data through output parameters only:
Inputs: none · Returns: IsProductionEnvironment (Boolean)
Performs a quick boolean check to determine whether the current environment is running in Production mode. Ideal for use directly in If widgets and conditional logic — guarding test-data seeding, verbose logging, or non-Production-only behavior. Returns True only for Production; False for every other mode.
Inputs: none · Returns: ServerMode (ServerMode structure)
ServerMode
Returns the current environment's server mode as a record containing its numeric Id and human-readable Name, read from the active AppInfo.
AppInfo
Inputs: none · Returns: ServerModes (List of ServerMode)
ServerModes
Returns the complete set of server modes supported by the platform. The list is generated by iterating the platform's internal ServerModes enumeration, so it stays accurate as the platform evolves. Useful for populating dropdowns or mapping a mode Id to its name.
Inputs: none · Returns: Hostname (Text)
Hostname
Returns the environment's configured default DNS hostname — for example env-dev.outsystemsenterprise.com — via EspaceProperties.DefaultDnsName. Resolves consistently even in non-HTTP contexts such as Timers and BPT processes, and returns an empty string when no DNS name is configured.
EspaceProperties.DefaultDnsName
Inputs: none · Returns: FrontEndName (Text)
FrontEndName
Returns the network name of the specific Front-End server processing the current request. Primarily used for diagnostics, technical logging, and auditing — it lets you pinpoint exactly which Front-End handled a request in multi-server, load-balanced environments.
Inputs: none · Returns: EnvironmentKey (Text)
EnvironmentKey
Returns the unique key (GUID) that identifies the current running environment.
Inputs: none · Returns: EnvironmentName (Text)
EnvironmentName
Returns the display name of the current running environment.
Inputs: none · Returns: IPAddress (Text)
IPAddress
Returns the IP address of the client that issued the current request. The action inspects the X-Forwarded-For header first — recovering the true client IP when traffic passes through a load balancer or reverse proxy — and falls back to the direct connection address otherwise. Returns an empty string outside of an HTTP request (Timers, BPT, async logic).
Security note: The X-Forwarded-For header is supplied by the client and can be spoofed. Use this value for diagnostics, logging, and auditing — not as the sole basis for security decisions such as IP allow-listing or authentication.
Inputs: none · Returns: RuntimeInfo (RuntimeInfo structure)
RuntimeInfo
Returns a snapshot of the server runtime in a single structure — framework version, operating system, machine name, logical processor count, and process/OS bitness. Designed for support and environment diagnostics, letting you capture the full runtime profile in one call.
.NET Framework 4.8.4250.0
The extension relies only on platform and standard .NET assemblies — there are no third-party packages to manage.
EspaceProperties
System.Web
HttpContext
System.Runtime.InteropServices.RuntimeInformation
FrameworkDescription