Parameter Filters

You can use parameter filters to control which specific values are permitted when calling ARDI functions.

To specify a parameter filter, use the property name param_, plus the name of the parameter you want to filter. This should contain a regular expression used to match against the value sent by the user.

For example, let's say you want to open a URL so that an automated system can write a status to ARDI. This system is very simple and can't go through the normal ARDI API authentication flow.

{
   "paths": {
	"api/asset/set": "specialwriter"
   },
   "groups": {
       "specialwriter": [[{
	    "type": "open"
	  }]],
          [{
	    "type": "whitelist",
	    "list": ["127.0.0.1","localhost"],
	    "param_property": "28",
	    "elevate": "editor"
	  }],
    }
}

This security rule does two things.

1) It allows normal access (the 'open' option) to any user who could normally access it, and
2) For local traffic, it allows write access to the endpoint, but only if the 'property' parameter is 28.

Regular Expressions

You can use regular expressions to allow specific formats or multiple different values to be allowed.

You can also combine multiple filters.

{
   "paths": {
	"api/asset/set": "specialwriter"
   },
   "groups": {
       "specialwriter": [[{
	    "type": "open"
	  }]],
          [{
	    "type": "whitelist",
	    "list": ["127.0.0.1","localhost"],
	    "param_property": "(28|35)",
            "param_id": "(115|116)",
	    "elevate": "editor"
	  }],
    }
}

In the example above, the local machine can write to property 28 or 35, but only on asset 115 or 116.