Lists let you define named sets of values and reference them with the {{list.<key>}} syntax, avoiding duplicated IPs, paths, and other values across rules. Lists can be defined in two places:
In the tenant config (tenant.json) — scoped to that tenant
In a shared common config (common.json) — available to all tenants
If a list with the same key exists in both files, the tenant-level list takes precedence.
Use {{list.<key>}} anywhere a match condition or security exception accepts values. The syntax is the same regardless of whether the list is defined in tenant.json or common.json.
List references and inline values can be mixed in the same array — the list entries are expanded and merged with the inline values at runtime. Standalone references (e.g., "v4_ips": "{{list.corporate_ips}}") also work when no inline values are needed.
The common config file must be named common.json and hosted alongside your tenant configs. To enable it, set the Property Manager variable PMUSER_TENANT_COMMON to "true". When enabled, the EdgeWorker fetches common.json alongside the tenant config, making shared lists available for {{list.*}} references. If both files define a list with the same name, the tenant-level list takes precedence — common lists are never merged with tenant lists.
When a tenant defines a list with the same key as one in common.json, the tenant-level list takes precedence. This lets individual tenants customize shared values without affecting other tenants.