CentralCSP
APIInventory Rules

Update an inventory rule

Changes a rule or turns it off with enabled: false. Only the fields you send are changed, and the inventory is refreshed afterwards. Scripts the rule already decided keep that decision until their hash changes or someone reviews them, so changing action does not revisit them.

Requires the manager role on the website and the compliance plan feature.

PATCH
/v1/workspaces/{workspaceId}/websites/{websiteId}/compliance/rules/{ruleId}

Authorization

headerAuthorizationBearer <JWT>

An OpenID Connect access token from signing in to CentralCSP, acting as the signed-in user.

Path Parameters

workspaceId*string

The workspace's id.

websiteId*string

The website's id.

ruleId*string

The inventory rule's id.

Request Body

application/json
  1. body

Only the fields you send are changed.

name?string

New display name.

Length1 <= length <= 255
urlPattern?string

New pattern to match script URLs against.

Length1 <= length <= 1024
patternType?PatternType

How urlPattern is read. glob uses * wildcards and is the default. regex is a regular expression; one with too many unbounded repetitions is rejected.

Value in"glob""regex"
action?RuleAction

What happens to a script the rule matches. justify (the default) records it as reviewed and allowed. reject records it as unauthorized, a finding that stays in the inventory until the script stops loading. exclude takes it out of PCI scope, the compliance figures and script alerts; use it only for scripts a visitor's own software injects, such as a browser extension. No rule overrides a decision a person made.

Value in"justify""reject""exclude"
justification?string

New text recorded on matching scripts.

Length1 <= length <= 4096
tagIds?array<string>

Tags to apply to every script this rule matches.

Itemsitems <= 50
enabled?boolean

Turn the rule on or off.

sortOrder?|

Rules are tried from the lowest value up, and the first match wins. Put the most specific rules first.

Range0 <= value

Response Body

A rule that decides matching scripts automatically: justifying them, rejecting them, or excluding them from PCI scope.

application/json
  1. response
id*string
workspaceId*string
websiteId*string
name*string

Display name.

urlPattern*string

Pattern matched against the script URL.

patternType*PatternType

How urlPattern is read. glob uses * wildcards and is the default. regex is a regular expression; one with too many unbounded repetitions is rejected.

Value in"glob""regex"
action*RuleAction

What happens to a script the rule matches. justify (the default) records it as reviewed and allowed. reject records it as unauthorized, a finding that stays in the inventory until the script stops loading. exclude takes it out of PCI scope, the compliance figures and script alerts; use it only for scripts a visitor's own software injects, such as a browser extension. No rule overrides a decision a person made.

Value in"justify""reject""exclude"
justification*string

Applied to every script this rule matches: the justification on a justify rule, the reason on a reject or exclude one.

tagIds*array<string>

Tags applied to matching scripts.

enabled*boolean

A disabled rule matches nothing.

sortOrder*|

Rules are tried from the lowest value up, and the first match wins. Put the most specific rules first.

Range0 <= value
createdAt*string
Formatdate-time
updatedAt*string
Formatdate-time
Example Request
curl -X PATCH 'https://api.centralcsp.com/v1/workspaces/01936b7a-6f2e-7c31-9a4d-2f8e1c5b7d90/websites/01936b7a-6f2e-7c31-9a4d-2f8e1c5b7d90/compliance/rules/01936b7a-6f2e-7c31-9a4d-2f8e1c5b7d90' \  -H 'Content-Type: application/json' \  -d '{}'
Example Response
{  "id": "string",  "workspaceId": "string",  "websiteId": "string",  "name": "Stripe",  "urlPattern": "https://*.stripe.com/*",  "patternType": "glob",  "action": "justify",  "justification": "string",  "tagIds": [    "string"  ],  "enabled": true,  "sortOrder": 0,  "createdAt": "2019-08-24T14:15:22Z",  "updatedAt": "2019-08-24T14:15:22Z"}