mirror of
https://github.com/LukeHagar/developer.sailpoint.com.git
synced 2025-12-10 04:19:42 +00:00
Prettified Code!
This commit is contained in:
committed by
GitHub Action
parent
f5b6aaf14f
commit
2cd5ccfc81
@@ -9,10 +9,10 @@ slug: /connectivity/saas-connectivity/commands/account-enable
|
||||
tags: ['Connectivity', 'Connector Command']
|
||||
---
|
||||
|
||||
| Input/Output | Data Type |
|
||||
| :-------------- | :---------------------: |
|
||||
| Input - Enable | StdAccountEnableInput |
|
||||
| Output - Enable | StdAccountEnableOutput |
|
||||
| Input/Output | Data Type |
|
||||
| :-------------- | :--------------------: |
|
||||
| Input - Enable | StdAccountEnableInput |
|
||||
| Output - Enable | StdAccountEnableOutput |
|
||||
|
||||
### Example StdAccountEnableInput
|
||||
|
||||
|
||||
@@ -79,7 +79,7 @@ ISC will throw a connection timeout error if your connector doesn't respond with
|
||||
|
||||
:::caution Important
|
||||
|
||||
ISC supports [delta aggregation](#delta-aggregation-state). If your source has a large number of accounts that will be syncronized with ISC, then it is highly recommended to utilize [delta aggregation](#delta-aggregation-state) for the source.
|
||||
ISC supports [delta aggregation](#delta-aggregation-state). If your source has a large number of accounts that will be syncronized with ISC, then it is highly recommended to utilize [delta aggregation](#delta-aggregation-state) for the source.
|
||||
|
||||
:::
|
||||
|
||||
@@ -180,7 +180,7 @@ The result of the account list command is not an array of objects but several in
|
||||
|
||||
If your source can keep track of changes to the data in some way, then delta aggregation can be performed on a source. In order to implement, there are a few things that need to be configured
|
||||
|
||||
1. In your connector-spec.json file, the feature needs to be enabled by adding the following key: ```"supportsStatefulCommands": true,``` and in the sourceConfig section, a checkbox needs to be added to enable state with the key ```spConnEnableStatefulCommands```:
|
||||
1. In your connector-spec.json file, the feature needs to be enabled by adding the following key: `"supportsStatefulCommands": true,` and in the sourceConfig section, a checkbox needs to be added to enable state with the key `spConnEnableStatefulCommands`:
|
||||
|
||||
```javascript
|
||||
"supportsStatefulCommands": true,
|
||||
@@ -193,7 +193,7 @@ If your source can keep track of changes to the data in some way, then delta agg
|
||||
}
|
||||
```
|
||||
|
||||
2. In the ```stdAccountList``` command, when you are done sending accounts, you need to also send the state to ISC so it knows where to start the next time it sends a list request:
|
||||
2. In the `stdAccountList` command, when you are done sending accounts, you need to also send the state to ISC so it knows where to start the next time it sends a list request:
|
||||
|
||||
```javascript
|
||||
const state = {"data": Date.now().toString()}
|
||||
@@ -205,11 +205,11 @@ In the above example, I am capturing the date, but you can use any value you wan
|
||||
|
||||
:::caution Important
|
||||
|
||||
The state that you send using the ```saveState``` command MUST be a json object, and it is recommend to only save strings to ensure proper serialization/deserialization of the data. You cannot send a simple string or number or it will not properly save the state.
|
||||
The state that you send using the `saveState` command MUST be a json object, and it is recommend to only save strings to ensure proper serialization/deserialization of the data. You cannot send a simple string or number or it will not properly save the state.
|
||||
|
||||
:::
|
||||
|
||||
3. In the ```stdAccountList``` command, you need to properly handle the state object. Something like below checks the stateful boolean as well as the state object and fetches accounts accordingly:
|
||||
3. In the `stdAccountList` command, you need to properly handle the state object. Something like below checks the stateful boolean as well as the state object and fetches accounts accordingly:
|
||||
|
||||
```javascript
|
||||
.stdAccountList(async (context: Context, input: StdAccountListInput, res: Response<StdAccountListOutput>) => {
|
||||
@@ -231,4 +231,4 @@ The state that you send using the ```saveState``` command MUST be a json object,
|
||||
}
|
||||
res.saveState(state)
|
||||
})
|
||||
```
|
||||
```
|
||||
|
||||
@@ -105,4 +105,4 @@ Note: Testing the account update command for removing entitlements using this me
|
||||
|
||||
## Handling an account that is not found
|
||||
|
||||
If an account can't be found in the source system, ISC can recreate the account by using the ```ConnectorErrorType.NotFound``` error type. For details and implementation, refer to [Error Handling](../in-depth/error-handling.md#not-found-error-type).
|
||||
If an account can't be found in the source system, ISC can recreate the account by using the `ConnectorErrorType.NotFound` error type. For details and implementation, refer to [Error Handling](../in-depth/error-handling.md#not-found-error-type).
|
||||
|
||||
@@ -9,8 +9,8 @@ slug: /connectivity/saas-connectivity/commands/change-password
|
||||
tags: ['Connectivity', 'Connector Command']
|
||||
---
|
||||
|
||||
| Input/Output | Data Type |
|
||||
| :----------- | :--------------------: |
|
||||
| Input/Output | Data Type |
|
||||
| :----------- | :---------------------: |
|
||||
| Input | StdChangePasswordInput |
|
||||
| Output | StdChangePasswordOutput |
|
||||
|
||||
@@ -29,12 +29,13 @@ tags: ['Connectivity', 'Connector Command']
|
||||
### Example StdChangePasswordOutput
|
||||
|
||||
```javascript
|
||||
{}
|
||||
{
|
||||
}
|
||||
```
|
||||
|
||||
## Description
|
||||
|
||||
The change password command is triggered in ISC when a user changes their password through ISC. When this occurs, if your source has change password enabled, then you can change the user password on the source system through ISC.
|
||||
The change password command is triggered in ISC when a user changes their password through ISC. When this occurs, if your source has change password enabled, then you can change the user password on the source system through ISC.
|
||||
|
||||
## The Provisioning Plan
|
||||
|
||||
@@ -48,4 +49,4 @@ The change password command sends the password change event to your connector wh
|
||||
|
||||
## Testing in Identity Security Cloud
|
||||
|
||||
In order to test in Identity Security Cloud, the source application must be configured so that it is able to accept password change requests through the Password Manager. Once this setup is complete, you can log in as a user whose identity exists in the configured application and change their password in the Password Manager.
|
||||
In order to test in Identity Security Cloud, the source application must be configured so that it is able to accept password change requests through the Password Manager. Once this setup is complete, you can log in as a user whose identity exists in the configured application and change their password in the Password Manager.
|
||||
|
||||
@@ -104,6 +104,7 @@ private buildStandardObject(): StdEntitlementReadOutput | StdEntitlementListOutp
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
:::caution Important
|
||||
|
||||
ISC will throw a connection timeout error if your connector doesn't respond within 3 minutes, and there are memory limitations involved with aggregating data. To prevent large memory utilization or timeout errors, you should set up your connectors to send data to ISC as it's retrieved from your source system. For more details and an example, refer to [Connector Timeouts](../in-depth/connector-timeouts.md).
|
||||
@@ -112,7 +113,7 @@ ISC will throw a connection timeout error if your connector doesn't respond with
|
||||
|
||||
:::caution Important
|
||||
|
||||
ISC supports [delta aggregation](#delta-aggregation-state). If your source has a large number of entitlements that will be syncronized with ISC, then it is highly recommended to utilize [delta aggregation](#delta-aggregation-state) for the source.
|
||||
ISC supports [delta aggregation](#delta-aggregation-state). If your source has a large number of entitlements that will be syncronized with ISC, then it is highly recommended to utilize [delta aggregation](#delta-aggregation-state) for the source.
|
||||
|
||||
:::
|
||||
|
||||
@@ -120,7 +121,7 @@ ISC supports [delta aggregation](#delta-aggregation-state). If your source has a
|
||||
|
||||
If your source can keep track of changes to the data in some way, then delta aggregation can be performed on a source. In order to implement, there are a few things that need to be configured
|
||||
|
||||
1. In your connector-spec.json file, the feature needs to be enabled by adding the following key: ```"supportsStatefulCommands": true,``` and in the sourceConfig section, a checkbox needs to be added to enable state with the key ```spConnEnableStatefulCommands```:
|
||||
1. In your connector-spec.json file, the feature needs to be enabled by adding the following key: `"supportsStatefulCommands": true,` and in the sourceConfig section, a checkbox needs to be added to enable state with the key `spConnEnableStatefulCommands`:
|
||||
|
||||
```javascript
|
||||
"supportsStatefulCommands": true,
|
||||
@@ -133,7 +134,7 @@ If your source can keep track of changes to the data in some way, then delta agg
|
||||
}
|
||||
```
|
||||
|
||||
2. In the ```stdEntitlementList``` command, when you are done sending entitlments, you need to also send the state to ISC so it knows where to start the next time it sends a list request:
|
||||
2. In the `stdEntitlementList` command, when you are done sending entitlments, you need to also send the state to ISC so it knows where to start the next time it sends a list request:
|
||||
|
||||
```javascript
|
||||
const state = {"data": Date.now().toString()}
|
||||
@@ -145,11 +146,11 @@ In the above example, I am capturing the date, but you can use any value you wan
|
||||
|
||||
:::caution Important
|
||||
|
||||
The state that you send using the ```saveState``` command MUST be a json object, and it is recommend to only save strings to ensure proper serialization/deserialization of the data. You cannot send a simple string or number or it will not properly save the state.
|
||||
The state that you send using the `saveState` command MUST be a json object, and it is recommend to only save strings to ensure proper serialization/deserialization of the data. You cannot send a simple string or number or it will not properly save the state.
|
||||
|
||||
:::
|
||||
|
||||
3. In the ```stdEntitlementList``` command, you need to properly handle the state object. Something like below checks the stateful boolean as well as the state object and fetches accounts accordingly:
|
||||
3. In the `stdEntitlementList` command, you need to properly handle the state object. Something like below checks the stateful boolean as well as the state object and fetches accounts accordingly:
|
||||
|
||||
```javascript
|
||||
.stdEntitlementList(async (context: Context, input: StdEntitlementListInput, res: Response<StdEntitlementListOutput>) => {
|
||||
@@ -171,4 +172,4 @@ The state that you send using the ```saveState``` command MUST be a json object,
|
||||
}
|
||||
res.saveState(state)
|
||||
})
|
||||
```
|
||||
```
|
||||
|
||||
@@ -4,12 +4,12 @@ title: Source Data Discover
|
||||
pagination_label: Source Data Discover
|
||||
sidebar_label: Source Data Discover
|
||||
keywords: ['connectivity', 'connectors', 'Source Data Discover']
|
||||
description: Discover potential source data types.
|
||||
description: Discover potential source data types.
|
||||
slug: /connectivity/saas-connectivity/commands/source-data-discover
|
||||
tags: ['Connectivity', 'Connector Command']
|
||||
---
|
||||
|
||||
| Input/Output | Data Type |
|
||||
| Input/Output | Data Type |
|
||||
| :----------- | :-------------------------: |
|
||||
| Input | StdSourceDataDiscoverInput |
|
||||
| Output | StdSourceDataDiscoverOutput |
|
||||
@@ -29,26 +29,26 @@ tags: ['Connectivity', 'Connector Command']
|
||||
|
||||
```javascript
|
||||
[
|
||||
{
|
||||
key: 'id',
|
||||
label: 'Id',
|
||||
subLabel: 'Airtable Base Id'
|
||||
},
|
||||
{
|
||||
key: 'name',
|
||||
label: 'Name',
|
||||
subLabel: 'Airtable Source Table Name'
|
||||
}
|
||||
]
|
||||
{
|
||||
key: 'id',
|
||||
label: 'Id',
|
||||
subLabel: 'Airtable Base Id',
|
||||
},
|
||||
{
|
||||
key: 'name',
|
||||
label: 'Name',
|
||||
subLabel: 'Airtable Source Table Name',
|
||||
},
|
||||
];
|
||||
```
|
||||
|
||||
## Description
|
||||
|
||||
Use the source data discover command to identify the types of data your source can return. Different sources can send different types of data to Identity Security Cloud. For example, one source may be able to send a list of the different languages it supports, while another may be able to send values describing source details normally sent through accounts and entitlements. You can use the source data discover command to discover these possibilities.
|
||||
Use the source data discover command to identify the types of data your source can return. Different sources can send different types of data to Identity Security Cloud. For example, one source may be able to send a list of the different languages it supports, while another may be able to send values describing source details normally sent through accounts and entitlements. You can use the source data discover command to discover these possibilities.
|
||||
|
||||
One typical use for the source data discover command is found in Identity Security Cloud customer forms for dropdown menus: they use the command to identify the additional source types their sources can provide to Identity Security Cloud and use that information to populate the dropdown menus.
|
||||
One typical use for the source data discover command is found in Identity Security Cloud customer forms for dropdown menus: they use the command to identify the additional source types their sources can provide to Identity Security Cloud and use that information to populate the dropdown menus.
|
||||
|
||||
This is a simple example of the source data discover command. It has been implemented to list two types of queries that the Airtable source can supply.
|
||||
This is a simple example of the source data discover command. It has been implemented to list two types of queries that the Airtable source can supply.
|
||||
|
||||
```javascript
|
||||
.stdSourceDataDiscover(async (context: Context, input: StdSourceDataDiscoverInput, res: Response<StdSourceDataDiscoverOutput>) => {
|
||||
@@ -103,4 +103,4 @@ Now, if the source system sends a command like the following, they will only get
|
||||
"query": "name"
|
||||
}
|
||||
},
|
||||
```
|
||||
```
|
||||
|
||||
@@ -4,13 +4,13 @@ title: Source Data Read
|
||||
pagination_label: Source Data Read
|
||||
sidebar_label: Source Data Read
|
||||
keywords: ['connectivity', 'connectors', 'Source Data Read']
|
||||
description: Read source data.
|
||||
description: Read source data.
|
||||
slug: /connectivity/saas-connectivity/commands/source-data-read
|
||||
tags: ['Connectivity', 'Connector Command']
|
||||
---
|
||||
|
||||
| Input/Output | Data Type |
|
||||
| :----------- | :-------------------------: |
|
||||
| Input/Output | Data Type |
|
||||
| :----------- | :---------------------: |
|
||||
| Input | StdSourceDataReadInput |
|
||||
| Output | StdSourceDataReadOutput |
|
||||
|
||||
@@ -30,24 +30,24 @@ tags: ['Connectivity', 'Connector Command']
|
||||
|
||||
```javascript
|
||||
[
|
||||
{
|
||||
key: 'id',
|
||||
label: 'Id',
|
||||
subLabel: 'Airtable Base Id'
|
||||
},
|
||||
{
|
||||
key: 'name',
|
||||
label: 'Name',
|
||||
subLabel: 'Airtable Source Table Name'
|
||||
}
|
||||
]
|
||||
{
|
||||
key: 'id',
|
||||
label: 'Id',
|
||||
subLabel: 'Airtable Base Id',
|
||||
},
|
||||
{
|
||||
key: 'name',
|
||||
label: 'Name',
|
||||
subLabel: 'Airtable Source Table Name',
|
||||
},
|
||||
];
|
||||
```
|
||||
|
||||
## Description
|
||||
|
||||
Use the source data read command to query a source in Identity Security Cloud and return a set of data. This data is typically used to populate a dropdown menu for selection purposes. This functionality is typically useful for Identity Security Cloud forms, but it can be used for any type of implementation that requires you to get other information from a source, information that is not normally retrieved from identites or entitlements.
|
||||
|
||||
This is a simple example of the source data read command. It is implemented to retrieve the base ID name. The `sourceDataKey` is required, the ```source data read``` command should return it.
|
||||
This is a simple example of the source data read command. It is implemented to retrieve the base ID name. The `sourceDataKey` is required, the `source data read` command should return it.
|
||||
|
||||
```javascript
|
||||
.stdSourceDataRead(async (context: Context, input: StdSourceDataReadInput, res: Response<StdSourceDataReadOutput>) => {
|
||||
@@ -63,7 +63,7 @@ This is a simple example of the source data read command. It is implemented to r
|
||||
})
|
||||
```
|
||||
|
||||
You can optionally use `input.queryInput.query` to make the list searchable. One way you could do this is to import a tool like [alasql](https://github.com/AlaSQL/alasql) and allow the user to implement a search on the dataset. This example from Airtable shows how you could use the source data read command to get accounts and allow a search to be performed with the Airtable API:
|
||||
You can optionally use `input.queryInput.query` to make the list searchable. One way you could do this is to import a tool like [alasql](https://github.com/AlaSQL/alasql) and allow the user to implement a search on the dataset. This example from Airtable shows how you could use the source data read command to get accounts and allow a search to be performed with the Airtable API:
|
||||
|
||||
```javascript
|
||||
.stdSourceDataRead(async (context: Context, input: StdSourceDataReadInput, res: Response<StdSourceDataReadOutput>) => {
|
||||
@@ -113,4 +113,4 @@ Now, if the source system sends a command like the following, the system will on
|
||||
"query": "Adam"
|
||||
}
|
||||
},
|
||||
```
|
||||
```
|
||||
|
||||
Reference in New Issue
Block a user