You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: articles/sentinel/data-connector-connection-rules-reference.md
+80-7Lines changed: 80 additions & 7 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -354,6 +354,7 @@ The request section defines how the CCF data connector sends requests to your da
354
354
| ---- | ---- | ---- | ---- |
355
355
|**ApiEndpoint**| True | String | URL for remote server. Defines the endpoint to pull data from. |
356
356
|**RateLimitQPS**|| Integer | Defines the number of calls or queries allowed in a second. |
357
+
|**RateLimitConfig**|| Object | Defines the rate limit configuration for the RESTful API. See [example](#ratelimitconfig-example). |
357
358
|**QueryWindowInMin**|| Integer | Defines the available query window in minutes. Minimum is 1 minute. Default is 5 minutes.|
358
359
|**HttpMethod**|| String | Defines the API method: `GET`(default) or `POST`|
359
360
|**QueryTimeFormat**|| String | Defines the date and time format the endpoint (remote server) expects. The CCF uses the current date and time wherever this variable is used. Possible values are the constants: `UnixTimestamp`, `UnixTimestampInMills` or any other valid representation of date time, for example: `yyyy-MM-dd`, `MM/dd/yyyy HH:mm:ss`<br>default is ISO 8601 UTC |
@@ -395,7 +396,40 @@ Consider this example:
395
396
-`QueryTimeIntervalDelimiter` = `..`
396
397
-`ApiEndpoint` = `https://www.example.com`
397
398
398
-
The query sent to the remote server is: `https://www.example.com?interval=time:{QueryTimeFormat}..{QueryTimeFormat + QueryWindowInMin}`
399
+
The query sent to the remote server is: `https://www.example.com?interval=time:{QueryTimeFormat}..{QueryTimeFormat + QueryWindowInMin}`
400
+
401
+
### RateLimitConfig example
402
+
403
+
Consider this example:
404
+
-`ApiEndpoint` = `https://www.example.com`
405
+
```json
406
+
"rateLimitConfig": {
407
+
"evaluation": {
408
+
"checkMode": "OnlyWhen429"
409
+
},
410
+
"extraction": {
411
+
"source": "CustomHeaders",
412
+
"headers": {
413
+
"limit": {
414
+
"name": "X-RateLimit-Limit",
415
+
"format": "Integer"
416
+
},
417
+
"remaining": {
418
+
"name": "X-RateLimit-Remaining",
419
+
"format": "Integer"
420
+
},
421
+
"reset": {
422
+
"name": "X-RateLimit-RetryAfter",
423
+
"format": "UnixTimeSeconds"
424
+
}
425
+
}
426
+
},
427
+
"retryStrategy": {
428
+
"useResetOrRetryAfterHeaders": true
429
+
}
430
+
}
431
+
```
432
+
When the response includes rate limit headers, the connector can use this information to adjust its request rate.
399
433
400
434
### Request examples using Microsoft Graph as data source API
401
435
@@ -555,6 +589,8 @@ The most common paging type is when a server data source API provides URLs to th
555
589
|**LinkHeaderTokenJsonPath**| False | String | Use this property to indicate where to get the value in the response body.<br><br>For example, if the data source returns the following JSON: `{ nextPage: "foo", value: [{data}]}` then `LinkHeaderTokenJsonPath` will be `$.nextPage`|
556
590
|**PageSize**| False | Integer | How many events per page |
557
591
|**PageSizeParameterName**| False | String | Query parameter name for the page size |
592
+
|**PagingInfoPlacement**| False | String | How paging info is populated. Accepts either "QueryString" or "RequestBody" |
593
+
|**PagingQueryParamOnly**| False | Boolean | If set to true, will omit all other query parameters except paging query parameters. |
558
594
559
595
Here are some examples:
560
596
@@ -587,6 +623,8 @@ Paging: {
587
623
|**HasNextFlagJsonPath**| False | String | Defines the path to the HasNextPage flag attribute |
588
624
|**NextPageRequestHeader**| False | String | Determines the next page header name in the request. |
589
625
|**NextPageUrlQueryParametersTemplate**| False | String | Only if the connector is for Coralogix API |
626
+
|**PagingInfoPlacement**| False | String | How paging info is populated. Accepts either "QueryString" or "RequestBody" |
627
+
|**PagingQueryParamOnly**| False | Boolean | If set to true, will omit all other query parameters except paging query parameters. |
590
628
591
629
Example:
592
630
@@ -615,6 +653,8 @@ Paging: {
615
653
|**NextPageParaName**| False | string | Determines the next page name in the request. |
616
654
|**HasNextFlagJsonPath**| False | string | Defines the path to a **HasNextPage** flag attribute when determining if more pages are left in the response. |
617
655
|**NextPageRequestHeader**| False | string | Determines the next page header name in the request. |
656
+
|**PagingInfoPlacement**| False | String | How paging info is populated. Accepts either "QueryString" or "RequestBody" |
657
+
|**PagingQueryParamOnly**| False | Boolean | If set to true, will omit all other query parameters except paging query parameters. |
618
658
619
659
Examples:
620
660
@@ -643,14 +683,18 @@ Paging: {
643
683
|**PageSize**| False | Integer | How many events per page |
644
684
|**PageSizeParameterName**| False | String | Query parameter name for the page size |
645
685
|**OffsetParaName**| False | String | The next request query parameter name. The CCF calculates the offset value for each request, (all events ingested + 1) |
686
+
|**PagingInfoPlacement**| False | String | How paging info is populated. Accepts either "QueryString" or "RequestBody" |
687
+
|**PagingQueryParamOnly**| False | Boolean | If set to true, will omit all other query parameters except paging query parameters. |
646
688
647
689
Example:
648
690
```json
649
691
Paging: {
650
-
651
-
"pagingType": "Offset",
652
-
"offsetParaName": "offset"
653
-
}
692
+
"pagingType": "Offset",
693
+
"offsetParaName": "offset",
694
+
"pageSize": 50,
695
+
"pagingQueryParamOnly": true,
696
+
"pagingInfoPlacement": "QueryString"
697
+
}
654
698
```
655
699
656
700
#### Configure CountBasedPaging
@@ -666,6 +710,8 @@ Paging: {
666
710
|**TotalResultsJsonPath**| False | String | JSON path of total number of results in HTTP response payload |
667
711
|**PageNumberJsonPath**| False | String | Required if totalResultsJsonPath is provided. JSON path of page number in HTTP response payload |
668
712
|**PageCountJsonPath**| False | String | Required if totalResultsJsonPath is provided. JSON path of page count in HTTP response payload |
713
+
|**PagingInfoPlacement**| False | String | How paging info is populated. Accepts either "QueryString" or "RequestBody" |
714
+
|**PagingQueryParamOnly**| False | Boolean | If set to true, will omit all other query parameters except paging query parameters. |
669
715
670
716
Example:
671
717
@@ -713,8 +759,33 @@ Here's an example of all the components of the CCF data connector JSON together.
0 commit comments