ComplianceNodes

Get compliance nodes

SecurityApiKeyAuth
Request
query Parameters
limit
integer [ 1 .. 1000 ]
Default: 100

Maximum number of objects to return per query. The value must be between 1 and 1000. Default is 100.

Example: limit=50
cursor
string [ 1 .. 4096 ] characters

Cursor to fetch the next or previous page of results. The value of this property must be extracted from the 'prev_cursor' or 'next_cursor' property of a PaginatedResponseMetadata which is contained in the response of list and search API endpoints.

sort
string or null

The field to sort results by. A property name with a prepended '-' signifies a descending order.

Enum: "id" "-id" "name" "-name" "hostname" "-hostname" "insecure_ssl" "-insecure_ssl" "unsafe_ssl_hostname_check" "-unsafe_ssl_hostname_check" "username" "-username" "creation_date" "-creation_date" "account_id" "-account_id" "account_name" "-account_name" "account_id" "-account_id" "status" "-status" "status_details" "-status_details" "job_orchestrator_id" "-job_orchestrator_id" "job_orchestrator_name" "-job_orchestrator_name"
Example: sort=id
Responses
200

OK

get/compliance-nodes
Response samples
application/json
{
  • "items": [
    ],
  • "response_metadata": {
    }
}

Register a compliance node

SecurityApiKeyAuth
Request
Request Body schema: application/json
required

The Compliance Node being registered

name
required
string

The name of the compliance node.

hostname
required
string

The hostname of the compliance node.

insecure_ssl
boolean
Default: false

Allow connections to the compliance node over HTTPs without validating the TLS certificate. Even though the connection to the compliance node might be performed over HTTPs, setting this property eliminates the protection against a man-in-the-middle attach for connections to this node. Instead, consider configuring DCT with Certificate Authority certificates.

unsafe_ssl_hostname_check
boolean
Default: false

Ignore validation of the name associated to the TLS certificate when connecting to the compliance node over HTTPs. Setting this value must only be done if the TLS certificate of the compliance node does not match the hostname, and the TLS configuration of the compliance node cannot be fixed. Setting this property reduces the protection against a man-in-the-middle attack for connections to this compliance node. This is ignored if insecure_ssl is set.

username
required
string

The username for connecting to the compliance node.

password
required
string

The password for connecting to the compliance node.

job_orchestrator_id
required
string

The job orchestrator id associated with the compliance node.

Responses
201

Created Compliance Node.

post/compliance-nodes
Request samples
application/json
{
  • "name": "My Compliance Node",
  • "hostname": "compliance.example.com",
  • "insecure_ssl": false,
  • "unsafe_ssl_hostname_check": false,
  • "username": "user1",
  • "password": "secret",
  • "job_orchestrator_id": "f8e7d6c5-b4a3-2109-8765-43210fedcba9"
}
Response samples
application/json
{
  • "id": "string",
  • "job": {
    }
}

Search for compliance nodes

SecurityApiKeyAuth
Request
query Parameters
limit
integer [ 1 .. 1000 ]
Default: 100

Maximum number of objects to return per query. The value must be between 1 and 1000. Default is 100.

Example: limit=50
cursor
string [ 1 .. 4096 ] characters

Cursor to fetch the next or previous page of results. The value of this property must be extracted from the 'prev_cursor' or 'next_cursor' property of a PaginatedResponseMetadata which is contained in the response of list and search API endpoints.

sort
string or null

The field to sort results by. A property name with a prepended '-' signifies a descending order.

Enum: "id" "-id" "name" "-name" "hostname" "-hostname" "insecure_ssl" "-insecure_ssl" "unsafe_ssl_hostname_check" "-unsafe_ssl_hostname_check" "username" "-username" "creation_date" "-creation_date" "account_id" "-account_id" "account_name" "-account_name" "account_id" "-account_id" "status" "-status" "status_details" "-status_details" "job_orchestrator_id" "-job_orchestrator_id" "job_orchestrator_name" "-job_orchestrator_name"
Example: sort=id
Request Body schema: application/json

A request body containing a filter expression. This enables searching for items matching arbitrarily complex conditions. The list of attributes which can be used in filter expressions is available in the x-filterable vendor extension.

Filter Expression Overview

Note: All keywords are case-insensitive

Comparison Operators

Operator Description Example
CONTAINS Substring or membership testing for string and list attributes respectively. field3 CONTAINS 'foobar', field4 CONTAINS TRUE
IN Tests if field is a member of a list literal. List can contain a maximum of 100 values field2 IN ['Goku', 'Vegeta']
GE Tests if a field is greater than or equal to a literal value field1 GE 1.2e-2
GT Tests if a field is greater than a literal value field1 GT 1.2e-2
LE Tests if a field is less than or equal to a literal value field1 LE 9000
LT Tests if a field is less than a literal value field1 LT 9.02
NE Tests if a field is not equal to a literal value field1 NE 42
EQ Tests if a field is equal to a literal value field1 EQ 42

Search Operator

The SEARCH operator filters for items which have any filterable attribute that contains the input string as a substring, comparison is done case-insensitively. This is not restricted to attributes with string values. Specifically SEARCH '12' would match an item with an attribute with an integer value of 123.

Logical Operators

Ordered by precedence.

Operator Description Example
NOT Logical NOT (Right associative) NOT field1 LE 9000
AND Logical AND (Left Associative) field1 GT 9000 AND field2 EQ 'Goku'
OR Logical OR (Left Associative) field1 GT 9000 OR field2 EQ 'Goku'

Grouping

Parenthesis () can be used to override operator precedence.

For example: NOT (field1 LT 1234 AND field2 CONTAINS 'foo')

Literal Values

Literal Description Examples
Nil Represents the absence of a value nil, Nil, nIl, NIL
Boolean true/false boolean true, false, True, False, TRUE, FALSE
Number Signed integer and floating point numbers. Also supports scientific notation. 0, 1, -1, 1.2, 0.35, 1.2e-2, -1.2e+2
String Single or double quoted "foo", "bar", "foo bar", 'foo', 'bar', 'foo bar'
Datetime Formatted according to RFC3339 2018-04-27T18:39:26.397237+00:00
List Comma-separated literals wrapped in square brackets [0], [0, 1], ['foo', "bar"]

Limitations

  • A maximum of 8 unique identifiers may be used inside a filter expression.
filter_expression
string [ 5 .. 50000 ] characters
Responses
200

OK

post/compliance-nodes/search
Request samples
application/json

An example of a nested Object comparison testing that at least one repository has a version which is equal to 19.0.0.

{
  • "filter_expression": "repositories CONTAINS {version eq '19.0.0'}"
}
Response samples
application/json
{
  • "items": [
    ],
  • "response_metadata": {
    }
}

Retrieve a compliance node by ID.

SecurityApiKeyAuth
Request
path Parameters
complianceNodeId
required
string non-empty

The ID of the Compliance Node.

Responses
200

OK

get/compliance-nodes/{complianceNodeId}
Response samples
application/json
{
  • "id": "a1b2c3d4-e5f6-7890-1234-567890abcdef",
  • "name": "My Compliance Node",
  • "hostname": "compliance.example.com",
  • "insecure_ssl": false,
  • "unsafe_ssl_hostname_check": false,
  • "username": "user1",
  • "password": "secret",
  • "creation_date": "2024-06-01T08:51:34.148000+00:00",
  • "account_id": 1,
  • "account_name": "username",
  • "status": "ONLINE",
  • "status_details": "Connection successful",
  • "job_orchestrator_id": "f8e7d6c5-b4a3-2109-8765-43210fedcba9",
  • "job_orchestrator_name": "Job Orchestrator"
}

Update a compliance node.

SecurityApiKeyAuth
Request
path Parameters
complianceNodeId
required
string non-empty

The ID of the Compliance Node.

Request Body schema: application/json
required
name
string

The name of the compliance node.

hostname
string

The hostname of the compliance node.

username
string

The username for connecting to the compliance node.

password
string

The password for connecting to the compliance node.

insecure_ssl
boolean

Allow connections to the compliance node over HTTPs without validating the TLS certificate. Even though the connection to the compliance node might be performed over HTTPs, setting this property eliminates the protection against a man-in-the-middle attach for connections to this node. Instead, consider configuring DCT with Certificate Authority certificates.

unsafe_ssl_hostname_check
boolean

Ignore validation of the name associated to the TLS certificate when connecting to the compliance node over HTTPs. Setting this value must only be done if the TLS certificate of the compliance node does not match the hostname, and the TLS configuration of the compliance node cannot be fixed. Setting this property reduces the protection against a man-in-the-middle attack for connections to this compliance node. This is ignored if insecure_ssl is set.

Responses
200

OK

patch/compliance-nodes/{complianceNodeId}
Request samples
application/json
{
  • "name": "My Compliance Node",
  • "hostname": "compliance.example.com",
  • "username": "user1",
  • "password": "secret",
  • "insecure_ssl": false,
  • "unsafe_ssl_hostname_check": false
}
Response samples
application/json
{
  • "job": {
    }
}

Delete a compliance node.

SecurityApiKeyAuth
Request
path Parameters
complianceNodeId
required
string non-empty

The ID of the Compliance Node.

Responses
200

OK

delete/compliance-nodes/{complianceNodeId}
Response samples
application/json
{
  • "job": {
    }
}