Skip to content

Commit db6eb33

Browse files
authored
Merge pull request #14625 from eileen-zhaoo/eileen-zhaoo-1password-ccp-cursor-polling
Fix 1Password connector to use cursor-based (PersistentToken) polling
2 parents ae88b70 + c99d6ed commit db6eb33

7 files changed

Lines changed: 298 additions & 280 deletions

File tree

Solutions/1Password/Data Connectors/1Password_ccpv2/1Password_PollingConfig.json

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -23,14 +23,13 @@
2323
"apiEndpoint": "{{BaseUrl}}/api/v1/signinattempts",
2424
"httpMethod": "Post",
2525
"queryWindowInMin": 5,
26-
"queryTimeFormat": "yyyy-MM-ddTHH:mm:ssZ",
2726
"rateLimitQps": 1,
2827
"retryCount": 3,
2928
"timeoutInSeconds": 60,
3029
"headers": {
3130
"Content-Type": "application/json"
3231
},
33-
"queryParametersTemplate": "{\"limit\": 1000, \"start_time\": \"{_QueryWindowStartTime}\", \"end_time\": \"{_QueryWindowEndTime}\" }",
32+
"queryParametersTemplate": "{}",
3433
"isPostPayloadJson": true
3534
},
3635
"response": {
@@ -40,10 +39,11 @@
4039
]
4140
},
4241
"paging": {
43-
"pagingType": "NextPageToken",
42+
"pagingType": "PersistentToken",
4443
"nextPageParaName": "cursor",
4544
"nextPageTokenJsonPath": "$.cursor",
46-
"hasNextFlagJsonPath": "$.has_more"
45+
"hasNextFlagJsonPath": "$.has_more",
46+
"pagingInfoPlacement": "RequestBody"
4747
}
4848
}
4949
},
@@ -71,14 +71,13 @@
7171
"apiEndpoint": "{{BaseUrl}}/api/v1/auditevents",
7272
"httpMethod": "Post",
7373
"queryWindowInMin": 5,
74-
"queryTimeFormat": "yyyy-MM-ddTHH:mm:ssZ",
7574
"rateLimitQps": 1,
7675
"retryCount": 3,
7776
"timeoutInSeconds": 60,
7877
"headers": {
7978
"Content-Type": "application/json"
8079
},
81-
"queryParametersTemplate": "{\"limit\": 1000, \"start_time\": \"{_QueryWindowStartTime}\", \"end_time\": \"{_QueryWindowEndTime}\" }",
80+
"queryParametersTemplate": "{}",
8281
"isPostPayloadJson": true
8382
},
8483
"response": {
@@ -88,10 +87,11 @@
8887
]
8988
},
9089
"paging": {
91-
"pagingType": "NextPageToken",
90+
"pagingType": "PersistentToken",
9291
"nextPageParaName": "cursor",
9392
"nextPageTokenJsonPath": "$.cursor",
94-
"hasNextFlagJsonPath": "$.has_more"
93+
"hasNextFlagJsonPath": "$.has_more",
94+
"pagingInfoPlacement": "RequestBody"
9595
}
9696
}
9797
},
@@ -119,14 +119,13 @@
119119
"apiEndpoint": "{{BaseUrl}}/api/v1/itemusages",
120120
"httpMethod": "Post",
121121
"queryWindowInMin": 1,
122-
"queryTimeFormat": "yyyy-MM-ddTHH:mm:ssZ",
123122
"rateLimitQps": 5,
124123
"retryCount": 3,
125124
"timeoutInSeconds": 60,
126125
"headers": {
127126
"Content-Type": "application/json"
128127
},
129-
"queryParametersTemplate": "{\"limit\": 1000, \"start_time\": \"{_QueryWindowStartTime}\", \"end_time\": \"{_QueryWindowEndTime}\" }",
128+
"queryParametersTemplate": "{}",
130129
"isPostPayloadJson": true
131130
},
132131
"response": {
@@ -136,10 +135,11 @@
136135
]
137136
},
138137
"paging": {
139-
"pagingType": "NextPageToken",
138+
"pagingType": "PersistentToken",
140139
"nextPageParaName": "cursor",
141140
"nextPageTokenJsonPath": "$.cursor",
142-
"hasNextFlagJsonPath": "$.has_more"
141+
"hasNextFlagJsonPath": "$.has_more",
142+
"pagingInfoPlacement": "RequestBody"
143143
}
144144
}
145145
}

Solutions/1Password/Data Connectors/1Password_ccpv2/azuredeploy_1Password_poller_connector.json

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -20,13 +20,13 @@
2020
},
2121
"variables": {
2222
"_solutionName": "OnePassword",
23-
"_solutionVersion": "3.0.0",
23+
"_solutionVersion": "3.0.3",
2424
"_solutionAuthor": "Rogier Dijkman",
2525
"_solutionPublisher": "1Password",
2626
"_solutionTier": "Community",
2727
"solutionId": "1Password_Azurekid",
2828
"_solutionId": "[variables('solutionId')]",
29-
"dataConnectorVersionConnections": "1.0.0",
29+
"dataConnectorVersionConnections": "1.0.1",
3030
"_dataConnectorContentIdConnectorDefinition": "1Password-CodelessConnector",
3131
"dataConnectorTemplateNameConnectorDefinition": "[format('contentTemplate-{0}', uniquestring(variables('_dataConnectorContentIdConnectorDefinition')))]",
3232
"_dataConnectorContentIdConnections": "1PasswordEvents",
@@ -503,14 +503,13 @@
503503
"apiEndpoint": "[[format('{0}/api/v1/signinattempts', parameters('BaseUrl'))]",
504504
"httpMethod": "Post",
505505
"queryWindowInMin": 5,
506-
"queryTimeFormat": "yyyy-MM-ddTHH:mm:ssZ",
507506
"rateLimitQps": 1,
508507
"retryCount": 3,
509508
"timeoutInSeconds": 60,
510509
"headers": {
511510
"Content-Type": "application/json"
512511
},
513-
"queryParametersTemplate": "{\"limit\": 1000, \"start_time\": \"{_QueryWindowStartTime}\", \"end_time\": \"{_QueryWindowEndTime}\" }",
512+
"queryParametersTemplate": "{}",
514513
"isPostPayloadJson": true
515514
},
516515
"response": {
@@ -520,10 +519,11 @@
520519
]
521520
},
522521
"paging": {
523-
"pagingType": "NextPageToken",
522+
"pagingType": "PersistentToken",
524523
"nextPageParaName": "cursor",
525524
"nextPageTokenJsonPath": "$.cursor",
526-
"hasNextFlagJsonPath": "$.has_more"
525+
"hasNextFlagJsonPath": "$.has_more",
526+
"pagingInfoPlacement": "RequestBody"
527527
}
528528
}
529529
},
@@ -551,14 +551,13 @@
551551
"apiEndpoint": "[[format('{0}/api/v1/auditevents', parameters('BaseUrl'))]",
552552
"httpMethod": "Post",
553553
"queryWindowInMin": 5,
554-
"queryTimeFormat": "yyyy-MM-ddTHH:mm:ssZ",
555554
"rateLimitQps": 1,
556555
"retryCount": 3,
557556
"timeoutInSeconds": 60,
558557
"headers": {
559558
"Content-Type": "application/json"
560559
},
561-
"queryParametersTemplate": "{\"limit\": 1000, \"start_time\": \"{_QueryWindowStartTime}\", \"end_time\": \"{_QueryWindowEndTime}\" }",
560+
"queryParametersTemplate": "{}",
562561
"isPostPayloadJson": true
563562
},
564563
"response": {
@@ -568,10 +567,11 @@
568567
]
569568
},
570569
"paging": {
571-
"pagingType": "NextPageToken",
570+
"pagingType": "PersistentToken",
572571
"nextPageParaName": "cursor",
573572
"nextPageTokenJsonPath": "$.cursor",
574-
"hasNextFlagJsonPath": "$.has_more"
573+
"hasNextFlagJsonPath": "$.has_more",
574+
"pagingInfoPlacement": "RequestBody"
575575
}
576576
}
577577
},
@@ -599,14 +599,13 @@
599599
"apiEndpoint": "[[format('{0}/api/v1/itemusages', parameters('BaseUrl'))]",
600600
"httpMethod": "Post",
601601
"queryWindowInMin": 1,
602-
"queryTimeFormat": "yyyy-MM-ddTHH:mm:ssZ",
603602
"rateLimitQps": 5,
604603
"retryCount": 3,
605604
"timeoutInSeconds": 60,
606605
"headers": {
607606
"Content-Type": "application/json"
608607
},
609-
"queryParametersTemplate": "{\"limit\": 1000, \"start_time\": \"{_QueryWindowStartTime}\", \"end_time\": \"{_QueryWindowEndTime}\" }",
608+
"queryParametersTemplate": "{}",
610609
"isPostPayloadJson": true
611610
},
612611
"response": {
@@ -616,10 +615,11 @@
616615
]
617616
},
618617
"paging": {
619-
"pagingType": "NextPageToken",
618+
"pagingType": "PersistentToken",
620619
"nextPageParaName": "cursor",
621620
"nextPageTokenJsonPath": "$.cursor",
622-
"hasNextFlagJsonPath": "$.has_more"
621+
"hasNextFlagJsonPath": "$.has_more",
622+
"pagingInfoPlacement": "RequestBody"
623623
}
624624
}
625625
}
@@ -633,7 +633,7 @@
633633
"name": "[format('{0}/Microsoft.SecurityInsights/{1}', parameters('workspace'), variables('_solutionId'))]",
634634
"location": "[parameters('location')]",
635635
"properties": {
636-
"version": "1.0.3",
636+
"version": "[variables('_solutionVersion')]",
637637
"kind": "Solution",
638638
"contentSchemaVersion": "1.0.0",
639639
"displayName": "[variables('_solutionName')]",

Solutions/1Password/Data/Solution_1Password.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77
"Data Connectors": [
88
"Data Connectors/1Password_ccpv2/1Password_DataConnectorDefinition.json",
99
"Data Connectors/1Password_API_FunctionApp.json"
10-
1110
],
1211
"Workbooks": [
1312
"Workbooks/1Password.json"
@@ -34,8 +33,9 @@
3433
"Analytics Rules/1Password - Vault export.yaml"
3534
],
3635
"BasePath": "C:\\GitHub\\azure-Sentinel\\Solutions\\1Password",
37-
"Version": "3.0.2",
36+
"Version": "3.0.3",
37+
"DataConnectorCCFVersion": "1.0.1",
3838
"Metadata": "SolutionMetadata.json",
3939
"TemplateSpec": true,
4040
"Is1PConnector": false
41-
}
41+
}
26.1 KB
Binary file not shown.

Solutions/1Password/Package/createUiDefinition.json

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@
6060
"name": "dataconnectors1-text",
6161
"type": "Microsoft.Common.TextBlock",
6262
"options": {
63-
"text": "This Solution installs the data connector for 1Password. You can get 1Password data in your Microsoft Sentinel workspace. After installing the solution, configure and enable this data connector by following guidance in Manage solution view."
63+
"text": "This Solution installs the data connector for 1Password (Serverless). You can get 1Password (Serverless) data in your Microsoft Sentinel workspace. After installing the solution, configure and enable this data connector by following guidance in Manage solution view."
6464
}
6565
},
6666
{
@@ -72,6 +72,23 @@
7272
"uri": "https://docs.microsoft.com/azure/sentinel/connect-data-sources"
7373
}
7474
}
75+
},
76+
{
77+
"name": "dataconnectors2-text",
78+
"type": "Microsoft.Common.TextBlock",
79+
"options": {
80+
"text": "This Solution installs the data connector for 1Password. You can get 1Password custom log data in your Microsoft Sentinel workspace. After installing the solution, configure and enable this data connector by following guidance in Manage solution view."
81+
}
82+
},
83+
{
84+
"name": "dataconnectors-link2",
85+
"type": "Microsoft.Common.TextBlock",
86+
"options": {
87+
"link": {
88+
"label": "Learn more about connecting data sources",
89+
"uri": "https://docs.microsoft.com/azure/sentinel/connect-data-sources"
90+
}
91+
}
7592
}
7693
]
7794
},

0 commit comments

Comments
 (0)