Nova ADC provides an easy-to-use REST based API, with token based authentication. The entire product is exposed via API, allowing you to incorporate it into your DevOps tooling, or automate your scaling operations.
This guide is for the ADCs API, used to control your ADC configurations.
Method: GET
Endpoint: /api/adcs
This will return a list of your ADCs and their attachments. It is important to note the "provider", which is the "type" of ADC you must use when editing them.
{
"success": true,
"data": {
"adcs": [
{
"id": 3,
"organisation_id": 1,
"created_by": 2,
"created_at": "2019-10-11 12:29:17",
"updated_at": "2019-10-11 12:29:17",
"name": "test",
"provider": "ssl"
}
],
"attachments": {
"3": {
"1": {
"id": 1,
"organisation_id": 1,
"created_by": 2,
"created_at": "09:25:47+00",
"active": true,
"activated_by": null,
"activated_at": null,
"name": "Example Node",
"key": "...",
"uuid": "...",
"last_connected": null
}
}
}
}
}
Method: GET
Endpoint: /api/adcs/{adc_id}/stats
This will return very detailed statistics about the performance, metrics, response times, WAF, health and more for each node that has the ADC attached.
{
"success": true,
"data": {
"adc": {
"deleted_at": null,
"id": 3,
"created_at": "2019-10-11 12:29:17",
"updated_at": "2019-10-11 12:29:17",
"organisation_id": 1,
"name": "test",
"provider": "ssl",
"provider_configuration_id": "2",
"created_by": 2
},
"stats": {
"1": {
"info": {
...
},
...
Method: POST
Variables:
- name: string
- type: http|https|ssl|rdp|exchange|tcp|mysql
Endpoint: /api/adcs
{
"success": true,
"data": {
"id": 5,
"message": "ADC APIADC added successfully. You may use the returned id to configure it."
}
}
Method: POST
Endpoint: /api/adcs/{id}/delete
{
"success": true,
"data": {
"id": "4",
"message": "ADC deleted successfully."
}
}
Method: GET
Endpoint: /api/adcs/{adc_id}
Receive the configuration of an ADC. This is an excellent way to get the fields and defaults for when you edit an ADC below.
{
"success": true,
"data": {
"id": 2,
"mode": "l7",
"balance_method": "leastconn",
"stickiness": "cookie",
"health_checks": "l4",
"health_checks_path": "",
"health_checks_interval": 2000,
"health_checks_rise": 5,
"health_checks_fall": 3,
"redirect": "y",
"reencrypt": "y",
"compress": "n",
"compress_offload": "n",
"cache": "n",
"max_conn": 12345,
"rate_limit": 0,
"certificate": 1,
"timeouts": [],
"listen": "0.0.0.0:80 0.0.0.0:443",
"backends": {
"1": "on"
},
"bot_protection": "n",
"flood_protection": "n",
"post_protection": "n",
"vuln_protection": "n",
"rules_bots": "n",
"rules_threats": "n",
"rules_spam": "n",
"insecure": "n",
"headers_standard": "n",
"headers_hsts": "n",
"headers_referrer": "n",
"cookies_secure": "n",
"waf": "y",
"backendsIf": {
"1": "always"
},
"backendsText": {
"1": null,
},
"ntlm": "n",
"logging_host": "",
"logging_format": "",
"logging_nova": "y",
"logging_sample": "100"
},
"attachments": [
1
]
}
Method: POST
Variables:
- Depends on the ADC type
Endpoint: /api/adcs/{adc_id}/update
{
"success": true,
"data": {
"id": 3,
"message": "ADC test edited successfully.",
"nodes_deployed": [
1
]
}
}
balance_method: roundrobin|leastconn|source
stickiness: cookie|stick|none
certificate: certificate_id
logging_nova: y|n
listen: space separated bind list, e.g. 0.0.0.0:80 0.0.0.0:443
FOR EACH ENABLED BACKEND ID
backends[id]: on|off
backendsIf[id]: always|host|host_reg|path|path_beg|path_reg|sni|hostname_path|default
backendsText[id]: text string for backendsIf
health_checks: l4|l7
health_checks_fall: integer
health_checks_rise: integer
health_checks_interval: integer 2000
ntlm: y|n
logging_host: ip:port
logging_format: custom log format|blank
logging_sample: 1-100
max_conn: integer
rate_limit: integer
compress: y|n
cache: y|n
redirect: y|n
reencrypt: y|n
insecure: y|n
waf y|n
bot_protection: y|n
flood_protection: y|n
post_protection: y|n
vuln_protection: y|n
rules_bots: y|n
headers_standard: y|n
headers_hsts: y|n
headers_referrer: y|n
cookies_secure: y|n