Terminal

You can use terminal to make rule-processing terminate after matching the rule.

This is mainly used to allow access to a specific resource that would normally be restricted based on a less specific one.

This is because the system processes rules until one is failed.

For example…

{
   "paths": {
        "/api/": "deny",
        "/api/connect": "allow"
    },
    "groups": {
         "allow": { "type": "open", "terminal": 1 },
         "deny": { "type": "block" }
    }
}

Without terminal, the deny rules from the /api/ endpoint will always run, preventing access.

But by making the 'allow' rule terminal, processing stops the moment the rule is matched. This means that users have access to the 'connect' function even though all other /api endpoints are blocked.