Rudder exposes a REST API, enabling the user to interact with Rudder without using the webapp, for example in scripts or cronjobs.
Each time the API is extended with new features (new functions, new parameters, new responses, ...), it will be assigned a new version number. This will allow you
to keep your existing scripts (based on previous behavior). Versions will always be integers (no 2.1 or 3.3, just 2, 3, 4, ...) or latest
.
You can change the version of the API used by setting it either within the url or in a header:
/api/version/function
.# Version 10
curl -X GET -H "X-API-Token: yourToken" https://rudder.example.com/rudder/api/10/rules
# Latest
curl -X GET -H "X-API-Token: yourToken" https://rudder.example.com/rudder/api/latest/rules
# Wrong (not an integer) => 404 not found
curl -X GET -H "X-API-Token: yourToken" https://rudder.example.com/rudder/api/3.14/rules
latest
.# Version 10
curl -X GET -H "X-API-Token: yourToken" -H "X-API-Version: 10" https://rudder.example.com/rudder/api/rules
# Wrong => Error response indicating which versions are available
curl -X GET -H "X-API-Token: yourToken" -H "X-API-Version: 3.14" https://rudder.example.com/rudder/api/rules
In the future, we may declare some versions as deprecated, in order to remove them in a later version of Rudder, but we will never remove any versions without warning, or without a safe period of time to allow migration from previous versions.
Version | Rudder versions it appeared in | Description |
---|---|---|
1 | Never released (for internal use only) | Experimental version |
2 to 10 (deprecated) | 4.3 and before | These versions provided the core set of API features for rules, directives, nodes global parameters, change requests and compliance, rudder settings and system API |
11 | 5.0 | New system API (replacing old localhost v1 api): status, maintenance operations and server behavior |
12 | 6.0 and 6.1 | Node key management |
13 | 6.2 |
|
14 | 7.0 |
|
15 | 7.1 |
|
16 | 7.2 |
|
All responses from the API are in the JSON format.
{
"action": "The name of the called function",
"id": "The ID of the element you want, if relevant",
"result": "The result of your action: success or error",
"data": "Only present if this is a success and depends on the function, it's usually a JSON object",
"errorDetails": "Only present if this is an error, it contains the error message"
}
Success responses are sent with the 200 HTTP (Success) code
Error responses are sent with a HTTP error code (mostly 5xx...)
Rudder's REST API is based on the usage of HTTP methods. We use them to indicate what action will be done by the request. Currently, we use four of them:
GET: search or retrieve information (get rule details, get a group, ...)
PUT: add new objects (create a directive, clone a Rule, ...)
DELETE: remove objects (delete a node, delete a parameter, ...)
POST: update existing objects (update a directive, reload a group, ...)
Some parameters are available for almost all API functions. They will be described in this section. They must be part of the query and can't be submitted in a JSON form.
Field | Type | Description |
---|---|---|
prettify | boolean optional |
Determine if the answer should be prettified (human friendly) or not. We recommend using this for debugging purposes, but not for general script usage as this does add some unnecessary load on the server side.
Default value: |
Field | Type | Description |
---|---|---|
reason | string optional or required |
Set a message to explain the change. If you set the reason messages to be mandatory in the web interface, failing to supply this value will lead to an error.
Default value: |
changeRequestName | string optional |
Set the change request name, is used only if workflows are enabled. The default value depends on the function called
Default value: |
changeRequestDescription | string optional |
Set the change request description, is used only if workflows are enabled.
Default value: |
Parameters to the API can be sent:
As part of the URL for resource identification
As data for POST/PUT requests
Directly in JSON format
As request arguments
Parameters in URLs are used to indicate which resource you want to interact with. The function will not work if this resource is missing.
# Get the Rule of ID "id"
curl -H "X-API-Token: yourToken" https://rudder.example.com/rudder/api/latest/rules/id
CAUTION: To avoid surprising behavior, do not put a '/' at the end of an URL: it would be interpreted as '/[empty string parameter]' and redirected to '/index', likely not what you wanted to do.
JSON format is the preferred way to interact with Rudder API for creating or updating resources.
You'll also have to set the Content-Type header to application/json (without it the JSON content would be ignored).
In a curl
POST
request, that header can be provided with the -H
parameter:
curl -X POST -H "Content-Type: application/json" ...
The supplied file must contain a valid JSON: strings need quotes, booleans and integers don't, etc.
The (human readable) format is:
{
"key1": "value1",
"key2": false,
"key3": 42
}
Here is an example with inlined data:
# Update the Rule 'id' with a new name, disabled, and setting it one directive
curl -X POST -H "X-API-Token: yourToken" -H "Content-Type: application/json"
https://rudder.example.com/rudder/api/rules/latest/{id}
-d '{ "displayName": "new name", "enabled": false, "directives": "directiveId"}'
You can also pass a supply the JSON in a file:
# Update the Rule 'id' with a new name, disabled, and setting it one directive
curl -X POST -H "X-API-Token: yourToken" -H "Content-Type: application/json" https://rudder.example.com/rudder/api/rules/latest/{id} -d @jsonParam
Note that the general parameters view in the previous chapter cannot be passed in a JSON, and you will need to pass them a URL parameters if you want them to be taken into account (you can't mix JSON and request parameters):
# Update the Rule 'id' with a new name, disabled, and setting it one directive with reason message "Reason used"
curl -X POST -H "X-API-Token: yourToken" -H "Content-Type: application/json" "https://rudder.example.com/rudder/api/rules/latest/{id}?reason=Reason used" -d @jsonParam -d "reason=Reason ignored"
In some cases, when you have little, simple data to update, JSON can feel bloated. In such cases, you can use request parameters. You will need to pass one parameter for each data you want to change.
Parameters follow the following schema:
key=value
You can pass parameters by two means:
# Update the Rule 'id' with a new name, disabled, and setting it one directive
curl -X POST -H "X-API-Token: yourToken" https://rudder.example.com/rudder/api/rules/latest/{id}?"displayName=my new name"&"enabled=false"&"directives=aDirectiveId"
# Update the Rule 'id' with a new name, disabled, and setting it one directive (in file directive-info.json)
curl -X POST -H "X-API-Token: yourToken"
https://rudder.example.com/rudder/api/rules/latest/{id} -d "displayName=my new name" -d "enabled=false" -d @directive-info.json
List all endpoints and their version
result required | string Enum: "success" "error" Result of the request |
action required | string Value: "apiGeneralInformations" The id of the action |
required | object |
curl --header "X-API-Token: yourToken" --request GET https://rudder.example.com/rudder/api/latest/info
{- "result": "success",
- "action": "apiGeneralInformations",
- "data": {
- "documentation": "string",
- "availableVersions": [
- {
- "latest": 12,
- "all": [
- {
- "latest": 12,
- "all": [
- {
- "version": 12,
- "status": "maintained"
}
]
}
]
}
], - "endpoints": [
- [
- "{ 'listAcceptedNodes': 'List all accepted nodes with configurable details level', 'GET': '[8,9,10,11,12,13] /nodes' }"
]
]
}
}
Get the description and the list of supported version for one API endpoint
endpointName required | string Example: listAcceptedNodes Name of the endpoint for which one wants information |
result required | string Enum: "success" "error" Result of the request |
action required | string Value: "apiInformations" The id of the action |
required | object |
curl --header "X-API-Token: yourToken" --request GET https://rudder.example.com/rudder/api/latest/info/details/listAcceptedNodes
{- "result": "success",
- "action": "apiInformations",
- "data": {
- "documentation": "string",
- "endpointName": "string",
- "endpoints": [
- "{\n \"listAcceptedNodes\": \"List all accepted nodes with configurable details level\",\n \"GET\": \"[8,9,10,11,12,13] /nodes\"\n}"
]
}
}
Get all endpoints in the given section with their supported version.
sectionId required | string Example: nodes Id of the API section |
result required | string Enum: "success" "error" Result of the request |
action required | string Value: "apiSubInformations" The id of the action |
required | object |
curl --header "X-API-Token: yourToken" --request GET https://rudder.example.com/rudder/api/latest/info/nodes
{- "result": "success",
- "action": "apiSubInformations",
- "data": {
- "documentation": "string",
- "availableVersions": [
- {
- "latest": 12,
- "all": [
- {
- "latest": 12,
- "all": [
- {
- "version": 12,
- "status": "maintained"
}
]
}
]
}
], - "endpoints": [
- [
- "{ 'listAcceptedNodes': 'List all accepted nodes with configurable details level', 'GET': '[8,9,10,11,12,13] /nodes' }"
]
]
}
}
An unauthenticated API to check if Rudder web application is up and running. Be careful: this API does not follow other Rudder's API convention:
/api/status
;curl --request GET https://rudder.example.com/rudder/api/status
Get current global compliance of a Rudder server
precision | integer Default: 2 Example: precision=0 Number of digits after comma in compliance percent figures |
result required | string Enum: "success" "error" Result of the request |
action required | string Value: "getGlobalCompliance" The id of the action |
required | object |
curl --header "X-API-Token: yourToken" --request GET 'https://rudder.example.com/rudder/api/latest/compliance?prettify=true'
{- "result": "success",
- "action": "getGlobalCompliance",
- "data": {
- "globalCompliance": {
- "compliance": 57,
- "complianceDetails": {
- "successAlreadyOK": 48.68,
- "noReport": 36.18,
- "successNotApplicable": 5.92,
- "unexpectedMissingComponent": 2.63,
- "error": 1.32,
- "unexpectedUnknownComponent": 2.63,
- "successRepaired": 2.63
}
}
}
}
Get current compliance of all the nodes of a Rudder server
level | integer Default: 10 Example: level=4 Number of depth level of compliance objects to display (1:rules, 2:directives, 3:components, 4:nodes, 5:values, 6:reports) |
precision | integer Default: 2 Example: precision=0 Number of digits after comma in compliance percent figures |
result required | string Enum: "success" "error" Result of the request |
action required | string Value: "getNodesCompliance" The id of the action |
required | object |
# To get the compliance information of a specific node curl --header "X-API-Token: yourToken" --request GET 'https://rudder.example.com/rudder/api/compliance/nodes?level=2' # To get the list of nodes which have a compliance <100 for a given directive (c5881268-5612-48f2-8ef4-0ab8387fccd6) curl -k -H "X-API-Token: yourToken" -X GET "https://rudder.example.com/rudder/api/latest/compliance/nodes?level=3" \ | jq '[.data.nodes[] | { "nodeid":.id, "dirs": [.rules[].directives[]] | map(select(.id == "c5881268-5612-48f2-8ef4-0ab8387fccd6" and .compliance < 100)) } ] | map(select(.dirs | length != 0)) | [.[] | {"nodeid":.nodeid, "comp":.dirs[0].complianceDetails} ]'
{- "result": "success",
- "action": "getNodesCompliance",
- "data": {
- "nodes": [
- {
- "id": "f37f4928-fcb5-4acf-a422-d40f123a9670",
- "mode": "full-compliance",
- "compliance": 57.43,
- "complianceDetails": {
- "successAlreadyOK": 48.68,
- "noReport": 36.18,
- "successNotApplicable": 5.92,
- "unexpectedMissingComponent": 2.63,
- "error": 1.32,
- "unexpectedUnknownComponent": 2.63,
- "successRepaired": 2.63
}
}
]
}
}
Get current compliance of a node of a Rudder server
nodeId required | string <uuid (or "root")> Example: 9a1773c9-0889-40b6-be89-f6504443ac1b Id of the target node |
level | integer Default: 10 Example: level=4 Number of depth level of compliance objects to display (1:rules, 2:directives, 3:components, 4:nodes, 5:values, 6:reports) |
precision | integer Default: 2 Example: precision=0 Number of digits after comma in compliance percent figures |
result required | string Enum: "success" "error" Result of the request |
action required | string Value: "getNodeCompliance" The id of the action |
required | object |
curl --header "X-API-Token: yourToken" --request GET 'https://rudder.example.com/rudder/api/compliance/nodes/root?level=1'
{- "result": "success",
- "action": "getNodeCompliance",
- "data": {
- "nodes": [
- {
- "id": "f37f4928-fcb5-4acf-a422-d40f123a9670",
- "mode": "full-compliance",
- "compliance": 57.43,
- "complianceDetails": {
- "successAlreadyOK": 48.68,
- "noReport": 36.18,
- "successNotApplicable": 5.92,
- "unexpectedMissingComponent": 2.63,
- "error": 1.32,
- "unexpectedUnknownComponent": 2.63,
- "successRepaired": 2.63
}
}
]
}
}
Get current compliance of all the rules of a Rudder server
level | integer Default: 10 Example: level=4 Number of depth level of compliance objects to display (1:rules, 2:directives, 3:components, 4:nodes, 5:values, 6:reports) |
precision | integer Default: 2 Example: precision=0 Number of digits after comma in compliance percent figures |
result required | string Enum: "success" "error" Result of the request |
action required | string Value: "getRulesCompliance" The id of the action |
required | object |
curl --header "X-API-Token: yourToken" --request GET 'https://rudder.example.com/rudder/api/latest/compliance/rules?level=2'
{- "result": "success",
- "action": "getRulesCompliance",
- "data": {
- "rules": [
- {
- "id": "f37f4928-fcb5-4acf-a422-d40f123a9670",
- "mode": "full-compliance",
- "compliance": 57.43,
- "complianceDetails": {
- "successAlreadyOK": 48.68,
- "noReport": 36.18,
- "successNotApplicable": 5.92,
- "unexpectedMissingComponent": 2.63,
- "error": 1.32,
- "unexpectedUnknownComponent": 2.63,
- "successRepaired": 2.63
}
}
]
}
}
Get current compliance of a rule of a Rudder server
ruleId required | string <uuid> Example: 9a1773c9-0889-40b6-be89-f6504443ac1b Id of the target rule |
level | integer Default: 10 Example: level=4 Number of depth level of compliance objects to display (1:rules, 2:directives, 3:components, 4:nodes, 5:values, 6:reports) |
precision | integer Default: 2 Example: precision=0 Number of digits after comma in compliance percent figures |
result required | string Enum: "success" "error" Result of the request |
action required | string Value: "getRuleCompliance" The id of the action |
required | object |
curl --header "X-API-Token: yourToken" --request GET 'https://rudder.example.com/rudder/api/latest/compliance/rules?level=2'
{- "result": "success",
- "action": "getRuleCompliance",
- "data": {
- "rules": [
- {
- "id": "f37f4928-fcb5-4acf-a422-d40f123a9670",
- "mode": "full-compliance",
- "compliance": 57.43,
- "complianceDetails": {
- "successAlreadyOK": 48.68,
- "noReport": 36.18,
- "successNotApplicable": 5.92,
- "unexpectedMissingComponent": 2.63,
- "error": 1.32,
- "unexpectedUnknownComponent": 2.63,
- "successRepaired": 2.63
}
}
]
}
}
List all rules
result required | string Enum: "success" "error" Result of the request |
action required | string Value: "listRules" The id of the action |
required | object |
curl --header "X-API-Token: yourToken" --request GET 'https://rudder.example.com/rudder/api/latest/rules' # To get information about the target (included/excluded) groups of the rules curl -H "X-API-Token: yourToken" -X GET 'https://rudder.example.com/rudder/api/latest/rules' | jq '.data.rules[] | {"d": .displayName, "id":.id, "inc": .targets[].include?.or, "exc":.targets[].exclude?.or}'
{- "result": "success",
- "action": "listRules",
- "data": {
- "rules": [
- {
- "id": "0c1713ae-cb9d-4f7b-abda-ca38c5d643ea",
- "displayName": "Security policy",
- "shortDescription": "Baseline applying CIS guidelines",
- "longDescription": "This rules should be applied to all Linux nodes required basic hardening",
- "directives": [
- "ff3bf651-3fce-49bc-8bf3-85132fa9b875"
], - "targets": [
- {
- "include": {
- "or": [
- "special:all"
]
}, - "exclude": {
- "or": [
- "policyServer:root",
- "group:cd377524-808b-4b42-8724-6ef308efeac7"
]
}
}
], - "enabled": true,
- "system": false,
- "tags": [
- {
- "customer": "MyCompany"
}
], - "policyMode": "mixed",
- "status": {
- "value": "Partially applied",
- "details": "Directive 'test parameter name' disabled"
}
}
]
}
}
Create a new rule. You can specify a source rule to clone it.
source | string <uuid> The id of the rule the clone will be based onto. If this parameter if provided, the new rule will be a clone of this source. Other value will override values from the source. |
id | string <uuid> Rule id |
displayName | string Rule name |
shortDescription | string One line rule description |
longDescription | string Rule documentation |
category | string <uuid> The parent category id. If provided, the new rule will be in this parent category |
directives | Array of strings Directives linked to the rule |
Array of objects (rule-targets) Node and special groups targeted by that rule | |
enabled | boolean Is the rule enabled |
system | boolean If true it is an internal Rudder rule |
Array of objects |
result required | string Enum: "success" "error" Result of the request |
action required | string Value: "createRule" The id of the action |
required | object |
{- "source": "b9f6d98a-28bc-4d80-90f7-d2f14269e215",
- "id": "0c1713ae-cb9d-4f7b-abda-ca38c5d643ea",
- "displayName": "Security policy",
- "shortDescription": "Baseline applying CIS guidelines",
- "longDescription": "This rules should be applied to all Linux nodes required basic hardening",
- "category": "38e0c6ea-917f-47b8-82e0-e6a1d3dd62ca",
- "directives": [
- "string"
], - "targets": [
- {
- "include": {
- "or": [
- "special:all"
]
}, - "exclude": {
- "or": [
- "policyServer:root",
- "group:cd377524-808b-4b42-8724-6ef308efeac7"
]
}
}
], - "enabled": true,
- "system": false,
- "tags": [
- {
- "customer": "MyCompany"
}
]
}
{- "result": "success",
- "action": "createRule",
- "data": {
- "rules": [
- {
- "id": "0c1713ae-cb9d-4f7b-abda-ca38c5d643ea",
- "displayName": "Security policy",
- "shortDescription": "Baseline applying CIS guidelines",
- "longDescription": "This rules should be applied to all Linux nodes required basic hardening",
- "directives": [
- "ff3bf651-3fce-49bc-8bf3-85132fa9b875"
], - "targets": [
- {
- "include": {
- "or": [
- "special:all"
]
}, - "exclude": {
- "or": [
- "policyServer:root",
- "group:cd377524-808b-4b42-8724-6ef308efeac7"
]
}
}
], - "enabled": true,
- "system": false,
- "tags": [
- {
- "customer": "MyCompany"
}
], - "policyMode": "mixed",
- "status": {
- "value": "Partially applied",
- "details": "Directive 'test parameter name' disabled"
}
}
]
}
}
Create a new rule category
parent required | string <uuid> The parent category of the rules |
id | string <uuid> Default: "{autogenerated}" Rule category id, only provide it when needed. |
name required | string Name of the rule category |
description | string Rules category description |
result required | string Enum: "success" "error" Result of the request |
action required | string Value: "CreateRuleCategory" The id of the action |
required | object |
{- "parent": "b9f6d98a-28bc-4d80-90f7-d2f14269e215",
- "id": "32d013f7-b6d8-46c8-99d3-016307fa66c0",
- "name": "Security policies",
- "description": "Baseline applying CIS guidelines"
}
{- "result": "success",
- "action": "CreateRuleCategory",
- "data": {
- "ruleCategories": [
- {
- "parent": "b9f6d98a-28bc-4d80-90f7-d2f14269e215",
- "id": "32d013f7-b6d8-46c8-99d3-016307fa66c0",
- "name": "Security policies",
- "description": "Baseline applying CIS guidelines"
}
]
}
}
Get detailed information about a rule category
ruleCategoryId required | string <uuid> Example: e0a311fa-f7b2-4f9e-89a9-db517b9c6b90 Rule category id |
result required | string Enum: "success" "error" Result of the request |
action required | string Value: "GetRuleCategoryDetails" The id of the action |
required | object |
curl --header "X-API-Token: yourToken" --request GET 'https://rudder.example.com/rudder/api/latest/rules/categories/4306143d-eabf-4478-b7b1-1616f4aa02b5?prettify=true'
{- "result": "success",
- "action": "GetRuleCategoryDetails",
- "data": {
- "rulesCategories": [
- {
- "parent": "b9f6d98a-28bc-4d80-90f7-d2f14269e215",
- "id": "32d013f7-b6d8-46c8-99d3-016307fa66c0",
- "name": "Security policies",
- "description": "Baseline applying CIS guidelines"
}
]
}
}
Delete a group category. It must have no child groups and no children categories.
ruleCategoryId required | string <uuid> Example: e0a311fa-f7b2-4f9e-89a9-db517b9c6b90 Rule category id |
result required | string Enum: "success" "error" Result of the request |
action required | string Value: "DeleteRuleCategory" The id of the action |
required | object |
curl --header "X-API-Token: yourToken" --request DELETE 'https://rudder.example.com/rudder/api/latest/rules/categories/4306143d-eabf-4478-b7b1-1616f4aa02b5?prettify=true'
{- "result": "success",
- "action": "DeleteRuleCategory",
- "data": {
- "groupCategories": [
- {
- "parent": "b9f6d98a-28bc-4d80-90f7-d2f14269e215",
- "id": "32d013f7-b6d8-46c8-99d3-016307fa66c0",
- "name": "Security policies",
- "description": "Baseline applying CIS guidelines"
}
]
}
}
Update detailed information about a rule category
ruleCategoryId required | string <uuid> Example: e0a311fa-f7b2-4f9e-89a9-db517b9c6b90 Rule category id |
parent required | string <uuid> The parent category of the rules |
name required | string Name of the rule category |
description | string Rules category description |
result required | string Enum: "success" "error" Result of the request |
action required | string Value: "UpdateRuleCategory" The id of the action |
required | object |
{- "parent": "b9f6d98a-28bc-4d80-90f7-d2f14269e215",
- "name": "Security policies",
- "description": "Baseline applying CIS guidelines"
}
{- "result": "success",
- "action": "UpdateRuleCategory",
- "data": {
- "ruleCategories": [
- {
- "parent": "b9f6d98a-28bc-4d80-90f7-d2f14269e215",
- "id": "32d013f7-b6d8-46c8-99d3-016307fa66c0",
- "name": "Security policies",
- "description": "Baseline applying CIS guidelines"
}
]
}
}
Get all available rules and their categories in a tree
result required | string Enum: "success" "error" Result of the request |
action required | string Value: "GetRuleTree" The id of the action |
required | object |
curl --header "X-API-Token: yourToken" --request GET 'https://rudder.example.com/rudder/api/latest/rules/tree?prettify=true'
{- "result": "success",
- "action": "GetRuleTree",
- "data": {
- "id": "rootRuleCategory",
- "name": "Rules",
- "description": "This is the main category of Rules",
- "parent": "rootRuleCategory",
- "categories": [
- {
- "id": "4306143d-eabf-4478-b7b1-1616f4aa02b5",
- "name": "Dev category",
- "description": "",
- "parent": "rootRuleCategory",
- "categories": [
- {
- "id": "f45ec2fd-69f4-4669-9c22-1af3abe2a107",
- "name": "Specific dev category",
- "description": "",
- "parent": "4306143d-eabf-4478-b7b1-1616f4aa02b5",
- "categories": [ ],
- "rules": [
- {
- "id": "b7fda4e7-3616-4e99-89b0-8ffadaf6b0f0",
- "displayName": "my specific Rule",
- "shortDescription": "",
- "longDescription": "",
- "directives": [ ],
- "targets": [ ],
- "enabled": true,
- "system": false
}
]
}
], - "rules": [
- {
- "id": "f2aa50a9-961c-4cce-a266-380cffcdce32",
- "displayName": "dev Rule",
- "shortDescription": "",
- "longDescription": "",
- "directives": [ ],
- "targets": [ ],
- "enabled": true,
- "system": false
}
]
}
], - "rules": [
- {
- "id": "43cde273-5bb0-466f-8850-7d3fdde03253",
- "displayName": "Global security policy",
- "shortDescription": "",
- "longDescription": "",
- "directives": [ ],
- "targets": [ ],
- "enabled": true,
- "system": false
}, - {
- "id": "32377fd7-02fd-43d0-aab7-28460a91347b",
- "displayName": "Global configuration for all nodes",
- "shortDescription": "",
- "longDescription": "This Rule was created automatically when Rudder was installed. It can be used to target Directives to all nodes (including the Rudder root server itself), or deleted if you would rather create your own set of Rules (it will never be created again).",
- "directives": [
- "bff45fe2-8233-4d28-96aa-78b0390b548b"
], - "targets": [
- {
- "include": {
- "or": [
- "special:all",
- "special:all_exceptPolicyServers",
- "special:all_policyServers"
]
}, - "exclude": {
- "or": [ ]
}
}
], - "enabled": false,
- "system": false
}
]
}
}
Get the details of a rule
ruleId required | string <uuid> Example: 9a1773c9-0889-40b6-be89-f6504443ac1b Id of the target rule |
result required | string Enum: "success" "error" Result of the request |
action required | string Value: "ruleDetails" The id of the action |
required | object |
curl --header "X-API-Token: yourToken" --request GET 'https://rudder.example.com/rudder/api/latest/rules/06ba8940-ed6c-4102-ba46-93d640a64c36'
{- "result": "success",
- "action": "ruleDetails",
- "data": {
- "rules": [
- {
- "id": "0c1713ae-cb9d-4f7b-abda-ca38c5d643ea",
- "displayName": "Security policy",
- "shortDescription": "Baseline applying CIS guidelines",
- "longDescription": "This rules should be applied to all Linux nodes required basic hardening",
- "directives": [
- "ff3bf651-3fce-49bc-8bf3-85132fa9b875"
], - "targets": [
- {
- "include": {
- "or": [
- "special:all"
]
}, - "exclude": {
- "or": [
- "policyServer:root",
- "group:cd377524-808b-4b42-8724-6ef308efeac7"
]
}
}
], - "enabled": true,
- "system": false,
- "tags": [
- {
- "customer": "MyCompany"
}
], - "policyMode": "mixed",
- "status": {
- "value": "Partially applied",
- "details": "Directive 'test parameter name' disabled"
}
}
]
}
}
Update the details of a rule
ruleId required | string <uuid> Example: 9a1773c9-0889-40b6-be89-f6504443ac1b Id of the target rule |
id | string <uuid> Rule id |
displayName | string Rule name |
shortDescription | string One line rule description |
longDescription | string Rule documentation |
category | string <uuid> The parent category id. |
directives | Array of strings Directives linked to the rule |
Array of objects (rule-targets) Node and special groups targeted by that rule | |
enabled | boolean Is the rule enabled |
system | boolean If true it is an internal Rudder rule |
Array of objects |
result required | string Enum: "success" "error" Result of the request |
action required | string Value: "updateRule" The id of the action |
required | object |
{- "id": "0c1713ae-cb9d-4f7b-abda-ca38c5d643ea",
- "displayName": "Security policy",
- "shortDescription": "Baseline applying CIS guidelines",
- "longDescription": "This rules should be applied to all Linux nodes required basic hardening",
- "category": "38e0c6ea-917f-47b8-82e0-e6a1d3dd62ca",
- "directives": [
- "string"
], - "targets": [
- {
- "include": {
- "or": [
- "special:all"
]
}, - "exclude": {
- "or": [
- "policyServer:root",
- "group:cd377524-808b-4b42-8724-6ef308efeac7"
]
}
}
], - "enabled": true,
- "system": false,
- "tags": [
- {
- "customer": "MyCompany"
}
]
}
{- "result": "success",
- "action": "updateRule",
- "data": {
- "rules": [
- {
- "id": "0c1713ae-cb9d-4f7b-abda-ca38c5d643ea",
- "displayName": "Security policy",
- "shortDescription": "Baseline applying CIS guidelines",
- "longDescription": "This rules should be applied to all Linux nodes required basic hardening",
- "category": "38e0c6ea-917f-47b8-82e0-e6a1d3dd62ca",
- "directives": [
- "string"
], - "targets": [
- {
- "include": {
- "or": [
- "special:all"
]
}, - "exclude": {
- "or": [
- "policyServer:root",
- "group:cd377524-808b-4b42-8724-6ef308efeac7"
]
}
}
], - "enabled": true,
- "system": false,
- "tags": [
- {
- "customer": "MyCompany"
}
]
}
]
}
}
Delete a rule.
ruleId required | string <uuid> Example: 9a1773c9-0889-40b6-be89-f6504443ac1b Id of the target rule |
result required | string Enum: "success" "error" Result of the request |
action required | string Value: "deleteRule" The id of the action |
required | object |
curl --header "X-API-Token: yourToken" --request DELETE 'https://rudder.example.com/rudder/api/latest/rules/176ad06b-ed02-4da3-8053-16225d217741'
{- "result": "success",
- "action": "deleteRule",
- "data": {
- "rules": [
- {
- "id": "0c1713ae-cb9d-4f7b-abda-ca38c5d643ea",
- "displayName": "Security policy",
- "shortDescription": "Baseline applying CIS guidelines",
- "longDescription": "This rules should be applied to all Linux nodes required basic hardening",
- "directives": [
- "ff3bf651-3fce-49bc-8bf3-85132fa9b875"
], - "targets": [
- {
- "include": {
- "or": [
- "special:all"
]
}, - "exclude": {
- "or": [
- "policyServer:root",
- "group:cd377524-808b-4b42-8724-6ef308efeac7"
]
}
}
], - "enabled": true,
- "system": false,
- "tags": [
- {
- "customer": "MyCompany"
}
], - "policyMode": "mixed",
- "status": {
- "value": "Partially applied",
- "details": "Directive 'test parameter name' disabled"
}
}
]
}
}
List all directives
result required | string Enum: "success" "error" Result of the request |
action required | string Value: "listDirectives" The id of the action |
required | object |
curl --header "X-API-Token: yourToken" --request GET https://rudder.example.com/rudder/api/latest/directives
{- "result": "success",
- "action": "listDirectives",
- "data": {
- "directives": [
- {
- "id": "91252ea2-feb2-412d-8599-c6945fee02c4",
- "displayName": "91252ea2-feb2-412d-8599-c6945fee02c4",
- "shortDescription": "91252ea2-feb2-412d-8599-c6945fee02c4",
- "longDescription": "# Documentation\n* [Ticket link](https://tickets.example.com/issues/3456)",
- "techniqueName": "userManagement",
- "techniqueVersion": "8.0",
- "priority": 5,
- "enabled": true,
- "system": false,
- "policyMode": "audit",
- "tags": [
- {
- "customer": "MyCompany"
}
], - "parameters": {
- "name": "sections",
- "sections": [
- {
- "section": {
- "name": "File to manage",
- "vars": [
- {
- "var": {
- "name": "FILE_AND_FOLDER_MANAGEMENT_ACTION",
- "value": "copy"
}
}, - {
- "var": {
- "name": "FILE_AND_FOLDER_MANAGEMENT_SOURCE",
- "value": "/vagrant/node.sh"
}
}, - {
- "var": {
- "name": "FILE_AND_FOLDER_MANAGEMENT_SYMLINK_ENFORCE",
- "value": "false"
}
}
], - "sections": [
- {
- "section": {
- "name": "File",
- "vars": [
- {
- "var": {
- "name": "FILE_AND_FOLDER_MANAGEMENT_PATH",
- "value": "/root/test"
}
}
]
}
}, - {
- "section": {
- "name": "File cleaning options",
- "vars": [
- {
- "var": {
- "name": "FILE_AND_FOLDER_DELETION_DAYS",
- "value": "0"
}
}, - {
- "var": {
- "name": "FILE_AND_FOLDER_DELETION_OPTION",
- "value": "none"
}
}, - {
- "var": {
- "name": "FILE_AND_FOLDER_DELETION_PATTERN",
- "value": ".*"
}
}
]
}
}, - {
- "section": {
- "name": "Permissions",
- "vars": [
- {
- "var": {
- "name": "FILE_AND_FOLDER_MANAGEMENT_CHECK_PERMISSIONS",
- "value": "false"
}
}, - {
- "var": {
- "name": "FILE_AND_FOLDER_MANAGEMENT_GROUP",
- "value": ""
}
}, - {
- "var": {
- "name": "FILE_AND_FOLDER_MANAGEMENT_OWNER",
- "value": ""
}
}, - {
- "var": {
- "name": "FILE_AND_FOLDER_MANAGEMENT_PERM",
- "value": "000"
}
}, - {
- "var": {
- "name": "FILE_AND_FOLDER_MANAGEMENT_RECURSIVE",
- "value": "1"
}
}
]
}
}, - {
- "section": {
- "name": "Post-modification hook",
- "vars": [
- {
- "var": {
- "name": "FILE_AND_FOLDER_MANAGEMENT_POST_HOOK_COMMAND",
- "value": ""
}
}, - {
- "var": {
- "name": "FILE_AND_FOLDER_MANAGEMENT_POST_HOOK_RUN",
- "value": "false"
}
}
]
}
}
]
}
}
]
}
}
]
}
}
Create a new directive from provided parameters. You can specify a source directive to clone it.
source | string <uuid> The id of the directive the clone will be based onto. If this parameter if provided, the new directive will be a clone of this source. Other value will override values from the source. |
id | string <uuid> Directive id |
displayName | string Human readable name of the directive |
shortDescription | string One line directive description |
longDescription | string <markdown> Description of the technique (rendered as markdown) |
techniqueName | string Directive id |
techniqueVersion | string Directive id |
priority | integer [ 0 .. 10 ] Directive priority. |
enabled | boolean Is the directive enabled |
system | boolean If true it is an internal Rudder directive |
Array of objects | |
parameters | object Directive parameters (depends on the source technique) |
result required | string Enum: "success" "error" Result of the request |
action required | string Value: "createDirective" The id of the action |
required | object |
{- "source": "b9f6d98a-28bc-4d80-90f7-d2f14269e215",
- "id": "91252ea2-feb2-412d-8599-c6945fee02c4",
- "displayName": "91252ea2-feb2-412d-8599-c6945fee02c4",
- "shortDescription": "91252ea2-feb2-412d-8599-c6945fee02c4",
- "longDescription": "# Documentation\n* [Ticket link](https://tickets.example.com/issues/3456)",
- "techniqueName": "userManagement",
- "techniqueVersion": "8.0",
- "priority": 5,
- "enabled": true,
- "system": false,
- "tags": [
- {
- "customer": "MyCompany"
}
], - "parameters": {
- "name": "sections",
- "sections": [
- {
- "section": {
- "name": "File to manage",
- "vars": [
- {
- "var": {
- "name": "FILE_AND_FOLDER_MANAGEMENT_ACTION",
- "value": "copy"
}
}, - {
- "var": {
- "name": "FILE_AND_FOLDER_MANAGEMENT_SOURCE",
- "value": "/vagrant/node.sh"
}
}, - {
- "var": {
- "name": "FILE_AND_FOLDER_MANAGEMENT_SYMLINK_ENFORCE",
- "value": "false"
}
}
], - "sections": [
- {
- "section": {
- "name": "File",
- "vars": [
- {
- "var": {
- "name": "FILE_AND_FOLDER_MANAGEMENT_PATH",
- "value": "/root/test"
}
}
]
}
}, - {
- "section": {
- "name": "File cleaning options",
- "vars": [
- {
- "var": {
- "name": "FILE_AND_FOLDER_DELETION_DAYS",
- "value": "0"
}
}, - {
- "var": {
- "name": "FILE_AND_FOLDER_DELETION_OPTION",
- "value": "none"
}
}, - {
- "var": {
- "name": "FILE_AND_FOLDER_DELETION_PATTERN",
- "value": ".*"
}
}
]
}
}, - {
- "section": {
- "name": "Permissions",
- "vars": [
- {
- "var": {
- "name": "FILE_AND_FOLDER_MANAGEMENT_CHECK_PERMISSIONS",
- "value": "false"
}
}, - {
- "var": {
- "name": "FILE_AND_FOLDER_MANAGEMENT_GROUP",
- "value": ""
}
}, - {
- "var": {
- "name": "FILE_AND_FOLDER_MANAGEMENT_OWNER",
- "value": ""
}
}, - {
- "var": {
- "name": "FILE_AND_FOLDER_MANAGEMENT_PERM",
- "value": "000"
}
}, - {
- "var": {
- "name": "FILE_AND_FOLDER_MANAGEMENT_RECURSIVE",
- "value": "1"
}
}
]
}
}, - {
- "section": {
- "name": "Post-modification hook",
- "vars": [
- {
- "var": {
- "name": "FILE_AND_FOLDER_MANAGEMENT_POST_HOOK_COMMAND",
- "value": ""
}
}, - {
- "var": {
- "name": "FILE_AND_FOLDER_MANAGEMENT_POST_HOOK_RUN",
- "value": "false"
}
}
]
}
}
]
}
}
]
}
}
{- "result": "success",
- "action": "createDirective",
- "data": {
- "directives": [
- {
- "id": "91252ea2-feb2-412d-8599-c6945fee02c4",
- "displayName": "91252ea2-feb2-412d-8599-c6945fee02c4",
- "shortDescription": "91252ea2-feb2-412d-8599-c6945fee02c4",
- "longDescription": "# Documentation\n* [Ticket link](https://tickets.example.com/issues/3456)",
- "techniqueName": "userManagement",
- "techniqueVersion": "8.0",
- "priority": 5,
- "enabled": true,
- "system": false,
- "policyMode": "audit",
- "tags": [
- {
- "customer": "MyCompany"
}
], - "parameters": {
- "name": "sections",
- "sections": [
- {
- "section": {
- "name": "File to manage",
- "vars": [
- {
- "var": {
- "name": "FILE_AND_FOLDER_MANAGEMENT_ACTION",
- "value": "copy"
}
}, - {
- "var": {
- "name": "FILE_AND_FOLDER_MANAGEMENT_SOURCE",
- "value": "/vagrant/node.sh"
}
}, - {
- "var": {
- "name": "FILE_AND_FOLDER_MANAGEMENT_SYMLINK_ENFORCE",
- "value": "false"
}
}
], - "sections": [
- {
- "section": {
- "name": "File",
- "vars": [
- {
- "var": {
- "name": "FILE_AND_FOLDER_MANAGEMENT_PATH",
- "value": "/root/test"
}
}
]
}
}, - {
- "section": {
- "name": "File cleaning options",
- "vars": [
- {
- "var": {
- "name": "FILE_AND_FOLDER_DELETION_DAYS",
- "value": "0"
}
}, - {
- "var": {
- "name": "FILE_AND_FOLDER_DELETION_OPTION",
- "value": "none"
}
}, - {
- "var": {
- "name": "FILE_AND_FOLDER_DELETION_PATTERN",
- "value": ".*"
}
}
]
}
}, - {
- "section": {
- "name": "Permissions",
- "vars": [
- {
- "var": {
- "name": "FILE_AND_FOLDER_MANAGEMENT_CHECK_PERMISSIONS",
- "value": "false"
}
}, - {
- "var": {
- "name": "FILE_AND_FOLDER_MANAGEMENT_GROUP",
- "value": ""
}
}, - {
- "var": {
- "name": "FILE_AND_FOLDER_MANAGEMENT_OWNER",
- "value": ""
}
}, - {
- "var": {
- "name": "FILE_AND_FOLDER_MANAGEMENT_PERM",
- "value": "000"
}
}, - {
- "var": {
- "name": "FILE_AND_FOLDER_MANAGEMENT_RECURSIVE",
- "value": "1"
}
}
]
}
}, - {
- "section": {
- "name": "Post-modification hook",
- "vars": [
- {
- "var": {
- "name": "FILE_AND_FOLDER_MANAGEMENT_POST_HOOK_COMMAND",
- "value": ""
}
}, - {
- "var": {
- "name": "FILE_AND_FOLDER_MANAGEMENT_POST_HOOK_RUN",
- "value": "false"
}
}
]
}
}
]
}
}
]
}
}
]
}
}
Get all information about a given directive
directiveId required | string <uuid> Example: 9a1773c9-0889-40b6-be89-f6504443ac1b Id of the directive |
result required | string Enum: "success" "error" Result of the request |
action required | string Value: "directiveDetails" The id of the action |
required | object |
curl --header "X-API-Token: yourToken" --request GET https://rudder.example.com/rudder/api/latest/directives/17dadf50-6056-4c8b-a935-6b97d14b89a7
{- "result": "success",
- "action": "directiveDetails",
- "data": {
- "directives": [
- {
- "id": "91252ea2-feb2-412d-8599-c6945fee02c4",
- "displayName": "91252ea2-feb2-412d-8599-c6945fee02c4",
- "shortDescription": "91252ea2-feb2-412d-8599-c6945fee02c4",
- "longDescription": "# Documentation\n* [Ticket link](https://tickets.example.com/issues/3456)",
- "techniqueName": "userManagement",
- "techniqueVersion": "8.0",
- "priority": 5,
- "enabled": true,
- "system": false,
- "policyMode": "audit",
- "tags": [
- {
- "customer": "MyCompany"
}
], - "parameters": {
- "name": "sections",
- "sections": [
- {
- "section": {
- "name": "File to manage",
- "vars": [
- {
- "var": {
- "name": "FILE_AND_FOLDER_MANAGEMENT_ACTION",
- "value": "copy"
}
}, - {
- "var": {
- "name": "FILE_AND_FOLDER_MANAGEMENT_SOURCE",
- "value": "/vagrant/node.sh"
}
}, - {
- "var": {
- "name": "FILE_AND_FOLDER_MANAGEMENT_SYMLINK_ENFORCE",
- "value": "false"
}
}
], - "sections": [
- {
- "section": {
- "name": "File",
- "vars": [
- {
- "var": {
- "name": "FILE_AND_FOLDER_MANAGEMENT_PATH",
- "value": "/root/test"
}
}
]
}
}, - {
- "section": {
- "name": "File cleaning options",
- "vars": [
- {
- "var": {
- "name": "FILE_AND_FOLDER_DELETION_DAYS",
- "value": "0"
}
}, - {
- "var": {
- "name": "FILE_AND_FOLDER_DELETION_OPTION",
- "value": "none"
}
}, - {
- "var": {
- "name": "FILE_AND_FOLDER_DELETION_PATTERN",
- "value": ".*"
}
}
]
}
}, - {
- "section": {
- "name": "Permissions",
- "vars": [
- {
- "var": {
- "name": "FILE_AND_FOLDER_MANAGEMENT_CHECK_PERMISSIONS",
- "value": "false"
}
}, - {
- "var": {
- "name": "FILE_AND_FOLDER_MANAGEMENT_GROUP",
- "value": ""
}
}, - {
- "var": {
- "name": "FILE_AND_FOLDER_MANAGEMENT_OWNER",
- "value": ""
}
}, - {
- "var": {
- "name": "FILE_AND_FOLDER_MANAGEMENT_PERM",
- "value": "000"
}
}, - {
- "var": {
- "name": "FILE_AND_FOLDER_MANAGEMENT_RECURSIVE",
- "value": "1"
}
}
]
}
}, - {
- "section": {
- "name": "Post-modification hook",
- "vars": [
- {
- "var": {
- "name": "FILE_AND_FOLDER_MANAGEMENT_POST_HOOK_COMMAND",
- "value": ""
}
}, - {
- "var": {
- "name": "FILE_AND_FOLDER_MANAGEMENT_POST_HOOK_RUN",
- "value": "false"
}
}
]
}
}
]
}
}
]
}
}
]
}
}
Delete a directive
directiveId required | string <uuid> Example: 9a1773c9-0889-40b6-be89-f6504443ac1b Id of the directive |
result required | string Enum: "success" "error" Result of the request |
action required | string Value: "deleteDirective" The id of the action |
required | object |
curl --header "X-API-Token: yourToken" --request DELETE https://rudder.example.com/rudder/api/latest/directives/17dadf50-6056-4c8b-a935-6b97d14b89a7
{- "result": "success",
- "action": "deleteDirective",
- "data": {
- "directives": [
- {
- "id": "91252ea2-feb2-412d-8599-c6945fee02c4",
- "displayName": "91252ea2-feb2-412d-8599-c6945fee02c4",
- "shortDescription": "91252ea2-feb2-412d-8599-c6945fee02c4",
- "longDescription": "# Documentation\n* [Ticket link](https://tickets.example.com/issues/3456)",
- "techniqueName": "userManagement",
- "techniqueVersion": "8.0",
- "priority": 5,
- "enabled": true,
- "system": false,
- "policyMode": "audit",
- "tags": [
- {
- "customer": "MyCompany"
}
], - "parameters": {
- "name": "sections",
- "sections": [
- {
- "section": {
- "name": "File to manage",
- "vars": [
- {
- "var": {
- "name": "FILE_AND_FOLDER_MANAGEMENT_ACTION",
- "value": "copy"
}
}, - {
- "var": {
- "name": "FILE_AND_FOLDER_MANAGEMENT_SOURCE",
- "value": "/vagrant/node.sh"
}
}, - {
- "var": {
- "name": "FILE_AND_FOLDER_MANAGEMENT_SYMLINK_ENFORCE",
- "value": "false"
}
}
], - "sections": [
- {
- "section": {
- "name": "File",
- "vars": [
- {
- "var": {
- "name": "FILE_AND_FOLDER_MANAGEMENT_PATH",
- "value": "/root/test"
}
}
]
}
}, - {
- "section": {
- "name": "File cleaning options",
- "vars": [
- {
- "var": {
- "name": "FILE_AND_FOLDER_DELETION_DAYS",
- "value": "0"
}
}, - {
- "var": {
- "name": "FILE_AND_FOLDER_DELETION_OPTION",
- "value": "none"
}
}, - {
- "var": {
- "name": "FILE_AND_FOLDER_DELETION_PATTERN",
- "value": ".*"
}
}
]
}
}, - {
- "section": {
- "name": "Permissions",
- "vars": [
- {
- "var": {
- "name": "FILE_AND_FOLDER_MANAGEMENT_CHECK_PERMISSIONS",
- "value": "false"
}
}, - {
- "var": {
- "name": "FILE_AND_FOLDER_MANAGEMENT_GROUP",
- "value": ""
}
}, - {
- "var": {
- "name": "FILE_AND_FOLDER_MANAGEMENT_OWNER",
- "value": ""
}
}, - {
- "var": {
- "name": "FILE_AND_FOLDER_MANAGEMENT_PERM",
- "value": "000"
}
}, - {
- "var": {
- "name": "FILE_AND_FOLDER_MANAGEMENT_RECURSIVE",
- "value": "1"
}
}
]
}
}, - {
- "section": {
- "name": "Post-modification hook",
- "vars": [
- {
- "var": {
- "name": "FILE_AND_FOLDER_MANAGEMENT_POST_HOOK_COMMAND",
- "value": ""
}
}, - {
- "var": {
- "name": "FILE_AND_FOLDER_MANAGEMENT_POST_HOOK_RUN",
- "value": "false"
}
}
]
}
}
]
}
}
]
}
}
]
}
}
Update directive information
directiveId required | string <uuid> Example: 9a1773c9-0889-40b6-be89-f6504443ac1b Id of the directive |
id | string <uuid> Directive id |
displayName | string Human readable name of the directive |
shortDescription | string One line directive description |
longDescription | string <markdown> Description of the technique (rendered as markdown) |
techniqueName | string Directive id |
techniqueVersion | string Directive id |
priority | integer [ 0 .. 10 ] Directive priority. |
enabled | boolean Is the directive enabled |
system | boolean If true it is an internal Rudder directive |
policyMode | string Enum: "enforce" "audit" Policy mode of the directive |
Array of objects | |
parameters | object Directive parameters (depends on the source technique) |
result required | string Enum: "success" "error" Result of the request |
action required | string Value: "updateDirective" The id of the action |
required | object |
{- "id": "91252ea2-feb2-412d-8599-c6945fee02c4",
- "displayName": "91252ea2-feb2-412d-8599-c6945fee02c4",
- "shortDescription": "91252ea2-feb2-412d-8599-c6945fee02c4",
- "longDescription": "# Documentation\n* [Ticket link](https://tickets.example.com/issues/3456)",
- "techniqueName": "userManagement",
- "techniqueVersion": "8.0",
- "priority": 5,
- "enabled": true,
- "system": false,
- "policyMode": "audit",
- "tags": [
- {
- "customer": "MyCompany"
}
], - "parameters": {
- "name": "sections",
- "sections": [
- {
- "section": {
- "name": "File to manage",
- "vars": [
- {
- "var": {
- "name": "FILE_AND_FOLDER_MANAGEMENT_ACTION",
- "value": "copy"
}
}, - {
- "var": {
- "name": "FILE_AND_FOLDER_MANAGEMENT_SOURCE",
- "value": "/vagrant/node.sh"
}
}, - {
- "var": {
- "name": "FILE_AND_FOLDER_MANAGEMENT_SYMLINK_ENFORCE",
- "value": "false"
}
}
], - "sections": [
- {
- "section": {
- "name": "File",
- "vars": [
- {
- "var": {
- "name": "FILE_AND_FOLDER_MANAGEMENT_PATH",
- "value": "/root/test"
}
}
]
}
}, - {
- "section": {
- "name": "File cleaning options",
- "vars": [
- {
- "var": {
- "name": "FILE_AND_FOLDER_DELETION_DAYS",
- "value": "0"
}
}, - {
- "var": {
- "name": "FILE_AND_FOLDER_DELETION_OPTION",
- "value": "none"
}
}, - {
- "var": {
- "name": "FILE_AND_FOLDER_DELETION_PATTERN",
- "value": ".*"
}
}
]
}
}, - {
- "section": {
- "name": "Permissions",
- "vars": [
- {
- "var": {
- "name": "FILE_AND_FOLDER_MANAGEMENT_CHECK_PERMISSIONS",
- "value": "false"
}
}, - {
- "var": {
- "name": "FILE_AND_FOLDER_MANAGEMENT_GROUP",
- "value": ""
}
}, - {
- "var": {
- "name": "FILE_AND_FOLDER_MANAGEMENT_OWNER",
- "value": ""
}
}, - {
- "var": {
- "name": "FILE_AND_FOLDER_MANAGEMENT_PERM",
- "value": "000"
}
}, - {
- "var": {
- "name": "FILE_AND_FOLDER_MANAGEMENT_RECURSIVE",
- "value": "1"
}
}
]
}
}, - {
- "section": {
- "name": "Post-modification hook",
- "vars": [
- {
- "var": {
- "name": "FILE_AND_FOLDER_MANAGEMENT_POST_HOOK_COMMAND",
- "value": ""
}
}, - {
- "var": {
- "name": "FILE_AND_FOLDER_MANAGEMENT_POST_HOOK_RUN",
- "value": "false"
}
}
]
}
}
]
}
}
]
}
}
{- "result": "success",
- "action": "updateDirective",
- "data": {
- "directives": [
- {
- "id": "91252ea2-feb2-412d-8599-c6945fee02c4",
- "displayName": "91252ea2-feb2-412d-8599-c6945fee02c4",
- "shortDescription": "91252ea2-feb2-412d-8599-c6945fee02c4",
- "longDescription": "# Documentation\n* [Ticket link](https://tickets.example.com/issues/3456)",
- "techniqueName": "userManagement",
- "techniqueVersion": "8.0",
- "priority": 5,
- "enabled": true,
- "system": false,
- "policyMode": "audit",
- "tags": [
- {
- "customer": "MyCompany"
}
], - "parameters": {
- "name": "sections",
- "sections": [
- {
- "section": {
- "name": "File to manage",
- "vars": [
- {
- "var": {
- "name": "FILE_AND_FOLDER_MANAGEMENT_ACTION",
- "value": "copy"
}
}, - {
- "var": {
- "name": "FILE_AND_FOLDER_MANAGEMENT_SOURCE",
- "value": "/vagrant/node.sh"
}
}, - {
- "var": {
- "name": "FILE_AND_FOLDER_MANAGEMENT_SYMLINK_ENFORCE",
- "value": "false"
}
}
], - "sections": [
- {
- "section": {
- "name": "File",
- "vars": [
- {
- "var": {
- "name": "FILE_AND_FOLDER_MANAGEMENT_PATH",
- "value": "/root/test"
}
}
]
}
}, - {
- "section": {
- "name": "File cleaning options",
- "vars": [
- {
- "var": {
- "name": "FILE_AND_FOLDER_DELETION_DAYS",
- "value": "0"
}
}, - {
- "var": {
- "name": "FILE_AND_FOLDER_DELETION_OPTION",
- "value": "none"
}
}, - {
- "var": {
- "name": "FILE_AND_FOLDER_DELETION_PATTERN",
- "value": ".*"
}
}
]
}
}, - {
- "section": {
- "name": "Permissions",
- "vars": [
- {
- "var": {
- "name": "FILE_AND_FOLDER_MANAGEMENT_CHECK_PERMISSIONS",
- "value": "false"
}
}, - {
- "var": {
- "name": "FILE_AND_FOLDER_MANAGEMENT_GROUP",
- "value": ""
}
}, - {
- "var": {
- "name": "FILE_AND_FOLDER_MANAGEMENT_OWNER",
- "value": ""
}
}, - {
- "var": {
- "name": "FILE_AND_FOLDER_MANAGEMENT_PERM",
- "value": "000"
}
}, - {
- "var": {
- "name": "FILE_AND_FOLDER_MANAGEMENT_RECURSIVE",
- "value": "1"
}
}
]
}
}, - {
- "section": {
- "name": "Post-modification hook",
- "vars": [
- {
- "var": {
- "name": "FILE_AND_FOLDER_MANAGEMENT_POST_HOOK_COMMAND",
- "value": ""
}
}, - {
- "var": {
- "name": "FILE_AND_FOLDER_MANAGEMENT_POST_HOOK_RUN",
- "value": "false"
}
}
]
}
}
]
}
}
]
}
}
]
}
}
Check that update on a directive is valid
directiveId required | string <uuid> Example: 9a1773c9-0889-40b6-be89-f6504443ac1b Id of the directive |
id | string <uuid> Directive id |
displayName | string Human readable name of the directive |
shortDescription | string One line directive description |
longDescription | string <markdown> Description of the technique (rendered as markdown) |
techniqueName | string Directive id |
techniqueVersion | string Directive id |
priority | integer [ 0 .. 10 ] Directive priority. |
enabled | boolean Is the directive enabled |
system | boolean If true it is an internal Rudder directive |
policyMode | string Enum: "enforce" "audit" Policy mode of the directive |
Array of objects | |
parameters | object Directive parameters (depends on the source technique) |
result required | string Enum: "success" "error" Result of the request |
action required | string Value: "checkDirective" The id of the action |
required | object |
{- "id": "91252ea2-feb2-412d-8599-c6945fee02c4",
- "displayName": "91252ea2-feb2-412d-8599-c6945fee02c4",
- "shortDescription": "91252ea2-feb2-412d-8599-c6945fee02c4",
- "longDescription": "# Documentation\n* [Ticket link](https://tickets.example.com/issues/3456)",
- "techniqueName": "userManagement",
- "techniqueVersion": "8.0",
- "priority": 5,
- "enabled": true,
- "system": false,
- "policyMode": "audit",
- "tags": [
- {
- "customer": "MyCompany"
}
], - "parameters": {
- "name": "sections",
- "sections": [
- {
- "section": {
- "name": "File to manage",
- "vars": [
- {
- "var": {
- "name": "FILE_AND_FOLDER_MANAGEMENT_ACTION",
- "value": "copy"
}
}, - {
- "var": {
- "name": "FILE_AND_FOLDER_MANAGEMENT_SOURCE",
- "value": "/vagrant/node.sh"
}
}, - {
- "var": {
- "name": "FILE_AND_FOLDER_MANAGEMENT_SYMLINK_ENFORCE",
- "value": "false"
}
}
], - "sections": [
- {
- "section": {
- "name": "File",
- "vars": [
- {
- "var": {
- "name": "FILE_AND_FOLDER_MANAGEMENT_PATH",
- "value": "/root/test"
}
}
]
}
}, - {
- "section": {
- "name": "File cleaning options",
- "vars": [
- {
- "var": {
- "name": "FILE_AND_FOLDER_DELETION_DAYS",
- "value": "0"
}
}, - {
- "var": {
- "name": "FILE_AND_FOLDER_DELETION_OPTION",
- "value": "none"
}
}, - {
- "var": {
- "name": "FILE_AND_FOLDER_DELETION_PATTERN",
- "value": ".*"
}
}
]
}
}, - {
- "section": {
- "name": "Permissions",
- "vars": [
- {
- "var": {
- "name": "FILE_AND_FOLDER_MANAGEMENT_CHECK_PERMISSIONS",
- "value": "false"
}
}, - {
- "var": {
- "name": "FILE_AND_FOLDER_MANAGEMENT_GROUP",
- "value": ""
}
}, - {
- "var": {
- "name": "FILE_AND_FOLDER_MANAGEMENT_OWNER",
- "value": ""
}
}, - {
- "var": {
- "name": "FILE_AND_FOLDER_MANAGEMENT_PERM",
- "value": "000"
}
}, - {
- "var": {
- "name": "FILE_AND_FOLDER_MANAGEMENT_RECURSIVE",
- "value": "1"
}
}
]
}
}, - {
- "section": {
- "name": "Post-modification hook",
- "vars": [
- {
- "var": {
- "name": "FILE_AND_FOLDER_MANAGEMENT_POST_HOOK_COMMAND",
- "value": ""
}
}, - {
- "var": {
- "name": "FILE_AND_FOLDER_MANAGEMENT_POST_HOOK_RUN",
- "value": "false"
}
}
]
}
}
]
}
}
]
}
}
{- "result": "success",
- "action": "checkDirective",
- "data": {
- "directives": [
- {
- "id": "91252ea2-feb2-412d-8599-c6945fee02c4",
- "displayName": "91252ea2-feb2-412d-8599-c6945fee02c4",
- "shortDescription": "91252ea2-feb2-412d-8599-c6945fee02c4",
- "longDescription": "# Documentation\n* [Ticket link](https://tickets.example.com/issues/3456)",
- "techniqueName": "userManagement",
- "techniqueVersion": "8.0",
- "priority": 5,
- "enabled": true,
- "system": false,
- "policyMode": "audit",
- "tags": [
- {
- "customer": "MyCompany"
}
], - "parameters": {
- "name": "sections",
- "sections": [
- {
- "section": {
- "name": "File to manage",
- "vars": [
- {
- "var": {
- "name": "FILE_AND_FOLDER_MANAGEMENT_ACTION",
- "value": "copy"
}
}, - {
- "var": {
- "name": "FILE_AND_FOLDER_MANAGEMENT_SOURCE",
- "value": "/vagrant/node.sh"
}
}, - {
- "var": {
- "name": "FILE_AND_FOLDER_MANAGEMENT_SYMLINK_ENFORCE",
- "value": "false"
}
}
], - "sections": [
- {
- "section": {
- "name": "File",
- "vars": [
- {
- "var": {
- "name": "FILE_AND_FOLDER_MANAGEMENT_PATH",
- "value": "/root/test"
}
}
]
}
}, - {
- "section": {
- "name": "File cleaning options",
- "vars": [
- {
- "var": {
- "name": "FILE_AND_FOLDER_DELETION_DAYS",
- "value": "0"
}
}, - {
- "var": {
- "name": "FILE_AND_FOLDER_DELETION_OPTION",
- "value": "none"
}
}, - {
- "var": {
- "name": "FILE_AND_FOLDER_DELETION_PATTERN",
- "value": ".*"
}
}
]
}
}, - {
- "section": {
- "name": "Permissions",
- "vars": [
- {
- "var": {
- "name": "FILE_AND_FOLDER_MANAGEMENT_CHECK_PERMISSIONS",
- "value": "false"
}
}, - {
- "var": {
- "name": "FILE_AND_FOLDER_MANAGEMENT_GROUP",
- "value": ""
}
}, - {
- "var": {
- "name": "FILE_AND_FOLDER_MANAGEMENT_OWNER",
- "value": ""
}
}, - {
- "var": {
- "name": "FILE_AND_FOLDER_MANAGEMENT_PERM",
- "value": "000"
}
}, - {
- "var": {
- "name": "FILE_AND_FOLDER_MANAGEMENT_RECURSIVE",
- "value": "1"
}
}
]
}
}, - {
- "section": {
- "name": "Post-modification hook",
- "vars": [
- {
- "var": {
- "name": "FILE_AND_FOLDER_MANAGEMENT_POST_HOOK_COMMAND",
- "value": ""
}
}, - {
- "var": {
- "name": "FILE_AND_FOLDER_MANAGEMENT_POST_HOOK_RUN",
- "value": "false"
}
}
]
}
}
]
}
}
]
}
}
]
}
}
Get all generic methods metadata
result required | string Enum: "success" "error" Result of the request |
action required | string Value: "listTechniques" The id of the action |
required | object |
curl --header "X-API-Token: yourToken" --request GET https://rudder.example.com/rudder/api/latest/methods
{- "result": "success",
- "action": "listTechniques",
- "data": {
- "methods": {
- "id": "package_present",
- "name": "Package present",
- "version": "1.0",
- "category": "user_techniques",
- "desc": "Enforce the presence of a package",
- "documentation": "toto",
- "parameters": [
- {
- "name": "package",
- "description": "Name of a package to install",
- "constraints": {
- "allow_empty_string": false,
- "allow_whitespace_string": true,
- "max_length": 250,
- "min_length": 5,
- "regex": ".*",
- "not_regex": "^c.*",
- "select": [
- "!="
]
}, - "typ": "test"
}
], - "agents": [
- "dsc"
], - "condition": {
- "prefix": "package_present",
- "parameter": "package"
}, - "deprecated": {
- "info": "titi",
- "replacedBy": "tutu"
}
}
}
}
Reload methods metadata from file system
result required | string Enum: "success" "error" Result of the request |
action required | string Value: "listTechniques" The id of the action |
required | object |
curl --header "X-API-Token: yourToken" --request POST https://rudder.example.com/rudder/api/latest/methods/reload
{- "result": "success",
- "action": "listTechniques",
- "data": {
- "methods": {
- "id": "package_present",
- "name": "Package present",
- "version": "1.0",
- "category": "user_techniques",
- "desc": "Enforce the presence of a package",
- "documentation": "toto",
- "parameters": [
- {
- "name": "package",
- "description": "Name of a package to install",
- "constraints": {
- "allow_empty_string": false,
- "allow_whitespace_string": true,
- "max_length": 250,
- "min_length": 5,
- "regex": ".*",
- "not_regex": "^c.*",
- "select": [
- "!="
]
}, - "typ": "test"
}
], - "agents": [
- "dsc"
], - "condition": {
- "prefix": "package_present",
- "parameter": "package"
}, - "deprecated": {
- "info": "titi",
- "replacedBy": "tutu"
}
}
}
}
List all technique with their versions
result required | string Enum: "success" "error" Result of the request |
action required | string Value: "listTechniques" The id of the action |
required | object |
curl --header "X-API-Token: yourToken" --request GET https://rudder.example.com/rudder/api/latest/techniques
{- "result": "success",
- "action": "listTechniques",
- "data": {
- "techniques": [
- {
- "id": "security-policy",
- "name": "Security Policy",
- "version": "1.0",
- "category": "user_techniques",
- "description": "This techniques apply generic security policies",
- "source": "editor",
- "parameters": [
- {
- "id": "6a8de98f-7829-4c1b-b4e7-b9387f27f279",
- "name": "Package to install",
- "description": "Name of a package to install",
- "mayBeEmpty": true
}
], - "resources": [
- {
- "name": "conf/my/app/new",
- "state": "modified"
}
], - "calls": [
- {
- "id": "6a8de98f-7829-4c1b-b4e7-b9387f27f279",
- "component": "Install apache2",
- "method": "package_present",
- "condition": "linux.package_present_vim_repaired",
- "disableReporting": true,
- "parameters": [
- {
- "name": "package",
- "value": "apache2"
}
]
}
]
}
]
}
}
Create a new technique in Rudder from a technique in the technique editor
object (editorTechnique) |
result required | string Enum: "success" "error" Result of the request |
action required | string Value: "listTechniques" The id of the action |
required | object |
[- {
- "id": "security-policy",
- "name": "Security Policy",
- "version": "1.0",
- "category": "user_techniques",
- "description": "This techniques apply generic security policies",
- "source": "editor",
- "parameters": [
- {
- "id": "6a8de98f-7829-4c1b-b4e7-b9387f27f279",
- "name": "Package to install",
- "description": "Name of a package to install",
- "mayBeEmpty": true
}
], - "resources": [
- {
- "name": "conf/my/app/new",
- "state": "modified"
}
], - "calls": [
- {
- "id": "6a8de98f-7829-4c1b-b4e7-b9387f27f279",
- "component": "Install apache2",
- "method": "package_present",
- "condition": "linux.package_present_vim_repaired",
- "disableReporting": true,
- "parameters": [
- {
- "name": "package",
- "value": "apache2"
}
]
}
]
}
]
{- "result": "success",
- "action": "listTechniques",
- "data": {
- "techniques": {
- "technique": {
- "id": "security-policy",
- "name": "Security Policy",
- "version": "1.0",
- "category": "user_techniques",
- "description": "This techniques apply generic security policies",
- "source": "editor",
- "parameters": [
- {
- "id": "6a8de98f-7829-4c1b-b4e7-b9387f27f279",
- "name": "Package to install",
- "description": "Name of a package to install",
- "mayBeEmpty": true
}
], - "resources": [
- {
- "name": "conf/my/app/new",
- "state": "modified"
}
], - "calls": [
- {
- "id": "6a8de98f-7829-4c1b-b4e7-b9387f27f279",
- "component": "Install apache2",
- "method": "package_present",
- "condition": "linux.package_present_vim_repaired",
- "disableReporting": true,
- "parameters": [
- {
- "name": "package",
- "value": "apache2"
}
]
}
]
}
}
}
}
Get all technique categories
result required | string Enum: "success" "error" Result of the request |
action required | string Value: "listTechniques" The id of the action |
required | object |
curl --header "X-API-Token: yourToken" --request GET https://rudder.example.com/rudder/api/latest/techniques/categories
{- "result": "success",
- "action": "listTechniques",
- "data": {
- "techniqueCategories": {
- "name": "/",
- "path": "",
- "id": "/",
- "subcategories": [
- {
- "name": "User Techniques",
- "path": "systemSettings/systemManagement",
- "id": "systemManagement",
- "subcategories": [ ]
}
]
}
}
}
Reload all techniques metadata from file system
result required | string Enum: "success" "error" Result of the request |
action required | string Value: "listTechniques" The id of the action |
required | object |
curl --header "X-API-Token: yourToken" --request POST https://rudder.example.com/rudder/api/latest/techniques/reload
{- "result": "success",
- "action": "listTechniques",
- "data": {
- "techniques": [
- {
- "id": "security-policy",
- "name": "Security Policy",
- "version": "1.0",
- "category": "user_techniques",
- "description": "This techniques apply generic security policies",
- "source": "editor",
- "parameters": [
- {
- "id": "6a8de98f-7829-4c1b-b4e7-b9387f27f279",
- "name": "Package to install",
- "description": "Name of a package to install",
- "mayBeEmpty": true
}
], - "resources": [
- {
- "name": "conf/my/app/new",
- "state": "modified"
}
], - "calls": [
- {
- "id": "6a8de98f-7829-4c1b-b4e7-b9387f27f279",
- "component": "Install apache2",
- "method": "package_present",
- "condition": "linux.package_present_vim_repaired",
- "disableReporting": true,
- "parameters": [
- {
- "name": "package",
- "value": "apache2"
}
]
}
]
}
]
}
}
List all techniques version
result required | string Enum: "success" "error" Result of the request |
action required | string Value: "listTechniques" The id of the action |
required | object |
curl --header "X-API-Token: yourToken" --request GET https://rudder.example.com/rudder/api/latest/techniques/versions
{- "result": "success",
- "action": "listTechniques",
- "data": {
- "techniques": [
- {
- "name": "userManagement",
- "version": [
- "1.0",
- "1.2",
- "3.0"
]
}
]
}
}
Get each Technique's versions with their metadata by ID
techniqueId required | string Example: userManagement Technique ID |
result required | string Enum: "success" "error" Result of the request |
action required | string Value: "listTechniques" The id of the action |
required | object |
curl --header "X-API-Token: yourToken" --request GET https://rudder.example.com/rudder/api/latest/techniques/foo
{- "result": "success",
- "action": "listTechniques",
- "data": {
- "techniques": [
- {
- "JREditorTechnique": {
- "id": "security-policy",
- "name": "Security Policy",
- "version": "1.0",
- "category": "user_techniques",
- "description": "This techniques apply generic security policies",
- "source": "editor",
- "parameters": [
- {
- "id": "6a8de98f-7829-4c1b-b4e7-b9387f27f279",
- "name": "Package to install",
- "description": "Name of a package to install",
- "mayBeEmpty": true
}
], - "resources": [
- {
- "name": "conf/my/app/new",
- "state": "modified"
}
], - "calls": [
- {
- "id": "6a8de98f-7829-4c1b-b4e7-b9387f27f279",
- "component": "Install apache2",
- "method": "package_present",
- "condition": "linux.package_present_vim_repaired",
- "disableReporting": true,
- "parameters": [
- {
- "name": "package",
- "value": "apache2"
}
]
}
]
}
}
]
}
}
List all directives based on all version of a technique
techniqueId required | string Example: userManagement Technique ID |
result required | string Enum: "success" "error" Result of the request |
action required | string Value: "listTechniquesDirectives" The id of the action |
required | object |
curl --header "X-API-Token: yourToken" --request GET https://rudder.example.com/rudder/api/latest/techniques/checkGenericFileContent/directives
{- "result": "success",
- "action": "listTechniquesDirectives",
- "data": {
- "directives": [
- {
- "id": "91252ea2-feb2-412d-8599-c6945fee02c4",
- "displayName": "91252ea2-feb2-412d-8599-c6945fee02c4",
- "shortDescription": "91252ea2-feb2-412d-8599-c6945fee02c4",
- "longDescription": "# Documentation\n* [Ticket link](https://tickets.example.com/issues/3456)",
- "techniqueName": "userManagement",
- "techniqueVersion": "8.0",
- "priority": 5,
- "enabled": true,
- "system": false,
- "policyMode": "audit",
- "tags": [
- {
- "customer": "MyCompany"
}
], - "parameters": {
- "name": "sections",
- "sections": [
- {
- "section": {
- "name": "File to manage",
- "vars": [
- {
- "var": {
- "name": "FILE_AND_FOLDER_MANAGEMENT_ACTION",
- "value": "copy"
}
}, - {
- "var": {
- "name": "FILE_AND_FOLDER_MANAGEMENT_SOURCE",
- "value": "/vagrant/node.sh"
}
}, - {
- "var": {
- "name": "FILE_AND_FOLDER_MANAGEMENT_SYMLINK_ENFORCE",
- "value": "false"
}
}
], - "sections": [
- {
- "section": {
- "name": "File",
- "vars": [
- {
- "var": {
- "name": "FILE_AND_FOLDER_MANAGEMENT_PATH",
- "value": "/root/test"
}
}
]
}
}, - {
- "section": {
- "name": "File cleaning options",
- "vars": [
- {
- "var": {
- "name": "FILE_AND_FOLDER_DELETION_DAYS",
- "value": "0"
}
}, - {
- "var": {
- "name": "FILE_AND_FOLDER_DELETION_OPTION",
- "value": "none"
}
}, - {
- "var": {
- "name": "FILE_AND_FOLDER_DELETION_PATTERN",
- "value": ".*"
}
}
]
}
}, - {
- "section": {
- "name": "Permissions",
- "vars": [
- {
- "var": {
- "name": "FILE_AND_FOLDER_MANAGEMENT_CHECK_PERMISSIONS",
- "value": "false"
}
}, - {
- "var": {
- "name": "FILE_AND_FOLDER_MANAGEMENT_GROUP",
- "value": ""
}
}, - {
- "var": {
- "name": "FILE_AND_FOLDER_MANAGEMENT_OWNER",
- "value": ""
}
}, - {
- "var": {
- "name": "FILE_AND_FOLDER_MANAGEMENT_PERM",
- "value": "000"
}
}, - {
- "var": {
- "name": "FILE_AND_FOLDER_MANAGEMENT_RECURSIVE",
- "value": "1"
}
}
]
}
}, - {
- "section": {
- "name": "Post-modification hook",
- "vars": [
- {
- "var": {
- "name": "FILE_AND_FOLDER_MANAGEMENT_POST_HOOK_COMMAND",
- "value": ""
}
}, - {
- "var": {
- "name": "FILE_AND_FOLDER_MANAGEMENT_POST_HOOK_RUN",
- "value": "false"
}
}
]
}
}
]
}
}
]
}
}
]
}
}
Update technique created with technique editor
techniqueId required | string Example: userManagement Technique ID |
techniqueVersion required | string Example: 6.0 Technique version |
object (editorTechnique) |
result required | string Enum: "success" "error" Result of the request |
action required | string Value: "listTechniques" The id of the action |
required | object |
[- {
- "id": "security-policy",
- "name": "Security Policy",
- "version": "1.0",
- "category": "user_techniques",
- "description": "This techniques apply generic security policies",
- "source": "editor",
- "parameters": [
- {
- "id": "6a8de98f-7829-4c1b-b4e7-b9387f27f279",
- "name": "Package to install",
- "description": "Name of a package to install",
- "mayBeEmpty": true
}
], - "resources": [
- {
- "name": "conf/my/app/new",
- "state": "modified"
}
], - "calls": [
- {
- "id": "6a8de98f-7829-4c1b-b4e7-b9387f27f279",
- "component": "Install apache2",
- "method": "package_present",
- "condition": "linux.package_present_vim_repaired",
- "disableReporting": true,
- "parameters": [
- {
- "name": "package",
- "value": "apache2"
}
]
}
]
}
]
{- "result": "success",
- "action": "listTechniques",
- "data": {
- "techniques": {
- "technique": {
- "id": "security-policy",
- "name": "Security Policy",
- "version": "1.0",
- "category": "user_techniques",
- "description": "This techniques apply generic security policies",
- "source": "editor",
- "parameters": [
- {
- "id": "6a8de98f-7829-4c1b-b4e7-b9387f27f279",
- "name": "Package to install",
- "description": "Name of a package to install",
- "mayBeEmpty": true
}
], - "resources": [
- {
- "name": "conf/my/app/new",
- "state": "modified"
}
], - "calls": [
- {
- "id": "6a8de98f-7829-4c1b-b4e7-b9387f27f279",
- "component": "Install apache2",
- "method": "package_present",
- "condition": "linux.package_present_vim_repaired",
- "disableReporting": true,
- "parameters": [
- {
- "name": "package",
- "value": "apache2"
}
]
}
]
}
}
}
}
Delete a technique from technique editor
techniqueId required | string Example: userManagement Technique ID |
techniqueVersion required | string Example: 6.0 Technique version |
result required | string Enum: "success" "error" Result of the request |
action required | string Value: "listTechniques" The id of the action |
required | object |
curl --header "X-API-Token: yourToken" --request DELETE https://rudder.example.com/rudder/api/latest/techniques/foo/1.0
{- "result": "success",
- "action": "listTechniques",
- "data": {
- "techniques": {
- "id": "foo",
- "version": 1
}
}
}
Get Technique metadata
techniqueId required | string Example: userManagement Technique ID |
techniqueVersion required | string Example: 6.0 Technique version |
result required | string Enum: "success" "error" Result of the request |
action required | string Value: "listTechniques" The id of the action |
required | object |
curl --header "X-API-Token: yourToken" --request GET https://rudder.example.com/rudder/api/latest/techniques/foo/1.0
{- "result": "success",
- "action": "listTechniques",
- "data": {
- "techniques": [
- {
- "JREditorTechnique": {
- "id": "security-policy",
- "name": "Security Policy",
- "version": "1.0",
- "category": "user_techniques",
- "description": "This techniques apply generic security policies",
- "source": "editor",
- "parameters": [
- {
- "id": "6a8de98f-7829-4c1b-b4e7-b9387f27f279",
- "name": "Package to install",
- "description": "Name of a package to install",
- "mayBeEmpty": true
}
], - "resources": [
- {
- "name": "conf/my/app/new",
- "state": "modified"
}
], - "calls": [
- {
- "id": "6a8de98f-7829-4c1b-b4e7-b9387f27f279",
- "component": "Install apache2",
- "method": "package_present",
- "condition": "linux.package_present_vim_repaired",
- "disableReporting": true,
- "parameters": [
- {
- "name": "package",
- "value": "apache2"
}
]
}
]
}
}
]
}
}
List all directives based on a version of a technique
techniqueId required | string Example: userManagement Technique ID |
techniqueVersion required | string Example: 6.0 Technique version |
result required | string Enum: "success" "error" Result of the request |
action required | string Value: "listTechniqueDirectives" The id of the action |
required | object |
curl --header "X-API-Token: yourToken" --request GET https://rudder.example.com/rudder/api/latest/techniques/checkGenericFileContent/6.0/directives
{- "result": "success",
- "action": "listTechniqueDirectives",
- "data": {
- "directives": [
- {
- "id": "91252ea2-feb2-412d-8599-c6945fee02c4",
- "displayName": "91252ea2-feb2-412d-8599-c6945fee02c4",
- "shortDescription": "91252ea2-feb2-412d-8599-c6945fee02c4",
- "longDescription": "# Documentation\n* [Ticket link](https://tickets.example.com/issues/3456)",
- "techniqueName": "userManagement",
- "techniqueVersion": "8.0",
- "priority": 5,
- "enabled": true,
- "system": false,
- "policyMode": "audit",
- "tags": [
- {
- "customer": "MyCompany"
}
], - "parameters": {
- "name": "sections",
- "sections": [
- {
- "section": {
- "name": "File to manage",
- "vars": [
- {
- "var": {
- "name": "FILE_AND_FOLDER_MANAGEMENT_ACTION",
- "value": "copy"
}
}, - {
- "var": {
- "name": "FILE_AND_FOLDER_MANAGEMENT_SOURCE",
- "value": "/vagrant/node.sh"
}
}, - {
- "var": {
- "name": "FILE_AND_FOLDER_MANAGEMENT_SYMLINK_ENFORCE",
- "value": "false"
}
}
], - "sections": [
- {
- "section": {
- "name": "File",
- "vars": [
- {
- "var": {
- "name": "FILE_AND_FOLDER_MANAGEMENT_PATH",
- "value": "/root/test"
}
}
]
}
}, - {
- "section": {
- "name": "File cleaning options",
- "vars": [
- {
- "var": {
- "name": "FILE_AND_FOLDER_DELETION_DAYS",
- "value": "0"
}
}, - {
- "var": {
- "name": "FILE_AND_FOLDER_DELETION_OPTION",
- "value": "none"
}
}, - {
- "var": {
- "name": "FILE_AND_FOLDER_DELETION_PATTERN",
- "value": ".*"
}
}
]
}
}, - {
- "section": {
- "name": "Permissions",
- "vars": [
- {
- "var": {
- "name": "FILE_AND_FOLDER_MANAGEMENT_CHECK_PERMISSIONS",
- "value": "false"
}
}, - {
- "var": {
- "name": "FILE_AND_FOLDER_MANAGEMENT_GROUP",
- "value": ""
}
}, - {
- "var": {
- "name": "FILE_AND_FOLDER_MANAGEMENT_OWNER",
- "value": ""
}
}, - {
- "var": {
- "name": "FILE_AND_FOLDER_MANAGEMENT_PERM",
- "value": "000"
}
}, - {
- "var": {
- "name": "FILE_AND_FOLDER_MANAGEMENT_RECURSIVE",
- "value": "1"
}
}
]
}
}, - {
- "section": {
- "name": "Post-modification hook",
- "vars": [
- {
- "var": {
- "name": "FILE_AND_FOLDER_MANAGEMENT_POST_HOOK_COMMAND",
- "value": ""
}
}, - {
- "var": {
- "name": "FILE_AND_FOLDER_MANAGEMENT_POST_HOOK_RUN",
- "value": "false"
}
}
]
}
}
]
}
}
]
}
}
]
}
}
Get currently deployed resources of a technique
techniqueId required | string Example: userManagement Technique ID |
techniqueVersion required | string Example: 6.0 Technique version |
result required | string Enum: "success" "error" Result of the request |
action required | string Value: "listTechniques" The id of the action |
required | object |
curl --header "X-API-Token: yourToken" --request GET https://rudder.example.com/rudder/api/latest/techniques/bar/1.0/resources
{- "result": "success",
- "action": "listTechniques",
- "data": {
- "resources": [
- {
- "name": "apply-policy.robot",
- "state": "untouched"
}
]
}
}
Get revisions for given technique
techniqueId required | string Example: userManagement Technique ID |
techniqueVersion required | string Example: 6.0 Technique version |
result required | string Enum: "success" "error" Result of the request |
action required | string Value: "listTechniques" The id of the action |
required | object |
curl --header "X-API-Token: yourToken" --request GET https://rudder.example.com/rudder/api/latest/techniques/foo/1.0/revisions
{- "result": "success",
- "action": "listTechniques",
- "data": {
- "techniques": [
- {
- "revision": "6faf7e9c47f2c3a41784598b5acf2883bd4e1e08",
- "date": "2022-06-14T16:20:40+02:00",
- "author": "admin",
- "message": "Committing technique bar"
}
]
}
}
List all groups
result required | string Enum: "success" "error" Result of the request |
action required | string Value: "listGroups" The id of the action |
required | object |
curl --header "X-API-Token: yourToken" --request GET https://rudder.example.com/rudder/api/latest/groups
{- "result": "success",
- "action": "listGroups",
- "data": {
- "groups": [
- {
- "id": "32d013f7-b6d8-46c8-99d3-016307fa66c0",
- "displayName": "Ubuntu 18.04 nodes",
- "description": "Documentation for the group",
- "query": {
- "select": "node",
- "composition": "and",
- "where": [
- {
- "objectType": "node",
- "attribute": "OS",
- "comparator": "eq",
- "value": "Linux"
}
]
}, - "nodeIds": [
- "109142a2-40eb-4e6d-84b4-7ebe3670474c"
], - "dynamic": true,
- "enabled": true,
- "groupClass": [
- "group_ubuntu"
], - "properties": [
- {
- "name": "os",
- "value": "debian10"
}
]
}
]
}
}
Create a new group based in provided parameters
source | string <uuid> The id of the group the clone will be based onto. If this parameter if provided, the new group will be a clone of this source. Other value will override values from the source. |
category required | string <uuid> Id of the new group's category |
id | string <uuid> Default: "{autogenerated}" Group id, only provide it when needed. |
displayName required | string Name of the group |
description | string Group description |
object The criteria defining the group. If not provided, the group will be empty. | |
dynamic | boolean Default: true Should the group be dynamically refreshed (if not, it is a static group) |
enabled | boolean Default: true Enable or disable the group |
Array of objects Group properties |
result required | string Enum: "success" "error" Result of the request |
action required | string Value: "createGroup" The id of the action |
required | object |
{- "source": "b9f6d98a-28bc-4d80-90f7-d2f14269e215",
- "category": "e17ecf6a-a9f2-44de-a97c-116d24d30ff4",
- "id": "32d013f7-b6d8-46c8-99d3-016307fa66c0",
- "displayName": "Ubuntu 18.04 nodes",
- "description": "Documentation for the group",
- "query": {
- "select": "node",
- "composition": "and",
- "where": [
- {
- "objectType": "node",
- "attribute": "OS",
- "comparator": "eq",
- "value": "Linux"
}
]
}, - "dynamic": true,
- "enabled": true,
- "properties": [
- {
- "name": "os",
- "value": "debian10"
}
]
}
{- "result": "success",
- "action": "createGroup",
- "data": {
- "groups": [
- {
- "id": "32d013f7-b6d8-46c8-99d3-016307fa66c0",
- "displayName": "Ubuntu 18.04 nodes",
- "description": "Documentation for the group",
- "query": {
- "select": "node",
- "composition": "and",
- "where": [
- {
- "objectType": "node",
- "attribute": "OS",
- "comparator": "eq",
- "value": "Linux"
}
]
}, - "nodeIds": [
- "109142a2-40eb-4e6d-84b4-7ebe3670474c"
], - "dynamic": true,
- "enabled": true,
- "groupClass": [
- "group_ubuntu"
], - "properties": [
- {
- "name": "os",
- "value": "debian10"
}
]
}
]
}
}
Create a new group category
parent required | string <uuid> The parent category of the groups |
id | string <uuid> Default: "{autogenerated}" Group category id, only provide it when needed. |
name required | string Name of the group category |
description | string Group category description |
result required | string Enum: "success" "error" Result of the request |
action required | string Value: "CreateGroupCategory" The id of the action |
required | object |
{- "parent": "b9f6d98a-28bc-4d80-90f7-d2f14269e215",
- "id": "32d013f7-b6d8-46c8-99d3-016307fa66c0",
- "name": "Hardware groups",
- "description": "Nodes by hardware provider"
}
{- "result": "success",
- "action": "CreateGroupCategory",
- "data": {
- "groupCategories": [
- {
- "parent": "b9f6d98a-28bc-4d80-90f7-d2f14269e215",
- "id": "32d013f7-b6d8-46c8-99d3-016307fa66c0",
- "name": "Hardware groups",
- "description": "Nodes by hardware provider"
}
]
}
}
Get detailed information about a group category
groupCategoryId required | string <uuid> Example: e0a311fa-f7b2-4f9e-89a9-db517b9c6b90 Group category id |
result required | string Enum: "success" "error" Result of the request |
action required | string Value: "GetGroupCategoryDetails" The id of the action |
required | object |
curl --header "X-API-Token: yourToken" --request GET 'https://rudder.example.com/rudder/api/latest/groups/categories/4306143d-eabf-4478-b7b1-1616f4aa02b5'
{- "result": "success",
- "action": "GetGroupCategoryDetails",
- "data": {
- "groupCategories": [
- {
- "parent": "b9f6d98a-28bc-4d80-90f7-d2f14269e215",
- "id": "32d013f7-b6d8-46c8-99d3-016307fa66c0",
- "name": "Hardware groups",
- "description": "Nodes by hardware provider"
}
]
}
}
Delete a group category. It must have no child groups and no children categories.
groupCategoryId required | string <uuid> Example: e0a311fa-f7b2-4f9e-89a9-db517b9c6b90 Group category id |
result required | string Enum: "success" "error" Result of the request |
action required | string Value: "DeleteGroupCategory" The id of the action |
required | object |
curl --header "X-API-Token: yourToken" --request DELETE 'https://rudder.example.com/rudder/api/latest/groups/categories/4306143d-eabf-4478-b7b1-1616f4aa02b5'
{- "result": "success",
- "action": "DeleteGroupCategory",
- "data": {
- "groupCategories": [
- {
- "parent": "b9f6d98a-28bc-4d80-90f7-d2f14269e215",
- "id": "32d013f7-b6d8-46c8-99d3-016307fa66c0",
- "name": "Hardware groups",
- "description": "Nodes by hardware provider"
}
]
}
}
Update detailed information about a group category
groupCategoryId required | string <uuid> Example: e0a311fa-f7b2-4f9e-89a9-db517b9c6b90 Group category id |
parent required | string <uuid> The parent category of the groups |
name required | string Name of the group category |
description | string Group category description |
result required | string Enum: "success" "error" Result of the request |
action required | string Value: "UpdateGroupCategory" The id of the action |
required | object |
{- "parent": "b9f6d98a-28bc-4d80-90f7-d2f14269e215",
- "name": "Hardware groups",
- "description": "Nodes by hardware provider"
}
{- "result": "success",
- "action": "UpdateGroupCategory",
- "data": {
- "groupCategories": [
- {
- "parent": "b9f6d98a-28bc-4d80-90f7-d2f14269e215",
- "id": "32d013f7-b6d8-46c8-99d3-016307fa66c0",
- "name": "Hardware groups",
- "description": "Nodes by hardware provider"
}
]
}
}
Get all available groups and their categories in a tree
result required | string Enum: "success" "error" Result of the request |
action required | string Value: "GetGroupTree" The id of the action |
required | object |
curl --header "X-API-Token: yourToken" --request GET https://rudder.example.com/rudder/api/latest/groups/tree
{- "result": "success",
- "action": "GetGroupTree",
- "data": {
- "id": "GroupRoot",
- "name": "Root of the group and group categories",
- "description": "This is the root category for the groups (both dynamic and static) and group categories",
- "parent": "GroupRoot",
- "categories": [
- {
- "id": "SystemGroups",
- "name": "System groups",
- "description": "That category holds all the system and special target",
- "parent": "GroupRoot",
- "categories": [ ],
- "groups": [
- {
- "id": "hasPolicyServer-root",
- "displayName": "All nodes managed by root policy server",
- "description": "All nodes known by Rudder directly connected to the root server",
- "query": {
- "select": "nodeAndPolicyServer",
- "composition": "And",
- "where": [
- {
- "objectType": "node",
- "attribute": "policyServerId",
- "comparator": "eq",
- "value": "root"
}
]
}, - "nodeIds": [
- "dd404bda-2785-4959-abaa-8f37a0bbd85e",
- "f6223b0e-e2aa-4d1f-b6d1-74de8ea8e513",
- "root"
], - "dynamic": true,
- "enabled": true
}
]
}, - {
- "id": "38dd2107-a73b-45fb-916d-e110312abb87",
- "name": "production groups",
- "description": "",
- "parent": "GroupRoot",
- "categories": [ ],
- "groups": [
- {
- "id": "79d83ff9-24d8-4be6-b1f7-cbb1c173f7a5",
- "displayName": "Linux nodes",
- "description": "",
- "query": {
- "select": "node",
- "composition": "And",
- "where": [
- {
- "objectType": "node",
- "attribute": "OS",
- "comparator": "eq",
- "value": "Linux"
}
]
}, - "nodeIds": [ ],
- "dynamic": false,
- "enabled": true
}
]
}
], - "groups": [
- {
- "id": "af208515-c2f2-4577-bbf4-9fffebbe6629",
- "displayName": "Test Clients",
- "description": "",
- "query": {
- "select": "node",
- "composition": "Or",
- "where": [
- {
- "objectType": "node",
- "attribute": "nodeHostname",
- "comparator": "regex",
- "value": "servername.*company.net"
}, - {
- "objectType": "node",
- "attribute": "nodeHostname",
- "comparator": "regex",
- "value": "lt serverbla.*company.net"
}
]
}, - "nodeIds": [ ],
- "dynamic": true,
- "enabled": true
}, - {
- "id": "d7634b2d-7189-422b-9971-24c29b75da46",
- "displayName": "Test Clients",
- "description": "",
- "query": {
- "select": "node",
- "composition": "Or",
- "where": [
- {
- "objectType": "node",
- "attribute": "nodeHostname",
- "comparator": "regex",
- "value": "servername.*company.net"
}, - {
- "objectType": "node",
- "attribute": "nodeHostname",
- "comparator": "regex",
- "value": "lt serverbla.*company.net"
}
]
}, - "nodeIds": [ ],
- "dynamic": true,
- "enabled": true
}
]
}
}
Get detailed information about a group
groupId required | string <uuid> Example: 9a1773c9-0889-40b6-be89-f6504443ac1b Id of the group |
result required | string Enum: "success" "error" Result of the request |
action required | string Value: "groupDetails" The id of the action |
required | object |
curl --header "X-API-Token: yourToken" --request GET 'https://rudder.example.com/rudder/api/latest/groups/17dadf50-6056-4c8b-a935-6b97d14b89a7'
{- "result": "success",
- "action": "groupDetails",
- "data": {
- "groups": [
- {
- "id": "32d013f7-b6d8-46c8-99d3-016307fa66c0",
- "displayName": "Ubuntu 18.04 nodes",
- "description": "Documentation for the group",
- "query": {
- "select": "node",
- "composition": "and",
- "where": [
- {
- "objectType": "node",
- "attribute": "OS",
- "comparator": "eq",
- "value": "Linux"
}
]
}, - "nodeIds": [
- "109142a2-40eb-4e6d-84b4-7ebe3670474c"
], - "dynamic": true,
- "enabled": true,
- "groupClass": [
- "group_ubuntu"
], - "properties": [
- {
- "name": "os",
- "value": "debian10"
}
]
}
]
}
}
Update detailed information about a group
groupId required | string <uuid> Example: 9a1773c9-0889-40b6-be89-f6504443ac1b Id of the group |
category | string <uuid> Id of the new group's category |
displayName | string Name of the group |
description | string Group description |
object The criteria defining the group. If not provided, the group will be empty. | |
dynamic | boolean Default: true Should the group be dynamically refreshed (if not, it is a static group) |
enabled | boolean Default: true Enable or disable the group |
result required | string Enum: "success" "error" Result of the request |
action required | string Value: "updateGroup" The id of the action |
required | object |
{- "category": "e17ecf6a-a9f2-44de-a97c-116d24d30ff4",
- "displayName": "Ubuntu 18.04 nodes",
- "description": "Documentation for the group",
- "query": {
- "select": "node",
- "composition": "and",
- "where": [
- {
- "objectType": "node",
- "attribute": "OS",
- "comparator": "eq",
- "value": "Linux"
}
]
}, - "dynamic": true,
- "enabled": true
}
{- "result": "success",
- "action": "updateGroup",
- "data": {
- "groups": [
- {
- "id": "32d013f7-b6d8-46c8-99d3-016307fa66c0",
- "displayName": "Ubuntu 18.04 nodes",
- "description": "Documentation for the group",
- "query": {
- "select": "node",
- "composition": "and",
- "where": [
- {
- "objectType": "node",
- "attribute": "OS",
- "comparator": "eq",
- "value": "Linux"
}
]
}, - "nodeIds": [
- "109142a2-40eb-4e6d-84b4-7ebe3670474c"
], - "dynamic": true,
- "enabled": true,
- "groupClass": [
- "group_ubuntu"
], - "properties": [
- {
- "name": "os",
- "value": "debian10"
}
]
}
]
}
}
Update detailed information about a group
groupId required | string <uuid> Example: 9a1773c9-0889-40b6-be89-f6504443ac1b Id of the group |
result required | string Enum: "success" "error" Result of the request |
action required | string Value: "deleteGroup" The id of the action |
required | object |
curl --header "X-API-Token: yourToken" --request DELETE 'https://rudder.example.com/rudder/api/latest/groups/17dadf50-6056-4c8b-a935-6b97d14b89a7'
{- "result": "success",
- "action": "deleteGroup",
- "data": {
- "groups": [
- {
- "id": "32d013f7-b6d8-46c8-99d3-016307fa66c0",
- "displayName": "Ubuntu 18.04 nodes",
- "description": "Documentation for the group",
- "query": {
- "select": "node",
- "composition": "and",
- "where": [
- {
- "objectType": "node",
- "attribute": "OS",
- "comparator": "eq",
- "value": "Linux"
}
]
}, - "nodeIds": [
- "109142a2-40eb-4e6d-84b4-7ebe3670474c"
], - "dynamic": true,
- "enabled": true,
- "groupClass": [
- "group_ubuntu"
], - "properties": [
- {
- "name": "os",
- "value": "debian10"
}
]
}
]
}
}
Recompute the content of a group
groupId required | string <uuid> Example: 9a1773c9-0889-40b6-be89-f6504443ac1b Id of the group |
result required | string Enum: "success" "error" Result of the request |
action required | string Value: "reloadGroup" The id of the action |
required | object |
curl --header "X-API-Token: yourToken" --request POST 'https://rudder.example.com/rudder/api/latest/groups/17dadf50-6056-4c8b-a935-6b97d14b89a7/reload'
{- "result": "success",
- "action": "reloadGroup",
- "data": {
- "groups": [
- {
- "id": "32d013f7-b6d8-46c8-99d3-016307fa66c0",
- "displayName": "Ubuntu 18.04 nodes",
- "description": "Documentation for the group",
- "query": {
- "select": "node",
- "composition": "and",
- "where": [
- {
- "objectType": "node",
- "attribute": "OS",
- "comparator": "eq",
- "value": "Linux"
}
]
}, - "nodeIds": [
- "109142a2-40eb-4e6d-84b4-7ebe3670474c"
], - "dynamic": true,
- "enabled": true,
- "groupClass": [
- "group_ubuntu"
], - "properties": [
- {
- "name": "os",
- "value": "debian10"
}
]
}
]
}
}
Get information about the nodes managed by the target server
include | string <comma-separated list> Default: "default" Example: include=minimal Level of information to include from the node inventory. Some base levels are defined (minimal, default, full). You can add fields you want to a base level by adding them to the list, possible values are keys from json answer. If you don't provide a base level, they will be added to
|
object The criterion you want to find for your nodes. Replaces the | |
Array of objects The criterion you want to find for your nodes | |
composition | string Default: "and" Enum: "and" "or" Example: composition=and Boolean operator to use between each |
select | string Default: "node" What kind of data we want to include. Here we can get policy servers/relay by setting |
result required | string Enum: "success" "error" Result of the request |
action required | string Value: "listAcceptedNodes" The id of the action |
required | object Information about the nodes |
# To get the Linux nodes with a hostname starting with "node1" curl -g --header "X-API-Token: yourToken" 'https://rudder.example.com/rudder/api/latest/nodes?where=[{"objectType":"node","attribute":"OS","comparator":"eq","value":"Linux"},{"objectType":"node","attribute":"nodeHostname","comparator":"regex","value":"node1.*"}]&composition=And' # To get the list of nodes with their agent version curl -k -H "X-API-Token: yourToken" -X GET "https://rudder.example.com/rudder/api/latest/nodes?include=minimal,managementTechnology" | jq '.data.nodes[] | {"id": .id, "version": .managementTechnology[].version}' # To get information about the eth0 interface of a specific node curl -k -H "X-API-Token: yourToken" -H "Content-Type: application/json" -X GET 'https://rudder.example.com/rudder/api/latest/nodes/8b168194-c0b4-41ab-b2b5-9571a8906d59?include=networkInterfaces' | jq '.data.nodes[].networkInterfaces[] | select(.name == "eth0")' # It gives: # #{ # "name": "eth0", # "type": "ethernet", # "status": "Up", # "macAddress": "52:54:00:49:45:ac", # "ipAddresses": [ # "fe80:0:0:0:5054:ff:fe49:45ac", # "192.168.110.21" # ] #} # To get information about the nodes running a JVM process # # This gets information about nodes with processes matching the quesry, and then extract the flat list of matching processes curl -g -s -H "X-API-Token: yourToken" 'https://rudder.example.com/rudder/api/latest/nodes?include=minimal,processes&where=[{"objectType":"process","attribute":"commandName","comparator":"regex","value":".*(java|jre|jdk).*"}]' | jq -r '.data.nodes[] | [ { hostname } + .processes[] ][] | select( .name | test(".*(java|jdk|jre).*")) | [.hostname, .user, .name] | @tsv' | cut -c -120 # It gives: # # node1.example.com jenkins java -jar remoting.jar -workDir /home/jenkins -jar-cache /home/jenkins/rem # node2.example.com tomcat8 /usr/lib/jvm/java-11-openjdk-amd64//bin/java -Djava.util.logging.config.fi
{- "result": "success",
- "action": "listAcceptedNodes",
- "data": {
- "nodes": [
- {
- "id": "9a1773c9-0889-40b6-be89-f6504443ac1b",
- "hostname": "node1.example.com",
- "status": "accepted",
- "architectureDescription": "x86_64",
- "description": "",
- "ipAddresses": [
- "192.168.23.45"
], - "lastRunDate": "2020-02-29T14:48:28Z",
- "lastInventoryDate": "2020-02-29T10:11:32Z",
- "machine": {
- "id": "string",
- "type": "Virtual",
- "provider": "vbox",
- "manufacturer": "innotek GmbH",
- "serialNumber": "ece12459-2b90-49c9-ab1e-72e38f797421"
}, - "os": {
- "type": "Linux",
- "name": "Centos",
- "version": "7.6.1810",
- "fullName": "CentOS Linux release 7.6.1810 (Core)",
- "servicePack": "3",
- "kernelVersion": "3.10.0-957.1.3.el7.x86_64"
}, - "managementTechnology": [
- {
- "name": "Rudder",
- "version": "6.0.3.release-1.EL.7",
- "capabilities": [
- "xml"
], - "nodeKind": "node",
- "rootComponents": [
- "rudder-db"
]
}
], - "policyServerId": "root",
- "properties": [
- {
- "name": "datacenter",
- "value": "AMS2"
}
], - "policyMode": "audit",
- "ram": 0,
- "timezone": {
- "name": "UTC",
- "offset": "+0000"
}, - "accounts": [
- "root"
], - "bios": {
- "name": "VirtualBox",
- "version": "1.2.3",
- "editor": "innotek GmbH",
- "quantity": 1,
- "releaseDate": "2006-12-01 00:00:00+0000",
- "description": "FIXME"
}, - "controllers": [
- {
- "name": "string",
- "type": "string",
- "quantity": 1,
- "description": "string",
- "manufacturer": "string"
}
], - "environmentVariables": [
- {
- "name": "LANG",
- "value": "en_US.UTF-8"
}
], - "fileSystems": [
- {
- "name": "ext4",
- "mountPoint": "/srv",
- "description": "string",
- "fileCount": 1456,
- "freeSpace": 3487,
- "totalSpace": 208869
}
], - "managementTechnologyDetails": {
- "cfengineKeys": [
- "-----BEGIN CERTIFICATE-----\\nMIIFqDCC[...]3tALNn\\n-----END CERTIFICATE-----"
], - "cfengineUser": "root"
}, - "memories": [
- {
- "name": "string",
- "speed": 1066,
- "type": "string",
- "caption": "string",
- "quantity": 1,
- "capacity": 2,
- "slotNumber": 3,
- "description": "string",
- "serialNumber": "string"
}
], - "networkInterfaces": [
- {
- "name": "eth0",
- "mask": [
- "255.255.255.0"
], - "type": "ethernet",
- "speed": "1000",
- "status": "Up",
- "dhcpServer": "192.168.34.5",
- "macAddress": "08:00:27:6f:5c:14",
- "ipAddresses": [
- "192.168.76.4"
]
}
], - "ports": [
- {
- "name": "string",
- "type": "string",
- "quantity": 1,
- "description": "string"
}
], - "processes": [
- {
- "pid": 3576,
- "tty": "?",
- "name": "/usr/sbin/httpd -DFOREGROUND",
- "user": "apache",
- "started": "2020-02-29 00:24",
- "memory": 0.4000000059604645,
- "virtualMemory": 4380,
- "cpuUsage": 1,
- "description": "string"
}
], - "processors": [
- {
- "name": "Intel(R) Core(TM) i7-7700HQ CPU @ 2.80GHz",
- "arch": "i386",
- "model": 158,
- "familyName": "string",
- "core": 1,
- "speed": 2800,
- "thread": 1,
- "stepping": 9,
- "manufacturer": "Intel",
- "quantity": 1,
- "cpuid": "string",
- "externalClock": "string",
- "description": "string"
}
], - "slots": [
- {
- "name": "string",
- "status": "string",
- "quantity": 0,
- "description": "string"
}
], - "software": [
- {
- "name": "libcurl",
- "version": "7.29.0-54.el7_7.2",
- "editor": "CentOS",
- "description": "A library for getting files from web servers",
- "releaseDate": "2019-08-24",
- "license": {
- "oem": "string",
- "name": "string",
- "productId": "string",
- "productKey": "string",
- "description": "string",
- "expirationDate": "2019-08-24"
}
}
], - "softwareUpdate": [
- {
- "name": null,
- "version": null,
- "arch": null,
- "from": null,
- "kind": "none",
- "source": null,
- "description": null,
- "severity": "critical",
- "ids": [
- null
]
}
], - "sound": [
- {
- "name": "string",
- "quantity": 1,
- "description": "string"
}
], - "storage": [
- {
- "name": "sda",
- "type": "disk",
- "size": 85899,
- "model": "VBOXHARDDISK",
- "firmware": "10",
- "quantity": 1,
- "description": "string",
- "manufacturer": "string",
- "serialNumber": "000a1954"
}
], - "videos": [
- {
- "name": "string",
- "memory": "string",
- "chipset": "string",
- "quantity": 1,
- "resolution": "string",
- "description": "string"
}
], - "virtualMachines": [
- {
- "name": "string",
- "type": "string",
- "uuid": "string",
- "vcpu": "string",
- "owner": "string",
- "status": "string",
- "memory": "string",
- "subsystem": "string",
- "description": "string"
}
]
}
]
}
}
Use the provided array of node information to create new nodes
id required | string The Rudder node unique identifier in /opt/rudder/etc/uuid.hive |
hostname required | string The fully qualified name of the node |
status required | string Enum: "accepted" "pending" Target status of the node |
required | object (os) |
policyServerId | string The policy server ID for that node. By default, "root" |
machineType required | string Enum: "vmware" "physical" "vm" "solariszone" "qemu" "xen" "aixlpar" "hyperv" "bsdjail" The kind of machine for the node (use vm for a generic VM) |
state | string Enum: "enabled" "ignored" "empty-policies" "initializing" "preparing-eol" Node lifecycle state. Can only be specified when status=accepted. If not specified, enable is used |
policyMode | string Enum: "enforce" "audit" The policy mode for the node. Can only be specified when status=accepted. If not specified, the default (global) mode will be used |
object (agent-key) Information about agent key or certificate | |
required | Array of objects Node properties (either set by user or filled by third party sources) |
ipAddresses required | Array of strings an array of IPs. |
object (timezone) Timezone information of the node. |
result required | string Enum: "success" "error" Result of the request |
action required | string Value: "createNode" The id of the action |
required | object |
[- {
- "id": "378740d3-c4a9-4474-8485-478e7e52db52",
- "hostname": "my.node.hostname.local",
- "status": "accepted",
- "os": {
- "type": "linux",
- "name": "debian",
- "version": 9.5,
- "fullName": "Debian GNU/Linux 9 (stretch)",
- "servicePack": "string"
}, - "policyServerId": "root",
- "machineType": "vmware",
- "state": "enabled",
- "policyMode": "enforce",
- "agentKey": {
- "value": "-----BEGIN CERTIFICATE-----\nMIIFqDCC[...]3tALNn\n-----END CERTIFICATE-----",
- "status": "certified"
}, - "properties": [
- {
- "name": "datacenter",
- "value": "AMS2"
}
], - "ipAddresses": [
- "192.168.180.90"
], - "timezone": {
- "name": "CEST",
- "offset": 200
}
}
]
{- "result": "success",
- "action": "createNode",
- "data": {
- "created": [
- "378740d3-c4a9-4474-8485-478e7e52db52"
], - "failed": [
- "string"
]
}
}
This API allows to trigger an agent run on all nodes. Response contains a json stating if agent could be started on each node, but not if the run went fine and do not display any output from it. You can see the result of the run in Rudder web interface or in the each agent logs.
result required | string Enum: "success" "error" Result of the request |
action required | string Value: "applyPolicyAllNodes" The id of the action |
required | Array of objects |
curl --header "X-API-Token: yourToken" --request POST https://rudder.example.com/rudder/api/latest/nodes/applyPolicy
{- "result": "success",
- "action": "applyPolicyAllNodes",
- "data": [
- {
- "id": "249e14ac-2418-457c-a27d-1650907b13c7",
- "hostname": "node.example.com",
- "result": "Started"
}
]
}
Get information about the nodes pending acceptation
include | string <comma-separated list> Default: "default" Example: include=minimal Level of information to include from the node inventory. Some base levels are defined (minimal, default, full). You can add fields you want to a base level by adding them to the list, possible values are keys from json answer. If you don't provide a base level, they will be added to
|
object The criterion you want to find for your nodes. Replaces the | |
Array of objects The criterion you want to find for your nodes | |
composition | string Default: "and" Enum: "and" "or" Example: composition=and Boolean operator to use between each |
select | string Default: "node" What kind of data we want to include. Here we can get policy servers/relay by setting |
result required | string Enum: "success" "error" Result of the request |
action required | string Value: "listPendingNodes" The id of the action |
required | object Information about the nodes |
# To get the list of pending nodes curl --header "X-API-Token: yourToken" 'https://rudder.example.com/rudder/api/latest/nodes/pending' # To get the pending Linux nodes with a hostname starting with "node1" curl --header "X-API-Token: yourToken" 'https://rudder.example.com/rudder/api/latest/nodes/pending?where=\[\{"objectType":"node","attribute":"OS","comparator":"eq","value":"Linux"\},\{"objectType":"node","attribute":"nodeHostname","comparator":"regex","value":"node1.*"\}\]' # To get the list of pending nodes with their agent version curl -k -H "X-API-Token: yourToken" -X GET "https://rudder.example.com/rudder/api/latest/nodes/pending?include=minimal,managementTechnology" | jq '.data.nodes[] | {"id": .id, "version": .managementTechnology[].version}'
{- "result": "success",
- "action": "listPendingNodes",
- "data": {
- "nodes": [
- {
- "id": "9a1773c9-0889-40b6-be89-f6504443ac1b",
- "hostname": "node1.example.com",
- "status": "accepted",
- "architectureDescription": "x86_64",
- "description": "",
- "ipAddresses": [
- "192.168.23.45"
], - "lastRunDate": "2020-02-29T14:48:28Z",
- "lastInventoryDate": "2020-02-29T10:11:32Z",
- "machine": {
- "id": "string",
- "type": "Virtual",
- "provider": "vbox",
- "manufacturer": "innotek GmbH",
- "serialNumber": "ece12459-2b90-49c9-ab1e-72e38f797421"
}, - "os": {
- "type": "Linux",
- "name": "Centos",
- "version": "7.6.1810",
- "fullName": "CentOS Linux release 7.6.1810 (Core)",
- "servicePack": "3",
- "kernelVersion": "3.10.0-957.1.3.el7.x86_64"
}, - "managementTechnology": [
- {
- "name": "Rudder",
- "version": "6.0.3.release-1.EL.7",
- "capabilities": [
- "xml"
], - "nodeKind": "node",
- "rootComponents": [
- "rudder-db"
]
}
], - "policyServerId": "root",
- "properties": [
- {
- "name": "datacenter",
- "value": "AMS2"
}
], - "policyMode": "audit",
- "ram": 0,
- "timezone": {
- "name": "UTC",
- "offset": "+0000"
}, - "accounts": [
- "root"
], - "bios": {
- "name": "VirtualBox",
- "version": "1.2.3",
- "editor": "innotek GmbH",
- "quantity": 1,
- "releaseDate": "2006-12-01 00:00:00+0000",
- "description": "FIXME"
}, - "controllers": [
- {
- "name": "string",
- "type": "string",
- "quantity": 1,
- "description": "string",
- "manufacturer": "string"
}
], - "environmentVariables": [
- {
- "name": "LANG",
- "value": "en_US.UTF-8"
}
], - "fileSystems": [
- {
- "name": "ext4",
- "mountPoint": "/srv",
- "description": "string",
- "fileCount": 1456,
- "freeSpace": 3487,
- "totalSpace": 208869
}
], - "managementTechnologyDetails": {
- "cfengineKeys": [
- "-----BEGIN CERTIFICATE-----\\nMIIFqDCC[...]3tALNn\\n-----END CERTIFICATE-----"
], - "cfengineUser": "root"
}, - "memories": [
- {
- "name": "string",
- "speed": 1066,
- "type": "string",
- "caption": "string",
- "quantity": 1,
- "capacity": 2,
- "slotNumber": 3,
- "description": "string",
- "serialNumber": "string"
}
], - "networkInterfaces": [
- {
- "name": "eth0",
- "mask": [
- "255.255.255.0"
], - "type": "ethernet",
- "speed": "1000",
- "status": "Up",
- "dhcpServer": "192.168.34.5",
- "macAddress": "08:00:27:6f:5c:14",
- "ipAddresses": [
- "192.168.76.4"
]
}
], - "ports": [
- {
- "name": "string",
- "type": "string",
- "quantity": 1,
- "description": "string"
}
], - "processes": [
- {
- "pid": 3576,
- "tty": "?",
- "name": "/usr/sbin/httpd -DFOREGROUND",
- "user": "apache",
- "started": "2020-02-29 00:24",
- "memory": 0.4000000059604645,
- "virtualMemory": 4380,
- "cpuUsage": 1,
- "description": "string"
}
], - "processors": [
- {
- "name": "Intel(R) Core(TM) i7-7700HQ CPU @ 2.80GHz",
- "arch": "i386",
- "model": 158,
- "familyName": "string",
- "core": 1,
- "speed": 2800,
- "thread": 1,
- "stepping": 9,
- "manufacturer": "Intel",
- "quantity": 1,
- "cpuid": "string",
- "externalClock": "string",
- "description": "string"
}
], - "slots": [
- {
- "name": "string",
- "status": "string",
- "quantity": 0,
- "description": "string"
}
], - "software": [
- {
- "name": "libcurl",
- "version": "7.29.0-54.el7_7.2",
- "editor": "CentOS",
- "description": "A library for getting files from web servers",
- "releaseDate": "2019-08-24",
- "license": {
- "oem": "string",
- "name": "string",
- "productId": "string",
- "productKey": "string",
- "description": "string",
- "expirationDate": "2019-08-24"
}
}
], - "softwareUpdate": [
- {
- "name": null,
- "version": null,
- "arch": null,
- "from": null,
- "kind": "none",
- "source": null,
- "description": null,
- "severity": "critical",
- "ids": [
- null
]
}
], - "sound": [
- {
- "name": "string",
- "quantity": 1,
- "description": "string"
}
], - "storage": [
- {
- "name": "sda",
- "type": "disk",
- "size": 85899,
- "model": "VBOXHARDDISK",
- "firmware": "10",
- "quantity": 1,
- "description": "string",
- "manufacturer": "string",
- "serialNumber": "000a1954"
}
], - "videos": [
- {
- "name": "string",
- "memory": "string",
- "chipset": "string",
- "quantity": 1,
- "resolution": "string",
- "description": "string"
}
], - "virtualMachines": [
- {
- "name": "string",
- "type": "string",
- "uuid": "string",
- "vcpu": "string",
- "owner": "string",
- "status": "string",
- "memory": "string",
- "subsystem": "string",
- "description": "string"
}
]
}
]
}
}
Accept or refuse a pending node
nodeId required | string <uuid (or "root")> Example: 9a1773c9-0889-40b6-be89-f6504443ac1b Id of the target node |
status | string Enum: "accepted" "refused" New status of the pending node |
result required | string Enum: "success" "error" Result of the request |
action required | string Value: "changePendingNodeStatus" The id of the action |
required | object Information about the node |
{- "status": "accepted"
}
{- "result": "success",
- "action": "changePendingNodeStatus",
- "data": {
- "nodes": [
- {
- "id": "9a1773c9-0889-40b6-be89-f6504443ac1b",
- "hostname": "node1.example.com",
- "status": "accepted",
- "architectureDescription": "x86_64",
- "description": "",
- "ipAddresses": [
- "192.168.23.45"
], - "lastRunDate": "2020-02-29T14:48:28Z",
- "lastInventoryDate": "2020-02-29T10:11:32Z",
- "machine": {
- "id": "string",
- "type": "Virtual",
- "provider": "vbox",
- "manufacturer": "innotek GmbH",
- "serialNumber": "ece12459-2b90-49c9-ab1e-72e38f797421"
}, - "os": {
- "type": "Linux",
- "name": "Centos",
- "version": "7.6.1810",
- "fullName": "CentOS Linux release 7.6.1810 (Core)",
- "servicePack": "3",
- "kernelVersion": "3.10.0-957.1.3.el7.x86_64"
}, - "managementTechnology": [
- {
- "name": "Rudder",
- "version": "6.0.3.release-1.EL.7",
- "capabilities": [
- "xml"
], - "nodeKind": "node",
- "rootComponents": [
- "rudder-db"
]
}
], - "policyServerId": "root",
- "properties": [
- {
- "name": "datacenter",
- "value": "AMS2"
}
], - "policyMode": "audit",
- "ram": 0,
- "timezone": {
- "name": "UTC",
- "offset": "+0000"
}, - "accounts": [
- "root"
], - "bios": {
- "name": "VirtualBox",
- "version": "1.2.3",
- "editor": "innotek GmbH",
- "quantity": 1,
- "releaseDate": "2006-12-01 00:00:00+0000",
- "description": "FIXME"
}, - "controllers": [
- {
- "name": "string",
- "type": "string",
- "quantity": 1,
- "description": "string",
- "manufacturer": "string"
}
], - "environmentVariables": [
- {
- "name": "LANG",
- "value": "en_US.UTF-8"
}
], - "fileSystems": [
- {
- "name": "ext4",
- "mountPoint": "/srv",
- "description": "string",
- "fileCount": 1456,
- "freeSpace": 3487,
- "totalSpace": 208869
}
], - "managementTechnologyDetails": {
- "cfengineKeys": [
- "-----BEGIN CERTIFICATE-----\\nMIIFqDCC[...]3tALNn\\n-----END CERTIFICATE-----"
], - "cfengineUser": "root"
}, - "memories": [
- {
- "name": "string",
- "speed": 1066,
- "type": "string",
- "caption": "string",
- "quantity": 1,
- "capacity": 2,
- "slotNumber": 3,
- "description": "string",
- "serialNumber": "string"
}
], - "networkInterfaces": [
- {
- "name": "eth0",
- "mask": [
- "255.255.255.0"
], - "type": "ethernet",
- "speed": "1000",
- "status": "Up",
- "dhcpServer": "192.168.34.5",
- "macAddress": "08:00:27:6f:5c:14",
- "ipAddresses": [
- "192.168.76.4"
]
}
], - "ports": [
- {
- "name": "string",
- "type": "string",
- "quantity": 1,
- "description": "string"
}
], - "processes": [
- {
- "pid": 3576,
- "tty": "?",
- "name": "/usr/sbin/httpd -DFOREGROUND",
- "user": "apache",
- "started": "2020-02-29 00:24",
- "memory": 0.4000000059604645,
- "virtualMemory": 4380,
- "cpuUsage": 1,
- "description": "string"
}
], - "processors": [
- {
- "name": "Intel(R) Core(TM) i7-7700HQ CPU @ 2.80GHz",
- "arch": "i386",
- "model": 158,
- "familyName": "string",
- "core": 1,
- "speed": 2800,
- "thread": 1,
- "stepping": 9,
- "manufacturer": "Intel",
- "quantity": 1,
- "cpuid": "string",
- "externalClock": "string",
- "description": "string"
}
], - "slots": [
- {
- "name": "string",
- "status": "string",
- "quantity": 0,
- "description": "string"
}
], - "software": [
- {
- "name": "libcurl",
- "version": "7.29.0-54.el7_7.2",
- "editor": "CentOS",
- "description": "A library for getting files from web servers",
- "releaseDate": "2019-08-24",
- "license": {
- "oem": "string",
- "name": "string",
- "productId": "string",
- "productKey": "string",
- "description": "string",
- "expirationDate": "2019-08-24"
}
}
], - "softwareUpdate": [
- {
- "name": null,
- "version": null,
- "arch": null,
- "from": null,
- "kind": "none",
- "source": null,
- "description": null,
- "severity": "critical",
- "ids": [
- null
]
}
], - "sound": [
- {
- "name": "string",
- "quantity": 1,
- "description": "string"
}
], - "storage": [
- {
- "name": "sda",
- "type": "disk",
- "size": 85899,
- "model": "VBOXHARDDISK",
- "firmware": "10",
- "quantity": 1,
- "description": "string",
- "manufacturer": "string",
- "serialNumber": "000a1954"
}
], - "videos": [
- {
- "name": "string",
- "memory": "string",
- "chipset": "string",
- "quantity": 1,
- "resolution": "string",
- "description": "string"
}
], - "virtualMachines": [
- {
- "name": "string",
- "type": "string",
- "uuid": "string",
- "vcpu": "string",
- "owner": "string",
- "status": "string",
- "memory": "string",
- "subsystem": "string",
- "description": "string"
}
]
}
]
}
}
Get acceptation status (pending, accepted, deleted, unknown) of a list of nodes
ids required | string <comma-separated list> Default: "default" Example: ids=8403353b-42c4-46f5-a08d-bc77a1a0bad9,root Comma separated list of node Ids |
result required | string Enum: "success" "error" Result of the request |
action required | string Value: "getNodesStatus" The id of the action |
required | object List of nodeId and associated status |
curl --header "X-API-Token: yourToken" https://rudder.example.com/rudder/api/latest/nodes/status?ids=17dadf50-6056-4c8b-a935-6b97d14b89a7,b9a71482-5030-4699-984d-b03d28bbbf36
{- "result": "success",
- "action": "getNodesStatus",
- "data": {
- "nodes": [
- {
- "id": "9a1773c9-0889-40b6-be89-f6504443ac1b",
- "status": "pending"
}
]
}
}
Get details about a given node
nodeId required | string <uuid (or "root")> Example: 9a1773c9-0889-40b6-be89-f6504443ac1b Id of the target node |
include | string <comma-separated list> Default: "default" Example: include=minimal Level of information to include from the node inventory. Some base levels are defined (minimal, default, full). You can add fields you want to a base level by adding them to the list, possible values are keys from json answer. If you don't provide a base level, they will be added to
|
result required | string Enum: "success" "error" Result of the request |
action required | string Value: "nodeDetails" The id of the action |
required | object Information about the node |
curl --header "X-API-Token: yourToken" https://rudder.example.com/rudder/api/latest/nodes/17dadf50-6056-4c8b-a935-6b97d14b89a7\?include=full
{- "result": "success",
- "action": "nodeDetails",
- "data": {
- "nodes": [
- {
- "id": "9a1773c9-0889-40b6-be89-f6504443ac1b",
- "hostname": "node1.example.com",
- "status": "accepted",
- "architectureDescription": "x86_64",
- "description": "",
- "ipAddresses": [
- "192.168.23.45"
], - "lastRunDate": "2020-02-29T14:48:28Z",
- "lastInventoryDate": "2020-02-29T10:11:32Z",
- "machine": {
- "id": "string",
- "type": "Virtual",
- "provider": "vbox",
- "manufacturer": "innotek GmbH",
- "serialNumber": "ece12459-2b90-49c9-ab1e-72e38f797421"
}, - "os": {
- "type": "Linux",
- "name": "Centos",
- "version": "7.6.1810",
- "fullName": "CentOS Linux release 7.6.1810 (Core)",
- "servicePack": "3",
- "kernelVersion": "3.10.0-957.1.3.el7.x86_64"
}, - "managementTechnology": [
- {
- "name": "Rudder",
- "version": "6.0.3.release-1.EL.7",
- "capabilities": [
- "xml"
], - "nodeKind": "node",
- "rootComponents": [
- "rudder-db"
]
}
], - "policyServerId": "root",
- "properties": [
- {
- "name": "datacenter",
- "value": "AMS2"
}
], - "policyMode": "audit",
- "ram": 0,
- "timezone": {
- "name": "UTC",
- "offset": "+0000"
}, - "accounts": [
- "root"
], - "bios": {
- "name": "VirtualBox",
- "version": "1.2.3",
- "editor": "innotek GmbH",
- "quantity": 1,
- "releaseDate": "2006-12-01 00:00:00+0000",
- "description": "FIXME"
}, - "controllers": [
- {
- "name": "string",
- "type": "string",
- "quantity": 1,
- "description": "string",
- "manufacturer": "string"
}
], - "environmentVariables": [
- {
- "name": "LANG",
- "value": "en_US.UTF-8"
}
], - "fileSystems": [
- {
- "name": "ext4",
- "mountPoint": "/srv",
- "description": "string",
- "fileCount": 1456,
- "freeSpace": 3487,
- "totalSpace": 208869
}
], - "managementTechnologyDetails": {
- "cfengineKeys": [
- "-----BEGIN CERTIFICATE-----\\nMIIFqDCC[...]3tALNn\\n-----END CERTIFICATE-----"
], - "cfengineUser": "root"
}, - "memories": [
- {
- "name": "string",
- "speed": 1066,
- "type": "string",
- "caption": "string",
- "quantity": 1,
- "capacity": 2,
- "slotNumber": 3,
- "description": "string",
- "serialNumber": "string"
}
], - "networkInterfaces": [
- {
- "name": "eth0",
- "mask": [
- "255.255.255.0"
], - "type": "ethernet",
- "speed": "1000",
- "status": "Up",
- "dhcpServer": "192.168.34.5",
- "macAddress": "08:00:27:6f:5c:14",
- "ipAddresses": [
- "192.168.76.4"
]
}
], - "ports": [
- {
- "name": "string",
- "type": "string",
- "quantity": 1,
- "description": "string"
}
], - "processes": [
- {
- "pid": 3576,
- "tty": "?",
- "name": "/usr/sbin/httpd -DFOREGROUND",
- "user": "apache",
- "started": "2020-02-29 00:24",
- "memory": 0.4000000059604645,
- "virtualMemory": 4380,
- "cpuUsage": 1,
- "description": "string"
}
], - "processors": [
- {
- "name": "Intel(R) Core(TM) i7-7700HQ CPU @ 2.80GHz",
- "arch": "i386",
- "model": 158,
- "familyName": "string",
- "core": 1,
- "speed": 2800,
- "thread": 1,
- "stepping": 9,
- "manufacturer": "Intel",
- "quantity": 1,
- "cpuid": "string",
- "externalClock": "string",
- "description": "string"
}
], - "slots": [
- {
- "name": "string",
- "status": "string",
- "quantity": 0,
- "description": "string"
}
], - "software": [
- {
- "name": "libcurl",
- "version": "7.29.0-54.el7_7.2",
- "editor": "CentOS",
- "description": "A library for getting files from web servers",
- "releaseDate": "2019-08-24",
- "license": {
- "oem": "string",
- "name": "string",
- "productId": "string",
- "productKey": "string",
- "description": "string",
- "expirationDate": "2019-08-24"
}
}
], - "softwareUpdate": [
- {
- "name": null,
- "version": null,
- "arch": null,
- "from": null,
- "kind": "none",
- "source": null,
- "description": null,
- "severity": "critical",
- "ids": [
- null
]
}
], - "sound": [
- {
- "name": "string",
- "quantity": 1,
- "description": "string"
}
], - "storage": [
- {
- "name": "sda",
- "type": "disk",
- "size": 85899,
- "model": "VBOXHARDDISK",
- "firmware": "10",
- "quantity": 1,
- "description": "string",
- "manufacturer": "string",
- "serialNumber": "000a1954"
}
], - "videos": [
- {
- "name": "string",
- "memory": "string",
- "chipset": "string",
- "quantity": 1,
- "resolution": "string",
- "description": "string"
}
], - "virtualMachines": [
- {
- "name": "string",
- "type": "string",
- "uuid": "string",
- "vcpu": "string",
- "owner": "string",
- "status": "string",
- "memory": "string",
- "subsystem": "string",
- "description": "string"
}
]
}
]
}
}
Update node settings and properties
nodeId required | string <uuid (or "root")> Example: 9a1773c9-0889-40b6-be89-f6504443ac1b Id of the target node |
Array of objects | |
policyMode | string Enum: "audit" "enforce" "default" In which mode the node will apply its configuration policy. Use |
state | string Enum: "enabled" "ignored" "empty-policies" "initializing" "preparing-eol" The node life cycle state. See dedicated doc for more information. |
object (agent-key) Information about agent key or certificate |
result required | string Enum: "success" "error" Result of the request |
action required | string Value: "updateNode" The id of the action |
required | object Information about the node |
{- "properties": [
- {
- "name": "datacenter",
- "value": "AMS2"
}
], - "policyMode": "audit",
- "state": "enabled",
- "agentKey": {
- "value": "-----BEGIN CERTIFICATE-----\nMIIFqDCC[...]3tALNn\n-----END CERTIFICATE-----",
- "status": "certified"
}
}
{- "result": "success",
- "action": "updateNode",
- "data": {
- "nodes": [
- {
- "id": "9a1773c9-0889-40b6-be89-f6504443ac1b",
- "hostname": "node1.example.com",
- "status": "accepted",
- "architectureDescription": "x86_64",
- "description": "",
- "ipAddresses": [
- "192.168.23.45"
], - "lastRunDate": "2020-02-29T14:48:28Z",
- "lastInventoryDate": "2020-02-29T10:11:32Z",
- "machine": {
- "id": "string",
- "type": "Virtual",
- "provider": "vbox",
- "manufacturer": "innotek GmbH",
- "serialNumber": "ece12459-2b90-49c9-ab1e-72e38f797421"
}, - "os": {
- "type": "Linux",
- "name": "Centos",
- "version": "7.6.1810",
- "fullName": "CentOS Linux release 7.6.1810 (Core)",
- "servicePack": "3",
- "kernelVersion": "3.10.0-957.1.3.el7.x86_64"
}, - "managementTechnology": [
- {
- "name": "Rudder",
- "version": "6.0.3.release-1.EL.7",
- "capabilities": [
- "xml"
], - "nodeKind": "node",
- "rootComponents": [
- "rudder-db"
]
}
], - "policyServerId": "root",
- "properties": [
- {
- "name": "datacenter",
- "value": "AMS2"
}
], - "policyMode": "audit",
- "ram": 0,
- "timezone": {
- "name": "UTC",
- "offset": "+0000"
}, - "accounts": [
- "root"
], - "bios": {
- "name": "VirtualBox",
- "version": "1.2.3",
- "editor": "innotek GmbH",
- "quantity": 1,
- "releaseDate": "2006-12-01 00:00:00+0000",
- "description": "FIXME"
}, - "controllers": [
- {
- "name": "string",
- "type": "string",
- "quantity": 1,
- "description": "string",
- "manufacturer": "string"
}
], - "environmentVariables": [
- {
- "name": "LANG",
- "value": "en_US.UTF-8"
}
], - "fileSystems": [
- {
- "name": "ext4",
- "mountPoint": "/srv",
- "description": "string",
- "fileCount": 1456,
- "freeSpace": 3487,
- "totalSpace": 208869
}
], - "managementTechnologyDetails": {
- "cfengineKeys": [
- "-----BEGIN CERTIFICATE-----\\nMIIFqDCC[...]3tALNn\\n-----END CERTIFICATE-----"
], - "cfengineUser": "root"
}, - "memories": [
- {
- "name": "string",
- "speed": 1066,
- "type": "string",
- "caption": "string",
- "quantity": 1,
- "capacity": 2,
- "slotNumber": 3,
- "description": "string",
- "serialNumber": "string"
}
], - "networkInterfaces": [
- {
- "name": "eth0",
- "mask": [
- "255.255.255.0"
], - "type": "ethernet",
- "speed": "1000",
- "status": "Up",
- "dhcpServer": "192.168.34.5",
- "macAddress": "08:00:27:6f:5c:14",
- "ipAddresses": [
- "192.168.76.4"
]
}
], - "ports": [
- {
- "name": "string",
- "type": "string",
- "quantity": 1,
- "description": "string"
}
], - "processes": [
- {
- "pid": 3576,
- "tty": "?",
- "name": "/usr/sbin/httpd -DFOREGROUND",
- "user": "apache",
- "started": "2020-02-29 00:24",
- "memory": 0.4000000059604645,
- "virtualMemory": 4380,
- "cpuUsage": 1,
- "description": "string"
}
], - "processors": [
- {
- "name": "Intel(R) Core(TM) i7-7700HQ CPU @ 2.80GHz",
- "arch": "i386",
- "model": 158,
- "familyName": "string",
- "core": 1,
- "speed": 2800,
- "thread": 1,
- "stepping": 9,
- "manufacturer": "Intel",
- "quantity": 1,
- "cpuid": "string",
- "externalClock": "string",
- "description": "string"
}
], - "slots": [
- {
- "name": "string",
- "status": "string",
- "quantity": 0,
- "description": "string"
}
], - "software": [
- {
- "name": "libcurl",
- "version": "7.29.0-54.el7_7.2",
- "editor": "CentOS",
- "description": "A library for getting files from web servers",
- "releaseDate": "2019-08-24",
- "license": {
- "oem": "string",
- "name": "string",
- "productId": "string",
- "productKey": "string",
- "description": "string",
- "expirationDate": "2019-08-24"
}
}
], - "softwareUpdate": [
- {
- "name": null,
- "version": null,
- "arch": null,
- "from": null,
- "kind": "none",
- "source": null,
- "description": null,
- "severity": "critical",
- "ids": [
- null
]
}
], - "sound": [
- {
- "name": "string",
- "quantity": 1,
- "description": "string"
}
], - "storage": [
- {
- "name": "sda",
- "type": "disk",
- "size": 85899,
- "model": "VBOXHARDDISK",
- "firmware": "10",
- "quantity": 1,
- "description": "string",
- "manufacturer": "string",
- "serialNumber": "000a1954"
}
], - "videos": [
- {
- "name": "string",
- "memory": "string",
- "chipset": "string",
- "quantity": 1,
- "resolution": "string",
- "description": "string"
}
], - "virtualMachines": [
- {
- "name": "string",
- "type": "string",
- "uuid": "string",
- "vcpu": "string",
- "owner": "string",
- "status": "string",
- "memory": "string",
- "subsystem": "string",
- "description": "string"
}
]
}
]
}
}
Remove a node from the Rudder server. It won't be managed anymore.
nodeId required | string <uuid (or "root")> Example: 9a1773c9-0889-40b6-be89-f6504443ac1b Id of the target node |
mode | string Default: "move" Enum: "move" "erase" Example: mode=move Deletion mode to use, either move to trash ('move', default) or erase ('erase') |
result required | string Enum: "success" "error" Result of the request |
action required | string Value: "deleteNode" The id of the action |
required | object Information about the node |
curl --header "X-API-Token: yourToken" --request DELETE https://rudder.example.com/rudder/api/latest/nodes/17dadf50-6056-4c8b-a935-6b97d14b89a7
{- "result": "success",
- "action": "deleteNode",
- "data": {
- "nodes": [
- {
- "id": "9a1773c9-0889-40b6-be89-f6504443ac1b",
- "hostname": "node1.example.com",
- "status": "accepted",
- "architectureDescription": "x86_64",
- "description": "",
- "ipAddresses": [
- "192.168.23.45"
], - "lastRunDate": "2020-02-29T14:48:28Z",
- "lastInventoryDate": "2020-02-29T10:11:32Z",
- "machine": {
- "id": "string",
- "type": "Virtual",
- "provider": "vbox",
- "manufacturer": "innotek GmbH",
- "serialNumber": "ece12459-2b90-49c9-ab1e-72e38f797421"
}, - "os": {
- "type": "Linux",
- "name": "Centos",
- "version": "7.6.1810",
- "fullName": "CentOS Linux release 7.6.1810 (Core)",
- "servicePack": "3",
- "kernelVersion": "3.10.0-957.1.3.el7.x86_64"
}, - "managementTechnology": [
- {
- "name": "Rudder",
- "version": "6.0.3.release-1.EL.7",
- "capabilities": [
- "xml"
], - "nodeKind": "node",
- "rootComponents": [
- "rudder-db"
]
}
], - "policyServerId": "root",
- "properties": [
- {
- "name": "datacenter",
- "value": "AMS2"
}
], - "policyMode": "audit",
- "ram": 0,
- "timezone": {
- "name": "UTC",
- "offset": "+0000"
}, - "accounts": [
- "root"
], - "bios": {
- "name": "VirtualBox",
- "version": "1.2.3",
- "editor": "innotek GmbH",
- "quantity": 1,
- "releaseDate": "2006-12-01 00:00:00+0000",
- "description": "FIXME"
}, - "controllers": [
- {
- "name": "string",
- "type": "string",
- "quantity": 1,
- "description": "string",
- "manufacturer": "string"
}
], - "environmentVariables": [
- {
- "name": "LANG",
- "value": "en_US.UTF-8"
}
], - "fileSystems": [
- {
- "name": "ext4",
- "mountPoint": "/srv",
- "description": "string",
- "fileCount": 1456,
- "freeSpace": 3487,
- "totalSpace": 208869
}
], - "managementTechnologyDetails": {
- "cfengineKeys": [
- "-----BEGIN CERTIFICATE-----\\nMIIFqDCC[...]3tALNn\\n-----END CERTIFICATE-----"
], - "cfengineUser": "root"
}, - "memories": [
- {
- "name": "string",
- "speed": 1066,
- "type": "string",
- "caption": "string",
- "quantity": 1,
- "capacity": 2,
- "slotNumber": 3,
- "description": "string",
- "serialNumber": "string"
}
], - "networkInterfaces": [
- {
- "name": "eth0",
- "mask": [
- "255.255.255.0"
], - "type": "ethernet",
- "speed": "1000",
- "status": "Up",
- "dhcpServer": "192.168.34.5",
- "macAddress": "08:00:27:6f:5c:14",
- "ipAddresses": [
- "192.168.76.4"
]
}
], - "ports": [
- {
- "name": "string",
- "type": "string",
- "quantity": 1,
- "description": "string"
}
], - "processes": [
- {
- "pid": 3576,
- "tty": "?",
- "name": "/usr/sbin/httpd -DFOREGROUND",
- "user": "apache",
- "started": "2020-02-29 00:24",
- "memory": 0.4000000059604645,
- "virtualMemory": 4380,
- "cpuUsage": 1,
- "description": "string"
}
], - "processors": [
- {
- "name": "Intel(R) Core(TM) i7-7700HQ CPU @ 2.80GHz",
- "arch": "i386",
- "model": 158,
- "familyName": "string",
- "core": 1,
- "speed": 2800,
- "thread": 1,
- "stepping": 9,
- "manufacturer": "Intel",
- "quantity": 1,
- "cpuid": "string",
- "externalClock": "string",
- "description": "string"
}
], - "slots": [
- {
- "name": "string",
- "status": "string",
- "quantity": 0,
- "description": "string"
}
], - "software": [
- {
- "name": "libcurl",
- "version": "7.29.0-54.el7_7.2",
- "editor": "CentOS",
- "description": "A library for getting files from web servers",
- "releaseDate": "2019-08-24",
- "license": {
- "oem": "string",
- "name": "string",
- "productId": "string",
- "productKey": "string",
- "description": "string",
- "expirationDate": "2019-08-24"
}
}
], - "softwareUpdate": [
- {
- "name": null,
- "version": null,
- "arch": null,
- "from": null,
- "kind": "none",
- "source": null,
- "description": null,
- "severity": "critical",
- "ids": [
- null
]
}
], - "sound": [
- {
- "name": "string",
- "quantity": 1,
- "description": "string"
}
], - "storage": [
- {
- "name": "sda",
- "type": "disk",
- "size": 85899,
- "model": "VBOXHARDDISK",
- "firmware": "10",
- "quantity": 1,
- "description": "string",
- "manufacturer": "string",
- "serialNumber": "000a1954"
}
], - "videos": [
- {
- "name": "string",
- "memory": "string",
- "chipset": "string",
- "quantity": 1,
- "resolution": "string",
- "description": "string"
}
], - "virtualMachines": [
- {
- "name": "string",
- "type": "string",
- "uuid": "string",
- "vcpu": "string",
- "owner": "string",
- "status": "string",
- "memory": "string",
- "subsystem": "string",
- "description": "string"
}
]
}
]
}
}
This API allows to trigger an agent run on the target node. Response is a stream of the actual agent run on the node.
nodeId required | string <uuid (or "root")> Example: 9a1773c9-0889-40b6-be89-f6504443ac1b Id of the target node |
curl --header "X-API-Token: yourToken" --request POST https://rudder.example.com/rudder/api/latest/nodes/root/applyPolicy
This API returns all node properties for a node, including group inherited ones.
nodeId required | string <uuid (or "root")> Example: 9a1773c9-0889-40b6-be89-f6504443ac1b Id of the target node |
result required | string Enum: "success" "error" Result of the request |
action required | string Value: "nodeInheritedProperties" The id of the action |
required | Array of objects (node-inherited-properties) Information about the node inherited properties |
curl --header "X-API-Token: yourToken" https://rudder.example.com/rudder/api/latest/nodes/17dadf50-6056-4c8b-a935-6b97d14b89a7/inheritedProperties
{- "result": "success",
- "action": "nodeInheritedProperties",
- "data": [
- {
- "id": "9a1773c9-0889-40b6-be89-f6504443ac1b",
- "properties": [
- {
- "name": "datacenter",
- "value": "AMS2",
- "provider": "inherited",
- "hierarchy": [
- {
- "kind": "global",
- "value": "{\"array\":[1,2],\"object\":{\"parent\":\"value\"},\"string\":\"parent\"}",
- "id": "9180b869-08a3-4173-9dd4-ab68f227e76c",
- "name": "all centos7"
}
], - "origval": "AMS2"
}
]
}
]
}
Provide information about the current state of the inventory processor
result required | string Enum: "success" "error" Result of the request |
action required | string Value: "queueInformation" The id of the action |
required | object Information about the service |
curl --header "X-API-Token: yourToken" https://rudder.example.com/rudder/api/latest/
{- "result": "success",
- "action": "queueInformation",
- "data": {
- "queueMaxSize": 50,
- "queueSaturated": false
}
}
Upload an inventory to the web application
file | string <binary> The inventory file. The original file name is used to check extension, that should be .xml[.gz] or .ocs[.gz] |
signature | string <binary> The signature file. The original file name is used to check extension, that should be ${originalInventoryFileName}.sign[.gz] |
result required | string Enum: "success" "error" Result of the request |
action required | string Value: "uploadInventory" The id of the action |
data required | string |
curl --request POST --header "X-API-Token: yourToken" https://rudder.example.com/rudder/api/latest/inventories/upload -F "file=@inventory-file" -F "signature=@signature-file"
{- "result": "success",
- "action": "uploadInventory",
- "data": "Inventory 'file.xml' for Node 'c1bab9fc-bcf6-4d59-a397-84c8e2fc06c0' added to processing queue."
}
Restart the inventory watcher if necessary
result required | string Enum: "success" "error" Result of the request |
action required | string Value: "fileWatcherRestart" The id of the action |
data required | string |
curl --header "X-API-Token: yourToken" --request POST 'https://rudder.example.com/rudder/api/latest/inventories/watcher/restart'
{- "result": "success",
- "action": "fileWatcherRestart",
- "data": "Incoming inventory watcher restarted"
}
Start the inventory watcher if necessary
result required | string Enum: "success" "error" Result of the request |
action required | string Value: "fileWatcherStart" The id of the action |
data required | string |
curl --header "X-API-Token: yourToken" --request POST 'https://rudder.example.com/rudder/api/latest/inventories/watcher/start'
{- "result": "success",
- "action": "fileWatcherStart",
- "data": "Incoming inventory watcher started"
}
Stop the inventory watcher if necessary
result required | string Enum: "success" "error" Result of the request |
action required | string Value: "fileWatcherStop" The id of the action |
data required | string |
curl --header "X-API-Token: yourToken" --request POST 'https://rudder.example.com/rudder/api/latest/inventories/watcher/stop'
{- "result": "success",
- "action": "fileWatcherStop",
- "data": "Incoming inventory watcher stopped"
}
Get the current value of all the global parameters
result required | string Enum: "success" "error" Result of the request |
action required | string Value: "listParameters" The id of the action |
required | object Parameters |
curl --header "X-API-Token: yourToken" https://rudder.example.com/rudder/api/latest/parameters
{- "result": "success",
- "action": "listParameters",
- "data": {
- "parameters": [
- {
- "id": "rudder_file_edit_footer",
- "value": "### End of file managed by Rudder ###",
- "description": "Default inform message put in footer of managed files by Rudder",
- "overridable": false
}
]
}
}
Create a new global parameter
id required | string Name of the parameter |
value | any <string or JSON> Value of the parameter |
description | string Description of the parameter |
overridable | boolean Is the global parameter overridable by node |
id required | string Id of the parameter |
result required | string Enum: "success" "error" Result of the request |
action required | string Value: "createParameter" The id of the action |
required | object Parameters |
{- "id": "rudder_file_edit_footer",
- "value": "### End of file managed by Rudder ###",
- "description": "Default inform message put in footer of managed files by Rudder",
- "overridable": false
}
{- "id": "rudder_file_edit_footer",
- "result": "success",
- "action": "createParameter",
- "data": {
- "parameters": [
- {
- "id": "rudder_file_edit_footer",
- "value": "### End of file managed by Rudder ###",
- "description": "Default inform message put in footer of managed files by Rudder",
- "overridable": false
}
]
}
}
Get the current value of a given parameter
parameterId required | string Example: rudder_file_edit_header Id of the parameter to manage |
id required | string Id of the parameter |
result required | string Enum: "success" "error" Result of the request |
action required | string Value: "parameterDetails" The id of the action |
required | object Parameters |
curl --header "X-API-Token: yourToken" https://rudder.example.com/rudder/api/latest/parameters/ParameterId
{- "id": "rudder_file_edit_footer",
- "result": "success",
- "action": "parameterDetails",
- "data": {
- "parameters": [
- {
- "id": "rudder_file_edit_footer",
- "value": "### End of file managed by Rudder ###",
- "description": "Default inform message put in footer of managed files by Rudder",
- "overridable": false
}
]
}
}
Update the properties of a parameter
parameterId required | string Example: rudder_file_edit_header Id of the parameter to manage |
id required | string Id of the parameter |
result required | string Enum: "success" "error" Result of the request |
action required | string Value: "updateParameter" The id of the action |
required | object Parameters |
curl --header "X-API-Token: yourToken" --request POST https://rudder.example.com/rudder/api/latest/parameters/ParameterId --data "value=### Edited by Rudder ###"
{- "id": "rudder_file_edit_footer",
- "result": "success",
- "action": "updateParameter",
- "data": {
- "parameters": [
- {
- "id": "rudder_file_edit_footer",
- "value": "### End of file managed by Rudder ###",
- "description": "Default inform message put in footer of managed files by Rudder",
- "overridable": false
}
]
}
}
Delete an existing parameter
parameterId required | string Example: rudder_file_edit_header Id of the parameter to manage |
id required | string Id of the parameter |
result required | string Enum: "success" "error" Result of the request |
action required | string Value: "deleteParameter" The id of the action |
required | object Parameters |
curl --header "X-API-Token: yourToken" --request DELETE https://rudder.example.com/rudder/api/latest/parameters/ParameterId
{- "id": "rudder_file_edit_footer",
- "result": "success",
- "action": "deleteParameter",
- "data": {
- "parameters": [
- {
- "id": "rudder_file_edit_footer",
- "value": "### End of file managed by Rudder ###",
- "description": "Default inform message put in footer of managed files by Rudder",
- "overridable": false
}
]
}
}
Get a ZIP archive or rules, directives, techniques and groups with optionally their dependencies
rules | Array of arrays Examples:
IDs (optionally with revision, '+' need to be escaped as '%2B') of rules to include |
rules | Array of arrays Examples:
IDs (optionally with revision, '+' need to be escaped as '%2B') of rules to include |
directives | Array of arrays Examples:
IDs (optionally with revision, '+' need to be escaped as '%2B') of directives to include |
techniques | Array of arrays Examples:
IDs, ie technique name/technique version (optionally with revision, '+' need to be escaped as '%2B') of techniques to include |
groups | Array of arrays Examples:
IDs (optionally with revision, '+' need to be escaped as '%2B') of groups to include |
include | Array of strings Items Enum: "all (default)" "none" "directives" "techniques" "groups" Examples:
Scope of dependencies to include in archive, where rule as directives and groups dependencies, directives have techniques dependencies, and techniques and groups don't have dependencies. 'none' means no dependencies will be include, 'all' means that the whole tree will, 'directives' and 'groups' means to include them specifically, 'techniques' means to include both directives and techniques. |
curl --header "X-API-Token: yourToken" https://rudder.example.com/rudder/api/latest/archives/export?rules=8e522a3e-aa45-43cd-bf33-4e8d04a566f6&include=directives,groups
Import a ZIP archive of techniques, directives, groups and rules in a saved in a normalized format into Rudder
archive | string <binary> The ZIP archive file containing policies in a conventional layout and serialization format |
result required | string Enum: "success" "error" Result of the request |
action required | string Value: "import" The id of the action |
required | object Details about archive import process |
curl --header "X-API-Token: yourToken" -X POST https://rudder.example.com/rudder/api/latest/archives/import --form "archive=@my-archive-file.zip"
{- "result": "success",
- "action": "import",
- "data": {
- "archiveImported": true
}
}
Get the current value of all the settings
result required | string Enum: "success" "error" Result of the request |
action required | string Value: "getAllSettings" The id of the action |
required | object Information about the setting |
curl --header "X-API-Token: yourToken" https://rudder.example.com/rudder/api/latest/settings
{- "result": "success",
- "action": "getAllSettings",
- "data": {
- "settings": {
- "allowed_networks": [
- {
- "id": "root",
- "allowed_networks": [
- "192.168.40.0/24"
]
}
], - "global_policy_mode": "enforce",
- "global_policy_mode_overridable": true,
- "run_frequency": 5,
- "first_run_hour": 0,
- "first_run_minute": 0,
- "splay_time": 5,
- "modified_file_ttl": 7,
- "output_file_ttl": 7,
- "require_time_synchronization": true,
- "relay_server_synchronization_method": "classic",
- "relay_server_synchronize_policies": true,
- "relay_server_synchronize_shared_files": true,
- "rudder_report_protocol_default": "HTTPS",
- "reporting_mode": "full-compliance",
- "heartbeat_frequency": 10,
- "enable_change_message": true,
- "mandatory_change_message": false,
- "change_message_prompt": "Please provide a reason for this change",
- "enable_change_request": false,
- "enable_self_validation": true,
- "enable_self_deployment": true,
- "display_recent_changes_graphs": true,
- "enable_javascript_directives": "enabled",
- "send_metrics": "not defined",
- "node_accept_duplicated_hostname": false,
- "node_onaccept_default_state": "enabled",
- "node_onaccept_default_policyMode": "default",
- "unexpected_unbound_var_values": true,
- "rudder_compute_changes": true,
- "rudder_generation_compute_dyngroups": true,
- "rudder_compute_dyngroups_max_parallelism": "1",
- "rudder_save_db_compliance_levels": true,
- "rudder_save_db_compliance_details": false,
- "rudder_generation_max_parallelism": "x0.5",
- "rudder_generation_js_timeout": 30,
- "rudder_generation_continue_on_error": false,
- "rudder_generation_delay": "0 seconds",
- "rudder_generation_policy": "all",
- "rudder_verify_certificates": false
}
}
}
Get the list of allowed networks for a policy server
nodeId required | string <uuid (or "root")> Example: 9a1773c9-0889-40b6-be89-f6504443ac1b Policy server ID for which you want to manage allowed networks. |
id required | string Target policy server ID |
result required | string Enum: "success" "error" Result of the request |
action required | string Value: "getAllowedNetworks" The id of the action |
required | object Information about the allowed_networks settings |
curl --header "X-API-Token: yourToken" https://rudder.example.com/rudder/api/latest/settings/allowed_networks/root
{- "id": "root",
- "result": "success",
- "action": "getAllowedNetworks",
- "data": {
- "settings": {
- "allowed_networks": [
- "162.168.1.0/24",
- "192.168.2.0/24"
]
}
}
}
Set the list of allowed networks for a policy server
nodeId required | string <uuid (or "root")> Example: 9a1773c9-0889-40b6-be89-f6504443ac1b Policy server ID for which you want to manage allowed networks. |
value | object New value of the allowed networks |
result required | string Enum: "success" "error" Result of the request |
action required | string Value: "modifyAllowedNetworks" The id of the action |
id | string The id of the modified node |
required | object Information about the allowed_networks settings |
{- "value": "enforce"
}
{- "result": "success",
- "action": "modifyAllowedNetworks",
- "id": "string",
- "data": {
- "settings": [
- "162.168.1.0/24",
- "192.168.2.0/24"
]
}
}
Add or delete allowed networks for a policy server
nodeId required | string <uuid (or "root")> Example: 9a1773c9-0889-40b6-be89-f6504443ac1b Policy server ID for which you want to manage allowed networks. |
object |
result required | string Enum: "success" "error" Result of the request |
action required | string Value: "modifyDiffAllowedNetworks" The id of the action |
required | object Information about the allowed_networks settings |
{- "allowed_networks": {
- "add": [
- "192.168.2.0/24",
- "192.168.0.0/16"
], - "delete": [
- "162.168.1.0/24"
]
}
}
{- "result": "success",
- "action": "modifyDiffAllowedNetworks",
- "data": {
- "settings": [
- "192.168.2.0/24",
- "192.168.0.0/16"
]
}
}
Get the current value of a specific setting
settingId required | string Example: global_policy_mode Id of the setting to set |
id required | string Id of the setting |
result required | string Enum: "success" "error" Result of the request |
action required | string Value: "getSetting" The id of the action |
required | object Information about the setting |
curl --header "X-API-Token: yourToken" https://rudder.example.com/rudder/api/latest/settings/run_frequency
{- "id": "global_policy_mode",
- "result": "success",
- "action": "getSetting",
- "data": {
- "settingId": "value"
}
}
Set the current value of a specific setting
settingId required | string Example: global_policy_mode Id of the setting to set |
value | string New value of the setting |
id required | string Id of the setting |
result required | string Enum: "success" "error" Result of the request |
action required | string Value: "modifySetting" The id of the action |
required | object Information about the setting |
{- "value": "enforce"
}
{- "id": "global_policy_mode",
- "result": "success",
- "action": "modifySetting",
- "data": {
- "settingId": "value"
}
}
List configuration archives
archiveKind required | string Enum: "full" "groups" "rules" "directives" "parameters" Example: full Type of archive to make |
result required | string Enum: "success" "error" Result of the request |
action required | string Enum: "archiveFull" "archiveGroups" "archiveRules" "archiveDirectives" "archiveParameters" The kind of the archive |
required | object |
curl --header "X-API-Token: yourToken" https://rudder.example.com/rudder/api/latest/system/archives/full
{- "result": "success",
- "action": "archiveFull",
- "data": {
- "full": [
- {
- "commiter": "Rudder system account",
- "gitCommit": "546de1b211ecc5b7ca295abac2191bc6bb05d44e",
- "id": "2019-09-17_16-06-15.255"
}
]
}
}
Create new archive of the given kind
archiveKind required | string Enum: "full" "groups" "rules" "directives" "parameters" Example: full Type of archive to make |
result required | string Enum: "success" "error" Result of the request |
action required | string Enum: "archiveFull" "archiveGroups" "archiveRules" "archiveDirectives" "archiveParameters" The kind of the archive |
required | object |
curl --header "X-API-Token: yourToken" --request POST https://rudder.example.com/rudder/api/latest/system/archives/full
{- "result": "success",
- "action": "archiveFull",
- "data": {
- "full": {
- "commiter": "Rudder system account",
- "gitCommit": "546de1b211ecc5b7ca295abac2191bc6bb05d44e",
- "id": "2019-09-17_16-06-15.255"
}
}
}
Restore an archive of the given kind for the given moment
archiveKind required | string Enum: "full" "groups" "rules" "directives" "parameters" Example: full Type of archive to make |
archiveRestoreKind required | string Enum: "latestArchive" "latestCommit" "archive ID" Example: latestCommit What archive to restore (latest archive, latest commit in configuration repository, or archive with ID as given by listArchive) |
result required | string Enum: "success" "error" Result of the request |
action required | string Enum: "restoreFullLatestArchive" "restoreGroupLatestArchive" "restoreRulesLatestArchive" "restoreDirectivesLatestArchive" "restoreParametersLatestArchive" "restoreFullLatestCommit" "restoreGroupLatestCommit" "restoreRulesLatestCommit" "restoreDirectivesLatestCommit" "restoreParametersLatestCommit" "archiveFullDateRestore" "archiveGroupDateRestore" "archiveRulesDateRestore" "archiveDirectivesDateRestore" "archiveParametersDateRestore" The kind of the archive |
required | object |
curl --header "X-API-Token: yourToken" --request POST https://rudder.example.com/rudder/api/latest/system/archives/full/restore/latestCommit
{- "result": "success",
- "action": "archirestoreFullLatestCommitveFull",
- "data": {
- "full": "Started",
- "groups": "Started",
- "rules": "Started",
- "directive": "Started",
- "parameters": "Started"
}
}
Get an archive of the given kind as a zip
archiveKind required | string Enum: "full" "groups" "rules" "directives" "parameters" Example: full Type of archive to make |
commitId required | string commit ID of the archive to get as a ZIP file |
curl --header "X-API-Token: yourToken" --request GET https://rudder.example.com/rudder/api/latest/system/archives/full/zip/cad7d5f0729f06d22878b99869b8d43629e05a78 -o full-archive.zip
Run and get the result of all checks
result required | string Enum: "success" "error" Result of the request |
action required | string Value: "getHealthcheckResult" The id of the action |
required | Array of objects (check) |
curl --header "X-API-Token: yourToken" --request GET 'https://rudder.example.com/rudder/api/latest/system/healthcheck?prettify=true'
{- "result": "success",
- "action": "getHealthcheckResult",
- "data": [
- {
- "name": "RAM available",
- "msg": "Only 2GB of RAM left",
- "status": "Critical"
}
]
}
Get information about the server version
result required | string Enum: "success" "error" Result of the request |
action required | string Value: "getSystemInfo" The id of the action |
required | object Information about the service |
curl --header "X-API-Token: yourToken" https://rudder.example.com/rudder/api/latest/system/info
{- "result": "success",
- "action": "getSystemInfo",
- "data": {
- "rudder": {
- "major-version": "6.0",
- "full-version": "6.0.4",
- "build-time": "2019-03-25T10:11:23Z"
}
}
}
Start the software cleaning batch asynchronously.
result required | string Enum: "success" "error" Result of the request |
action required | string Value: "purgeSoftware" The id of the action |
data required | Array of strings |
curl --header "X-API-Token: yourToken" --request POST 'https://rudder.example.com/rudder/api/latest/system/maintenance/purgeSoftware?prettify=true'
{- "result": "success",
- "action": "purgeSoftware",
- "data": [
- "string"
]
}
Trigger a full policy generation
result required | string Enum: "success" "error" Result of the request |
action required | string Value: "regeneratePolicies" The id of the action |
required | object |
curl --header "X-API-Token: yourToken" --request POST 'https://rudder.example.com/rudder/api/latest/system/regenerate/policies'
{- "result": "success",
- "action": "regeneratePolicies",
- "data": {
- "policies": "Started"
}
}
Reload both techniques and dynamic groups
result required | string Enum: "success" "error" Result of the request |
action required | string Value: "reloadAll" The id of the action |
required | object |
curl --header "X-API-Token: yourToken" --request POST 'https://rudder.example.com/rudder/api/latest/system/reload'
{- "result": "success",
- "action": "reloadAll",
- "data": {
- "groups": "Started",
- "techniques": "Started"
}
}
Reload dynamic groups
result required | string Enum: "success" "error" Result of the request |
action required | string Value: "reloadGroups" The id of the action |
required | object |
curl --header "X-API-Token: yourToken" --request POST 'https://rudder.example.com/rudder/api/latest/system/reload/groups'
{- "result": "success",
- "action": "reloadGroups",
- "data": {
- "groups": "Started"
}
}
Reload techniques from local technique library
result required | string Enum: "success" "error" Result of the request |
action required | string Value: "reloadTechniques" The id of the action |
required | object |
curl --header "X-API-Token: yourToken" --request POST 'https://rudder.example.com/rudder/api/latest/system/reload/techniques'
{- "result": "success",
- "action": "reloadTechniques",
- "data": {
- "techniques": "Started"
}
}
Get information about current server status
result required | string Enum: "success" "error" Result of the request |
action required | string Value: "getStatus" The id of the action |
required | object Status of the service |
curl --header "X-API-Token: yourToken" https://rudder.example.com/rudder/api/latest/system/status
{- "result": "success",
- "action": "getStatus",
- "data": {
- "global": "OK"
}
}
Update configuration policies if needed
result required | string Enum: "success" "error" Result of the request |
action required | string Value: "updatePolicies" The id of the action |
required | object |
curl --header "X-API-Token: yourToken" --request POST 'https://rudder.example.com/rudder/api/latest/system/update/policies'
{- "result": "success",
- "action": "updatePolicies",
- "data": {
- "policies": "Started"
}
}
Requires that the changes-validation
plugin is installed on the server.
Manage change requests.
List all change requests
result required | string Enum: "success" "error" Result of the request |
action required | string Value: "listChangeRequests" The id of the action |
required | object |
curl --header "X-API-Token: yourToken" --request GET https://rudder.example.com/rudder/api/latest/changeRequests --data "status=open"
{- "result": "success",
- "action": "listChangeRequests",
- "data": {
- "rules": [
- {
- "id": 42,
- "name": "Remove unused security policy",
- "description": "string",
- "status": "Deployed",
- "acceptable": true,
- "created by": "Matthieu C.",
- "changes": {
- "rules": [
- {
- "action": "modify Rule"
}
]
}
}
]
}
}
Get a change request details
changeRequestId required | integer Example: 37 Change request id |
result required | string Enum: "success" "error" Result of the request |
action required | string Value: "changeRequestDetails" The id of the action |
required | object |
curl --header "X-API-Token: yourToken" --request GET https://rudder.example.com/rudder/api/latest/changeRequests --data "status=open"
{- "result": "success",
- "action": "changeRequestDetails",
- "data": {
- "rules": [
- {
- "id": 42,
- "name": "Remove unused security policy",
- "description": "string",
- "status": "Deployed",
- "acceptable": true,
- "created by": "Matthieu C.",
- "changes": {
- "rules": [
- {
- "action": "modify Rule"
}
]
}
}
]
}
}
Refuse a change request
changeRequestId required | integer Example: 37 Change request id |
result required | string Enum: "success" "error" Result of the request |
action required | string Value: "declineChangeRequest" The id of the action |
required | object |
curl --header "X-API-Token: yourToken" --request DELETE https://rudder.example.com/rudder/api/latest/changeRequests/43
{- "result": "success",
- "action": "declineChangeRequest",
- "data": {
- "rules": [
- {
- "id": 42,
- "name": "Remove unused security policy",
- "description": "string",
- "status": "Deployed",
- "acceptable": true,
- "created by": "Matthieu C.",
- "changes": {
- "rules": [
- {
- "action": "modify Rule"
}
]
}
}
]
}
}
Update a change request
changeRequestId required | integer Example: 37 Change request id |
name | string Change request name |
description | string Change request description |
result required | string Enum: "success" "error" Result of the request |
action required | string Value: "updateChangeRequest" The id of the action |
required | object |
{- "name": "string",
- "description": "string"
}
{- "result": "success",
- "action": "updateChangeRequest",
- "data": {
- "rules": [
- {
- "id": 42,
- "name": "Remove unused security policy",
- "description": "string",
- "status": "Deployed",
- "acceptable": true,
- "created by": "Matthieu C.",
- "changes": {
- "rules": [
- {
- "action": "modify Rule"
}
]
}
}
]
}
}
Accept a change request
changeRequestId required | integer Example: 37 Change request id |
status | string Enum: "pending deployment" "deployed" New status of the change request |
result required | string Enum: "success" "error" Result of the request |
action required | string Value: "acceptChangeRequest" The id of the action |
required | object |
{- "status": "deployed"
}
{- "result": "success",
- "action": "acceptChangeRequest",
- "data": {
- "rules": [
- {
- "id": 42,
- "name": "Remove unused security policy",
- "description": "string",
- "status": "Deployed",
- "acceptable": true,
- "created by": "Matthieu C.",
- "changes": {
- "rules": [
- {
- "action": "modify Rule"
}
]
}
}
]
}
}
List all validated and unvalidated users
result required | string Enum: "success" "error" Result of the request |
action required | string Value: "listUsers" The id of the action |
required | Array of objects (validated-user) |
curl --header "X-API-Token: yourToken" --request GET https://rudder.example.com/rudder/api/latest/users
{- "result": "success",
- "action": "listUsers",
- "data": [
- {
- "username": "John Do",
- "isValidated": true,
- "userExists": true
}
]
}
Add and remove user from validated users
validatedUsers required | Array of strings list of user to put in validated list |
result required | string Enum: "success" "error" Result of the request |
action required | string Value: "addUser" The id of the action |
required | object (validated-user) list of users with their workflow settings |
{- "validatedUsers": [
- "John Do"
]
}
{- "result": "success",
- "action": "addUser",
- "data": {
- "username": "John Do",
- "isValidated": true,
- "userExists": true
}
}
The user is again subject to workflow validation
username required | string Example: JaneDoe Username of an user (unique) |
result required | string Enum: "success" "error" Result of the request |
action required | string Value: "listUsers" The id of the action |
data required | string the user removed from validated list |
curl --header "X-API-Token: yourToken" --request DELETE https://rudder.example.com/rudder/api/latest/validatedUsers/John Do
{- "result": "success",
- "action": "listUsers",
- "data": "John Do"
}
Requires that the cve
plugin is installed on the server.
Manage CVE plugins data and configuration.
Get all CVE details
result required | string Enum: "success" "error" Result of the request |
action required | string Value: "getAllCve" The id of the action |
required | object |
curl --header "X-API-Token: yourToken" --request GET 'https://rudder.example.com/rudder/api/latest/cve'
{- "result": "success",
- "action": "getAllCve",
- "data": {
- "CVEs": [
- {
- "id": "CVE-2019-5953",
- "publishedDate": "2019-05-17 18:29:00+02",
- "lastModifiedDate": "2019-07-03 01:15:00+02",
- "description": "Buffer overflow in GNU Wget 1.20.1 and earlier allows remote attackers to cause a denial-of-service (DoS) or may execute an arbitrary code via unspecified vectors.",
- "cweIds": [
- "CWE-119"
], - "cvssv3": {
- "baseScore": 9.8,
- "vector": "CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H",
- "baseSeverity": "critical"
}, - "cvssv2": {
- "baseScore": 0,
- "vector": "string"
}
}
]
}
}
Trigger a CVE check
result required | string Enum: "success" "error" Result of the request |
action required | string Value: "checkCVE" The id of the action |
required | object |
curl --header "X-API-Token: yourToken" --request POST 'https://rudder.example.com/rudder/api/latest/cve/check'
{- "result": "success",
- "action": "checkCVE",
- "data": {
- "cveChecks": [
- {
- "cveId": "CVE-2019-5953",
- "score": {
- "value": 9.5,
- "severity": "Critical"
}, - "nodes": [
- "string"
], - "packages": [
- {
- "name": "libssh2-1",
- "version": "1.7.0-1"
}
]
}
]
}
}
Get CVE check config
result required | string Enum: "success" "error" Result of the request |
action required | string Value: "getCVECheckConfiguration" The id of the action |
required | object |
curl --header "X-API-Token: yourToken" --request GET 'https://rudder.example.com/rudder/api/latest/cve/check/config'
{- "result": "success",
- "action": "getCVECheckConfiguration",
}
Update cve check config
url | string Url used to check CVE |
apiKey | string Token used by to contact the API to check CVE |
result required | string Enum: "success" "error" Result of the request |
action required | string Value: "updateCVECheckConfiguration" The id of the action |
required | object |
{- "apiKey": "string"
}
{- "result": "success",
- "action": "updateCVECheckConfiguration",
}
Get last CVE check result
groupId | string Id of node groups you want to get from last CVE check |
nodeId | string Id of nodes you want to get from last CVE check |
cveId | string Id of CVE you want to get from last CVE check |
package | string Name of packages you want to get from last CVE check |
severity | string Enum: "critical" "high" "medium" "low" "none" "unknown" Severity of the CVE you want to get from last CVE check |
result required | string Enum: "success" "error" Result of the request |
action required | string Value: "getLastCVECheck" The id of the action |
required | object |
curl --header "X-API-Token: yourToken" --request GET 'https://rudder.example.com/rudder/api/latest/cve/check/last'
{- "result": "success",
- "action": "getLastCVECheck",
- "data": {
- "CVEChecks": [
- {
- "cveId": "CVE-2019-5953",
- "score": {
- "value": 9.5,
- "severity": "Critical"
}, - "nodes": [
- "string"
], - "packages": [
- {
- "name": "libssh2-1",
- "version": "1.7.0-1"
}
]
}
]
}
}
Get CVE details, from a list passed as parameter
cveIds | Array of strings |
onlyScore | boolean Default: false Only send score of the cve, and not the whole detailed list |
minScore | float Only send CVE with a score higher than the value |
maxScore | float Only send CVE with a score lower than the value |
publishedDate | string Only send CVE with a publication date more recent than the value |
result required | string Enum: "success" "error" Result of the request |
action required | string Value: "getCVEList" The id of the action |
required | object |
{- "cveIds": [
- "CVE-2019-5953"
], - "onlyScore": true,
- "minScore": 7.5,
- "maxScore": 8.5,
- "publishedDate": "string"
}
{- "result": "success",
- "action": "getCVEList",
- "data": {
- "CVEs": [
- {
- "id": "CVE-2019-5953",
- "publishedDate": "2019-05-17 18:29:00+02",
- "lastModifiedDate": "2019-07-03 01:15:00+02",
- "description": "Buffer overflow in GNU Wget 1.20.1 and earlier allows remote attackers to cause a denial-of-service (DoS) or may execute an arbitrary code via unspecified vectors.",
- "cweIds": [
- "CWE-119"
], - "cvssv3": {
- "baseScore": 9.8,
- "vector": "CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H",
- "baseSeverity": "critical"
}, - "cvssv2": {
- "baseScore": 0,
- "vector": "string"
}
}
]
}
}
Update CVE database from remote source
url | string Url used to update CVE, will default to one set in config |
years | Array of strings |
result required | string Enum: "success" "error" Result of the request |
action required | string Value: "updateCVE" The id of the action |
required | object |
{- "years": [
- "2019"
]
}
{- "result": "success",
- "action": "updateCVE",
- "data": {
- "CVEs": 12345
}
}
Update CVE database from file system
result required | string Enum: "success" "error" Result of the request |
action required | string Value: "readCVEfromFS" The id of the action |
required | object |
curl --header "X-API-Token: yourToken" --request POST 'https://rudder.example.com/rudder/api/latest/cve/update/FS'
{- "result": "success",
- "action": "readCVEfromFS",
- "data": {
- "CVEs": 12345
}
}
Get a CVE details
cveId required | string <uuid> Example: CVE-2022-25235 Id of the CVE |
result required | string Enum: "success" "error" Result of the request |
action required | string Value: "getCve" The id of the action |
required | object |
curl --header "X-API-Token: yourToken" --request GET 'https://rudder.example.com/rudder/api/latest/cve/CVE-2019-5953'
{- "result": "success",
- "action": "getCve",
- "data": {
- "CVEs": [
- {
- "id": "CVE-2019-5953",
- "publishedDate": "2019-05-17 18:29:00+02",
- "lastModifiedDate": "2019-07-03 01:15:00+02",
- "description": "Buffer overflow in GNU Wget 1.20.1 and earlier allows remote attackers to cause a denial-of-service (DoS) or may execute an arbitrary code via unspecified vectors.",
- "cweIds": [
- "CWE-119"
], - "cvssv3": {
- "baseScore": 9.8,
- "vector": "CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H",
- "baseSeverity": "critical"
}, - "cvssv2": {
- "baseScore": 0,
- "vector": "string"
}
}
]
}
}
Requires that the datasources
plugin is installed on the server.
Data sources plugin configuration.
Get the configuration of all present data sources
result required | string Enum: "success" "error" Result of the request |
action required | string Value: "getAllDataSources" The id of the action |
required | object |
curl --header "X-API-Token: yourToken" --request GET 'https://rudder.example.com/rudder/api/latest/datasources'
{- "result": "success",
- "action": "getAllDataSources",
- "data": {
- "datasources": [
- {
- "id": "test-data-source",
- "name": "Test data source",
- "description": "Synchronize example data from the CMDB",
- "enabled": true,
- "updateTimeout": 30,
- "runParameters": {
- "onGeneration": true,
- "onNewNode": true,
- "schedule": {
- "type": "scheduled"
}
}, - "type": {
- "name": "HTTP",
- "parameters": {
- "requestMethod": "GET",
- "headers": [
- {
- "name": "X-API-Key",
- "value": "05ce8e3d9df6"
}
], - "path": "string",
- "checkSsl": true,
- "requestTimeout": 10,
- "requestMode": {
- "name": "byNode"
}
}
}
}
]
}
}
Create a new data source
id | string Unique identifier of the data source to create. |
name | string The human readable name of the data source to create. |
description | string Description of the goal of the data source to create. |
enabled | boolean Enable or disable data source. |
updateTimeout | integer Duration in seconds before aborting data source update. The main goal is to prevent never ending requests. If a periodicity if configured, you should set that timeout at a lower value. |
object Parameters to configure when the data source is fetched to update node properties. | |
object Define and configure data source type. |
result required | string Enum: "success" "error" Result of the request |
action required | string Value: "createDataSource" The id of the action |
required | object Information about the data sources |
{- "id": "test-data-source",
- "name": "Test data source",
- "description": "Synchronize example data from the CMDB",
- "enabled": true,
- "updateTimeout": 30,
- "runParameters": {
- "onGeneration": true,
- "onNewNode": true,
- "schedule": {
- "type": "scheduled"
}
}, - "type": {
- "name": "HTTP",
- "parameters": {
- "requestMethod": "GET",
- "headers": [
- {
- "name": "X-API-Key",
- "value": "05ce8e3d9df6"
}
], - "path": "string",
- "checkSsl": true,
- "requestTimeout": 10,
- "requestMode": {
- "name": "byNode"
}
}
}
}
{- "result": "success",
- "action": "createDataSource",
- "data": {
- "datasources": [
- {
- "id": "test-data-source",
- "name": "Test data source",
- "description": "Synchronize example data from the CMDB",
- "enabled": true,
- "updateTimeout": 30,
- "runParameters": {
- "onGeneration": true,
- "onNewNode": true,
- "schedule": {
- "type": "scheduled"
}
}, - "type": {
- "name": "HTTP",
- "parameters": {
- "requestMethod": "GET",
- "headers": [
- {
- "name": "X-API-Key",
- "value": "05ce8e3d9df6"
}
], - "path": "string",
- "checkSsl": true,
- "requestTimeout": 10,
- "requestMode": {
- "name": "byNode"
}
}
}
}
]
}
}
Update properties from all data source on all nodes. The call is asynchronous.
result required | string Enum: "success" "error" Result of the request |
action required | string Value: "ReloadAllDatasourcesAllNodes" The id of the action |
data required | string |
curl --header "X-API-Token: yourToken" --request POST https://rudder.example.com/rudder/api/latest/datasources/reload
{- "result": "success",
- "action": "ReloadAllDatasourcesAllNodes",
- "data": "Data for all nodes, for all configured data sources are going to be updated"
}
Update properties from all data source on all nodes. The call is asynchronous.
datasourceId required | string Example: test-data-source Id of the data source |
result required | string Enum: "success" "error" Result of the request |
action required | string Value: "ReloadOneDatasourceAllNodes" The id of the action |
data required | string |
curl --header "X-API-Token: yourToken" --request POST https://rudder.example.com/rudder/api/latest/datasources/reload/datasourceId
{- "result": "success",
- "action": "ReloadOneDatasourceAllNodes",
- "data": "Data for all nodes, for the 'test-data-source' data source are going to be updated"
}
Get the configuration of a data source
datasourceId required | string Example: test-data-source Id of the data source |
result required | string Enum: "success" "error" Result of the request |
action required | string Value: "getDataSource" The id of the action |
required | object |
curl --header "X-API-Token: yourToken" --request GET https://rudder.example.com/rudder/api/latest/datasources/my-data-source
{- "result": "success",
- "action": "getDataSource",
- "data": {
- "datasources": [
- {
- "id": "test-data-source",
- "name": "Test data source",
- "description": "Synchronize example data from the CMDB",
- "enabled": true,
- "updateTimeout": 30,
- "runParameters": {
- "onGeneration": true,
- "onNewNode": true,
- "schedule": {
- "type": "scheduled"
}
}, - "type": {
- "name": "HTTP",
- "parameters": {
- "requestMethod": "GET",
- "headers": [
- {
- "name": "X-API-Key",
- "value": "05ce8e3d9df6"
}
], - "path": "string",
- "checkSsl": true,
- "requestTimeout": 10,
- "requestMode": {
- "name": "byNode"
}
}
}
}
]
}
}
Update the configuration of a data source
datasourceId required | string Example: test-data-source Id of the data source |
id | string Unique identifier of the data source to create. |
name | string The human readable name of the data source to create. |
description | string Description of the goal of the data source to create. |
enabled | boolean Enable or disable data source. |
updateTimeout | integer Duration in seconds before aborting data source update. The main goal is to prevent never ending requests. If a periodicity if configured, you should set that timeout at a lower value. |
object Parameters to configure when the data source is fetched to update node properties. | |
object Define and configure data source type. |
result required | string Enum: "success" "error" Result of the request |
action required | string Value: "updateDataSource" The id of the action |
required | object |
{- "id": "test-data-source",
- "name": "Test data source",
- "description": "Synchronize example data from the CMDB",
- "enabled": true,
- "updateTimeout": 30,
- "runParameters": {
- "onGeneration": true,
- "onNewNode": true,
- "schedule": {
- "type": "scheduled"
}
}, - "type": {
- "name": "HTTP",
- "parameters": {
- "requestMethod": "GET",
- "headers": [
- {
- "name": "X-API-Key",
- "value": "05ce8e3d9df6"
}
], - "path": "string",
- "checkSsl": true,
- "requestTimeout": 10,
- "requestMode": {
- "name": "byNode"
}
}
}
}
{- "result": "success",
- "action": "updateDataSource",
- "data": {
- "datasources": [
- {
- "id": "test-data-source",
- "name": "Test data source",
- "description": "Synchronize example data from the CMDB",
- "enabled": true,
- "updateTimeout": 30,
- "runParameters": {
- "onGeneration": true,
- "onNewNode": true,
- "schedule": {
- "type": "scheduled"
}
}, - "type": {
- "name": "HTTP",
- "parameters": {
- "requestMethod": "GET",
- "headers": [
- {
- "name": "X-API-Key",
- "value": "05ce8e3d9df6"
}
], - "path": "string",
- "checkSsl": true,
- "requestTimeout": 10,
- "requestMode": {
- "name": "byNode"
}
}
}
}
]
}
}
Delete a data source configuration
datasourceId required | string Example: test-data-source Id of the data source |
result required | string Enum: "success" "error" Result of the request |
action required | string Value: "deleteDataSource" The id of the action |
required | object |
curl --header "X-API-Token: yourToken" --request DELETE https://rudder.example.com/rudder/api/latest/datasources/my-data-source
{- "result": "success",
- "action": "deleteDataSource",
- "data": {
- "datasources": [
- {
- "id": "test-data-source",
- "name": "Test data source",
- "description": "Synchronize example data from the CMDB",
- "enabled": true,
- "updateTimeout": 30,
- "runParameters": {
- "onGeneration": true,
- "onNewNode": true,
- "schedule": {
- "type": "scheduled"
}
}, - "type": {
- "name": "HTTP",
- "parameters": {
- "requestMethod": "GET",
- "headers": [
- {
- "name": "X-API-Key",
- "value": "05ce8e3d9df6"
}
], - "path": "string",
- "checkSsl": true,
- "requestTimeout": 10,
- "requestMode": {
- "name": "byNode"
}
}
}
}
]
}
}
Update properties from all data sources on one nodes. The call is asynchronous.
nodeId required | string <uuid (or "root")> Example: 9a1773c9-0889-40b6-be89-f6504443ac1b Id of the target node |
result required | string Enum: "success" "error" Result of the request |
action required | string Value: "ReloadAllDatasourcesOneNode" The id of the action |
data required | string |
curl --header "X-API-Token: yourToken" --request POST https://rudder.example.com/rudder/api/latest/nodes/17dadf50-6056-4c8b-a935-6b97d14b89a7/fetchData
{- "result": "success",
- "action": "ReloadAllDatasourcesOneNode",
- "data": "Data for node '4e3336f9-ace8-44d6-8d07-496ff1631b01', for all configured data sources, is going to be updated"
}
Update properties from a data source on one nodes. The call is asynchronous.
nodeId required | string <uuid (or "root")> Example: 9a1773c9-0889-40b6-be89-f6504443ac1b Id of the target node |
datasourceId required | string Example: test-data-source Id of the data source |
result required | string Enum: "success" "error" Result of the request |
action required | string Value: "ReloadOneDatasourceOneNode" The id of the action |
data required | string |
curl --header "X-API-Token: yourToken" --request POST https://rudder.example.com/rudder/api/latest/nodes/nodeId/fetchData/datasourceId
{- "result": "success",
- "action": "ReloadOneDatasourceOneNode",
- "data": "Data for node '4e3336f9-ace8-44d6-8d07-496ff1631b01', for ' test-data-source' data source, is going to be updated"
}
Requires that the scale-out-relay
plugin is installed on the server.
Manage relays.
Demote a relay to a simple node.
nodeId required | string <uuid (or "root")> Example: 9a1773c9-0889-40b6-be89-f6504443ac1b Id of the target node |
action required | string Value: "demoteToNode" The id of the action |
result required | string Enum: "success" "error" Result of the request |
data required | string Success or error message |
curl --header "X-API-Token: yourToken" --request POST --header "Content-Type: application/json" https://rudder.example.com/rudder/api/latest/scaleoutrelay/promote/17dadf50-6056-4c8b-a935-6b97d14b89a7?prettify=true'
{- "action": "demoteToNode",
- "result": "success",
- "data": "17dadf50-6056-4c8b-a935-6b97d14b89a7"
}
Promote a node to relay
nodeId required | string <uuid (or "root")> Example: 9a1773c9-0889-40b6-be89-f6504443ac1b Id of the target node |
action required | string Value: "promoteToRelay" The id of the action |
result required | string Enum: "success" "error" Result of the request |
data required | string Success or error message |
curl --header "X-API-Token: yourToken" --request POST --header "Content-Type: application/json" https://rudder.example.com/rudder/api/latest/scaleoutrelay/promote/17dadf50-6056-4c8b-a935-6b97d14b89a7?prettify=true'
{- "action": "promoteToRelay",
- "result": "success",
- "data": "17dadf50-6056-4c8b-a935-6b97d14b89a7"
}
Requires that the user-management
plugin is installed on the server.
Manage users settings and configuration file.
Add a new user
isPreHahed | boolean Enum: false true If you want to provide hashed password set this property to |
username | string |
password | string this password will be hashed for you if the |
role | Array of strings Defined user's permissions |
result required | string Enum: "success" "error" Result of the request |
action required | string Value: "addUser" The id of the action |
required | object |
{- "isPreHahed": false,
- "username": "John Doe",
- "password": "passwdWillBeStoredHashed",
- "role": [
- "user"
]
}
{- "result": "success",
- "action": "addUser",
- "data": {
- "addedUser": {
- "username": "John Doe",
- "password": "passwdWillBeStoredHashed",
- "role": [
- "user"
]
}
}
}
Get all available roles and their rights
result required | string Enum: "success" "error" Result of the request |
action required | string Value: "getRole" The id of the action |
required | Array of objects |
curl --header "X-API-Token: yourToken" --request GET 'https://rudder.example.com/rudder/api/latest/usermanagement/roles'
{- "result": "success",
- "action": "getRole",
- "data": [
- {
- "id": "inventory",
- "rights": [
- "node_read"
]
}
]
}
Rename, change password (pre-hashed or not) and change permission of an user. If a parameter is empty, it will be ignored.
username required | string Example: JaneDoe Username of an user (unique) |
isPreHahed | boolean Enum: false true If you want to provide hashed password set this property to |
username | string |
password | string this password will be hashed for you if the |
role | Array of strings Defined user's permissions |
result required | string Enum: "success" "error" Result of the request |
action required | string Value: "updateUser" The id of the action |
required | object |
{- "isPreHahed": false,
- "username": "John Doe",
- "password": "passwdWillBeStoredHashed",
- "role": [
- "user"
]
}
{- "result": "success",
- "action": "updateUser",
- "data": {
- "updatedUser": {
- "username": "Titi",
- "password": "Titi",
- "role": [
- "user"
]
}
}
}
Get the list of all present users and their permissions
result required | string Enum: "success" "error" Result of the request |
action required | string Value: "getUserInfo" The id of the action |
required | object |
curl --header "X-API-Token: yourToken" --request GET 'https://rudder.example.com/rudder/api/latest/usermanagement/users'
{- "result": "success",
- "action": "getUserInfo",
- "data": {
- "digest": "BCRYPT",
- "users": [
- {
- "isPreHahed": false,
- "username": "John Doe",
- "password": "passwdWillBeStoredHashed",
- "role": [
- "user"
]
}
]
}
}
Reload the users from the file system, in the configuration file
result required | string Enum: "success" "error" Result of the request |
action required | string Value: "reloadUserConf" The id of the action |
required | object |
curl --header "X-API-Token: yourToken" --request POST 'https://rudder.example.com/rudder/api/latest/usermanagement/users/reload'
{- "result": "success",
- "action": "reloadUserConf",
- "data": {
- "reload": {
- "status": "Done"
}
}
}
Delete the user and his permissions
username required | string Example: JaneDoe Username of an user (unique) |
result required | string Enum: "success" "error" Result of the request |
action required | string Value: "deleteUser" The id of the action |
required | object |
curl --header "X-API-Token: yourToken" --request DELETE 'https://rudder.example.com/rudder/api/latest/usermanagement/Toto'
{- "result": "success",
- "action": "deleteUser",
- "data": {
- "deletedUser": {
- "username": "Toto"
}
}
}
Requires that the branding
plugin is installed on the server.
Manage web interface customization.
Get all web interface customization parameters
result required | string Enum: "success" "error" Result of the request |
action required | string Value: "getBrandingConf" The id of the action |
required | object |
curl --header "X-API-Token: yourToken" --request GET https://rudder.example.com/rudder/api/latest/branding
{- "result": "success",
- "action": "getBrandingConf",
- "data": {
- "branding": {
- "displayBar": true,
- "displayLabel": true,
- "labelText": "Production",
- "barColor": {
- "red": 0.2,
- "blue": 0.235,
- "green": 0.01,
- "alpha": 0.5
}, - "labelColor": {
- "red": 0.2,
- "blue": 0.235,
- "green": 0.01,
- "alpha": 0.5
}, - "wideLogo": {
- "enable": true
}, - "smallLogo": {
- "enable": true
}, - "displayBarLogin": true,
- "displayMotd": true,
- "motd": "Welcome, please sign in:"
}
}
}
change color, logo, label etc.
displayBar required | boolean Whether header bar is displayed or not |
displayLabel required | boolean Whether header bar's label is displayed or not |
labelText required | string The header bar's label title |
required | object (color) |
required | object (color) |
required | object (logo) |
required | object (logo) |
displayBarLogin required | boolean Whether header bar is displayed in login page or not |
displayMotd required | boolean Whether the message of the day is displayed in login page or not |
motd required | string Message of the day in login page |
result required | string Enum: "success" "error" Result of the request |
action required | string Value: "updateBRandingConf" The id of the action |
required | object |
{- "displayBar": true,
- "displayLabel": true,
- "labelText": "Production",
- "barColor": {
- "red": 0.2,
- "blue": 0.235,
- "green": 0.01,
- "alpha": 0.5
}, - "labelColor": {
- "red": 0.2,
- "blue": 0.235,
- "green": 0.01,
- "alpha": 0.5
}, - "wideLogo": {
- "enable": true
}, - "smallLogo": {
- "enable": true
}, - "displayBarLogin": true,
- "displayMotd": true,
- "motd": "Welcome, please sign in:"
}
{- "result": "success",
- "action": "updateBRandingConf",
- "data": {
- "branding": {
- "displayBar": true,
- "displayLabel": true,
- "labelText": "Production",
- "barColor": {
- "red": 0.2,
- "blue": 0.235,
- "green": 0.01,
- "alpha": 0.5
}, - "labelColor": {
- "red": 0.2,
- "blue": 0.235,
- "green": 0.01,
- "alpha": 0.5
}, - "wideLogo": {
- "enable": true
}, - "smallLogo": {
- "enable": true
}, - "displayBarLogin": true,
- "displayMotd": true,
- "motd": "Welcome, please sign in:"
}
}
}
Reload the configuration from file
result required | string Enum: "success" "error" Result of the request |
action required | string Value: "getBrandingConf" The id of the action |
required | object |
curl --header "X-API-Token: yourToken" --request POST https://rudder.example.com/rudder/api/latest/branding/reload
{- "result": "success",
- "action": "getBrandingConf",
- "data": {
- "branding": {
- "displayBar": true,
- "displayLabel": true,
- "labelText": "Production",
- "barColor": {
- "red": 0.2,
- "blue": 0.235,
- "green": 0.01,
- "alpha": 0.5
}, - "labelColor": {
- "red": 0.2,
- "blue": 0.235,
- "green": 0.01,
- "alpha": 0.5
}, - "wideLogo": {
- "enable": true
}, - "smallLogo": {
- "enable": true
}, - "displayBarLogin": true,
- "displayMotd": true,
- "motd": "Welcome, please sign in:"
}
}
}
Requires that the secret-management
plugin is installed on the server.
Manage secrets variables.
Get the list of all secrets without their value
result required | string Enum: "success" "error" Result of the request |
action required | string Value: "getAllSecrets" The id of the action |
required | object |
curl --header "X-API-Token: yourToken" --request GET 'https://rudder.example.com/rudder/api/latest/secret'
{- "result": "success",
- "action": "getAllSecrets",
- "data": {
- "secrets": [
- {
- "name": "secret-password",
- "description": "Password of my super secret user account"
}
]
}
}
Update a secret and override the value, the name cannot be overridden
name | string The name of the secret used as a reference on the value |
description | string The description of the secret to identify it more easily |
value | string The value of the secret it will not be exposed in the interface |
result required | string Enum: "success" "error" Result of the request |
action required | string Value: "updateSecret" The id of the action |
required | object |
{- "name": "secret-password",
- "description": "Password of my super secret user account",
- "value": "nj-k;EO32!kFWewn2Nk,u"
}
{- "result": "success",
- "action": "updateSecret",
- "data": {
- "secrets": [
- {
- "name": "secret-password",
- "description": "Password of my super secret user account"
}
]
}
}
Add a secret
name | string The name of the secret used as a reference on the value |
description | string The description of the secret to identify it more easily |
value | string The value of the secret it will not be exposed in the interface |
result required | string Enum: "success" "error" Result of the request |
action required | string Value: "addSecret" The id of the action |
required | object |
{- "name": "secret-password",
- "description": "Password of my super secret user account",
- "value": "nj-k;EO32!kFWewn2Nk,u"
}
{- "result": "success",
- "action": "addSecret",
- "data": {
- "secrets": [
- {
- "name": "secret-password",
- "description": "Password of my super secret user account"
}
]
}
}
Get one secret by his unique name
name required | string Unique name of the secret |
result required | string Enum: "success" "error" Result of the request |
action required | string Value: "getSecret" The id of the action |
required | object |
curl --header "X-API-Token: yourToken" --request GET 'https://rudder.example.com/rudder/api/latest/secret-password'
{- "result": "success",
- "action": "getSecret",
- "data": {
- "secrets": [
- {
- "name": "secret-password",
- "description": "Password of my super secret user account"
}
]
}
}
Remove the secret by his unique name
name required | string Unique name of the secret |
result required | string Enum: "success" "error" Result of the request |
action required | string Value: "deleteSecret" The id of the action |
required | object |
curl --header "X-API-Token: yourToken" --request DELETE 'https://rudder.example.com/rudder/api/latest/secret/secret-password'
{- "result": "success",
- "action": "deleteSecret",
- "data": {
- "secrets": [
- {
- "name": "secret-password",
- "description": "Password of my super secret user account"
}
]
}
}