From dea78e302f1d8da43bd09bc997bb230d8271e7d8 Mon Sep 17 00:00:00 2001 From: netbirddev Date: Mon, 20 Apr 2026 14:17:09 +0000 Subject: [PATCH] Update API pages with v0.69.0 --- src/pages/ipa/resources/events.mdx | 16 +- src/pages/ipa/resources/services.mdx | 259 ++++++++++++++++++++++++--- 2 files changed, 247 insertions(+), 28 deletions(-) diff --git a/src/pages/ipa/resources/events.mdx b/src/pages/ipa/resources/events.mdx index 1b677b12..7ed3f7a4 100644 --- a/src/pages/ipa/resources/events.mdx +++ b/src/pages/ipa/resources/events.mdx @@ -809,7 +809,14 @@ echo $response; "subdivision_code": "CA", "bytes_upload": 1024, "bytes_download": 8192, - "protocol": "http" + "protocol": "http", + "metadata": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Extra context about the request (e.g. crowdsec_verdict)" + } } ], "page": 1, @@ -839,7 +846,12 @@ echo $response; "subdivision_code": "string", "bytes_upload": "integer", "bytes_download": "integer", - "protocol": "string" + "protocol": "string", + "metadata": { + "type": "object", + "additionalProperties": "string", + "description": "Extra context about the request (e.g. crowdsec_verdict)" + } } ], "page": "integer", diff --git a/src/pages/ipa/resources/services.mdx b/src/pages/ipa/resources/services.mdx index afee5e81..4161ba5e 100644 --- a/src/pages/ipa/resources/services.mdx +++ b/src/pages/ipa/resources/services.mdx @@ -414,7 +414,17 @@ echo $response; ], "blocked_countries": [ "DE" - ] + ], + "crowdsec_mode": { + "type": "string", + "enum": [ + "off", + "enforce", + "observe" + ], + "default": "off", + "description": "CrowdSec IP reputation mode. Only available when the proxy cluster supports CrowdSec." + } }, "meta": { "created_at": "2024-02-03T10:30:00Z", @@ -503,7 +513,8 @@ echo $response; ], "blocked_countries": [ "string" - ] + ], + "crowdsec_mode": "string" }, "meta": { "created_at": "string", @@ -801,6 +812,11 @@ echo $response; ISO 3166-1 alpha-2 country codes to block. + + + + CrowdSec IP reputation mode. Only available when the proxy cluster supports CrowdSec. + @@ -887,7 +903,17 @@ curl -X POST https://api.netbird.io/api/reverse-proxies/services \ ], "blocked_countries": [ "DE" - ] + ], + "crowdsec_mode": { + "type": "string", + "enum": [ + "off", + "enforce", + "observe" + ], + "default": "off", + "description": "CrowdSec IP reputation mode. Only available when the proxy cluster supports CrowdSec." + } } }' ``` @@ -961,7 +987,17 @@ let data = JSON.stringify({ ], "blocked_countries": [ "DE" - ] + ], + "crowdsec_mode": { + "type": "string", + "enum": [ + "off", + "enforce", + "observe" + ], + "default": "off", + "description": "CrowdSec IP reputation mode. Only available when the proxy cluster supports CrowdSec." + } } }); let config = { @@ -1057,7 +1093,17 @@ payload = json.dumps({ ], "blocked_countries": [ "DE" - ] + ], + "crowdsec_mode": { + "type": "string", + "enum": [ + "off", + "enforce", + "observe" + ], + "default": "off", + "description": "CrowdSec IP reputation mode. Only available when the proxy cluster supports CrowdSec." + } } }) headers = { @@ -1153,7 +1199,17 @@ func main() { ], "blocked_countries": [ "DE" - ] + ], + "crowdsec_mode": { + "type": "string", + "enum": [ + "off", + "enforce", + "observe" + ], + "default": "off", + "description": "CrowdSec IP reputation mode. Only available when the proxy cluster supports CrowdSec." + } } }`) client := &http.Client { @@ -1267,7 +1323,17 @@ request.body = JSON.dump({ ], "blocked_countries": [ "DE" - ] + ], + "crowdsec_mode": { + "type": "string", + "enum": [ + "off", + "enforce", + "observe" + ], + "default": "off", + "description": "CrowdSec IP reputation mode. Only available when the proxy cluster supports CrowdSec." + } } }) response = https.request(request) @@ -1345,7 +1411,17 @@ RequestBody body = RequestBody.create(mediaType, '{ ], "blocked_countries": [ "DE" - ] + ], + "crowdsec_mode": { + "type": "string", + "enum": [ + "off", + "enforce", + "observe" + ], + "default": "off", + "description": "CrowdSec IP reputation mode. Only available when the proxy cluster supports CrowdSec." + } } }'); Request request = new Request.Builder() @@ -1439,7 +1515,17 @@ curl_setopt_array($curl, array( ], "blocked_countries": [ "DE" - ] + ], + "crowdsec_mode": { + "type": "string", + "enum": [ + "off", + "enforce", + "observe" + ], + "default": "off", + "description": "CrowdSec IP reputation mode. Only available when the proxy cluster supports CrowdSec." + } } }', CURLOPT_HTTPHEADER => array( @@ -1531,7 +1617,17 @@ echo $response; ], "blocked_countries": [ "DE" - ] + ], + "crowdsec_mode": { + "type": "string", + "enum": [ + "off", + "enforce", + "observe" + ], + "default": "off", + "description": "CrowdSec IP reputation mode. Only available when the proxy cluster supports CrowdSec." + } }, "meta": { "created_at": "2024-02-03T10:30:00Z", @@ -1618,7 +1714,8 @@ echo $response; ], "blocked_countries": [ "string" - ] + ], + "crowdsec_mode": "string" }, "meta": { "created_at": "string", @@ -1873,7 +1970,17 @@ echo $response; ], "blocked_countries": [ "DE" - ] + ], + "crowdsec_mode": { + "type": "string", + "enum": [ + "off", + "enforce", + "observe" + ], + "default": "off", + "description": "CrowdSec IP reputation mode. Only available when the proxy cluster supports CrowdSec." + } }, "meta": { "created_at": "2024-02-03T10:30:00Z", @@ -1960,7 +2067,8 @@ echo $response; ], "blocked_countries": [ "string" - ] + ], + "crowdsec_mode": "string" }, "meta": { "created_at": "string", @@ -2265,6 +2373,11 @@ echo $response; ISO 3166-1 alpha-2 country codes to block. + + + + CrowdSec IP reputation mode. Only available when the proxy cluster supports CrowdSec. + @@ -2351,7 +2464,17 @@ curl -X PUT https://api.netbird.io/api/reverse-proxies/services/{serviceId} \ ], "blocked_countries": [ "DE" - ] + ], + "crowdsec_mode": { + "type": "string", + "enum": [ + "off", + "enforce", + "observe" + ], + "default": "off", + "description": "CrowdSec IP reputation mode. Only available when the proxy cluster supports CrowdSec." + } } }' ``` @@ -2425,7 +2548,17 @@ let data = JSON.stringify({ ], "blocked_countries": [ "DE" - ] + ], + "crowdsec_mode": { + "type": "string", + "enum": [ + "off", + "enforce", + "observe" + ], + "default": "off", + "description": "CrowdSec IP reputation mode. Only available when the proxy cluster supports CrowdSec." + } } }); let config = { @@ -2521,7 +2654,17 @@ payload = json.dumps({ ], "blocked_countries": [ "DE" - ] + ], + "crowdsec_mode": { + "type": "string", + "enum": [ + "off", + "enforce", + "observe" + ], + "default": "off", + "description": "CrowdSec IP reputation mode. Only available when the proxy cluster supports CrowdSec." + } } }) headers = { @@ -2617,7 +2760,17 @@ func main() { ], "blocked_countries": [ "DE" - ] + ], + "crowdsec_mode": { + "type": "string", + "enum": [ + "off", + "enforce", + "observe" + ], + "default": "off", + "description": "CrowdSec IP reputation mode. Only available when the proxy cluster supports CrowdSec." + } } }`) client := &http.Client { @@ -2731,7 +2884,17 @@ request.body = JSON.dump({ ], "blocked_countries": [ "DE" - ] + ], + "crowdsec_mode": { + "type": "string", + "enum": [ + "off", + "enforce", + "observe" + ], + "default": "off", + "description": "CrowdSec IP reputation mode. Only available when the proxy cluster supports CrowdSec." + } } }) response = https.request(request) @@ -2809,7 +2972,17 @@ RequestBody body = RequestBody.create(mediaType, '{ ], "blocked_countries": [ "DE" - ] + ], + "crowdsec_mode": { + "type": "string", + "enum": [ + "off", + "enforce", + "observe" + ], + "default": "off", + "description": "CrowdSec IP reputation mode. Only available when the proxy cluster supports CrowdSec." + } } }'); Request request = new Request.Builder() @@ -2903,7 +3076,17 @@ curl_setopt_array($curl, array( ], "blocked_countries": [ "DE" - ] + ], + "crowdsec_mode": { + "type": "string", + "enum": [ + "off", + "enforce", + "observe" + ], + "default": "off", + "description": "CrowdSec IP reputation mode. Only available when the proxy cluster supports CrowdSec." + } } }', CURLOPT_HTTPHEADER => array( @@ -2995,7 +3178,17 @@ echo $response; ], "blocked_countries": [ "DE" - ] + ], + "crowdsec_mode": { + "type": "string", + "enum": [ + "off", + "enforce", + "observe" + ], + "default": "off", + "description": "CrowdSec IP reputation mode. Only available when the proxy cluster supports CrowdSec." + } }, "meta": { "created_at": "2024-02-03T10:30:00Z", @@ -3082,7 +3275,8 @@ echo $response; ], "blocked_countries": [ "string" - ] + ], + "crowdsec_mode": "string" }, "meta": { "created_at": "string", @@ -3430,7 +3624,8 @@ echo $response; "type": "free", "target_cluster": "eu.proxy.netbird.io", "supports_custom_ports": true, - "require_subdomain": false + "require_subdomain": false, + "supports_crowdsec": false } ] ``` @@ -3443,7 +3638,8 @@ echo $response; "type": "string", "target_cluster": "string", "supports_custom_ports": "boolean", - "require_subdomain": "boolean" + "require_subdomain": "boolean", + "supports_crowdsec": "boolean" } ] ``` @@ -3735,7 +3931,17 @@ echo $response; ], "blocked_countries": [ "DE" - ] + ], + "crowdsec_mode": { + "type": "string", + "enum": [ + "off", + "enforce", + "observe" + ], + "default": "off", + "description": "CrowdSec IP reputation mode. Only available when the proxy cluster supports CrowdSec." + } }, "meta": { "created_at": "2024-02-03T10:30:00Z", @@ -3822,7 +4028,8 @@ echo $response; ], "blocked_countries": [ "string" - ] + ], + "crowdsec_mode": "string" }, "meta": { "created_at": "string",