sapl
SAPL system information functions.
Runtime environment introspection for authorization policies. Query application version, JDK details, and operating system information to make platform-aware access control decisions.
The library provides a single function that returns system metadata cached at class initialization. Use this to enforce runtime requirements, restrict operations to specific platforms, or capture environment context in audit trails.
sapl.info()
info(): Returns system information including application version, git details, JDK/JRE, and operating system information.
The returned object contains the following properties:
saplVersion: Version of the SAPL EnginegitCommitId: Abbreviated git commit hashgitBranch: Git branch namegitBuildTime: Build timestampjdkVersion: JDK version used for compilationjavaVersion: Current JRE versionjavaVendor: Java vendor nameosName: Operating system nameosVersion: Operating system versionosArch: Operating system architecture
If properties cannot be loaded from the classpath, fields will contain “unknown” as a fallback value.
Use this function to validate system requirements, log runtime environment details for audit trails, or conditionally enable features based on platform capabilities.
Example - Enforce Minimum JDK Version:
policy "require_jdk21"
permit action == "system:deploy"
where
var info = sapl.info();
info.jdkVersion >= "21";
Example - Platform-Specific Access Control:
policy "linux_only_operations"
permit action == "admin:configure-network"
where
var info = sapl.info();
info.osName =~ "Linux";
Example - Audit Logging with Environment Context:
policy "audit_with_environment"
permit action == "data:access"
obligation
{
"type": "log-access",
"environment": sapl.info()
}