1. Home
  2. Technical Documentation
  3. Security – Secure.config

Security – Secure.config

Warewolf security settings can be configured using Warewolf studio. They are saved to a secure.config file in %progradmdata%\Warewolf\Server Settings. The Lightweight Execution Engine for Warewolf supports loading this secure.config.

A secure.config file must be in the Lightweight Execution Engine’s bin directory. If that file doesn’t exist when it is deployed into Azure, the engine returns HTTP 503 (deny-all) for every request. This is a safe-by-default behaviour.

Examples of a typical configuration:

Locks the Public group down server-wide, then grants public access only to the specific workflows that need it.

{
"SecretKey": "",
"AuthenticationOverrideWorkflow": { "ResourceID": "00000000-0000-0000-0000-000000000000", "Name": "" },
"WindowsGroupPermissions": [
{ "WindowsGroup": "Warewolf Administrators", "ResourceID": "00000000-0000-0000-0000-000000000000", "ResourceName": "", "IsServer": true, "View": true, "Execute": true, "Contribute": true, "DeployTo": true, "DeployFrom": true, "Administrator": true },
{ "WindowsGroup": "Public", "ResourceID": "00000000-0000-0000-0000-000000000000", "ResourceName": "", "IsServer": false, "View": false, "Execute": false, "Contribute": false, "DeployTo": false, "DeployFrom": false, "Administrator": false },
{ "WindowsGroup": "Public", "ResourceID": "11111111-1111-1111-1111-111111111111", "ResourceName": "Hello World", "IsServer": false, "View": true, "Execute": true, "Contribute": false, "DeployTo": false, "DeployFrom": false, "Administrator": false },
{ "WindowsGroup": "Warewolf Administrators", "ResourceID": "11111111-1111-1111-1111-111111111111", "ResourceName": "Hello World", "IsServer": false, "View": true, "Execute": true, "Contribute": true, "DeployTo": false, "DeployFrom": false, "Administrator": false }
]
}

Grants Secure access to authenticated groups (JWT or Microsoft Entra ID).

{
"SecretKey": "",
"AuthenticationOverrideWorkflow": { "ResourceID": "00000000-0000-0000-0000-000000000000", "Name": "" },
"WindowsGroupPermissions": [
{ "WindowsGroup": "Warewolf Administrators", "ResourceID": "00000000-0000-0000-0000-000000000000", "ResourceName": "", "IsServer": true, "View": true, "Execute": true, "Contribute": true, "DeployTo": true, "DeployFrom": true, "Administrator": true },
{ "WindowsGroup": "Public", "ResourceID": "00000000-0000-0000-0000-000000000000", "ResourceName": "", "IsServer": false, "View": false, "Execute": false, "Contribute": false, "DeployTo": false, "DeployFrom": false, "Administrator": false },
{ "WindowsGroup": "SalesAppUsers", "ResourceID": "22222222-2222-2222-2222-222222222222", "ResourceName": "CreateOrder", "IsServer": false, "View": true, "Execute": true, "Contribute": false, "DeployTo": false, "DeployFrom": false, "Administrator": false },
{ "WindowsGroup": "SalesAppUsers", "ResourceID": "33333333-3333-3333-3333-333333333333", "ResourceName": "GetOrderStatus", "IsServer": false, "View": true, "Execute": true, "Contribute": false, "DeployTo": false, "DeployFrom": false, "Administrator": false }
]
}

Applies least privilege per workflow — grants a specific group only Execute (plus the required View) on a single workflow, so callers can run that one API but reach nothing else.

{
"SecretKey": "",
"AuthenticationOverrideWorkflow": { "ResourceID": "00000000-0000-0000-0000-000000000000", "Name": "" },
"WindowsGroupPermissions": [
{ "WindowsGroup": "Warewolf Administrators", "ResourceID": "00000000-0000-0000-0000-000000000000", "ResourceName": "", "IsServer": true, "View": true, "Execute": true, "Contribute": true, "DeployTo": true, "DeployFrom": true, "Administrator": true },
{ "WindowsGroup": "Public", "ResourceID": "00000000-0000-0000-0000-000000000000", "ResourceName": "", "IsServer": false, "View": false, "Execute": false, "Contribute": false, "DeployTo": false, "DeployFrom": false, "Administrator": false },
{ "WindowsGroup": "ReportRunners", "ResourceID": "44444444-4444-4444-4444-444444444444", "ResourceName": "RunDailyReport", "IsServer": false, "View": true, "Execute": true, "Contribute": false, "DeployTo": false, "DeployFrom": false, "Administrator": false }
]
}

Reserves server-wide administrative access for a trusted group (for example
Warewolf Administrators) while leaving the Public group denied, so internal and
operational workflows are never publicly reachable.

{
"SecretKey": "",
"AuthenticationOverrideWorkflow": { "ResourceID": "00000000-0000-0000-0000-000000000000", "Name": "" },
"WindowsGroupPermissions": [
{ "WindowsGroup": "Warewolf Administrators", "ResourceID": "00000000-0000-0000-0000-000000000000", "ResourceName": "", "IsServer": true, "View": true, "Execute": true, "Contribute": true, "DeployTo": true, "DeployFrom": true, "Administrator": true },
{ "WindowsGroup": "Public", "ResourceID": "00000000-0000-0000-0000-000000000000", "ResourceName": "", "IsServer": true, "View": false, "Execute": false, "Contribute": false, "DeployTo": false, "DeployFrom": false, "Administrator": false }
]
}

 
You can bypass the check by setting BYPASS_SECURE_CONFIG=true. Do not set this — or WAREWOLF_SUPER_ADMIN_ENABLED — in production. These environment variables are for local development only!

Troubleshooting

Symptom Likely cause Fix
Every request returns HTTP 503 secure.config not in the engine’s bin directory Add a valid secure.config (or set BYPASS_SECURE_CONFIG=true for dev only).
Secured route returns 401 Microsoft Entra config. Confirm WAREWOLF_ENTRA_AUDIENCE / WAREWOLF_ENTRA_TENANT_ID match your token.
Secured route returns 403 or 500 Permission denied. Check your secure.config and compare it to your roles in Entra. If using a JWT token, look for your username in the secure.config.

 

FacebookTwitterLinkedInGoogle+Email
Updated on June 8, 2026

Was this article helpful?

Related Articles

Enjoying Warewolf?

Write a review on G2 Crowd
Stars