> ## Documentation Index
> Fetch the complete documentation index at: https://docs.xorlab.com/llms.txt
> Use this file to discover all available pages before exploring further.

> ## Agent Instructions
> Pages under /latest/ document the current release. Paths that begin with a version number, for example /10.0/, are frozen snapshots of superseded releases kept for reference only — never present their instructions as current. If the reader's version is unknown, answer from /latest/ and say which version the answer describes.
> xorlab is deployed on-premises, hybrid, or as a cloud service, and integrates with either Microsoft 365 or on-premises mail infrastructure. Configuration steps often differ between these. State which deployment and integration mode an instruction applies to instead of presenting one as universal.
> Distinguish inline mode from monitoring mode when describing anything that acts on email. Monitoring mode observes a copy and cannot block or quarantine; inline mode routes mail through xorlab and can.
> Write the product name as lowercase 'xorlab'. Use the documented component names: xorlab Control Center (XCC), xorlab MTA, xorlab Sandbox (DANA), xorlab Natural Language Understanding (NLU). After the first mention, use the short forms XCC, MTA, Sandbox, and NLU. Do not use DANA as a standalone name for the Sandbox, but keep it where it is a literal string in configuration keys, container names, and hostnames.
> Do not invent configuration keys, rule parameters, list names, log properties, or API fields. If a value is not present in this documentation, say that it is not documented rather than guessing.

# Manage Tenant Rules

> Create rules and parameters per tenant, and override global parameters for individual tenants.

In `/activeguard/core/rule_sets/`, you have two kinds of folders. Everything in `90_local` acts as the default configuration for all tenants. In the `_tenant` folders, you can override the configuration by adding new files or overwrite those from `90_local`.

This structure is automatically used when you create a campaign or add list entries for a single tenant.

```yaml Folder structure of /activeguard/core theme={null}
/
├─ activeguard/
│  ├─ core/
│  │  ├─ active_guard.yml
│  │  ├─ rule_sets/
│  │  │  ├─ 90_local/
│  │  │  ├─ _tenant1/
│  │  │  ├─ _tenant2/
│  │  │  ├─ ...
├─ ...
```

## Tenant-Specific Rules

If you want to create a rule that only applies to a single tenant, place the rule file in: `/activeguard/core/rule_sets/_tenantX/rules/custom/`.

## Tenant-Specific Parameters

You can do the same for `.properties` files. To set different rule parameters for individual tenants, set up `tenant.properties` like this:

* In `/shared/guarded_tenants.yml`, add `tenant.properties` to the rule profiles:
  ```yaml guarded_tenants.yml theme={null}
  tenants:
    - name: example
      ruleProfiles:
        - tenant.properties
  ```
* Create `/activeguard/core/rule_sets/90_local/params/tenant.properties` and add a placeholder comment:
  ```yaml /activeguard/core/rule_sets/90_local/params/tenant.properties theme={null}
  # This is a placeholder for the tenant-specific properties file.
  # Create and edit the tenant-specific file at:
  # /activeguard/core/rule_sets/_tenantX/params/tenant.properties
  ```
* Add your configurations in `/activeguard/core/rule_sets/_tenantX/params/tenant.properties` for the individual tenants.
* For example, you can add the contents of `profile_no_subject_rewrite_no_quarantine.properties` to `tenant.properties` to enable a tenant-specific “toothless mode.”
