Skip to content

Commit e98f49f

Browse files
sailpoint_identity_sc: make API version configurable and fix search endpoint format (#14935)
Updates the Sailpoint Identity SC integration with the following: - Make the API version configurable, as API docs states[1] it will follow an annual release cycle. This parameter adds flexibility for users to choose which version they want to use, or update the API version by themselves. - Fix the `search` API endpoint format, the search indices such as "events" should be added in the request body instead of the URL. [1] https://developer.sailpoint.com/docs/api/v2025/api-versioning-strategy#release-schedule
1 parent b40b443 commit e98f49f

File tree

7 files changed

+31
-10
lines changed

7 files changed

+31
-10
lines changed

packages/sailpoint_identity_sc/_dev/build/docs/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ The Elastic integration for [Sailpoint Identity Security Cloud](https://www.sail
66

77
- **`events`**: Provides audit data that includes actions such as `USER_MANAGEMENT`, `PASSWORD_ACTIVITY`, `PROVISIONING`, `ACCESS_ITEM`, `SOURCE_MANAGEMENT`, `CERTIFICATION`, `AUTH`, `SYSTEM_CONFIG`, `ACCESS_REQUEST`, `SSO`, `WORKFLOW`, `SEGMENT` and more.
88
- [Audit Events](https://community.sailpoint.com/t5/IdentityNow-Wiki/Audit-Events-in-Cloud-Audit/ta-p/218727) are records that a user took action in an [IdentityNow](https://www.sailpoint.com/products/identitynow) tenant, or other service like [IdentityAI](https://www.sailpoint.com/products/ai-driven-identity-security). Audit Events are structurally and conceptually very similar to [IdentityIQ's](https://www.sailpoint.com/products/identity-security-software/identity-iq)Audit Events, but have evolved in several ways.
9-
- This data stream leverages the Sailpoint identity security cloud API's `/v2024/search/events` endpoint to retrieve event logs.
9+
- This data stream leverages the Sailpoint identity security cloud API's [/v2025/search](https://developer.sailpoint.com/docs/api/v2025/search-post) endpoint to retrieve event logs.
1010

1111
## Requirements
1212

packages/sailpoint_identity_sc/_dev/deploy/docker/files/config.yml

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -22,15 +22,15 @@ rules:
2222
"token_type": "Bearer"
2323
}
2424
# Search Events Endpoint for the 2nd pagination
25-
- path: /v2024/search/events
25+
- path: /v2025/search
2626
methods:
2727
- POST
2828
request_headers:
2929
Authorization:
3030
- Bearer xxxxxxxxxxxxx
3131
Content-Type:
3232
- application/json
33-
request_body: /^\{"query":\{"query":"\*"\},"queryResultFilter":\{\},"queryType":"SAILPOINT","searchAfter":\["2024-12-13T19:42:26\.121Z"\],"sort":\["created"\]\}/
33+
request_body: /^\{"indices":\["events"\],"query":\{"query":"\*"\},"queryResultFilter":\{\},"queryType":"SAILPOINT","searchAfter":\["2024-12-13T19:42:26\.121Z"\],"sort":\["created"\]\}/
3434
query_params:
3535
limit: "2"
3636
responses:
@@ -41,15 +41,15 @@ rules:
4141
body: |
4242
[]
4343
# Search Events Endpoint for the 1st pagination
44-
- path: /v2024/search/events
44+
- path: /v2025/search
4545
methods:
4646
- POST
4747
request_headers:
4848
Authorization:
4949
- Bearer xxxxxxxxxxxxx
5050
Content-Type:
5151
- application/json
52-
request_body: /{"query":\{"query":"\*"\},"queryResultFilter":\{\},"queryType":"SAILPOINT","searchAfter":\["2024-12-13T19:41:24\.124Z"\],"sort":\["created"\]\}/
52+
request_body: /^\{"indices":\["events"\],"query":\{"query":"\*"\},"queryResultFilter":\{\},"queryType":"SAILPOINT","searchAfter":\["2024-12-13T19:41:24\.124Z"\],"sort":\["created"\]\}/
5353
query_params:
5454
limit: "2"
5555
responses:
@@ -77,15 +77,15 @@ rules:
7777
}
7878
]
7979
# Search Events Endpoint initial
80-
- path: /v2024/search/events
80+
- path: /v2025/search
8181
methods:
8282
- POST
8383
request_headers:
8484
Authorization:
8585
- Bearer xxxxxxxxxxxxx
8686
Content-Type:
8787
- application/json
88-
request_body: /^\{"query":\{"query":"\*"\},"queryResultFilter":\{\},"queryType":"SAILPOINT","searchAfter":\["[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z"\],"sort":\["created"\]\}/
88+
request_body: /^\{"indices":\["events"\],"query":\{"query":"\*"\},"queryResultFilter":\{\},"queryType":"SAILPOINT","searchAfter":\["[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z"\],"sort":\["created"\]\}/
8989
query_params:
9090
limit: "2"
9191
responses:

packages/sailpoint_identity_sc/changelog.yml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,11 @@
1+
- version: "1.1.0"
2+
changes:
3+
- description: Add option to select the API version to use.
4+
type: enhancement
5+
link: https://github.com/elastic/integrations/pull/14935
6+
- description: Fix POST request format for events data stream.
7+
type: bugfix
8+
link: https://github.com/elastic/integrations/pull/14935
19
- version: "1.0.0"
210
changes:
311
- description: Release package as GA.

packages/sailpoint_identity_sc/data_stream/events/_dev/test/system/test-default-config.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
input: cel
22
service: sailpoint
33
vars:
4+
api_version: v2025
45
client_id: qwerty
56
client_secret: eweqweqwqew
67
api_host: http://{{Hostname}}:{{Port}}

packages/sailpoint_identity_sc/data_stream/events/agent/stream/cel.yml.hbs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,11 +31,12 @@ state:
3131
want_more: false
3232
limit: {{limit}}
3333
initial_interval: {{initial_interval}}
34+
api_version: {{api_version}}
3435
program: |-
3536
{"startTime": state.?cursor.searchAfter.orValue(timestamp(now() - duration(state.initial_interval)).format(time_layout.RFC3339))}.as(timeframe,
3637
request(
3738
"POST",
38-
state.url.trim_right("/") + "/v2024/search/events?" + {
39+
state.url.trim_right("/") + "/" + state.api_version + "/search?" + {
3940
"limit": [string(state.limit)],
4041
}.format_query()
4142
).with(
@@ -44,6 +45,7 @@ program: |-
4445
"Content-Type": ["application/json"],
4546
},
4647
"Body": {
48+
"indices": ["events"],
4749
"searchAfter": [string(timeframe.startTime)],
4850
"queryType": "SAILPOINT",
4951
"sort": ["created"],

packages/sailpoint_identity_sc/docs/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ The Elastic integration for [Sailpoint Identity Security Cloud](https://www.sail
66

77
- **`events`**: Provides audit data that includes actions such as `USER_MANAGEMENT`, `PASSWORD_ACTIVITY`, `PROVISIONING`, `ACCESS_ITEM`, `SOURCE_MANAGEMENT`, `CERTIFICATION`, `AUTH`, `SYSTEM_CONFIG`, `ACCESS_REQUEST`, `SSO`, `WORKFLOW`, `SEGMENT` and more.
88
- [Audit Events](https://community.sailpoint.com/t5/IdentityNow-Wiki/Audit-Events-in-Cloud-Audit/ta-p/218727) are records that a user took action in an [IdentityNow](https://www.sailpoint.com/products/identitynow) tenant, or other service like [IdentityAI](https://www.sailpoint.com/products/ai-driven-identity-security). Audit Events are structurally and conceptually very similar to [IdentityIQ's](https://www.sailpoint.com/products/identity-security-software/identity-iq)Audit Events, but have evolved in several ways.
9-
- This data stream leverages the Sailpoint identity security cloud API's `/v2024/search/events` endpoint to retrieve event logs.
9+
- This data stream leverages the Sailpoint identity security cloud API's [/v2025/search](https://developer.sailpoint.com/docs/api/v2025/search-post) endpoint to retrieve event logs.
1010

1111
## Requirements
1212

packages/sailpoint_identity_sc/manifest.yml

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
format_version: 3.3.0
22
name: sailpoint_identity_sc
33
title: Sailpoint Identity Security Cloud
4-
version: "1.0.0"
4+
version: "1.1.0"
55
source:
66
license: "Elastic-2.0"
77
description: "Sailpoint identity security cloud provides enterprise identity governance and security capabilities. The integration allows users to extract audit information from their identity security cloud tenant using the ISC's AuditEvent API."
@@ -38,6 +38,16 @@ policy_templates:
3838
description: "Enter the URL of the Sailpoint identity security cloud host API server, e.g., https://{tenant}.api.identitynow-demo.com/"
3939
show_user: true
4040
required: true
41+
- name: api_version
42+
type: text
43+
title: API Version
44+
description: |
45+
Enter the API version to use, e.g., v2025.
46+
Sailpoint Identity Security Cloud API follows a annual release cycle.
47+
More information about it can be found [here](https://developer.sailpoint.com/docs/api/v2025/api-versioning-strategy).
48+
show_user: true
49+
required: true
50+
default: v2025
4151
- name: client_id
4252
type: text
4353
title: Client ID for Sailpoint identity security cloud

0 commit comments

Comments
 (0)