added docs to sidebar
@@ -1,6 +1,6 @@
|
|||||||
---
|
---
|
||||||
id: access-request-dynamic-approval
|
id: access-request-dynamic-approval
|
||||||
slug: idn/docs/event-triggers/access-request-dynamic-approval
|
slug: /idn/event-triggers/access-request-dynamic-approval
|
||||||
---
|
---
|
||||||
|
|
||||||
# Access Request Dynamic Approval
|
# Access Request Dynamic Approval
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
---
|
---
|
||||||
id: access-request-postapproval
|
id: access-request-postapproval
|
||||||
slug: idn/docs/event-triggers/access-request-postapproval
|
slug: /idn/event-triggers/access-request-postapproval
|
||||||
---
|
---
|
||||||
|
|
||||||
# Access Request Postapproval
|
# Access Request Postapproval
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
---
|
---
|
||||||
id: access-request-preapproval
|
id: access-request-preapproval
|
||||||
slug: idn/docs/event-triggers/access-request-preapproval
|
slug: /idn/event-triggers/access-request-preapproval
|
||||||
---
|
---
|
||||||
|
|
||||||
# Access Request Preapproval
|
# Access Request Preapproval
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
---
|
---
|
||||||
id: account-aggregation-completed
|
id: account-aggregation-completed
|
||||||
slug: idn/docs/event-triggers/account-aggregation-completed
|
slug: /idn/event-triggers/account-aggregation-completed
|
||||||
---
|
---
|
||||||
|
|
||||||
# Account Aggregation Completed
|
# Account Aggregation Completed
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
---
|
---
|
||||||
id: identity-attribute-changed
|
id: identity-attribute-changed
|
||||||
slug: idn/docs/event-triggers/identity-attribute-changed
|
slug: /idn/event-triggers/identity-attribute-changed
|
||||||
---
|
---
|
||||||
|
|
||||||
# Identity Attribute Changed
|
# Identity Attribute Changed
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
---
|
---
|
||||||
id: identity-created
|
id: identity-created
|
||||||
slug: idn/docs/event-triggers/identity-created
|
slug: /idn/event-triggers/identity-created
|
||||||
---
|
---
|
||||||
|
|
||||||
# Identity Created
|
# Identity Created
|
||||||
|
Before Width: | Height: | Size: 31 KiB After Width: | Height: | Size: 31 KiB |
|
Before Width: | Height: | Size: 38 KiB After Width: | Height: | Size: 38 KiB |
|
Before Width: | Height: | Size: 61 KiB After Width: | Height: | Size: 61 KiB |
|
Before Width: | Height: | Size: 135 KiB After Width: | Height: | Size: 135 KiB |
|
Before Width: | Height: | Size: 100 KiB After Width: | Height: | Size: 100 KiB |
|
Before Width: | Height: | Size: 107 KiB After Width: | Height: | Size: 107 KiB |
|
Before Width: | Height: | Size: 123 KiB After Width: | Height: | Size: 123 KiB |
|
Before Width: | Height: | Size: 123 KiB After Width: | Height: | Size: 123 KiB |
|
Before Width: | Height: | Size: 97 KiB After Width: | Height: | Size: 97 KiB |
|
Before Width: | Height: | Size: 73 KiB After Width: | Height: | Size: 73 KiB |
|
Before Width: | Height: | Size: 87 KiB After Width: | Height: | Size: 87 KiB |
|
Before Width: | Height: | Size: 90 KiB After Width: | Height: | Size: 90 KiB |
|
Before Width: | Height: | Size: 56 KiB After Width: | Height: | Size: 56 KiB |
|
Before Width: | Height: | Size: 70 KiB After Width: | Height: | Size: 70 KiB |
|
Before Width: | Height: | Size: 71 KiB After Width: | Height: | Size: 71 KiB |
|
Before Width: | Height: | Size: 82 KiB After Width: | Height: | Size: 82 KiB |
|
Before Width: | Height: | Size: 114 KiB After Width: | Height: | Size: 114 KiB |
|
Before Width: | Height: | Size: 32 KiB After Width: | Height: | Size: 32 KiB |
|
Before Width: | Height: | Size: 38 KiB After Width: | Height: | Size: 38 KiB |
|
Before Width: | Height: | Size: 40 KiB After Width: | Height: | Size: 40 KiB |
|
Before Width: | Height: | Size: 22 KiB After Width: | Height: | Size: 22 KiB |
@@ -1,6 +1,6 @@
|
|||||||
---
|
---
|
||||||
id: provisioning-action-completed
|
id: provisioning-action-completed
|
||||||
slug: idn/docs/event-triggers/provisioning-action-completed
|
slug: /idn/event-triggers/provisioning-action-completed
|
||||||
---
|
---
|
||||||
|
|
||||||
# Provisioning Action Completed
|
# Provisioning Action Completed
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
---
|
---
|
||||||
id: saved-search-completed
|
id: saved-search-completed
|
||||||
slug: idn/docs/event-triggers/saved-search-completed
|
slug: /idn/event-triggers/saved-search-completed
|
||||||
---
|
---
|
||||||
|
|
||||||
# Saved Search Completed
|
# Saved Search Completed
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
---
|
---
|
||||||
id: source-created
|
id: source-created
|
||||||
slug: idn/docs/event-triggers/source-created
|
slug: /idn/event-triggers/source-created
|
||||||
---
|
---
|
||||||
|
|
||||||
# Source Created
|
# Source Created
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
---
|
---
|
||||||
id: source-deleted
|
id: source-deleted
|
||||||
slug: idn/docs/event-triggers/source-deleted
|
slug: /idn/event-triggers/source-deleted
|
||||||
---
|
---
|
||||||
|
|
||||||
# Source Deleted
|
# Source Deleted
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
---
|
---
|
||||||
id: source-updated
|
id: source-updated
|
||||||
slug: idn/docs/event-triggers/source-updated
|
slug: /idn/event-triggers/source-updated
|
||||||
---
|
---
|
||||||
|
|
||||||
# Source Updated
|
# Source Updated
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
---
|
---
|
||||||
id: va-cluster-status-change
|
id: va-cluster-status-change
|
||||||
slug: idn/docs/event-triggers/va-cluster-status-change
|
slug: /idn/event-triggers/va-cluster-status-change
|
||||||
---
|
---
|
||||||
|
|
||||||
# VA Cluster Status Change
|
# VA Cluster Status Change
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
---
|
---
|
||||||
id: identity-deleted
|
id: identity-deleted
|
||||||
slug: idn/docs/event-triggers/early-access/va-cluster-status-change
|
slug: /idn/event-triggers/early-access/va-cluster-status-change
|
||||||
---
|
---
|
||||||
|
|
||||||
# Identity Deleted
|
# Identity Deleted
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
---
|
---
|
||||||
id: source-account-created
|
id: source-account-created
|
||||||
slug: idn/docs/event-triggers/early-access/source-account-created
|
slug: /idn/event-triggers/early-access/source-account-created
|
||||||
---
|
---
|
||||||
|
|
||||||
# Source Account Created
|
# Source Account Created
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
---
|
---
|
||||||
id: source-account-deleted
|
id: source-account-deleted
|
||||||
slug: idn/docs/event-triggers/early-access/source-account-deleted
|
slug: /idn/event-triggers/early-access/source-account-deleted
|
||||||
---
|
---
|
||||||
|
|
||||||
# Source Account Deleted
|
# Source Account Deleted
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
---
|
---
|
||||||
id: source-account-updated
|
id: source-account-updated
|
||||||
slug: idn/docs/event-triggers/early-access/source-account-updated
|
slug: /idn/event-triggers/early-access/source-account-updated
|
||||||
---
|
---
|
||||||
|
|
||||||
# Source Account Updated
|
# Source Account Updated
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
---
|
---
|
||||||
id: filtering-events
|
id: filtering-events
|
||||||
slug: idn/docs/event-triggers/getting-started/filtering-events
|
slug: /idn/event-triggers/getting-started/filtering-events
|
||||||
---
|
---
|
||||||
|
|
||||||
# Filtering Events
|
# Filtering Events
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
---
|
---
|
||||||
id: getting-started
|
id: getting-started
|
||||||
slug: idn/docs/event-triggers/getting-started
|
slug: /idn/event-triggers/getting-started
|
||||||
---
|
---
|
||||||
|
|
||||||
# Getting Started
|
# Getting Started
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
---
|
---
|
||||||
id: preparing-a-subscriber-service
|
id: preparing-a-subscriber-service
|
||||||
slug: idn/docs/event-triggers/getting-started/preparing-a-subscriber-service
|
slug: /idn/event-triggers/getting-started/preparing-a-subscriber-service
|
||||||
---
|
---
|
||||||
|
|
||||||
# Preparing a Subscriber Service
|
# Preparing a Subscriber Service
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
---
|
---
|
||||||
id: responding-to-request-response
|
id: responding-to-request-response
|
||||||
slug: idn/docs/event-triggers/getting-started/responding-to-request-response
|
slug: /idn/event-triggers/getting-started/responding-to-request-response
|
||||||
---
|
---
|
||||||
|
|
||||||
# Responding to a Request Response Trigger
|
# Responding to a Request Response Trigger
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
---
|
---
|
||||||
id: subscribing-to-a-trigger
|
id: subscribing-to-a-trigger
|
||||||
slug: idn/docs/event-triggers/getting-started/subscribing-to-a-trigger
|
slug: /idn/event-triggers/getting-started/subscribing-to-a-trigger
|
||||||
---
|
---
|
||||||
|
|
||||||
# Subscribing to a Trigger
|
# Subscribing to a Trigger
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
---
|
---
|
||||||
id: testing-triggers
|
id: testing-triggers
|
||||||
slug: idn/docs/event-triggers/getting-started/testing-triggers
|
slug: /idn/event-triggers/getting-started/testing-triggers
|
||||||
---
|
---
|
||||||
|
|
||||||
# Testing Triggers
|
# Testing Triggers
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
---
|
---
|
||||||
id: trigger-types
|
id: trigger-types
|
||||||
slug: idn/docs/event-triggers/getting-started/trigger-types
|
slug: /idn/event-triggers/getting-started/trigger-types
|
||||||
---
|
---
|
||||||
|
|
||||||
# Trigger Types
|
# Trigger Types
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
---
|
---
|
||||||
id: authentication
|
id: authentication
|
||||||
slug: idn/docs/getting-started/authentication
|
slug: /idn/getting-started/authentication
|
||||||
---
|
---
|
||||||
# Authentication
|
# Authentication
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
---
|
---
|
||||||
id: getting-started
|
id: getting-started
|
||||||
slug: idn/docs/getting-started
|
slug: /idn/getting-started
|
||||||
---
|
---
|
||||||
|
|
||||||
# Getting Started with SailPoint APIs
|
# Getting Started with SailPoint APIs
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
---
|
---
|
||||||
id: standard-collection-parameters
|
id: standard-collection-parameters
|
||||||
slug: idn/docs/getting-started/standard-collection-parameters
|
slug: /idn/getting-started/standard-collection-parameters
|
||||||
---
|
---
|
||||||
# Standard Collection Parameters
|
# Standard Collection Parameters
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
---
|
---
|
||||||
id: saas-configuration
|
id: saas-configuration
|
||||||
slug: idn/docs/saas-configuration
|
slug: /idn/saas-configuration
|
||||||
---
|
---
|
||||||
# Overview
|
# Overview
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
---
|
---
|
||||||
id: account-create
|
id: account-create
|
||||||
slug: idn/docs/saas-connectivity/commands/account-create
|
slug: /idn/saas-connectivity/commands/account-create
|
||||||
---
|
---
|
||||||
# Account Create
|
# Account Create
|
||||||
|
|
||||||
@@ -54,7 +54,7 @@ The account create command accepts a provisioning plan from IDN and creates the
|
|||||||
|
|
||||||
You can create the provisioning plan through the ```accountCreateTemplate``` in the ```connector-spec.json``` file, and you can also modify its behavior in IDN using the create profile screen:
|
You can create the provisioning plan through the ```accountCreateTemplate``` in the ```connector-spec.json``` file, and you can also modify its behavior in IDN using the create profile screen:
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
‘Create Profile’ provides the instructions for the provisioning plan and determines which attributes are sent to your connector code. For example, if all the account attributes in the preceding image are configured for a value, then the following JSON payload is sent to your connector:
|
‘Create Profile’ provides the instructions for the provisioning plan and determines which attributes are sent to your connector code. For example, if all the account attributes in the preceding image are configured for a value, then the following JSON payload is sent to your connector:
|
||||||
|
|
||||||
@@ -175,7 +175,7 @@ There are two ways you can generate random passwords:
|
|||||||
|
|
||||||
1. Use the “Create Password” generator in ‘Create Profile.’ (This can also be configured in the ```accountCreateTemplate```)
|
1. Use the “Create Password” generator in ‘Create Profile.’ (This can also be configured in the ```accountCreateTemplate```)
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
2. Disable the 'password' field.
|
2. Disable the 'password' field.
|
||||||
|
|
||||||
@@ -209,14 +209,14 @@ async createAccount(input: StdAccountCreateInput): Promise<AirtableAccount> {
|
|||||||
|
|
||||||
One way to test whether the account create code works in IDN is to set up an access profile and role that grants members an entitlement from the connector’s target source. Start by creating an access profile that grants one or more entitlements from the target source.
|
One way to test whether the account create code works in IDN is to set up an access profile and role that grants members an entitlement from the connector’s target source. Start by creating an access profile that grants one or more entitlements from the target source.
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
Next, create a role that uses the access profile created in the previous step.
|
Next, create a role that uses the access profile created in the previous step.
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
Modify the role membership to use ‘Identity List’ and select one or more users that do not have accounts in the target source yet.
|
Modify the role membership to use ‘Identity List’ and select one or more users that do not have accounts in the target source yet.
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
Click the ‘Update’ button in the upper right corner to initiate the account provisioning process. Doing so creates the account(s) on the target source once the process is complete.
|
Click the ‘Update’ button in the upper right corner to initiate the account provisioning process. Doing so creates the account(s) on the target source once the process is complete.
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
---
|
---
|
||||||
id: account-delete
|
id: account-delete
|
||||||
slug: idn/docs/saas-connectivity/commands/account-delete
|
slug: /idn/saas-connectivity/commands/account-delete
|
||||||
---
|
---
|
||||||
# Account Delete
|
# Account Delete
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
---
|
---
|
||||||
id: account-discover
|
id: account-discover
|
||||||
slug: idn/docs/saas-connectivity/commands/account-discover
|
slug: /idn/saas-connectivity/commands/account-discover
|
||||||
---
|
---
|
||||||
# Account Discover Schema
|
# Account Discover Schema
|
||||||
|
|
||||||
@@ -336,16 +336,16 @@ There are many properties in this payload, so you may want to remove some, but i
|
|||||||
## Test in IdentityNow
|
## Test in IdentityNow
|
||||||
To test the account discover schema command in IDN, ensure that you upload your latest connector code and create a new source in IDN. After you configure and test your source connection, go to the ‘Account Schema’ page. You will see an empty schema.
|
To test the account discover schema command in IDN, ensure that you upload your latest connector code and create a new source in IDN. After you configure and test your source connection, go to the ‘Account Schema’ page. You will see an empty schema.
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
To discover the schema for this source, click the ‘Options’ dropdown in the upper right and select ‘Discover Schema.’
|
To discover the schema for this source, click the ‘Options’ dropdown in the upper right and select ‘Discover Schema.’
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
IDN then asks you to assign attributes to ‘Account ID’ and 'Account Name.'
|
IDN then asks you to assign attributes to ‘Account ID’ and 'Account Name.'
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
Save the schema. You now have a populated account schema. A user of this source must provide further details, like descriptions and identifying which attributes are entitlements.
|
Save the schema. You now have a populated account schema. A user of this source must provide further details, like descriptions and identifying which attributes are entitlements.
|
||||||
|
|
||||||

|

|
||||||
@@ -1,6 +1,6 @@
|
|||||||
---
|
---
|
||||||
id: account-enable
|
id: account-enable
|
||||||
slug: idn/docs/saas-connectivity/commands/account-enable
|
slug: /idn/saas-connectivity/commands/account-enable
|
||||||
---
|
---
|
||||||
# Account Enable/Disable
|
# Account Enable/Disable
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
---
|
---
|
||||||
id: account-list
|
id: account-list
|
||||||
slug: idn/docs/saas-connectivity/commands/account-list
|
slug: /idn/saas-connectivity/commands/account-list
|
||||||
---
|
---
|
||||||
# Account List
|
# Account List
|
||||||
|
|
||||||
@@ -34,7 +34,7 @@ slug: idn/docs/saas-connectivity/commands/account-list
|
|||||||
## Description
|
## Description
|
||||||
The account list command aggregates all accounts from the target source into IdentityNow. IDN calls this command during a manual or scheduled account aggregation.
|
The account list command aggregates all accounts from the target source into IdentityNow. IDN calls this command during a manual or scheduled account aggregation.
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
## Implementation
|
## Implementation
|
||||||
For you to be able to implement this endpoint, the web service must expose an API for listing user accounts and entitlements (i.e. roles or groups). Sometimes, a target source’s API has a single endpoint providing all the attributes and entitlements a source account contains. However, some APIs may break these attributes and entitlements into separate API endpoints, requiring you to make multiple calls to gather all an account's necessary data. The following code from [airtable.ts](https://github.com/sailpoint-oss/airtable-example-connector/blob/main/src/airtable.ts) shows the necessary steps to create a complete account from the various endpoints the API offers:
|
For you to be able to implement this endpoint, the web service must expose an API for listing user accounts and entitlements (i.e. roles or groups). Sometimes, a target source’s API has a single endpoint providing all the attributes and entitlements a source account contains. However, some APIs may break these attributes and entitlements into separate API endpoints, requiring you to make multiple calls to gather all an account's necessary data. The following code from [airtable.ts](https://github.com/sailpoint-oss/airtable-example-connector/blob/main/src/airtable.ts) shows the necessary steps to create a complete account from the various endpoints the API offers:
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
---
|
---
|
||||||
id: account-read
|
id: account-read
|
||||||
slug: idn/docs/saas-connectivity/commands/account-read
|
slug: /idn/saas-connectivity/commands/account-read
|
||||||
---
|
---
|
||||||
# Account Read
|
# Account Read
|
||||||
|
|
||||||
@@ -41,7 +41,7 @@ slug: idn/docs/saas-connectivity/commands/account-read
|
|||||||
## Description
|
## Description
|
||||||
The account read command aggregates a single account from the target source into IdentityNow. IDN can call this command during a “one-off” account refresh, which you can trigger by aggregating an individual account in IDN.
|
The account read command aggregates a single account from the target source into IdentityNow. IDN can call this command during a “one-off” account refresh, which you can trigger by aggregating an individual account in IDN.
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
## Implementation
|
## Implementation
|
||||||
Implementation of account read is similar to account list's implementation, except the code only needs to get one account, not all the accounts. The following snippet is from [airtable.ts](https://github.com/sailpoint-oss/airtable-example-connector/blob/main/src/airtable.ts):
|
Implementation of account read is similar to account list's implementation, except the code only needs to get one account, not all the accounts. The following snippet is from [airtable.ts](https://github.com/sailpoint-oss/airtable-example-connector/blob/main/src/airtable.ts):
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
---
|
---
|
||||||
id: account-unlock
|
id: account-unlock
|
||||||
slug: idn/docs/saas-connectivity/commands/account-unlock
|
slug: /idn/saas-connectivity/commands/account-unlock
|
||||||
---
|
---
|
||||||
# Account Unlock
|
# Account Unlock
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
---
|
---
|
||||||
id: account-update
|
id: account-update
|
||||||
slug: idn/docs/saas-connectivity/commands/account-update
|
slug: /idn/saas-connectivity/commands/account-update
|
||||||
---
|
---
|
||||||
# Account Update
|
# Account Update
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
---
|
---
|
||||||
id: entitlement-list
|
id: entitlement-list
|
||||||
slug: idn/docs/saas-connectivity/commands/entitlement-list
|
slug: /idn/saas-connectivity/commands/entitlement-list
|
||||||
---
|
---
|
||||||
# Entitlement List
|
# Entitlement List
|
||||||
|
|
||||||
@@ -34,7 +34,7 @@ slug: idn/docs/saas-connectivity/commands/entitlement-list
|
|||||||
|
|
||||||
The entitlement list command triggers during a manual or scheduled entitlement aggregation operation within IDN. This operation gathers a list of all entitlements available on the target source, usually multi-valued entitlements like groups or roles. This operation provides IDN administrators with a list of entitlements available on the source so they can create access profiles and roles accordingly, and it provides IDN with more details about the entitlements. The entitlement schema’s minimum requirements are name and ID, but you can add other values, such as created date, updated date, status, etc.
|
The entitlement list command triggers during a manual or scheduled entitlement aggregation operation within IDN. This operation gathers a list of all entitlements available on the target source, usually multi-valued entitlements like groups or roles. This operation provides IDN administrators with a list of entitlements available on the source so they can create access profiles and roles accordingly, and it provides IDN with more details about the entitlements. The entitlement schema’s minimum requirements are name and ID, but you can add other values, such as created date, updated date, status, etc.
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
## Defining the Schema
|
## Defining the Schema
|
||||||
The entitlement schema is defined in the [connector-spec.json](https://github.com/sailpoint-oss/airtable-example-connector/blob/main/connector-spec.json) file. Currently, only the multi-valued “group” type is supported. The following values are the minimum requirements, but you can add more attributes.
|
The entitlement schema is defined in the [connector-spec.json](https://github.com/sailpoint-oss/airtable-example-connector/blob/main/connector-spec.json) file. Currently, only the multi-valued “group” type is supported. The following values are the minimum requirements, but you can add more attributes.
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
---
|
---
|
||||||
id: entitlement-read
|
id: entitlement-read
|
||||||
slug: idn/docs/saas-connectivity/commands/entitlement-read
|
slug: /idn/saas-connectivity/commands/entitlement-read
|
||||||
---
|
---
|
||||||
# Entitlement Read
|
# Entitlement Read
|
||||||
|
|
||||||
|
|||||||
|
After Width: | Height: | Size: 39 KiB |
|
After Width: | Height: | Size: 129 KiB |
|
After Width: | Height: | Size: 131 KiB |
|
After Width: | Height: | Size: 42 KiB |
|
After Width: | Height: | Size: 94 KiB |
|
After Width: | Height: | Size: 80 KiB |
|
After Width: | Height: | Size: 37 KiB |
|
After Width: | Height: | Size: 121 KiB |
|
After Width: | Height: | Size: 484 KiB |
|
After Width: | Height: | Size: 132 KiB |
BIN
docs/idn/docs/saas-connectivity/commands/img/testing1.png
Normal file
|
After Width: | Height: | Size: 133 KiB |
BIN
docs/idn/docs/saas-connectivity/commands/img/testing2.png
Normal file
|
After Width: | Height: | Size: 108 KiB |
BIN
docs/idn/docs/saas-connectivity/commands/img/testing3.png
Normal file
|
After Width: | Height: | Size: 94 KiB |
@@ -1,6 +1,6 @@
|
|||||||
---
|
---
|
||||||
id: test-connection
|
id: test-connection
|
||||||
slug: idn/docs/saas-connectivity/commands/test-connection
|
slug: /idn/saas-connectivity/commands/test-connection
|
||||||
---
|
---
|
||||||
# Test Connection
|
# Test Connection
|
||||||
|
|
||||||
@@ -19,7 +19,7 @@ The test connection command ensures the connector can communicate with the targe
|
|||||||
|
|
||||||
Use ‘Test Connection’ in the IDN UI after an admin has finished entering configuration information for a new instance of the connector.
|
Use ‘Test Connection’ in the IDN UI after an admin has finished entering configuration information for a new instance of the connector.
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
## Implementation
|
## Implementation
|
||||||
In [index.ts](https://github.com/sailpoint-oss/airtable-example-connector/blob/main/src/index.ts), add the test connection function handler to your connector. Within this function, send a simple request to your web service to ensure the connection works. The web service this connector targets has a JavaScript SDK, so define your own function like the following example to test the connection:
|
In [index.ts](https://github.com/sailpoint-oss/airtable-example-connector/blob/main/src/index.ts), add the test connection function handler to your connector. Within this function, send a simple request to your web service to ensure the connection works. The web service this connector targets has a JavaScript SDK, so define your own function like the following example to test the connection:
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
---
|
---
|
||||||
id: cli-common-commands
|
id: cli-common-commands
|
||||||
slug: idn/docs/saas-connectivity/getting-started/cli-common-commands
|
slug: /idn/saas-connectivity/getting-started/cli-common-commands
|
||||||
---
|
---
|
||||||
# Common CLI/SDK Commands
|
# Common CLI/SDK Commands
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
---
|
---
|
||||||
id: cli
|
id: cli
|
||||||
slug: idn/docs/saas-connectivity/getting-started/cli
|
slug: /idn/saas-connectivity/getting-started/cli
|
||||||
---
|
---
|
||||||
# Getting Started with the CLI
|
# Getting Started with the CLI
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
---
|
---
|
||||||
id: cli-test-build-deploy
|
id: cli-test-build-deploy
|
||||||
slug: idn/docs/saas-connectivity/getting-started/cli-test-build-deploy
|
slug: /idn/saas-connectivity/getting-started/cli-test-build-deploy
|
||||||
---
|
---
|
||||||
# Test, Build, and Deploy Using the CLI
|
# Test, Build, and Deploy Using the CLI
|
||||||
## Testing Your Connector
|
## Testing Your Connector
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
---
|
---
|
||||||
id: connector-spec
|
id: connector-spec
|
||||||
slug: idn/docs/saas-connectivity/getting-started/connector-spec
|
slug: /idn/saas-connectivity/getting-started/connector-spec
|
||||||
---
|
---
|
||||||
# Connector specification file (connector-spec.json)
|
# Connector specification file (connector-spec.json)
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
---
|
---
|
||||||
id: example-connectors
|
id: example-connectors
|
||||||
slug: idn/docs/saas-connectivity/getting-started/example-connectors
|
slug: /idn/saas-connectivity/getting-started/example-connectors
|
||||||
---
|
---
|
||||||
# Example Connectors
|
# Example Connectors
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
---
|
---
|
||||||
id: getting-started
|
id: getting-started
|
||||||
slug: idn/docs/saas-connectivity/getting-started
|
slug: /idn/saas-connectivity/getting-started
|
||||||
---
|
---
|
||||||
# SaaS Connectivity
|
# SaaS Connectivity
|
||||||
|
|
||||||
@@ -14,7 +14,7 @@ Connectors are the bridges between the SailPoint Identity Now (IDN) SaaS platfor
|
|||||||
|
|
||||||
VA connectors always communicate with external sources through the Virtual Appliance (VA) as seen in the diagram below:
|
VA connectors always communicate with external sources through the Virtual Appliance (VA) as seen in the diagram below:
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
VA connectors can be disadvantageous because you need an on-prem virtual appliance to have any external connectivity with them, even when that connectivity is a SaaS service like Salesforce.com.
|
VA connectors can be disadvantageous because you need an on-prem virtual appliance to have any external connectivity with them, even when that connectivity is a SaaS service like Salesforce.com.
|
||||||
|
|
||||||
@@ -22,6 +22,6 @@ It is also challenging to create a custom connector in the VA Connector framewor
|
|||||||
|
|
||||||
The new Cloud connectors work differently - they run on the IDN platform instead (see diagram below).
|
The new Cloud connectors work differently - they run on the IDN platform instead (see diagram below).
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
With this process, you can run an entire IDN instance without a VA. The new connector also includes a CLI tool to manage cloud connectors and an SDK to create custom connectors. Because it is simpler to create a custom connector, you can create specific connectors for a variety of sources, and the connectors' configuration can be much simpler. For example, you can now configure a formerly complicated webservice connector by providing two parameters (Base URL and API Key) in a custom cloud connector.
|
With this process, you can run an entire IDN instance without a VA. The new connector also includes a CLI tool to manage cloud connectors and an SDK to create custom connectors. Because it is simpler to create a custom connector, you can create specific connectors for a variety of sources, and the connectors' configuration can be much simpler. For example, you can now configure a formerly complicated webservice connector by providing two parameters (Base URL and API Key) in a custom cloud connector.
|
||||||
|
After Width: | Height: | Size: 50 KiB |
|
After Width: | Height: | Size: 80 KiB |
@@ -1,6 +1,6 @@
|
|||||||
---
|
---
|
||||||
id: postman-collection
|
id: postman-collection
|
||||||
slug: idn/docs/saas-connectivity/getting-started/postman-collection
|
slug: /idn/saas-connectivity/getting-started/postman-collection
|
||||||
---
|
---
|
||||||
# Postman Collection
|
# Postman Collection
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
---
|
---
|
||||||
id: api-calls
|
id: api-calls
|
||||||
slug: idn/docs/saas-connectivity/in-depth/api-calls
|
slug: /idn/saas-connectivity/in-depth/api-calls
|
||||||
---
|
---
|
||||||
# API Calls
|
# API Calls
|
||||||
Calling API endpoints sequentially for hundreds or thousands of accounts is slow. If several API calls are required to build a user’s account, then it is recommended that you use asynchronous functions to speed up this task. Asynchronous functions allow your program to execute several commands at once, which is especially important for high latency commands like calling API endpoints - each call to an endpoint can take anywhere from several milliseconds to several seconds. The following code snippet from [discourse-client.ts](https://github.com/sailpoint-oss/discourse-connector-2/blob/main/Discourse/src/discourse-client.ts) shows how you can use asynchronous functions to quickly build a list of account profiles for your source’s users:
|
Calling API endpoints sequentially for hundreds or thousands of accounts is slow. If several API calls are required to build a user’s account, then it is recommended that you use asynchronous functions to speed up this task. Asynchronous functions allow your program to execute several commands at once, which is especially important for high latency commands like calling API endpoints - each call to an endpoint can take anywhere from several milliseconds to several seconds. The following code snippet from [discourse-client.ts](https://github.com/sailpoint-oss/discourse-connector-2/blob/main/Discourse/src/discourse-client.ts) shows how you can use asynchronous functions to quickly build a list of account profiles for your source’s users:
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
---
|
---
|
||||||
id: debugging
|
id: debugging
|
||||||
slug: idn/docs/saas-connectivity/in-depth/debugging
|
slug: /idn/saas-connectivity/in-depth/debugging
|
||||||
---
|
---
|
||||||
# Debugging
|
# Debugging
|
||||||
|
|
||||||
@@ -38,7 +38,7 @@ In VS Code, open a javascript debug terminal window and run the npm run dev comm
|
|||||||
```npm run dev```
|
```npm run dev```
|
||||||
|
|
||||||
Now you can set breakpoints in your typescript files in VS Code:
|
Now you can set breakpoints in your typescript files in VS Code:
|
||||||

|

|
||||||
|
|
||||||
### Debug through the VS Code Debug configuration
|
### Debug through the VS Code Debug configuration
|
||||||
To simplify the debugging process, you can consolidate the debugging steps into a VS Code launch configuration. The following snippet is an example of how you would do so:
|
To simplify the debugging process, you can consolidate the debugging steps into a VS Code launch configuration. The following snippet is an example of how you would do so:
|
||||||
@@ -75,7 +75,7 @@ To simplify the debugging process, you can consolidate the debugging steps into
|
|||||||
|
|
||||||
With these configurations set, you can run the debugger by selecting the options shown in the following image:
|
With these configurations set, you can run the debugger by selecting the options shown in the following image:
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
## Debug in IdentityNow
|
## Debug in IdentityNow
|
||||||
You can use the ```sp conn logs``` command to gain insight into how your connector is performing while running in IDN. See the section on logging for more information.
|
You can use the ```sp conn logs``` command to gain insight into how your connector is performing while running in IDN. See the section on logging for more information.
|
||||||
BIN
docs/idn/docs/saas-connectivity/in-depth/img/debugging1.png
Normal file
|
After Width: | Height: | Size: 67 KiB |
BIN
docs/idn/docs/saas-connectivity/in-depth/img/debugging2.png
Normal file
|
After Width: | Height: | Size: 8.3 KiB |
BIN
docs/idn/docs/saas-connectivity/in-depth/img/testing1.png
Normal file
|
After Width: | Height: | Size: 16 KiB |
BIN
docs/idn/docs/saas-connectivity/in-depth/img/testing2.png
Normal file
|
After Width: | Height: | Size: 48 KiB |
@@ -1,6 +1,6 @@
|
|||||||
---
|
---
|
||||||
id: linting
|
id: linting
|
||||||
slug: idn/docs/saas-connectivity/in-depth/linting
|
slug: /idn/saas-connectivity/in-depth/linting
|
||||||
---
|
---
|
||||||
# Linting
|
# Linting
|
||||||
To add linting to your project, simple install the linter using NPM:
|
To add linting to your project, simple install the linter using NPM:
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
---
|
---
|
||||||
id: logging
|
id: logging
|
||||||
slug: idn/docs/saas-connectivity/in-depth/logging
|
slug: /idn/saas-connectivity/in-depth/logging
|
||||||
---
|
---
|
||||||
# Logging
|
# Logging
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
---
|
---
|
||||||
id: testing
|
id: testing
|
||||||
slug: idn/docs/saas-connectivity/in-depth/testing
|
slug: /idn/saas-connectivity/in-depth/testing
|
||||||
---
|
---
|
||||||
# Testing
|
# Testing
|
||||||
|
|
||||||
@@ -33,8 +33,8 @@ Ran all test suites.
|
|||||||
```
|
```
|
||||||
You can also view the results in an html report by viewing the ```index.html``` file inside the ```coverage/lcov-report``` folder:
|
You can also view the results in an html report by viewing the ```index.html``` file inside the ```coverage/lcov-report``` folder:
|
||||||
|
|
||||||

|

|
||||||

|

|
||||||
|
|
||||||
## Testing Techniques
|
## Testing Techniques
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
---
|
---
|
||||||
id: building-transforms
|
id: building-transforms
|
||||||
slug: idn/docs/transforms/getting-started
|
slug: /idn/transforms/getting-started
|
||||||
---
|
---
|
||||||
# Building Transforms in IdentityNow
|
# Building Transforms in IdentityNow
|
||||||
|
|
||||||
@@ -10,7 +10,7 @@ In SailPoint's cloud services, transforms allow you to manipulate attribute valu
|
|||||||
|
|
||||||
Transforms are configurable objects that define easy ways to manipulate attribute data without requiring you to write code. Transforms are configurable building blocks with sets of inputs and outputs:
|
Transforms are configurable objects that define easy ways to manipulate attribute data without requiring you to write code. Transforms are configurable building blocks with sets of inputs and outputs:
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
Because there is no code to write, an administrator can configure these using a JSON object structure and uploading them into IdentityNow using [IdentityNow's Transform REST APIs](https://developer.sailpoint.com/apis/v3/#tag/Transforms).
|
Because there is no code to write, an administrator can configure these using a JSON object structure and uploading them into IdentityNow using [IdentityNow's Transform REST APIs](https://developer.sailpoint.com/apis/v3/#tag/Transforms).
|
||||||
|
|
||||||
@@ -22,17 +22,17 @@ Transforms typically have an input(s) and output(s). The way the transformation
|
|||||||
|
|
||||||
For example, a [Lower transform](../transform_operations/operations/lower.md) transforms any input text strings into lowercase versions as output. So if the input were "Foo", the lower case output of the transform would be "foo":
|
For example, a [Lower transform](../transform_operations/operations/lower.md) transforms any input text strings into lowercase versions as output. So if the input were "Foo", the lower case output of the transform would be "foo":
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
There are other types of transforms too. For example an [E.164 Phone transform](../transform_operations/operations/e164_phone.md) transforms any input phone number strings into an E.164 formatted version as output. So if the input were "(512) 346-2000" the output would be "+1 5123462000":
|
There are other types of transforms too. For example an [E.164 Phone transform](../transform_operations/operations/e164_phone.md) transforms any input phone number strings into an E.164 formatted version as output. So if the input were "(512) 346-2000" the output would be "+1 5123462000":
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
### Multiple Transform Inputs
|
### Multiple Transform Inputs
|
||||||
|
|
||||||
In the previous examples, each transform had a single input. Some transforms can specify more than one input. For example, the [Concat transform](../transform_operations/operations/concatenation.md) concatenates one or more strings together. If "Foo" and "Bar" were inputs, the transformed output would be "FooBar":
|
In the previous examples, each transform had a single input. Some transforms can specify more than one input. For example, the [Concat transform](../transform_operations/operations/concatenation.md) concatenates one or more strings together. If "Foo" and "Bar" were inputs, the transformed output would be "FooBar":
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
### Complex Nested Transforms
|
### Complex Nested Transforms
|
||||||
|
|
||||||
@@ -40,7 +40,7 @@ For more complex use cases, a single transform may not be enough. It is possible
|
|||||||
|
|
||||||
An example of a nested transform would be using the previous [Concat transform](../transform_operations/operations/concatenation.md) and passing its output as an input to another [Lower transform](../transform_operations/operations/lower.md). If the inputs "Foo" and "Bar" were passed into the transforms, the ultimate output would be "foobar," concatenated and lower-cased.
|
An example of a nested transform would be using the previous [Concat transform](../transform_operations/operations/concatenation.md) and passing its output as an input to another [Lower transform](../transform_operations/operations/lower.md). If the inputs "Foo" and "Bar" were passed into the transforms, the ultimate output would be "foobar," concatenated and lower-cased.
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
There is no hard limit for the number of transforms that can be nested. However, the more transforms applied, the more complex the nested transform will be, which can make it difficult to understand and maintain.
|
There is no hard limit for the number of transforms that can be nested. However, the more transforms applied, the more complex the nested transform will be, which can make it difficult to understand and maintain.
|
||||||
|
|
||||||
@@ -50,7 +50,7 @@ Some transforms can specify an attributes map that configures the transform beha
|
|||||||
|
|
||||||
It is possible to extend the earlier complex nested transform example. If a Replace transform, which replaces certain strings with replacement text, were added, and the transform were configured to replace "Bar with "Baz," the output would be added as an input to the Concat and Lower transforms:
|
It is possible to extend the earlier complex nested transform example. If a Replace transform, which replaces certain strings with replacement text, were added, and the transform were configured to replace "Bar with "Baz," the output would be added as an input to the Concat and Lower transforms:
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
The output of the Replace transform would be "Baz," which is then passed as an input to the Concat transform along with "Foo," producing an output of "FooBaz." This is then passed as an input into the Lower transform, producing a final output of "foobaz."
|
The output of the Replace transform would be "Baz," which is then passed as an input to the Concat transform along with "Foo," producing an output of "FooBaz." This is then passed as an input into the Lower transform, producing a final output of "foobaz."
|
||||||
|
|
||||||
@@ -89,7 +89,7 @@ The following two examples explain how a transform with an implicit or explicit
|
|||||||
|
|
||||||
An identity profile is configured the following way:
|
An identity profile is configured the following way:
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
As an example, the "Lowercase Department" transform being used is written the following way:
|
As an example, the "Lowercase Department" transform being used is written the following way:
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
---
|
---
|
||||||
id: creating-your-first-transform
|
id: creating-your-first-transform
|
||||||
slug: idn/docs/transforms/creating-your-first-transform
|
slug: /idn/transforms/creating-your-first-transform
|
||||||
---
|
---
|
||||||
# Creating Your First Transform
|
# Creating Your First Transform
|
||||||
|
|
||||||
@@ -113,7 +113,7 @@ curl --location --request POST 'https://{tenant}.api.identitynow.com/v3/transfor
|
|||||||
|
|
||||||
Once you have created the transform, you can find it in IdentityNow by going to **Admin** > **Identities** > **Identity Profiles** > (An Identity Profile) > **Mappings** (tab).
|
Once you have created the transform, you can find it in IdentityNow by going to **Admin** > **Identities** > **Identity Profiles** > (An Identity Profile) > **Mappings** (tab).
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
For more information about creating transforms, see [Create Transform](https://developer.sailpoint.com/apis/v3/#operation/createTransform).
|
For more information about creating transforms, see [Create Transform](https://developer.sailpoint.com/apis/v3/#operation/createTransform).
|
||||||
|
|
||||||
|
After Width: | Height: | Size: 188 KiB |
|
After Width: | Height: | Size: 200 KiB |
|
After Width: | Height: | Size: 69 KiB |
|
After Width: | Height: | Size: 20 KiB |
|
After Width: | Height: | Size: 103 KiB |
|
After Width: | Height: | Size: 24 KiB |
|
After Width: | Height: | Size: 31 KiB |
|
After Width: | Height: | Size: 47 KiB |