diff --git a/.github/bot.yml b/.github/bot.yml index 46bdc802d..bdb62d242 100644 --- a/.github/bot.yml +++ b/.github/bot.yml @@ -2,42 +2,46 @@ # Enable "labeler" for your PR that would add labels to PRs based on the paths that are modified in the PR. labelPRBasedOnFilePath: Images: - - products/**/*.png - - products/**/*.svg - - products/**/*.jpg - - products/**/*.jpeg + - docs/**/*.png + - docs/**/*.svg + - docs/**/*.jpg + - docs/**/*.jpeg Docs: - - products/**/*.md* + - docs/**/*.md* Tools: - - products/idn/docs/identity-now/tools/**/* + - docs/tools/**/* CLI Docs: - - products/idn/docs/identity-now/tools/cli/**/* + - docs/tools/cli/**/* SDK Docs: - - products/idn/docs/identity-now/tools/sdk/**/* + - docs/tools/sdk/**/* Rule Development Kit Docs: - - products/idn/docs/identity-now/tools/rule-development-kit/**/* + - docs/tools/rule-development-kit/**/* IdentityNow: - - products/idn/**/* + - docs/extensibility/**/* + - docs/connectivity/**/* + - docs/api/**/* + - docs/guides/**/* + - docs/reporting/**/* NERM: - - products/nerm/**/* + - docs/nerm/**/* IdentityIQ: - - products/iiq/**/* + - docs/iiq/**/* Event Trigger Docs: - - products/idn/docs/identity-now/event-triggers/**/* + - docs/extensibility/event-triggers/**/* SaaS Connectivity Docs: - - products/idn/docs/identity-now/saas-connectivity/**/* + - docs/connectivity/saas-connectivity/**/* Secure Data Share (SDS): - - products/idn/docs/identity-now/secure-data-share/**/* + - docs/reporting/secure-data-share/**/* Access Intelligence Center (AIC): - - products/idn/docs/identity-now/access-intelligence-center/**/* + - docs/reporting/access-intelligence-center/**/* Transform Docs: - - products/idn/docs/identity-now/transforms/**/* + - docs/extensibility/transforms/**/* Rules Docs: - - products/idn/docs/identity-now/rules/**/* + - docs/extensibility/rules/**/* SaaS Configuration Docs: - - products/idn/docs/identity-now/saas-configuration.md* + - docs/extensibility/configuration-management/saas-configuration.md* Introduction Doc: - - products/idn/docs/identity-now/index.md* + - docs/index.md* Pages: - src/pages/**/* Static Files: diff --git a/.github/workflows/infra-deploy.yml b/.github/workflows/infra-deploy.yml index cf2018bbe..6cdde124c 100644 --- a/.github/workflows/infra-deploy.yml +++ b/.github/workflows/infra-deploy.yml @@ -76,6 +76,7 @@ jobs: - name: Build Developer Community site run: | echo "CMS_APP_API_ENDPOINT=$API_GATEWAY_URL" >> .env + echo ${{ secrets.NPM_FONTAWESOME_CONFIG }} | base64 -d >> .npmrc export NODE_OPTIONS="--max_old_space_size=4096" npm ci --legacy-peer-deps npm run gen-api-docs-all diff --git a/.gitignore b/.gitignore index 0c6e40d0d..42833e7ae 100644 --- a/.gitignore +++ b/.gitignore @@ -28,6 +28,14 @@ yarn.lock /products/iiq/api /products/nerm/api +/docs/api/v3 +/docs/api/beta +/docs/api/iiq +/docs/api/nerm/* +!/docs/api/nerm/authentication.md +!/docs/api/nerm/pagination-metadata-filtering.md +!/docs/api/nerm/getting-started.md + #Alogolia env file /algolia/.env diff --git a/algolia/config.json b/algolia/config.json index bd0d916ba..07610a43e 100644 --- a/algolia/config.json +++ b/algolia/config.json @@ -2,74 +2,74 @@ "index_name": "prod_DEVELOPER_SAILPOINT_COM", "start_urls": [ { - "url": "https://developer.sailpoint.com/idn/docs/transforms", + "url": "https://developer.sailpoint.com/docs/extensibility/transforms", "tags": ["IDN Documentation", "Transforms"] }, { - "url": "https://developer.sailpoint.com/idn/docs/rules", + "url": "https://developer.sailpoint.com/docs/extensibility/rules", "tags": ["IDN Documentation", "Rules"] }, { - "url": "https://developer.sailpoint.com/idn/docs/event-triggers", + "url": "https://developer.sailpoint.com/docs/extensibility/event-triggers", "tags": ["IDN Documentation", "Event Triggers"] }, { - "url": "https://developer.sailpoint.com/idn/docs/saas-configuration", + "url": "https://developer.sailpoint.com/docs/extensibility/configuration-management/saas-configuration", "tags": ["IDN Documentation", "SaaS Configuration"] }, { - "url": "https://developer.sailpoint.com/idn/docs/saas-connectivity", + "url": "https://developer.sailpoint.com/docs/connectivity/saas-connectivity", "tags": ["IDN Documentation", "SaaS Connectivity"] }, { - "url": "https://developer.sailpoint.com/idn/docs/", + "url": "https://developer.sailpoint.com/docs/", "tags": ["IDN Documentation"] }, { - "url": "https://developer.sailpoint.com/idn/tools/cli", + "url": "https://developer.sailpoint.com/docs/tools/cli", "tags": ["IDN Tools", "CLI"], "selectors_key": "tools" }, { - "url": "https://developer.sailpoint.com/idn/tools/sdk", + "url": "https://developer.sailpoint.com/docs/tools/sdk", "tags": ["IDN Tools", "SDKs"], "selectors_key": "tools" }, { - "url": "https://developer.sailpoint.com/idn/api/getting-started", + "url": "https://developer.sailpoint.com/docs/api/getting-started", "selectors_key": "api_v3", "tags": ["IDN API Documenation"] }, { - "url": "https://developer.sailpoint.com/idn/api/authentication", + "url": "https://developer.sailpoint.com/docs/api/authentication", "selectors_key": "api_v3", "tags": ["IDN API Documenation"] }, { - "url": "https://developer.sailpoint.com/idn/api/standard-collection-parameters", + "url": "https://developer.sailpoint.com/docs/api/standard-collection-parameters", "selectors_key": "api_v3", "tags": ["IDN API Documenation"] }, { - "url": "https://developer.sailpoint.com/idn/api/rate-limit", + "url": "https://developer.sailpoint.com/docs/api/rate-limit", "selectors_key": "api_v3", "tags": ["IDN API Documenation"] }, { - "url": "https://developer.sailpoint.com/idn/api/v3", + "url": "https://developer.sailpoint.com/docs/api/v3", "selectors_key": "api_v3", "tags": ["IDN V3 APIs"] }, { - "url": "https://developer.sailpoint.com/idn/api/beta", + "url": "https://developer.sailpoint.com/docs/api/beta", "selectors_key": "api_v3", "tags": ["IDN Beta APIs"] }, { - "url": "https://developer.sailpoint.com/iiq/api", + "url": "https://developer.sailpoint.com/docs/api/iiq", "selectors_key": "api_iiq", "tags": ["IIQ APIs"] } diff --git a/algolia/dev_config.json b/algolia/dev_config.json index 12270a153..73dd6c85e 100644 --- a/algolia/dev_config.json +++ b/algolia/dev_config.json @@ -2,7 +2,7 @@ "index_name": "dev_DEVELOPER_SAILPOINT_COM", "start_urls": [ { - "url": "https://developer.sailpoint.com/idn/docs/transforms", + "url": "https://developer.sailpoint.com/docs/extensibility/transforms", "tags": ["IDN Documentation", "Transforms"] } ], diff --git a/docs/README.md b/docs/README.md deleted file mode 100644 index 83406e3aa..000000000 --- a/docs/README.md +++ /dev/null @@ -1 +0,0 @@ -# Developer Relations main diff --git a/docs/api/api-specifications.md b/docs/api/api-specifications.md new file mode 100644 index 000000000..9a4e3e7c9 --- /dev/null +++ b/docs/api/api-specifications.md @@ -0,0 +1,31 @@ +--- +id: api-specifications +title: API Specifications +pagination_label: API Specifications +sidebar_label: API Specifications +sidebar_position: 1 +sidebar_class_name: apiSpecifications +keywords: ['api', 'specifications'] +description: Identity Security Cloud API specifications. +slug: /api/api-specifications +tags: ['API Specifications'] +--- + +## Overview + +The Identity Security Cloud (ISC) APIs provide developers with a way to interact with the ISC platform and extend it. Developers can leverage these APIs to customize their platform experiences and build new solutions and integrations that meet their needs. + +The API specifications contain detailed information of how to send requests to each API endpoint, as well as example requests and responses. They also include essential information about how to use the APIs and guides you can follow to get started. + +```mdx-code-block +import DocCardList from '@theme/DocCardList'; +import {useCurrentSidebarCategory} from '@docusaurus/theme-common'; + + +``` + +## Discuss + +The most valuable resource for ISC developers is the SailPoint Developer Community itself, where ISC users and experts all over the world come together to ask questions and provide solutions. + +To learn more about the ISC APIs and discuss them with SailPoint Developer Community members, go to the [SailPoint Developer Community Forum](https://developer.sailpoint.com/discuss/tags/c/isc/6/apis). diff --git a/products/idn/api/authentication.md b/docs/api/authentication.md similarity index 91% rename from products/idn/api/authentication.md rename to docs/api/authentication.md index 4ae90a9ef..2627d04a7 100644 --- a/products/idn/api/authentication.md +++ b/docs/api/authentication.md @@ -6,7 +6,7 @@ sidebar_label: Authentication sidebar_position: 2 sidebar_class_name: authentication keywords: ['authentication'] -description: A guide on how to generate API credentials to authenticate to SailPoint's APIs. +description: Authenticate to the ISC APIs. slug: /api/authentication tags: ['Authentication'] --- @@ -15,9 +15,9 @@ import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; ## Overview -With SailPoint's IdentityNow (IDN) APIs, you can extend your IDN platform far beyond its current capabilities. +With SailPoint's Identity Security Cloud (ISC) APIs, you can extend your ISC platform far beyond its current capabilities. -To be able to do so, you must first authenticate to the IDN APIs. +To be able to do so, you must first authenticate to the ISC APIs. Authentication is the act of validating a user's identity, generally by passing some kind of credentials. A fast, simple way to authenticate to the APIs is to generate a [personal access token](#generate-a-personal-access-token) and pass that token. @@ -36,35 +36,35 @@ This diagram shows the flow of this authentication/authorization process: sequenceDiagram autonumber participant H as HTTP Client - participant I as IdentityNow + participant I as Identity Security Cloud H->>I: Access Token Request I->>H: Access Token Response loop Until token expires H->>I: API Request + Access Token - I->>H: IdentityNow API Response + I->>H: Identity Security Cloud API Response end ``` The flow involves these four key steps: -1. **Access Token Request**: The HTTP client (a script, application, Postman, cURL, etc.) makes a request to IDN to get a JWT `access_token`. -2. **Access Token Response**: If the request is valid, IDN responds to the HTTP client with a JWT `access_token`. -3. **API Request**: The HTTP client makes a request to an IDN endpoint with the header, `Authorization: Bearer {access_token}`. -4. **API Response**: If both the request itself and the JWT `access_token` in its header are valid, IDN responds to the client. +1. **Access Token Request**: The HTTP client (a script, application, Postman, cURL, etc.) makes a request to ISC to get a JWT `access_token`. +2. **Access Token Response**: If the request is valid, ISC responds to the HTTP client with a JWT `access_token`. +3. **API Request**: The HTTP client makes a request to an ISC endpoint with the header, `Authorization: Bearer {access_token}`. +4. **API Response**: If both the request itself and the JWT `access_token` in its header are valid, ISC responds to the client. If you encounter unexpected errors, refer to the [Troubleshooting](#troubleshooting) section of this document. -The idea is that once you have authenticated to the IDN APIs and you have received an `access_token`, you can use that `access_token` to provide authorization for your API requests. +The idea is that once you have authenticated to the ISC APIs and you have received an `access_token`, you can use that `access_token` to provide authorization for your API requests. This document includes all the information you need to know to engage in this authentication/authorization process, as well as a guide on how to get started. ## Get started -Read this guide to learn how to authenticate to SailPoint's IDN APIs. +Read this guide to learn how to authenticate to SailPoint's ISC APIs. -To authenticate to the IDN APIs, you must be able to connect to your tenant to send the access token request. +To authenticate to the ISC APIs, you must be able to connect to your tenant to send the access token request. To do so, you need to do the following: 1. [Find your tenant's OAuth details](#find-your-tenant's-oauth-details) 2. [Generate personal access token](#generate-personal-access-token) @@ -76,13 +76,13 @@ To do so, you need to do the following: Your tenant's OAuth details refer to the details you need to know to connect it to the APIs. You need to know your tenant's name, its `authorizeEndpoint` URL, and its `tokenEndpoint` URL. -Your IDN instance is likely using the domain name supplied by SailPoint (`{tenant}.api.identitynow.com`), in which case, the tenant name is in the URL. +Your ISC instance is likely using the domain name supplied by SailPoint (`{tenant}.api.identitynow.com`), in which case, the tenant name is in the URL. This is assumed to be the case in this guide. -However, if your IDN instance is using a vanity URL, you must enter this URL into your browser to get your OAuth info: +However, if your ISC instance is using a vanity URL, you must enter this URL into your browser to get your OAuth info: `https://{tenant}.api.identitynow.com/oauth/info` If you have admin access but don't know your tenant name, you can learn it by following these steps: -1. Log into your IDN instance. +1. Log into your ISC instance. 2. Select the 'Dashboard' dropdown. 3. Select 'Overview'. 4. Find the tenant name ('Org Name') in the dashboard's `Org Details` section. @@ -109,10 +109,10 @@ A personal access token (PAT) is a method of authenticating to an API as a user PATs are primarily used in scripts or programs that lack an easy way to implement an OAuth2 flow but need to call API endpoints that require user context. PATs are also convenient for use in tools like [Postman](https://www.postman.com/) when you are exploring and testing the APIs. -Any IDN user can generate a PAT. +Any ISC user can generate a PAT. To do so, follow these steps: 1. Select **Preferences** from the drop-down menu under your username, then **Personal Access Tokens** on the left. -You can also go directly to the page by using this URL (replace `{tenant}` with your IdentityNow tenant): `https://{tenant}.identitynow.com/ui/d/user-preferences/personal-access-tokens` +You can also go directly to the page by using this URL (replace `{tenant}` with your Identity Security Cloud tenant): `https://{tenant}.identitynow.com/ui/d/user-preferences/personal-access-tokens` 2. Click **New Token** and enter a meaningful description to help differentiate the token from others. @@ -133,7 +133,7 @@ After you create the token, the value of the `Client ID` will be visible in the 4. Copy both values somewhere that will be secure and accessible to you when you need to use the the token. -To generate a personal access token from the API, use the [create personal access token endpoint](/idn/api/beta/create-personal-access-token). +To generate a personal access token from the API, use the [create personal access token endpoint](/docs/api/beta/create-personal-access-token). Once you have created the PAT and you know its `Client ID` and `Client Secret`, you have everything you need to follow the [Client Credentials Grant Flow](#request-access-token-with-client-credentials-grant-flow) and use the PAT to generate an `access_token`. You will need this `access_token` to authenticate your requests to the APIs. @@ -145,11 +145,11 @@ You must choose the one that best serves your purposes. This document covers these three common flows: 1. [**Client Credentials**](https://oauth.net/2/grant-types/client-credentials/) - Clients use this grant type to obtain a JWT `access_token` without user involvement such as scripts, programs or system to system integration. -2. [**Authorization Code**](https://oauth.net/2/grant-types/authorization-code/) - Clients use this grant type to exchange an authorization code for an `access_token`. Authorization codes are mainly used by web applications because there is a login into IDN with a subsequent redirect back to the web application/client. +2. [**Authorization Code**](https://oauth.net/2/grant-types/authorization-code/) - Clients use this grant type to exchange an authorization code for an `access_token`. Authorization codes are mainly used by web applications because there is a login into ISC with a subsequent redirect back to the web application/client. 3. [**Refresh Token**](https://oauth.net/2/grant-types/refresh-token/) - Clients use this grant type to exchange a refresh token for a new `access_token` when the existing `access_token` has expired. This allows clients to continue using the APIs without having to re-authenticate as frequently. This grant type is commonly used together with `Authorization Code` to prevent a user from having to log in several times per day. One way to determine which authorization flow you need to use is to look at the specification for the endpoint you want to use. -The endpoint will have the supported OAuth flows listed under the 'Authorization' dropdown, like the [List Access Profiles endpoint](https://developer.sailpoint.com/idn/api/beta/list-access-profiles): +The endpoint will have the supported OAuth flows listed under the 'Authorization' dropdown, like the [List Access Profiles endpoint](https://developer.sailpoint.com/docs/api/beta/list-access-profiles): ![Authorization Dropdown](./img/authorization/authorization-dropdown.png) @@ -161,9 +161,9 @@ The guide will detail the three different authorization grant flows you can use Clients use the 'Client Credentials' grant type to obtain access tokens without user involvement. This is the simplest authentication flow. -API endpoints that require [user level permissions](https://documentation.sailpoint.com/saas/help/common/users/user_level_matrix.html) require the use of Personal access tokens (PATs). Correspondingly, the endpoints a personal access token (PAT) can call depends on the permissions of the user who generated it and the configuration of IDN. +API endpoints that require [user level permissions](https://documentation.sailpoint.com/saas/help/common/users/user_level_matrix.html) require the use of Personal access tokens (PATs). Correspondingly, the endpoints a personal access token (PAT) can call depends on the permissions of the user who generated it and the configuration of ISC. -Note: If an API Key is used then IDN API calls are made outside of the context of a user and some API calls will not work. +Note: If an API Key is used then ISC API calls are made outside of the context of a user and some API calls will not work. An OAuth 2.0 client using the client credentials grant flow must have `CLIENT_CREDENTIALS` as one of its grantTypes (PATs are implicitly granted the `CLIENT_CREDENTIALS` grant type): @@ -184,7 +184,7 @@ An OAuth 2.0 client using the client credentials grant flow must have `CLIENT_CR This is the overall authorization flow: -1. The client first submits an OAuth 2.0 token request to IDN in this form: +1. The client first submits an OAuth 2.0 token request to ISC in this form: ```text POST https://{tenant}.api.identitynow.com/oauth/token @@ -221,7 +221,7 @@ curl --location 'https://{tenant}.api.identitynow.com/oauth/token' \ --form 'client_secret="{clientSecret}"' ``` -2. IDN validates the token request and responds. +2. ISC validates the token request and responds. If the request is successful, the response contains a JWT access token. For more information about the JWT access token in the response, refer to [#OAuth-token-response](#oauth-token-response). @@ -234,7 +234,7 @@ To learn more about the OAuth client credentials grant flow, refer [here](https: Further Reading: [https://oauth.net/2/grant-types/authorization-code/](https://oauth.net/2/grant-types/authorization-code/) Clients use this grant type to exchange an authorization code for an `access_token`. -This is mainly used for web apps because there is a login into IDN with a subsequent redirect back to the web app/client. +This is mainly used for web apps because there is a login into ISC with a subsequent redirect back to the web app/client. The OAuth 2.0 client you are using must have `AUTHORIZATION_CODE` as one of its grant types. The redirect URLs must also match the list in the client as well: @@ -270,7 +270,7 @@ sequenceDiagram autonumber participant U as User participant W as Web App - participant I as IdentityNow + participant I as Identity Security Cloud U->>W: Click login link W->>I: Authorization request to https://{tenant}.login.sailpoint.com/oauth/authorize @@ -287,19 +287,19 @@ This is the overall authorization flow: 1. The user clicks the login link on a web app. -2. The web app sends an authorization request to IDN in this form: +2. The web app sends an authorization request to ISC in this form: ```Text GET https://{tenant}.login.sailpoint.com/oauth/authorize?client_id={client-id}&client_secret={client-secret}&response_type=code&redirect_uri={redirect-url} ``` -3. IDN redirects the user to a login prompt to authenticate to IdentityNow. +3. ISC redirects the user to a login prompt to authenticate to Identity Security Cloud. -4. The user authenticates to IDN. +4. The user authenticates to ISC. -5. Once authentication is successful, IDN issues an authorization code back to the web app. +5. Once authentication is successful, ISC issues an authorization code back to the web app. -6. The web app submits an OAuth 2.0 token request to IDN in this form: +6. The web app submits an OAuth 2.0 token request to ISC in this form: ```text POST https://{tenant}.api.identitynow.com/oauth/token?grant_type=authorization_code&client_id={client-id}&client_secret={client-secret}&code={code}&redirect_uri={redirect-url} @@ -311,7 +311,7 @@ The token endpoint URL is `{tenant}.api.identitynow.com`, and the authorize URL ::: -7. IDN validates the token request and submits a response. If the request is successful, the response contains a JWT `access_token`. +7. ISC validates the token request and submits a response. If the request is successful, the response contains a JWT `access_token`. For more information about the JWT access token in the response, refer to [#OAuth-token-response](#oauth-token-response). These are the query parameters in the OAuth 2.0 token request for the authorization code grant: @@ -363,13 +363,13 @@ This is the overall authorization flow: 1. The client application receives an `access_token` and a `refresh_token` from one of the other OAuth grant flows, like `AUTHORIZATION_CODE`. 2. The client application detects that the `access_token` is about to expire, based on the `expires_in` attribute contained within the JWT token. -3. The client submits an OAuth 2.0 token request to IDN in this form: +3. The client submits an OAuth 2.0 token request to ISC in this form: ```text POST https://{tenant}.api.identitynow.com/oauth/token?grant_type=refresh_token&client_id={client_id}&client_secret={client_secret}&refresh_token={refresh_token} ``` -4. IDN validates the token request and submits a response. If the request is successful, the response contains a new `access_token` and `refresh_token`. +4. ISC validates the token request and submits a response. If the request is successful, the response contains a new `access_token` and `refresh_token`. These are the query parameters in the OAuth 2.0 token request for the refresh token grant flow: @@ -417,7 +417,7 @@ A successful request using any of the grant flows to `https://{tenant}.api.ident } ``` -You can use the JWT `access_token` to authorize REST API calls through the IDN API gateway. +You can use the JWT `access_token` to authorize REST API calls through the ISC API gateway. To use the `access_token`, simply include it in the `Authorization` header as a `Bearer` token. This is an example V3 API request that has the access token in the header: @@ -440,7 +440,7 @@ However, the `refresh_token` will only be present if the API client has the `REF - The `user_id` and `identity_id` define the identity context of the person who authenticated. However, these values aren't set for the client credentials grant type because it doesn't have a user context. -With the JWT `access_token`, you can now successfully send authenticated IDN API requests. To learn more about authorization and the scopes you can apply to further control access to the APIs, refer to [Authorization](/idn/api/authorization). +With the JWT `access_token`, you can now successfully send authenticated ISC API requests. To learn more about authorization and the scopes you can apply to further control access to the APIs, refer to [Authorization](/docs/api/authorization). ## More Information @@ -522,25 +522,25 @@ This section describes some different use cases and which grant flow you would w For daily work or short, quick administrative actions, you can just use a PAT. This makes the process easier because you don't really need to worry about grant types - you can easily generate a PAT in the user interface (UI). Follow these steps to do so: -1. Log in to IDN. +1. Log in to ISC. 2. Go to 'Preferences', then 'Personal Access Tokens', and [generate a PAT](#generate-a-personal-access-token). 3. The PAT's `client_id` and `client_secret` provide the necessary authentication to send API requests, without any grant flow. #### Postman -[Postman](https://www.postman.com/) is a popular HTTP client you can use to design, build, test, and iterate your APIs. Postman users and teams can create public workspaces they can use to make it easy to access their API collections and environments and get started. SailPoint maintains a [public workspace for the IdentityNow API collections](https://www.postman.com/sailpoint/workspace/identitynow). You can use this workspace to access all the IDN API collections and stay up to date. +[Postman](https://www.postman.com/) is a popular HTTP client you can use to design, build, test, and iterate your APIs. Postman users and teams can create public workspaces they can use to make it easy to access their API collections and environments and get started. SailPoint maintains a [public workspace for the Identity Security Cloud API collections](https://www.postman.com/sailpoint/workspace/identitynow). You can use this workspace to access all the ISC API collections and stay up to date. If you're using Postman, you have some different ways to set up your authorization. You can just leverage the accessToken as mentioned above, or you can configure Postman to use OAuth 2.0 directly. For more information about how to do so, refer [here](https://learning.postman.com/docs/sending-requests/authorization/). #### Web applications -If you are making a web application, the best grant flow to use is the [Authorization Code grant flow](#request-access-token-with-authorization-grant-flow). This will allow users to be directed to IDN to login and then redirected back to the web application through a URL redirect. This also works well with Single Sign-on (SSO), strong authentication, and pass-through authentication mechanisms. +If you are making a web application, the best grant flow to use is the [Authorization Code grant flow](#request-access-token-with-authorization-grant-flow). This will allow users to be directed to ISC to login and then redirected back to the web application through a URL redirect. This also works well with Single Sign-on (SSO), strong authentication, and pass-through authentication mechanisms. -SailPoint doesn't recommend using a password grant flow for web applications because doing so would involve entering IDN credentials in the web application. +SailPoint doesn't recommend using a password grant flow for web applications because doing so would involve entering ISC credentials in the web application. This flow also doesn't allow you to work with SSO, strong authentication, or pass-through authentication. #### Scripts, programs or system to system integration -If you are writing scripts, programs or system integrations that leverage the IDN APIs, the OAuth 2.0 grant you should use typically depends on what you're doing and the user context you need to operate under. +If you are writing scripts, programs or system integrations that leverage the ISC APIs, the OAuth 2.0 grant you should use typically depends on what you're doing and the user context you need to operate under. Because scripts, code, and programs lack an interactive web-interface, it is difficult, but not impossible, to implement a working authorization code grant flow. System to system integrations may require an elevated level of access and utilize a service account to make API calls beyond the privileges of the authenticated user. @@ -614,7 +614,7 @@ You can also view all of the active clients in the UI by going to `https://{tena ``` 4. If you're using an [Authorization Code](#authorization-code-grant-flow) grant flow, verify that the redirect URL(s) for your application match the `redirectUris` value in the client. -You can check this by calling the [List OAuth Clients endpoint](/idn/api/beta/list-oauth-clients). +You can check this by calling the [List OAuth Clients endpoint](/docs/api/beta/list-oauth-clients). ### Verify OAuth calls Verify that the OAuth call flow is going to the right URLs, with the correct query parameters and data values. diff --git a/products/idn/api/authorization.md b/docs/api/authorization.md similarity index 93% rename from products/idn/api/authorization.md rename to docs/api/authorization.md index 4dc1e43d1..cac5b3eb2 100644 --- a/products/idn/api/authorization.md +++ b/docs/api/authorization.md @@ -6,7 +6,7 @@ sidebar_label: Authorization sidebar_position: 3 sidebar_class_name: authorization keywords: ['authorization','scope','permission'] -description: A guide on how to restrict an API token's level of access. +description: Authorize your ISC API requests. slug: /api/authorization tags: ['Authorization','Scopes','Permissions'] --- @@ -23,7 +23,7 @@ Authorization and authentication are two related concepts that help secure APIs. sequenceDiagram autonumber participant H as HTTP Client - participant I as IdentityNow + participant I as Identity Security Cloud H->>I: Request to delete a source I->>I: Authenticate access token @@ -61,7 +61,7 @@ Scopes contain one or more rights, which are low level permissions that grant ac By default, each PAT has the scope, `sp:scopes:all`, which grants access to all the rights appropriate for the [user level](https://documentation.sailpoint.com/saas/help/common/users/user_level_matrix.html). For example, a user with the **Admin** user level has access to all APIs, so `sp:scopes:all` grants **Admin** users access to all APIs. A user with the **Cert Admin** user level, however, has access to only a subset of APIs necessary to perform their role, most notably the certification APIs, so `sp:scopes:all` grants **Cert Admin** users access to only that subset of APIs. -Alternatively, `sp:scopes:default` is the least privileged scope that only grants access to endpoints that require no authorization at all, such as [list public identities](https://developer.sailpoint.com/idn/api/v3/get-public-identities). +Alternatively, `sp:scopes:default` is the least privileged scope that only grants access to endpoints that require no authorization at all, such as [list public identities](https://developer.sailpoint.com/docs/api/v3/get-public-identities). Scopes are additive, which means the final right set is the intersection of all the rights granted by the scopes assigned to a PAT, excluding any rights that fall outside of the user level. Each scope added to an PAT builds up the credential's permission set, incrementally increasing access to the API. If a PAT has `sp:scopes:all` granted, then any additional scope is ignored because `sp:scopes:all` already contains the complete set of rights available to the user level. @@ -76,7 +76,7 @@ If the API requirements for the personal access token exceed the scopes allowed ## Identifying Necessary Authorization for an Endpoint -Each endpoint document specifies how to authorize with the endpoint in the **Authorization** dropdown, which is located on the right side column below the endpoint path. Selecting **Authorization** expands the dropdown menu showing the details of how to authorize with the endpoint. The following image shows the authorization details of the [List Access Profiles](https://developer.sailpoint.com/idn/api/beta/list-access-profiles) endpoint. +Each endpoint document specifies how to authorize with the endpoint in the **Authorization** dropdown, which is located on the right side column below the endpoint path. Selecting **Authorization** expands the dropdown menu showing the details of how to authorize with the endpoint. The following image shows the authorization details of the [List Access Profiles](https://developer.sailpoint.com/docs/api/beta/list-access-profiles) endpoint. ![Authorization Dropdown](./img/authorization/authorization-dropdown.png) @@ -98,7 +98,7 @@ When you create a PAT in the UI, you can apply scopes to the token. More informa ## Assigning Scopes with the API -You can [create PATs](https://developer.sailpoint.com/idn/api/v3/create-personal-access-token) programmatically with the API. The request body for the endpoint allows the caller to specify a list of scopes to be applied to the PAT. If the `scope` property is omitted from the request body, then `sp:scopes:all` is granted to the credentials. The following example shows how to generate a PAT with the `idn:access-request:manage` and `idn:nelm:manage` scopes. +You can [create PATs](https://developer.sailpoint.com/docs/api/v3/create-personal-access-token) programmatically with the API. The request body for the endpoint allows the caller to specify a list of scopes to be applied to the PAT. If the `scope` property is omitted from the request body, then `sp:scopes:all` is granted to the credentials. The following example shows how to generate a PAT with the `idn:access-request:manage` and `idn:nelm:manage` scopes. POST diff --git a/products/idn/api/getting-started.md b/docs/api/getting-started.md similarity index 66% rename from products/idn/api/getting-started.md rename to docs/api/getting-started.md index bbe215b77..49e79258c 100644 --- a/products/idn/api/getting-started.md +++ b/docs/api/getting-started.md @@ -6,14 +6,14 @@ sidebar_label: Getting Started sidebar_position: 1 sidebar_class_name: gettingStarted keywords: ['getting started'] -description: This is this place to get started with IdentityNow APIs. +description: Start using the ISC APIs. slug: /api/getting-started tags: ['Getting Started'] --- ## Overview -This guide is intended to help you quickly make your first API call to SailPoint IdentityNow and assumes an intermediate level of understanding of APIs. For beginners to APIs, we recommend you watch this presentation that covers the fundamentals of APIs with visual demonstrations of how to make an API call in SailPoint. +This guide is intended to help you quickly make your first API call to SailPoint Identity Security Cloud and assumes an intermediate level of understanding of APIs. For beginners to APIs, we recommend you watch this presentation that covers the fundamentals of APIs with visual demonstrations of how to make an API call in SailPoint.
@@ -21,13 +21,13 @@ This guide is intended to help you quickly make your first API call to SailPoint ## Find Your Tenant Name -To form the proper URL for an API request, you must know your tenant name. To find your tenant name, log into IdentityNow, navigate to Admin, select the Dashboard dropdown, and select Overview. The org name is displayed within the Org Details section of the dashboard. If you do not have admin access, you can still find your tenant name and the API base URL you will use for API calls. To do so, view your session details when you are logged into your IdentityNow instance. Change your URL to the following: `https://{your-IdentityNow-hostname}.com/ui/session`, where `{your-IdentityNow-hostname}` is your company's domain name for accessing IdentityNow. The session detail you want is the `baseUrl`, which has the form of `https://{tenant}.api.identitynow.com`. +To form the proper URL for an API request, you must know your tenant name. To find your tenant name, log into Identity Security Cloud, navigate to Admin, select the Dashboard dropdown, and select Overview. The org name is displayed within the Org Details section of the dashboard. If you do not have admin access, you can still find your tenant name and the API base URL you will use for API calls. To do so, view your session details when you are logged into your Identity Security Cloud instance. Change your URL to the following: `https://{your-Identity Security Cloud-hostname}.com/ui/session`, where `{your-Identity Security Cloud-hostname}` is your company's domain name for accessing Identity Security Cloud. The session detail you want is the `baseUrl`, which has the form of `https://{tenant}.api.identitynow.com`. ## Make Your First API Call -To get started, create a [personal access token](./authentication.md#personal-access-tokens), which can then be used to generate access tokens to authenticate your API calls. To generate a personal access token from IdentityNow, after logging into your IdentityNow instance, do the following: +To get started, create a [personal access token](./authentication.md#personal-access-tokens), which can then be used to generate access tokens to authenticate your API calls. To generate a personal access token from Identity Security Cloud, after logging into your Identity Security Cloud instance, do the following: -1. Select **Preferences** from the drop-down menu under your username. Then select **Personal Access Tokens** on the left. You can also go straight to the page using this URL, replacing `{tenant}` with your IdentityNow tenant: `https://{tenant}.identitynow.com/ui/d/user-preferences/personal-access-tokens`. +1. Select **Preferences** from the drop-down menu under your username. Then select **Personal Access Tokens** on the left. You can also go straight to the page using this URL, replacing `{tenant}` with your Identity Security Cloud tenant: `https://{tenant}.identitynow.com/ui/d/user-preferences/personal-access-tokens`. 2. Select **New Token** and enter a meaningful description to differentiate the token from others. @@ -47,13 +47,13 @@ The **New Token** button will be disabled when you reach the limit of 10 persona 4. Copy both values somewhere that will be secure and accessible to you when you need to use the the token. -5. To create an `access_token` that can be used to authenticate API requests, use the following cURL command, replacing `{tenant}` with your IdentityNow tenant. The response body will contain an `access_token`, which will look like a long string of random characters. +5. To create an `access_token` that can be used to authenticate API requests, use the following cURL command, replacing `{tenant}` with your Identity Security Cloud tenant. The response body will contain an `access_token`, which will look like a long string of random characters. ```bash curl --location --request POST 'https://{tenant}.api.identitynow.com/oauth/token?grant_type=client_credentials&client_id={client_id}&client_secret={secret}' ``` -6. To test your `access_token`, execute the following cURL command, replacing `{tenant}` with your IdentityNow tenant and `access_token` with the token you generated in the previous step. If this is successful, you should get a JSON representation of an identity in your tenant. +6. To test your `access_token`, execute the following cURL command, replacing `{tenant}` with your Identity Security Cloud tenant and `access_token` with the token you generated in the previous step. If this is successful, you should get a JSON representation of an identity in your tenant. ```bash curl --request GET --url 'https://{tenant}.api.identitynow.com/v3/public-identities?limit=1' --header 'authorization: Bearer {access_token}' diff --git a/docs/api/identity-security-cloud.md b/docs/api/identity-security-cloud.md new file mode 100644 index 000000000..b74855807 --- /dev/null +++ b/docs/api/identity-security-cloud.md @@ -0,0 +1,29 @@ +--- +id: identity-security-cloud +title: Identity Security Cloud API Specifications +pagination_label: Identity Security Cloud API Specifications +sidebar_label: Identity Security Cloud API Specifications +sidebar_position: 1 +sidebar_class_name: iscSpecifications +keywords: ['api', 'specifications'] +description: ISC API specifications. +slug: /api +tags: ['API Specifications'] +--- + +## Overview + +The Identity Security Cloud (ISC) APIs provide developers with a way to interact with the ISC platform and extend it. Developers can leverage these APIs to customize their platform experiences and build new solutions and integrations that meet their needs. + +```mdx-code-block +import DocCardList from '@theme/DocCardList'; +import {useCurrentSidebarCategory} from '@docusaurus/theme-common'; + + +``` + +## Discuss + +The most valuable resource for ISC developers is the SailPoint Developer Community itself, where ISC users and experts all over the world come together to ask questions and provide solutions. + +To learn more about the ISC APIs and discuss them with SailPoint Developer Community members, go to the [SailPoint Developer Community Forum](https://developer.sailpoint.com/discuss/tags/c/isc/6/apis). \ No newline at end of file diff --git a/products/idn/api/img/authentication/oauth-client-credentials-form-data.png b/docs/api/img/authentication/oauth-client-credentials-form-data.png similarity index 100% rename from products/idn/api/img/authentication/oauth-client-credentials-form-data.png rename to docs/api/img/authentication/oauth-client-credentials-form-data.png diff --git a/products/idn/api/img/authorization/authorization-dropdown.png b/docs/api/img/authorization/authorization-dropdown.png similarity index 100% rename from products/idn/api/img/authorization/authorization-dropdown.png rename to docs/api/img/authorization/authorization-dropdown.png diff --git a/products/idn/api/img/button.svg b/docs/api/img/button.svg similarity index 100% rename from products/idn/api/img/button.svg rename to docs/api/img/button.svg diff --git a/products/idn/api/img/diff-changes.png b/docs/api/img/diff-changes.png similarity index 100% rename from products/idn/api/img/diff-changes.png rename to docs/api/img/diff-changes.png diff --git a/products/idn/api/img/http-client-identity-now.png b/docs/api/img/http-client-identity-now.png similarity index 100% rename from products/idn/api/img/http-client-identity-now.png rename to docs/api/img/http-client-identity-now.png diff --git a/products/idn/api/img/pull-changes.png b/docs/api/img/pull-changes.png similarity index 100% rename from products/idn/api/img/pull-changes.png rename to docs/api/img/pull-changes.png diff --git a/products/idn/api/img/user-web-app-identity-now.png b/docs/api/img/user-web-app-identity-now.png similarity index 100% rename from products/idn/api/img/user-web-app-identity-now.png rename to docs/api/img/user-web-app-identity-now.png diff --git a/products/nerm/api/authentication.md b/docs/api/nerm/authentication.md similarity index 84% rename from products/nerm/api/authentication.md rename to docs/api/nerm/authentication.md index f263e5f2e..5c6fa232e 100644 --- a/products/nerm/api/authentication.md +++ b/docs/api/nerm/authentication.md @@ -6,8 +6,8 @@ sidebar_label: Authentication sidebar_position: 2 sidebar_class_name: authentication keywords: ['authentication'] -description: A guide on how to use API credentials to authenticate to NERM APIs. -slug: /api/authentication +description: Authenticate to the NERM APIs. +slug: /api/nerm/authentication tags: ['Authentication'] --- diff --git a/products/nerm/api/getting-started.md b/docs/api/nerm/getting-started.md similarity index 93% rename from products/nerm/api/getting-started.md rename to docs/api/nerm/getting-started.md index 673a17ddd..9d0445681 100644 --- a/products/nerm/api/getting-started.md +++ b/docs/api/nerm/getting-started.md @@ -6,8 +6,8 @@ sidebar_label: Getting Started sidebar_position: 1 sidebar_class_name: gettingStarted keywords: ['getting started'] -description: This is this place to get started with NERM APIs. -slug: /api/getting-started +description: Start using the NERM APIs. +slug: /api/nerm/getting-started tags: ['Getting Started'] --- diff --git a/products/nerm/api/pagination-metadata-filtering.md b/docs/api/nerm/pagination-metadata-filtering.md similarity index 98% rename from products/nerm/api/pagination-metadata-filtering.md rename to docs/api/nerm/pagination-metadata-filtering.md index afd34afc7..0c302394b 100644 --- a/products/nerm/api/pagination-metadata-filtering.md +++ b/docs/api/nerm/pagination-metadata-filtering.md @@ -6,8 +6,8 @@ sidebar_label: Pagination, Metadata and Filtering sidebar_position: 3 sidebar_class_name: paginationMetadataFiltering keywords: ['pagination metadata filtering'] -description: Many endpoints in the NERM API support a generic syntax for paginating and filtering, and sorting the results. -slug: /api/pagination-metadata-filtering +description: NERM API pagination, metadata, and filtering. +slug: /api/nerm/pagination-metadata-filtering tags: ['Pagination Metadata Filtering'] --- diff --git a/docs/api/non-employee.md b/docs/api/non-employee.md new file mode 100644 index 000000000..307bda5bd --- /dev/null +++ b/docs/api/non-employee.md @@ -0,0 +1,31 @@ +--- +id: non-employee +title: NERM API Specifications +pagination_label: NERM API Specifications +sidebar_label: NERM API Specifications +sidebar_position: 1 +sidebar_class_name: nermApiSpecifications +keywords: ['api', 'specifications'] +description: NERM API specifications. +slug: /api/nerm +tags: ['API Specifications'] +--- + +## Overview + +[Non-Employee Risk Management (NERM)](https://documentation.sailpoint.com/ne-admin/help/) is an add-on to Identity Security Cloud (ISC) that helps organizations track non-employees such as contractors, partners, and vendors, and their lifecycles within the organization. + +The Non-Employee Risk Management (NERM) APIs provide developers with a way to interact with the NERM add-on and extend it. Developers can leverage these APIs to customize their platform experiences and build new solutions and integrations that meet their needs. + +```mdx-code-block +import DocCardList from '@theme/DocCardList'; +import {useCurrentSidebarCategory} from '@docusaurus/theme-common'; + + +``` + +## Discuss + +The most valuable resource for ISC developers is the SailPoint Developer Community itself, where ISC users and experts all over the world come together to ask questions and provide solutions. + +To learn more about the NERM APIs and discuss them with SailPoint Developer Community members, go to the [SailPoint Developer Community Forum](https://developer.sailpoint.com/discuss/tag/nerm). \ No newline at end of file diff --git a/products/idn/api/patch-requests.md b/docs/api/patch-requests.md similarity index 86% rename from products/idn/api/patch-requests.md rename to docs/api/patch-requests.md index db5f3b1f9..ecef7b668 100644 --- a/products/idn/api/patch-requests.md +++ b/docs/api/patch-requests.md @@ -6,17 +6,17 @@ sidebar_label: Patch Requests sidebar_position: 8 sidebar_class_name: patchRequests keywords: ['patch'] -description: Read this guide to learn how to send PATCH requests to SailPoint's IdentityNow APIs. +description: Send PATCH ISC API requests. tags: ['patch', 'guide'] --- ## PATCH requests -You can use the IdentityNow APIs to update existing resources. Many of the APIs offer multiple ways to do so: +You can use the Identity Security Cloud APIs to update existing resources. Many of the APIs offer multiple ways to do so: -- You can send a **PUT** request to replace the existing resource with a new one. For example, if you wanted to update one of John Doe's source accounts, you could use the [Put Account](https://developer.sailpoint.com/idn/api/v3/put-account) endpoint to replace John Doe's existing source account with a new one. This is a viable way to update a resource, but it requires you to update the entire resource each time. +- You can send a **PUT** request to replace the existing resource with a new one. For example, if you wanted to update one of John Doe's source accounts, you could use the [Put Account](https://developer.sailpoint.com/docs/api/v3/put-account) endpoint to replace John Doe's existing source account with a new one. This is a viable way to update a resource, but it requires you to update the entire resource each time. -- You can send a **PATCH** request to make a specific change to the resource. For example, if you wanted to update John Doe's account's associated "city" attribute, you could use the [Patch Account](https://developer.sailpoint.com/idn/api/v3/update-account) endpoint to replace his existing "city" with a new one, all without affecting any of the other source account details. This can be very helpful when you want to make specific updates to resources, but it requires some knowledge of the types of changes, or "operations", that are possible, the specific paths of the fields you want to update, and some understanding of the basic data types. +- You can send a **PATCH** request to make a specific change to the resource. For example, if you wanted to update John Doe's account's associated "city" attribute, you could use the [Patch Account](https://developer.sailpoint.com/docs/api/v3/update-account) endpoint to replace his existing "city" with a new one, all without affecting any of the other source account details. This can be very helpful when you want to make specific updates to resources, but it requires some knowledge of the types of changes, or "operations", that are possible, the specific paths of the fields you want to update, and some understanding of the basic data types. This guide will focus on the partial update method, PATCH requests. Read this guide to learn how to start sending PATCH requests. @@ -24,17 +24,17 @@ This guide will focus on the partial update method, PATCH requests. Read this gu To use PATCH to update a resource, you first need to know the resource ID. -Not all resource IDs are available in the IdentityNow UI, so you may need to use the API to find the ID for the resource you want to update. +Not all resource IDs are available in the Identity Security Cloud UI, so you may need to use the API to find the ID for the resource you want to update. -For example, account IDs aren't avilable in the IdentityNow UI. If you want to use the [Patch Account](https://developer.sailpoint.com/idn/api/v3/update-account) endpoint to make a change to a specific account, you first need to find out the account's ID. +For example, account IDs aren't avilable in the Identity Security Cloud UI. If you want to use the [Patch Account](https://developer.sailpoint.com/docs/api/v3/update-account) endpoint to make a change to a specific account, you first need to find out the account's ID. -You can use the [List Accounts](https://developer.sailpoint.com/idn/api/v3/list-accounts) endpoint to view all the accounts in your tenant, along with their details, such as their identities. You can find your account and its ID in this list. +You can use the [List Accounts](https://developer.sailpoint.com/docs/api/v3/list-accounts) endpoint to view all the accounts in your tenant, along with their details, such as their identities. You can find your account and its ID in this list. ## Get the resource details Once you know the resource ID, you can use a GET request to get that resource's details. To successfully use a PATCH request to make changes to a resource, you need to know which paths you can update, what values they have, and the structure of those paths. -For example, once you know the ID for the source you want to update with a PATCH request, you can use the [Get Source by ID](https://developer.sailpoint.com/idn/api/v3/get-source) endpoint to view only that source and its details. +For example, once you know the ID for the source you want to update with a PATCH request, you can use the [Get Source by ID](https://developer.sailpoint.com/docs/api/v3/get-source) endpoint to view only that source and its details. In this example, the API returns a source, "ubuntu", along with all its details. This JSON response shows the resource's structure and its different paths: @@ -181,7 +181,7 @@ PATCH https://{tenant}.api.identitynow.com/v3/sources/:id This example request uses a "replace" operation to replace the source's existing description with a new value, "new description". This example shows the parts involved in sending a PATCH request. You must specify an operation to apply to the target resource, a path to apply the operation to, and the change you want to make, often in the form of a value or a "from" location for "copy" and "move" operations. -You can find this example in the [Patch Source](https://developer.sailpoint.com/idn/api/v3/update-source) specification. The API specifications have examples on the right side of the page that you can copy and use to get started. You can tab between the different examples to see a variety of pre-built requests you can use. +You can find this example in the [Patch Source](https://developer.sailpoint.com/docs/api/v3/update-source) specification. The API specifications have examples on the right side of the page that you can copy and use to get started. You can tab between the different examples to see a variety of pre-built requests you can use. A PATCH request can be more complex as well - the values can be simple or vast and detailed. You can use a PATCH request to apply multiple operations, with a path for each, or you can apply the same type of operation to multiple paths. The PATCH request will always have the same essential structure though. @@ -239,7 +239,7 @@ These are the available PATCH operations: The "add" operation adds a value to the target location. For more information about the "add" operation and how it behaves in different scenarios, refer to the [JSON PATCH documentation](https://datatracker.ietf.org/doc/html/rfc6902). -This example uses the [Patch Source Schema](https://developer.sailpoint.com/idn/api/v3/update-source-schema) endpoint to add a new "office" attribute to the end of a source schema's array of attributes: +This example uses the [Patch Source Schema](https://developer.sailpoint.com/docs/api/v3/update-source-schema) endpoint to add a new "office" attribute to the end of a source schema's array of attributes: ```json [ @@ -268,7 +268,7 @@ You can use "0" to add a value to the beginning of the array. You can use "1" to The "remove" operation removes a value from the target location. The target location must exist for the operation to be successful. -This example uses the [Patch Source](https://developer.sailpoint.com/idn/api/v3/update-source) endpoint to remove an existing filter string from a source's connector: +This example uses the [Patch Source](https://developer.sailpoint.com/docs/api/v3/update-source) endpoint to remove an existing filter string from a source's connector: ```json [ @@ -285,7 +285,7 @@ This example uses the [Patch Source](https://developer.sailpoint.com/idn/api/v3/ If there is an array of values, you must specify the position within the array to remove that value. -This example uses the [Patch Source](https://developer.sailpoint.com/idn/api/v3/update-source) endpoint to remove the first feature from a source's list of features. +This example uses the [Patch Source](https://developer.sailpoint.com/docs/api/v3/update-source) endpoint to remove the first feature from a source's list of features. The source has three features, "ENABLE", "PROVISIONING", AND "UNLOCK". @@ -304,7 +304,7 @@ This request will remove the the first value from the list, "ENABLE". The "replace" operation replaces the value at the target location with a new value. The operation object must contain a "value" member whose content specifies the replacement value, and the target location must exist for the operation to be successful. This operation is the equivalent of a "remove" followed by an "add". -This example uses the [Patch Source](https://developer.sailpoint.com/idn/api/v3/update-source) endpoint to replace a source's existing features with new ones: +This example uses the [Patch Source](https://developer.sailpoint.com/docs/api/v3/update-source) endpoint to replace a source's existing features with new ones: ```json [ @@ -322,7 +322,7 @@ This example uses the [Patch Source](https://developer.sailpoint.com/idn/api/v3/ ] ``` -You can also replace a value within an array. This example uses the [Patch Source](https://developer.sailpoint.com/idn/api/v3/update-source) endpoint to replace the first value in the array with the specified value: +You can also replace a value within an array. This example uses the [Patch Source](https://developer.sailpoint.com/docs/api/v3/update-source) endpoint to replace the first value in the array with the specified value: ```json [ @@ -340,7 +340,7 @@ This request removes the first feature ("PASSWORD") in the list and adds the "CU The "move" operation removes the operation from a specified location and adds it to the target location. This operation object must contain a "from" member whose content specifies the location to remove the value from, and the "from" location must exist for the operation to be successful. -This example uses the [Patch Source Schema](https://developer.sailpoint.com/idn/api/v3/update-source-schema) endpoint to move an attribute from the beginning to the end of the schema's array of attributes: +This example uses the [Patch Source Schema](https://developer.sailpoint.com/docs/api/v3/update-source-schema) endpoint to move an attribute from the beginning to the end of the schema's array of attributes: ```json [ @@ -356,7 +356,7 @@ This example uses the [Patch Source Schema](https://developer.sailpoint.com/idn/ The "copy" operation copies the value from a specified location to the target location. The operation object must contain a "from" member whose content specifies the location to copy the value from, and the "from" location must exist for the operation to be successful. -This example uses the [Patch Source Schema](https://developer.sailpoint.com/idn/api/v3/update-source-schema) endpoint to copies an attribute from the beginning and duplicates it at the end of the schema's array of attributes: +This example uses the [Patch Source Schema](https://developer.sailpoint.com/docs/api/v3/update-source-schema) endpoint to copies an attribute from the beginning and duplicates it at the end of the schema's array of attributes: ```json [ @@ -374,7 +374,7 @@ The "test" operation is unique in that it does not apply changes to the resource The "test" operation allows you to check that a resource has the values you expect it to have, and then you can make changes to those values from there with another PATCH request. -This example uses the [Patch Source](https://developer.sailpoint.com/idn/api/v3/update-source) endpoint to test a source's existing features to make sure they match the specified values.: +This example uses the [Patch Source](https://developer.sailpoint.com/docs/api/v3/update-source) endpoint to test a source's existing features to make sure they match the specified values.: ```json [ @@ -455,7 +455,7 @@ PATCH https://{tenant}.api.identitynow.com/v3/sources/:id ] ``` -However, you cannot make changes to all paths. Use the API specifications for the PATCH endpoint you want to use to find out which paths you can make changes to. The API specifications will list the paths, or fields, that are immutable, if there are any. For example, the [Patch Source](https://developer.sailpoint.com/idn/api/v3/update-source) specification lists paths like `id` and `type` as being immutable. Trying to use modify these paths results in a 400 error. +However, you cannot make changes to all paths. Use the API specifications for the PATCH endpoint you want to use to find out which paths you can make changes to. The API specifications will list the paths, or fields, that are immutable, if there are any. For example, the [Patch Source](https://developer.sailpoint.com/docs/api/v3/update-source) specification lists paths like `id` and `type` as being immutable. Trying to use modify these paths results in a 400 error. The paths are often nested within other paths, like within the "connectorAttributes" path from the earlier example source's details: @@ -616,7 +616,7 @@ PATCH https://{tenant}.api.identitynow.com//v3/sources/:sourceId/schemas/:schema ] ``` -This request uses the [PATCH Source Schema](https://developer.sailpoint.com/idn/api/v3/update-source-schema) endpoint to add a new attribute, along with its details, to the end of the array of a source's schema's attributes. +This request uses the [PATCH Source Schema](https://developer.sailpoint.com/docs/api/v3/update-source-schema) endpoint to add a new attribute, along with its details, to the end of the array of a source's schema's attributes. This example uses the "-" after the path to indicate that the value will be added to the end of the array. When you are adding a new value to an array of values, you can specify the position within the array where you want to add the new value. In this example, using the "-" expression at the end of the path specifies that the new attribute will be added to the end of the array of attributes. @@ -626,7 +626,7 @@ You can use "0" to add a value to the beginning of the array. You can use "1" to The "move" and "copy" operations allow you to remove or copy information from one path and add it to another path without your needing to specify the value, which could be an extensive array of information. To use the "move" and "copy" operations, you must specify a "from", a JSON Pointer representing the location you are moving or copying the value from. -This example request uses the [PATCH Source schema](https://developer.sailpoint.com/idn/api/v3/update-source-schema) endpoint to move an attribute, along with its details, from the beginning to the end of a source schema's array of attributes: +This example request uses the [PATCH Source schema](https://developer.sailpoint.com/docs/api/v3/update-source-schema) endpoint to move an attribute, along with its details, from the beginning to the end of a source schema's array of attributes: ```text PATCH https://{tenant}.api.identitynow.com//v3/sources/:sourceId/schemas/:schemaId @@ -660,6 +660,6 @@ When the request is successful, the API will return the updated resource. ## Get started -Now you can use PATCH requests partially update resources. For more information about PATCH requests, refer to this [documentation](https://datatracker.ietf.org/doc/html/rfc6902). For more information about the IdentityNow PATCH endpoints and which paths can be changed for each one, refer to their API specifications. +Now you can use PATCH requests partially update resources. For more information about PATCH requests, refer to this [documentation](https://datatracker.ietf.org/doc/html/rfc6902). For more information about the Identity Security Cloud PATCH endpoints and which paths can be changed for each one, refer to their API specifications. Use this guide to get started, and if you have questions, don't hesitate to reach out on the SailPoint Developer Community forum at https://developer.sailpoint.com/discuss! \ No newline at end of file diff --git a/products/idn/api/postman-collections.md b/docs/api/postman-collections.md similarity index 89% rename from products/idn/api/postman-collections.md rename to docs/api/postman-collections.md index 673c76ade..1e22d2efb 100644 --- a/products/idn/api/postman-collections.md +++ b/docs/api/postman-collections.md @@ -6,18 +6,18 @@ sidebar_label: Postman Collections sidebar_position: 7 sidebar_class_name: postmanCollections keywords: ['postman'] -description: How to run the APIs in Postman. +description: Run ISC APIs in Postman. tags: ['postman'] --- import GitHubPublicFileComponent from '@site/src/components/GitHubLink'; -[Postman](https://www.postman.com/) is a platform you can use to design, build, test, and iterate your APIs. Postman users and teams can create public workspaces they can use to make it easy to access their API collections and environments and get started. SailPoint maintains a [public workspace for the IdentityNow API collections](https://www.postman.com/sailpoint/workspace/identitynow). You can use this workspace to access all the IDN API collections and stay up to date. +[Postman](https://www.postman.com/) is a platform you can use to design, build, test, and iterate your APIs. Postman users and teams can create public workspaces they can use to make it easy to access their API collections and environments and get started. SailPoint maintains a [public workspace for the Identity Security Cloud API collections](https://www.postman.com/sailpoint/workspace/identitynow). You can use this workspace to access all the ISC API collections and stay up to date. ## Run in Postman -Each IDN API version is broken out into a separate collection within the workspace. The following table lists the available IDN API collections. To import a collection into your workspace, select the 'Run in Postman' button for your desired version. Doing so forks the collection into your workspace. +Each ISC API version is broken out into a separate collection within the workspace. The following table lists the available ISC API collections. To import a collection into your workspace, select the 'Run in Postman' button for your desired version. Doing so forks the collection into your workspace. @@ -34,7 +34,7 @@ When you fork the collection, when you check the 'Watch original collection' che ## Update your collections -SailPoint is often making improvements to the IDN API collections. To keep your workspace in sync with updates to one of SailPoint's public collections, you can right click on the forked collection and select "pull changes". sometimes this process will fail because of the size of our collection and limitations of the Postman tool. In that case, in order to update, you will need to visit the [sailpoint workspace](https://www.postman.com/sailpoint/workspace/identitynow) and create a fork of the most recently published version or click the links above to fork the most recent version. +SailPoint is often making improvements to the ISC API collections. To keep your workspace in sync with updates to one of SailPoint's public collections, you can right click on the forked collection and select "pull changes". sometimes this process will fail because of the size of our collection and limitations of the Postman tool. In that case, in order to update, you will need to visit the [sailpoint workspace](https://www.postman.com/sailpoint/workspace/identitynow) and create a fork of the most recently published version or click the links above to fork the most recent version. ## Configure your environment @@ -47,7 +47,7 @@ To send API requests in Postman, you must authenticate to the APIs. To authentic | Environment Variable | Required | Description | | ----------- | ----------- | ----------- | -| tenant | Yes | Your IDN tenant, typically your company's name | +| tenant | Yes | Your ISC tenant, typically your company's name | | clientId | Yes | The client ID for the API client or personal access token | | clientSecret | Yes | The client secret for the API client or personal access token | | domain | No | This optional field is only necessary for those who have a domain in their API URL that isn't "identitynow". | diff --git a/products/idn/api/rate-limit.md b/docs/api/rate-limit.md similarity index 80% rename from products/idn/api/rate-limit.md rename to docs/api/rate-limit.md index dbcabdff8..3070c8a73 100644 --- a/products/idn/api/rate-limit.md +++ b/docs/api/rate-limit.md @@ -6,7 +6,7 @@ sidebar_label: Rate Limiting sidebar_position: 6 sidebar_class_name: rateLimit keywords: ['rate limit'] -description: There is a rate limit of 100 requests per access_token per 10 seconds for V3 API calls through the API gateway. +description: ISC API rate limits. tags: ['Rate Limit'] --- diff --git a/products/idn/api/standard-collection-parameters.md b/docs/api/standard-collection-parameters.md similarity index 94% rename from products/idn/api/standard-collection-parameters.md rename to docs/api/standard-collection-parameters.md index 66e5cc6c7..6c809e2f7 100644 --- a/products/idn/api/standard-collection-parameters.md +++ b/docs/api/standard-collection-parameters.md @@ -6,11 +6,11 @@ sidebar_label: Standard Collection Parameters sidebar_position: 5 sidebar_class_name: standardCollectionParameters keywords: ['standard collection parameters'] -description: Many endpoints in the IdentityNow API support a generic syntax for paginating, filtering and sorting the results. +description: ISC API pagination, filtering, and sorting. tags: ['Standard Collection Parameters'] --- -Many endpoints in the IdentityNow API support a generic syntax for paginating, filtering and sorting the results. A collection endpoint has the following characteristics: +Many endpoints in the Identity Security Cloud API support a generic syntax for paginating, filtering and sorting the results. A collection endpoint has the following characteristics: - The HTTP verb is always GET. - The last component in the URL is a plural noun (ex. `/v3/public-identities`). @@ -22,7 +22,7 @@ Use the following optional query parameters to achieve pagination: | Name | Description | Default | Constraints | | --- | --- | --- | --- | -| `limit` | Integer specifying the maximum number of records to return in a single API call. If it is not specified, a default limit is used. | `250` for list endpoints, `10000` for search endpoint | Maxiumum of 250 records per page for list endpoints, 10000 records per page for the [Search endpoint](https://developer.sailpoint.com/idn/api/v3/search) | +| `limit` | Integer specifying the maximum number of records to return in a single API call. If it is not specified, a default limit is used. | `250` for list endpoints, `10000` for search endpoint | Maxiumum of 250 records per page for list endpoints, 10000 records per page for the [Search endpoint](https://developer.sailpoint.com/docs/api/v3/search) | | `offset` | Integer specifying the offset of the first result from the beginning of the collection. The **offset** value is record-based, not page-based, and the index starts at 0. For example, **offset=0** and **limit=20** returns records 0-19, but **offset=1** and **limit=20** returns records 1-20. | `0` | Between 0 and the last record index. | | `count` | Boolean indicating whether a total count is returned, factoring in any filter parameters, in the **X-Total-Count** response header. The value is the total size of the collection that would be returned if **limit** and **offset** were ignored. For example, if the total number of records is 1000, then count=true would return 1000 in the **X-Total-Count** header. Because requesting a total count can have performance impact, do not send **count=true** if that value is not being used. | `false` | Must be `true` or `false` | @@ -34,7 +34,7 @@ Examples: ## Paginating Search Queries -The [search API](https://developer.sailpoint.com/idn/api/v3/search) in IdentityNow leverages [Elasticsearch](https://www.elastic.co/guide/en/elasticsearch/reference/current/elasticsearch-intro.html) functionality, which returns a maximum of 10,000 records by default. However, you can page more than 10,000 records by using the "searchAfter" property. +The [search API](https://developer.sailpoint.com/docs/api/v3/search) in Identity Security Cloud leverages [Elasticsearch](https://www.elastic.co/guide/en/elasticsearch/reference/current/elasticsearch-intro.html) functionality, which returns a maximum of 10,000 records by default. However, you can page more than 10,000 records by using the "searchAfter" property. The `searchAfter` capability provides the ability to page on sorted field values, instead of offset paging. For example, if you sort by ID and page 100 records at a time, you can take the 1st page of 100 records, pass the last ID from that record set into your next search, and the next search will return the next 100 records after that ID. You continue that pattern of using the last value passed into `searchAfter` until the end of the result set. This allows you to page past the 10,000 record limit until you reach the final record. diff --git a/docs/connectivity.md b/docs/connectivity.md new file mode 100644 index 000000000..e9f97beb6 --- /dev/null +++ b/docs/connectivity.md @@ -0,0 +1,29 @@ +--- +id: connectivity +title: Connectivity +pagination_label: Connectivity +sidebar_label: Connectivity +sidebar_position: 1 +sidebar_class_name: connectivity +keywords: ['connectivity'] +description: Build and expand ISC connectivity. +slug: /connectivity +tags: ['connectivity'] +--- + +## Overview + +Connectivity refers to Identity Security Cloud's (ISC) ability to connect to many different [sources](https://documentation.sailpoint.com/saas/help/sources/index.html) of many different types. Organizations can then manage access to the different sources and ensure that the access is secure. + +```mdx-code-block +import DocCardList from '@theme/DocCardList'; +import {useCurrentSidebarCategory} from '@docusaurus/theme-common'; + + +``` + +## Discuss + +The most valuable resource for ISC developers is the SailPoint Developer Community itself, where ISC users and experts all over the world come together to ask questions and provide solutions. + +To learn more about ISC connectivity and discuss it with SailPoint Developer Community members, go to the [SailPoint Developer Community Forum](https://developer.sailpoint.com/discuss/c/isc/6). diff --git a/products/idn/docs/identity-now/saas-connectivity/assets/SaaS_Connectivity.postman_collection b/docs/connectivity/saas-connectivity/assets/SaaS_Connectivity.postman_collection similarity index 100% rename from products/idn/docs/identity-now/saas-connectivity/assets/SaaS_Connectivity.postman_collection rename to docs/connectivity/saas-connectivity/assets/SaaS_Connectivity.postman_collection diff --git a/products/idn/docs/identity-now/saas-connectivity/common-cli-commands.md b/docs/connectivity/saas-connectivity/common-cli-commands.md similarity index 71% rename from products/idn/docs/identity-now/saas-connectivity/common-cli-commands.md rename to docs/connectivity/saas-connectivity/common-cli-commands.md index 36b2f0820..0b8e6f2b4 100644 --- a/products/idn/docs/identity-now/saas-connectivity/common-cli-commands.md +++ b/docs/connectivity/saas-connectivity/common-cli-commands.md @@ -7,7 +7,7 @@ sidebar_position: 3 sidebar_class_name: commonCliCommands keywords: ['connectivity', 'connectors', 'commands', 'cli'] description: These are the CLI commands most commonly used when building SaaS Connectors. -slug: /docs/saas-connectivity/common-cli-commands +slug: /connectivity/saas-connectivity/common-cli-commands tags: ['Connectivity'] --- @@ -18,21 +18,21 @@ Below is a list of commands and their usages: - Create a customizer on your local system `sail conn customizers init "my-customizer-project"` - Test your connector or customizer locally: `npm run debug` - **Deployment** - - Create an empty connector in your IDN Org (used to get id so you can upload): `sail conn create "my-project"` - - Create an empty customizer in your IDN Org (used to get id so you can upload): `sail conn customizers create "my-customizer-project"` + - Create an empty connector in your ISC Org (used to get id so you can upload): `sail conn create "my-project"` + - Create an empty customizer in your ISC Org (used to get id so you can upload): `sail conn customizers create "my-customizer-project"` - Build a project: `npm run pack-zip` - - Upload your connector to your IDN Org: `sail conn upload -c [connectorID | connectorAlias] -f dist/[connector filename].zip` - - Upload your customizer to your IDN Org: `sail conn customizers upload -c [customizerID] -f dist/[customizer filename].zip` + - Upload your connector to your ISC Org: `sail conn upload -c [connectorID | connectorAlias] -f dist/[connector filename].zip` + - Upload your customizer to your ISC Org: `sail conn customizers upload -c [customizerID] -f dist/[customizer filename].zip` - **Exploring** - - List connectors in your IDN Org: `sail conn list` - - List customizers in your IDN Org: `sail conn customizers list` - - List source instances in your IDN Org: `sail conn instances list` + - List connectors in your ISC Org: `sail conn list` + - List customizers in your ISC Org: `sail conn customizers list` + - List source instances in your ISC Org: `sail conn instances list` - List your connector tags: `sail conn tags list -c [connectorID | connectorAlias]` - **Testing and Debugging** - - Test your connector on the IDN Org: `sail connectors invoke [action] -c [connectorID | connectorAlias] -p config.json` + - Test your connector on the ISC Org: `sail connectors invoke [action] -c [connectorID | connectorAlias] -p config.json` - Get a list of actions: `sail conn invoke -h` - Run read-only integration tests against your connector: `sail conn validate -p config.json -c [connectorID | connectorAlias] -r` - - Tail IDN Org connector logs: `sail conn logs tail` + - Tail ISC Org connector logs: `sail conn logs tail` - **Delete** - Delete a connector: `sail conn delete -c [connectorID | connectorAlias]` - **Linking** diff --git a/products/idn/docs/identity-now/saas-connectivity/connector-commands/account-create.md b/docs/connectivity/saas-connectivity/connector-commands/account-create.md similarity index 92% rename from products/idn/docs/identity-now/saas-connectivity/connector-commands/account-create.md rename to docs/connectivity/saas-connectivity/connector-commands/account-create.md index f606d4a36..477522c15 100644 --- a/products/idn/docs/identity-now/saas-connectivity/connector-commands/account-create.md +++ b/docs/connectivity/saas-connectivity/connector-commands/account-create.md @@ -5,7 +5,7 @@ pagination_label: Account Create sidebar_label: Account Create keywords: ['connectivity', 'connectors', 'account create'] description: Create account on the source. -slug: /docs/saas-connectivity/commands/account-create +slug: /connectivity/saas-connectivity/commands/account-create tags: ['Connectivity', 'Connector Command'] --- @@ -57,13 +57,13 @@ tags: ['Connectivity', 'Connector Command'] ## Description -The account create command triggers whenever IDN is told to provision entitlements for an identity on the target source, but no account for the identity on the target source exists yet. For example, if you create an access profile that grants a group on the target source and then add that access profile to a role, any identity matching that role’s membership criteria will be granted to the group. IDN determines which identities do not have accounts on the target source and triggers the account create command for each identity. If an identity already has an account, then it invokes the account update command. +The account create command triggers whenever ISC is told to provision entitlements for an identity on the target source, but no account for the identity on the target source exists yet. For example, if you create an access profile that grants a group on the target source and then add that access profile to a role, any identity matching that role’s membership criteria will be granted to the group. ISC determines which identities do not have accounts on the target source and triggers the account create command for each identity. If an identity already has an account, then it invokes the account update command. ## The Provisioning Plan -The account create command accepts a provisioning plan from IDN and creates the corresponding account(s) in the target source. When you configure your source in IDN, you must set up ‘Create Profile’ to tell IDN how to provision new accounts for your source. +The account create command accepts a provisioning plan from ISC and creates the corresponding account(s) in the target source. When you configure your source in ISC, you must set up ‘Create Profile’ to tell ISC how to provision new accounts for your source. -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 ISC using the create profile screen: ![Account Create](./img/account_create_idn.png) @@ -177,7 +177,7 @@ public static createWithStdAccountCreateInput(record: StdAccountCreateInput): Ai ## The return object -When the account is returned to IDN, any values you set are updated in IDN. So if an account ID is auto-generated on the source system, you must send the account ID back to IDN so IDN is aware of it for future account update activities. This is useful for the compound key type. +When the account is returned to ISC, any values you set are updated in ISC. So if an account ID is auto-generated on the source system, you must send the account ID back to ISC so ISC is aware of it for future account update activities. This is useful for the compound key type. ## Password Handling @@ -224,9 +224,9 @@ async createAccount(input: StdAccountCreateInput): Promise { } ``` -## Testing in IdentityNow +## Testing in Identity Security Cloud -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 ISC 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. ![Testing 1](./img/testing1.png) diff --git a/products/idn/docs/identity-now/saas-connectivity/connector-commands/account-delete.md b/docs/connectivity/saas-connectivity/connector-commands/account-delete.md similarity index 78% rename from products/idn/docs/identity-now/saas-connectivity/connector-commands/account-delete.md rename to docs/connectivity/saas-connectivity/connector-commands/account-delete.md index a86dbdddd..2ce42fedf 100644 --- a/products/idn/docs/identity-now/saas-connectivity/connector-commands/account-delete.md +++ b/docs/connectivity/saas-connectivity/connector-commands/account-delete.md @@ -5,7 +5,7 @@ pagination_label: Account Delete sidebar_label: Account Delete keywords: ['connectivity', 'connectors', 'account delete'] description: Remove account from a source. -slug: /docs/saas-connectivity/commands/account-delete +slug: /connectivity/saas-connectivity/commands/account-delete tags: ['Connectivity', 'Connector Command'] --- @@ -36,9 +36,9 @@ tags: ['Connectivity', 'Connector Command'] ## Description -The account delete command sends one attribute from IDN, the identity to delete. This can be passed to your connector to delete the account from the source system. +The account delete command sends one attribute from ISC, the identity to delete. This can be passed to your connector to delete the account from the source system. -Enable account delete in IDN through a BeforeProvisioning rule. The connector honors whichever operation the provisioning plan sends. For more information, see the [documentation](https://community.sailpoint.com/t5/IdentityNow-Articles/IdentityNow-Rule-Guide/ta-p/76665) and an [example implementation](https://community.sailpoint.com/t5/IdentityNow-Wiki/IdentityNow-Rule-Guide-Before-Provisioning-Rule/ta-p/77415). +Enable account delete in ISC through a BeforeProvisioning rule. The connector honors whichever operation the provisioning plan sends. For more information, see the [documentation](https://community.sailpoint.com/t5/Identity Security Cloud-Articles/Identity Security Cloud-Rule-Guide/ta-p/76665) and an [example implementation](https://community.sailpoint.com/t5/Identity Security Cloud-Wiki/Identity Security Cloud-Rule-Guide-Before-Provisioning-Rule/ta-p/77415). The following snippet shows an example of account delete command implementation: diff --git a/products/idn/docs/identity-now/saas-connectivity/connector-commands/account-disable.md b/docs/connectivity/saas-connectivity/connector-commands/account-disable.md similarity index 95% rename from products/idn/docs/identity-now/saas-connectivity/connector-commands/account-disable.md rename to docs/connectivity/saas-connectivity/connector-commands/account-disable.md index 394a990a6..105371100 100644 --- a/products/idn/docs/identity-now/saas-connectivity/connector-commands/account-disable.md +++ b/docs/connectivity/saas-connectivity/connector-commands/account-disable.md @@ -5,7 +5,7 @@ pagination_label: Account Disable sidebar_label: Account Disable keywords: ['connectivity', 'connectors', 'account disable'] description: Disable an account on the source. -slug: /docs/saas-connectivity/commands/account-disable +slug: /connectivity/saas-connectivity/commands/account-disable tags: ['Connectivity', 'Connector Command'] --- @@ -54,7 +54,7 @@ You typically invoke the `account disable` command during the joiner, mover, lea Disabling accounts is generally preferred if the source supports account disabling so the account data remains for later reactivation or inspection. If the source does not support account disabling, or deleting accounts is preferred when an identity leaves the organization, the connector can perform the necessary steps to delete an account with the account disable function. -> 🚧 It is important to note that although SaaS Connectivity supports the account delete command, IDN never sends the account delete command, only the account disable command. The connector’s developer determines the appropriate action for account disable on the source. +> 🚧 It is important to note that although SaaS Connectivity supports the account delete command, ISC never sends the account delete command, only the account disable command. The connector’s developer determines the appropriate action for account disable on the source. Account disable is similar to implementing the account update command. If you have implemented your source call to modify any of the values on your source, then you can use the same method to implement the command. The following code implements disable: diff --git a/products/idn/docs/identity-now/saas-connectivity/connector-commands/account-discover.md b/docs/connectivity/saas-connectivity/connector-commands/account-discover.md similarity index 94% rename from products/idn/docs/identity-now/saas-connectivity/connector-commands/account-discover.md rename to docs/connectivity/saas-connectivity/connector-commands/account-discover.md index cec06a8fb..f83efc723 100644 --- a/products/idn/docs/identity-now/saas-connectivity/connector-commands/account-discover.md +++ b/docs/connectivity/saas-connectivity/connector-commands/account-discover.md @@ -5,7 +5,7 @@ pagination_label: Account Discover sidebar_label: Account Discover keywords: ['connectivity', 'connectors', 'account discover'] description: Dynamically determine account schema from the source. -slug: /docs/saas-connectivity/commands/account-discover +slug: /connectivity/saas-connectivity/commands/account-discover tags: ['Connectivity', 'Connector Command'] --- @@ -51,7 +51,7 @@ tags: ['Connectivity', 'Connector Command'] ## Description -The account discover schema command tells IDN to dynamically create the account schema for the source rather than use the account schema provided by the connector in connector-spec.json. It is often ideal to statically define the account schema because it is generally more performant and easier to develop and reason about the code. However, some sources have schemas that can be different for each customer deployment. It can also be difficult to determine which account attributes to statically expose, which requires the schema to be dynamically generated. SalesForce is an example of a source that can have thousands of account attributes, which makes it impractical to statically define a set of attributes that satisfies all connector users. Although the SalesForce connector defines a standard set of account attributes out of the box, it also allows schema discovery for users looking for more attributes. +The account discover schema command tells ISC to dynamically create the account schema for the source rather than use the account schema provided by the connector in connector-spec.json. It is often ideal to statically define the account schema because it is generally more performant and easier to develop and reason about the code. However, some sources have schemas that can be different for each customer deployment. It can also be difficult to determine which account attributes to statically expose, which requires the schema to be dynamically generated. SalesForce is an example of a source that can have thousands of account attributes, which makes it impractical to statically define a set of attributes that satisfies all connector users. Although the SalesForce connector defines a standard set of account attributes out of the box, it also allows schema discovery for users looking for more attributes. ## Implementation @@ -229,7 +229,7 @@ export const connector = async () => { } ``` -Next, implement the `discoverSchema()` function in your client code. The following function calls the necessary endpoints to get the full schema of the user account you want to represent in IDN. After you receive a response from your call, you must build your account schema object that will return to IDN. The response has a structure like the accountSchema property in the connector-spec.json file. The following is an example from [airtable.ts](https://github.com/sailpoint-oss/airtable-example-connector/blob/main/src/airtable.ts). +Next, implement the `discoverSchema()` function in your client code. The following function calls the necessary endpoints to get the full schema of the user account you want to represent in ISC. After you receive a response from your call, you must build your account schema object that will return to ISC. The response has a structure like the accountSchema property in the connector-spec.json file. The following is an example from [airtable.ts](https://github.com/sailpoint-oss/airtable-example-connector/blob/main/src/airtable.ts). ```javascript async getAccountSchema(): Promise { @@ -276,7 +276,7 @@ async getAccountSchema(): Promise { } ``` -This code produces the following payload that will be sent back to IDN. +This code produces the following payload that will be sent back to ISC. ```javascript { @@ -343,9 +343,9 @@ This code produces the following payload that will be sent back to IDN. There are many properties in this payload, so you may want to remove some, but it can be hard to determine which properties to keep in a dynamic way. If you can programmatically determine which properties to remove, you can alter the `discoverSchema()` function to remove them. -## Test in IdentityNow +## Test in Identity Security Cloud -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 ISC, ensure that you upload your latest connector code and create a new source in ISC. After you configure and test your source connection, go to the ‘Account Schema’ page. You will see an empty schema. ![Discover Schema 1](./img/discover_schema_idn1.png) @@ -353,7 +353,7 @@ To discover the schema for this source, click the ‘Options’ dropdown in the ![Discover Schema 2](./img/discover_schema_idn2.png) -IDN then asks you to assign attributes to ‘Account ID’ and 'Account Name.' +ISC then asks you to assign attributes to ‘Account ID’ and 'Account Name.' ![Discover Schema 3](./img/discover_schema_idn3.png) diff --git a/products/idn/docs/identity-now/saas-connectivity/connector-commands/account-enable.md b/docs/connectivity/saas-connectivity/connector-commands/account-enable.md similarity index 96% rename from products/idn/docs/identity-now/saas-connectivity/connector-commands/account-enable.md rename to docs/connectivity/saas-connectivity/connector-commands/account-enable.md index 48739fa53..1158ac2b0 100644 --- a/products/idn/docs/identity-now/saas-connectivity/connector-commands/account-enable.md +++ b/docs/connectivity/saas-connectivity/connector-commands/account-enable.md @@ -5,7 +5,7 @@ pagination_label: Account Enable sidebar_label: Account Enable keywords: ['connectivity', 'connectors', 'account enable'] description: Enable an account on the source. -slug: /docs/saas-connectivity/commands/account-enable +slug: /connectivity/saas-connectivity/commands/account-enable tags: ['Connectivity', 'Connector Command'] --- diff --git a/products/idn/docs/identity-now/saas-connectivity/connector-commands/account-list.md b/docs/connectivity/saas-connectivity/connector-commands/account-list.md similarity index 91% rename from products/idn/docs/identity-now/saas-connectivity/connector-commands/account-list.md rename to docs/connectivity/saas-connectivity/connector-commands/account-list.md index 2051d2c94..05c110a32 100644 --- a/products/idn/docs/identity-now/saas-connectivity/connector-commands/account-list.md +++ b/docs/connectivity/saas-connectivity/connector-commands/account-list.md @@ -4,8 +4,8 @@ title: Account List pagination_label: Account List sidebar_label: Account List keywords: ['connectivity', 'connectors', 'account list'] -description: Aggregate all accounts from the source into IdentityNow. -slug: /docs/saas-connectivity/commands/account-list +description: Aggregate all accounts from the source into Identity Security Cloud. +slug: /connectivity/saas-connectivity/commands/account-list tags: ['Connectivity', 'Connector Command'] --- @@ -47,7 +47,7 @@ tags: ['Connectivity', 'Connector Command'] ## 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 Identity Security Cloud. ISC calls this command during a manual or scheduled account aggregation. ![Account List](./img/account_list_idn.png) @@ -73,13 +73,13 @@ async getAllAccounts(): Promise { :::caution Important -IDN 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 IDN as it's retrieved from your source system. For more details and an example, refer to [Connector Timeouts](../in-depth/connector-timeouts.md). +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). ::: :::caution Important -IDN supports [delta aggregation](#delta-aggregation-state). If your source has a large number of accounts that will be syncronized with IDN, 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. ::: @@ -105,7 +105,7 @@ export const connector = async () => { ... ``` -IDN expects each user in the target source to be converted into a format IDN understands. The specific attributes the web service returns depend on what your source provides. +ISC expects each user in the target source to be converted into a format ISC understands. The specific attributes the web service returns depend on what your source provides. ```javascript public toStdAccountListOutput(): StdAccountListOutput { @@ -130,7 +130,7 @@ private buildStandardObject(): StdAccountListOutput | StdAccountCreateOutput | S } ``` -The result of the account list command is not an array of objects but several individual objects. This is the format IDN expects, so if you see something like the following result while testing, it is normal: +The result of the account list command is not an array of objects but several individual objects. This is the format ISC expects, so if you see something like the following result while testing, it is normal: ```javascript { @@ -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 IDN 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()} diff --git a/products/idn/docs/identity-now/saas-connectivity/connector-commands/account-read.md b/docs/connectivity/saas-connectivity/connector-commands/account-read.md similarity index 89% rename from products/idn/docs/identity-now/saas-connectivity/connector-commands/account-read.md rename to docs/connectivity/saas-connectivity/connector-commands/account-read.md index 4ecf6baa5..21d3e0a2e 100644 --- a/products/idn/docs/identity-now/saas-connectivity/connector-commands/account-read.md +++ b/docs/connectivity/saas-connectivity/connector-commands/account-read.md @@ -4,8 +4,8 @@ title: Account Read pagination_label: Account Read sidebar_label: Account Read keywords: ['connectivity', 'connectors', 'account read'] -description: Aggregate a single account from the source into IdentityNow. -slug: /docs/saas-connectivity/commands/account-read +description: Aggregate a single account from the source into Identity Security Cloud. +slug: /connectivity/saas-connectivity/commands/account-read tags: ['Connectivity', 'Connector Command'] --- @@ -50,7 +50,7 @@ tags: ['Connectivity', 'Connector Command'] ## 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 Identity Security Cloud. ISC can call this command during a “one-off” account refresh, which you can trigger by aggregating an individual account in ISC. ![Account Read](./img/account_read_idn.png) @@ -84,7 +84,7 @@ async getAccount(identity: SimpleKeyType | CompoundKeyType): Promise>CUS: StdAccountRead Request + ISC->>CUS: StdAccountRead Request CUS->>CON: Mutated StdAccountRead Request CON->>CUS: StdAccountRead Response - CUS->>IDN: Mutated StdAccountRead Response + CUS->>ISC: Mutated StdAccountRead Response ``` diff --git a/products/idn/docs/identity-now/saas-connectivity/connector-customizers/link.md b/docs/connectivity/saas-connectivity/connector-customizers/link.md similarity index 92% rename from products/idn/docs/identity-now/saas-connectivity/connector-customizers/link.md rename to docs/connectivity/saas-connectivity/connector-customizers/link.md index 6fa57def2..7e3175484 100644 --- a/products/idn/docs/identity-now/saas-connectivity/connector-customizers/link.md +++ b/docs/connectivity/saas-connectivity/connector-customizers/link.md @@ -7,7 +7,7 @@ sidebar_position: 6 sidebar_class_name: saasConnectivity keywords: ['connectivity', 'connectors', customizers] description: Link connectivity customizers to sources. -slug: /docs/saas-connectivity/customizers/linking +slug: /connectivity/saas-connectivity/customizers/linking tags: ['Connectivity'] --- @@ -15,7 +15,7 @@ tags: ['Connectivity'] ### Initial requirements -Before you can link a connector customizer to a source, you must have a SaaS source in IdentityNow, as well as a Customizer built and deployed. You can use the following commands to get a list of valid sources, as well as customizers: +Before you can link a connector customizer to a source, you must have a SaaS source in Identity Security Cloud, as well as a Customizer built and deployed. You can use the following commands to get a list of valid sources, as well as customizers: Use this command to find sources: diff --git a/products/idn/docs/identity-now/saas-connectivity/connector-customizers/testing.md b/docs/connectivity/saas-connectivity/connector-customizers/testing.md similarity index 97% rename from products/idn/docs/identity-now/saas-connectivity/connector-customizers/testing.md rename to docs/connectivity/saas-connectivity/connector-customizers/testing.md index 4cb4b49b1..d296a21c4 100644 --- a/products/idn/docs/identity-now/saas-connectivity/connector-customizers/testing.md +++ b/docs/connectivity/saas-connectivity/connector-customizers/testing.md @@ -7,7 +7,7 @@ sidebar_position: 6 sidebar_class_name: saasConnectivity keywords: ['connectivity', 'connectors', customizers] description: Test and debug connectors with customizers. -slug: /docs/saas-connectivity/customizers/testing +slug: /connectivity/saas-connectivity/customizers/testing tags: ['Connectivity'] --- diff --git a/products/idn/docs/identity-now/saas-connectivity/connector-customizers/upload.md b/docs/connectivity/saas-connectivity/connector-customizers/upload.md similarity index 84% rename from products/idn/docs/identity-now/saas-connectivity/connector-customizers/upload.md rename to docs/connectivity/saas-connectivity/connector-customizers/upload.md index 1e64dcd58..bc63c34e2 100644 --- a/products/idn/docs/identity-now/saas-connectivity/connector-customizers/upload.md +++ b/docs/connectivity/saas-connectivity/connector-customizers/upload.md @@ -1,17 +1,17 @@ --- id: connectivity-customizers-uploading -title: Build and Upload into Identity Now +title: Build and Upload into Identity Security Cloud pagination_label: Build and Upload sidebar_label: Build and Upload sidebar_position: 5 sidebar_class_name: saasConnectivity keywords: ['connectivity', 'connectors', customizers] description: Build and upload connectivity customizers. -slug: /docs/saas-connectivity/customizers/upload +slug: /connectivity/saas-connectivity/customizers/upload tags: ['Connectivity'] --- -# Building and uploading to Identity Now +# Building and uploading to Identity Security Cloud ### Initial requirements @@ -48,9 +48,9 @@ After the build is complete, you will see a message like this: Connector zip file created under dist folder: my-connector-customizer-0.1.0.zip ``` -### Upload to IdentityNow +### Upload to Identity Security Cloud -To upload the customizer to IdentityNow, use the upload command: +To upload the customizer to Identity Security Cloud, use the upload command: ```bash sail conn customizers upload -c 7b968fab-0f40-49f0-b13b-8bf529fc0b82 -f .\dist\my-connector-customizer-0.1.0.zip diff --git a/products/idn/docs/identity-now/saas-connectivity/connector-spec/card.md b/docs/connectivity/saas-connectivity/connector-spec/card.md similarity index 97% rename from products/idn/docs/identity-now/saas-connectivity/connector-spec/card.md rename to docs/connectivity/saas-connectivity/connector-spec/card.md index 4a0d8f5e2..c07a1bac9 100644 --- a/products/idn/docs/identity-now/saas-connectivity/connector-spec/card.md +++ b/docs/connectivity/saas-connectivity/connector-spec/card.md @@ -5,7 +5,7 @@ pagination_label: Card sidebar_label: Card keywords: ['connectivity', 'connectors','connector-spec', 'card'] description: Details on using the card item -slug: /docs/saas-connectivity/connector-spec/card +slug: /connectivity/saas-connectivity/connector-spec/card tags: ['Connectivity', 'Connector Spec'] --- diff --git a/products/idn/docs/identity-now/saas-connectivity/connector-spec/index.md b/docs/connectivity/saas-connectivity/connector-spec/index.md similarity index 79% rename from products/idn/docs/identity-now/saas-connectivity/connector-spec/index.md rename to docs/connectivity/saas-connectivity/connector-spec/index.md index 3a8738d45..f07790122 100644 --- a/products/idn/docs/identity-now/saas-connectivity/connector-spec/index.md +++ b/docs/connectivity/saas-connectivity/connector-spec/index.md @@ -6,14 +6,14 @@ sidebar_label: Connector Spec File sidebar_position: 4 sidebar_class_name: connectorSpecFile keywords: ['connectivity', 'connectors', 'spec', 'specification'] -description: The connector spec file tells IDN how the connector should interact between IDN and the custom connector. It is the glue between IDN and the connector, so understanding the different sections are key to understanding how to build a custom connectors. -slug: /docs/saas-connectivity/connector-spec +description: The connector spec file tells ISC how the connector should interact between ISC and the custom connector. It is the glue between ISC and the connector, so understanding the different sections are key to understanding how to build a custom connectors. +slug: /connectivity/saas-connectivity/connector-spec tags: ['Connectivity'] --- ## Summary -The connector spec file tells IDN how the connector should interact between IDN and the custom connector. It is the glue between IDN and the connector, so understanding the different sections are key to understanding how to build a custom connectors. +The connector spec file tells ISC how the connector should interact between ISC and the custom connector. It is the glue between ISC and the connector, so understanding the different sections are key to understanding how to build a custom connectors. ## Sample File @@ -23,7 +23,7 @@ To see a sample spec file, see this link: [connector-spec.json](https://github.c The following describes in detail the different fields in the connector spec: -- **name:** The name of the connector as it appears in IDN. Tags can be appended to this name. +- **name:** The name of the connector as it appears in ISC. Tags can be appended to this name. - **keyType:** Either “simple” or “compound” This determines which type of key your connector expects to receive and send back for each of the commands. This must always be indicated in your connector spec - the connector returns the correct type for each command that returns a key type. @@ -31,9 +31,9 @@ The following describes in detail the different fields in the connector spec: - **commands:** The list of commands the connector supports. A full list of available commands can be found [here](../connector-commands/index.md). - **[sourceConfigInitialValues](./connector-spec/initial-value):** Key value pair of source config item keys and the default value that should be associated with them. -- **sourceConfig** A list of configuration items you must provide when you create a source in IDN. The order of these items is preserved in the UI. +- **sourceConfig** A list of configuration items you must provide when you create a source in ISC. The order of these items is preserved in the UI. - **type:** This is always “menu” - it indicates a new menu for the sidebar. You can have multiple sections defined for complex connector configurations - - **label:** This label indicates the text that will show up on the sidebar in IDN + - **label:** This label indicates the text that will show up on the sidebar in ISC - **items:** The array of items in the menu - **type:** This is always "section" - it indicates a new section on the page - **sectionTitle:** The large text title that will display for the section. @@ -42,7 +42,7 @@ The following describes in detail the different fields in the connector spec: - **docLink:** The optional link that the docLinkLabel will direct to if clicked. - **key:** The name of the configuration item as it is referenced in code. - **label:** The name of the configuration item as it appears in the UI. - - **required** (Optional): Set to 'false' by default. Valid values are 'true' or 'false.' You must populate required configuration items in the IDN source configuration wizard before continuing. + - **required** (Optional): Set to 'false' by default. Valid values are 'true' or 'false.' You must populate required configuration items in the ISC source configuration wizard before continuing. - **type:** The configuration items' types. The following types are valid: - text - number @@ -57,27 +57,27 @@ The following describes in detail the different fields in the connector spec: - [list](./connector-spec/list) - [keyValue](./connector-spec/key-value) - [cardList](./connector-spec/card) -- **accountSchema:** The schema for an account in IDN populated by data from the source. - - **displayAttribute:** Identifies the attribute (defined below) used to map to `Account Name` in the IdentityNow account schema. This should be a unique value even though it is not required because the connector will use this value to correlate accounts in IDN to accounts in the source system. - - **identityAttribute:** Identifies the attribute (defined below) used to map to `Account ID` in the IdentityNow account schema. This must be a globally unique identifier, such as email address, employee ID, etc. +- **accountSchema:** The schema for an account in ISC populated by data from the source. + - **displayAttribute:** Identifies the attribute (defined below) used to map to `Account Name` in the Identity Security Cloud account schema. This should be a unique value even though it is not required because the connector will use this value to correlate accounts in ISC to accounts in the source system. + - **identityAttribute:** Identifies the attribute (defined below) used to map to `Account ID` in the Identity Security Cloud account schema. This must be a globally unique identifier, such as email address, employee ID, etc. - **groupAttribute:** Identifies the attribute used to map accounts to entitlements. For example, a web service can define `groups` that users are members of, and the `groups` grant entitlements to each user. In this case, **groupAttribute** is “groups,” and there is also an account attribute called “groups”. - **attributes:** One or more attributes that map to a user’s attribute on the target source. Each attribute defines the following: - - **name:** The attribute’s name as it appears in IDN. + - **name:** The attribute’s name as it appears in ISC. - **type:** The attribute’s type. Possible values are `string`, `boolean`, `long`, and `int`. - **description:** A helpful description of the attribute. This is useful to source owners when they are trying to understand the account schema. - - **managed:** This indicates whether the entitlements are manageable through IDN or read-only. - - **entitlement:** This boolean indicates whether the attribute is an entitlement. Entitlements give identities privileges on the source system. Use this indication to determine which fields to synchronize with accounts in IDN for tasks such as separation of duties and role assignment. The boolean indicates whether the attribute is an entitlement. + - **managed:** This indicates whether the entitlements are manageable through ISC or read-only. + - **entitlement:** This boolean indicates whether the attribute is an entitlement. Entitlements give identities privileges on the source system. Use this indication to determine which fields to synchronize with accounts in ISC for tasks such as separation of duties and role assignment. The boolean indicates whether the attribute is an entitlement. - **multi:** This indicates entitlements that are stored in an array format. This one field can store multiple entitlements for a single account. -- **entitlementSchemas:** A list of entitlement schemas in IDN populated by data from the source. +- **entitlementSchemas:** A list of entitlement schemas in ISC populated by data from the source. - **type:** The entitlement’s type. Currently, only `group` is supported. - **displayAttribute:** The entitlement attribute’s name. This can be the `name` or another human friendly identifier for a group. - **identityAttribute:** The entitlement attribute’s unique ID. This can be the `id` or another unique key for a group. - **attributes:** The entitlement’s list of attributes. This list of attributes is an example: `id`, `name`, and `description`. - - **name:** The name of the attribute as it appears in IDN. + - **name:** The name of the attribute as it appears in ISC. - **type:** The attribute’s type. Possible values are `string`, `boolean`, `long`, and `int`. - **description:** A helpful description the attribute. This is useful to source owners when they are trying to understand the account schema. -- **accountCreateTemplate:** A map of identity attributes IDN will pass to the connector to create an account in the target source. - - **key:** The unique identifier of the attribute. This is also the name that is presented in the Create Profile screen in IDN. +- **accountCreateTemplate:** A map of identity attributes ISC will pass to the connector to create an account in the target source. + - **key:** The unique identifier of the attribute. This is also the name that is presented in the Create Profile screen in ISC. - **label:** A friendly name for presentation purposes. - **type:** The attribute’s type. Possible values are `string`, `boolean`, `long`, and `int`. - **initialValue (Optional):** Use this to specify identitAttribute mapping, generator or default values. @@ -88,4 +88,4 @@ The following describes in detail the different fields in the connector spec: - **maxSize:** Use this for the Create Unique Account ID generator type. This value specifies the maximum size of the username to be generated. - **maxUniqueChecks:** Use this for the Create Unique Account ID generator type. This value specifies the maximum retries in case a unique ID is not found with the first random generated user. - **template:** Use this for the Create Unique Account ID generator type. This value specifies the template used for generation. Example: `"$(firstname).$(lastname)$(uniqueCounter)"`. - - **required (Optional):** Determines whether the account create operation requires this attribute. It defaults to `false`. If it is `true` and IdentityNow encounters an identity missing this attribute, IDN does not send the account to the connector for account creation. + - **required (Optional):** Determines whether the account create operation requires this attribute. It defaults to `false`. If it is `true` and Identity Security Cloud encounters an identity missing this attribute, ISC does not send the account to the connector for account creation. diff --git a/products/idn/docs/identity-now/saas-connectivity/connector-spec/initialValue.md b/docs/connectivity/saas-connectivity/connector-spec/initialValue.md similarity index 96% rename from products/idn/docs/identity-now/saas-connectivity/connector-spec/initialValue.md rename to docs/connectivity/saas-connectivity/connector-spec/initialValue.md index 05a67c58c..bf8d1de34 100644 --- a/products/idn/docs/identity-now/saas-connectivity/connector-spec/initialValue.md +++ b/docs/connectivity/saas-connectivity/connector-spec/initialValue.md @@ -5,7 +5,7 @@ pagination_label: Initial Value sidebar_label: Initial Value keywords: ['connectivity', 'connectors','connector-spec', 'sourceConfigInitialValues'] description: How to use the sourceConfigInitialValues field -slug: /docs/saas-connectivity/connector-spec/initial-value +slug: /connectivity/saas-connectivity/connector-spec/initial-value tags: ['Connectivity', 'Connector Spec'] --- diff --git a/products/idn/docs/identity-now/saas-connectivity/connector-spec/keyValue.md b/docs/connectivity/saas-connectivity/connector-spec/keyValue.md similarity index 93% rename from products/idn/docs/identity-now/saas-connectivity/connector-spec/keyValue.md rename to docs/connectivity/saas-connectivity/connector-spec/keyValue.md index d02a51be0..e6c9ef602 100644 --- a/products/idn/docs/identity-now/saas-connectivity/connector-spec/keyValue.md +++ b/docs/connectivity/saas-connectivity/connector-spec/keyValue.md @@ -5,7 +5,7 @@ pagination_label: Key Value sidebar_label: Key Value keywords: ['connectivity', 'connectors','connector-spec', 'keyValue'] description: Details on using the key value item -slug: /docs/saas-connectivity/connector-spec/key-value +slug: /connectivity/saas-connectivity/connector-spec/key-value tags: ['Connectivity', 'Connector Spec'] --- diff --git a/products/idn/docs/identity-now/saas-connectivity/connector-spec/list.md b/docs/connectivity/saas-connectivity/connector-spec/list.md similarity index 91% rename from products/idn/docs/identity-now/saas-connectivity/connector-spec/list.md rename to docs/connectivity/saas-connectivity/connector-spec/list.md index dfd620f38..97f4115cc 100644 --- a/products/idn/docs/identity-now/saas-connectivity/connector-spec/list.md +++ b/docs/connectivity/saas-connectivity/connector-spec/list.md @@ -5,7 +5,7 @@ pagination_label: List sidebar_label: List keywords: ['connectivity', 'connectors','connector-spec', 'list'] description: Details on using the list item -slug: /docs/saas-connectivity/connector-spec/list +slug: /connectivity/saas-connectivity/connector-spec/list tags: ['Connectivity', 'Connector Spec'] --- diff --git a/products/idn/docs/identity-now/saas-connectivity/connector-spec/radio.md b/docs/connectivity/saas-connectivity/connector-spec/radio.md similarity index 95% rename from products/idn/docs/identity-now/saas-connectivity/connector-spec/radio.md rename to docs/connectivity/saas-connectivity/connector-spec/radio.md index 0bb1f951c..b91e3d1b3 100644 --- a/products/idn/docs/identity-now/saas-connectivity/connector-spec/radio.md +++ b/docs/connectivity/saas-connectivity/connector-spec/radio.md @@ -5,7 +5,7 @@ pagination_label: Radio sidebar_label: Radio keywords: ['connectivity', 'connectors','connector-spec', 'radio'] description: Details on using the Radio item -slug: /docs/saas-connectivity/connector-spec/radio +slug: /connectivity/saas-connectivity/connector-spec/radio tags: ['Connectivity', 'Connector Spec'] --- diff --git a/products/idn/docs/identity-now/saas-connectivity/connector-spec/select.md b/docs/connectivity/saas-connectivity/connector-spec/select.md similarity index 95% rename from products/idn/docs/identity-now/saas-connectivity/connector-spec/select.md rename to docs/connectivity/saas-connectivity/connector-spec/select.md index 85adec79b..5d9047b16 100644 --- a/products/idn/docs/identity-now/saas-connectivity/connector-spec/select.md +++ b/docs/connectivity/saas-connectivity/connector-spec/select.md @@ -5,7 +5,7 @@ pagination_label: Select sidebar_label: Select keywords: ['connectivity', 'connectors','connector-spec', 'select'] description: Details on using the select item -slug: /docs/saas-connectivity/connector-spec/select +slug: /connectivity/saas-connectivity/connector-spec/select tags: ['Connectivity', 'Connector Spec'] --- diff --git a/products/idn/docs/identity-now/saas-connectivity/example-connectors.md b/docs/connectivity/saas-connectivity/example-connectors.md similarity index 93% rename from products/idn/docs/identity-now/saas-connectivity/example-connectors.md rename to docs/connectivity/saas-connectivity/example-connectors.md index 6d9fa8267..8485c3287 100644 --- a/products/idn/docs/identity-now/saas-connectivity/example-connectors.md +++ b/docs/connectivity/saas-connectivity/example-connectors.md @@ -7,7 +7,7 @@ sidebar_position: 5 sidebar_class_name: exampleConnectors keywords: ['connectivity', 'connectors', 'example'] description: Here are a few example connectors that were built for you to download and learn from. -slug: /docs/saas-connectivity/example-connectors +slug: /connectivity/saas-connectivity/example-connectors tags: ['Connectivity'] --- diff --git a/products/idn/docs/identity-now/saas-connectivity/img/button.svg b/docs/connectivity/saas-connectivity/img/button.svg similarity index 100% rename from products/idn/docs/identity-now/saas-connectivity/img/button.svg rename to docs/connectivity/saas-connectivity/img/button.svg diff --git a/products/idn/docs/identity-now/saas-connectivity/img/card.png b/docs/connectivity/saas-connectivity/img/card.png similarity index 100% rename from products/idn/docs/identity-now/saas-connectivity/img/card.png rename to docs/connectivity/saas-connectivity/img/card.png diff --git a/products/idn/docs/identity-now/saas-connectivity/img/cardMenu.png b/docs/connectivity/saas-connectivity/img/cardMenu.png similarity index 100% rename from products/idn/docs/identity-now/saas-connectivity/img/cardMenu.png rename to docs/connectivity/saas-connectivity/img/cardMenu.png diff --git a/products/idn/docs/identity-now/saas-connectivity/img/keyValue.png b/docs/connectivity/saas-connectivity/img/keyValue.png similarity index 100% rename from products/idn/docs/identity-now/saas-connectivity/img/keyValue.png rename to docs/connectivity/saas-connectivity/img/keyValue.png diff --git a/products/idn/docs/identity-now/saas-connectivity/img/list.png b/docs/connectivity/saas-connectivity/img/list.png similarity index 100% rename from products/idn/docs/identity-now/saas-connectivity/img/list.png rename to docs/connectivity/saas-connectivity/img/list.png diff --git a/products/idn/docs/identity-now/saas-connectivity/img/new_connectivity_diagram.png b/docs/connectivity/saas-connectivity/img/new_connectivity_diagram.png similarity index 100% rename from products/idn/docs/identity-now/saas-connectivity/img/new_connectivity_diagram.png rename to docs/connectivity/saas-connectivity/img/new_connectivity_diagram.png diff --git a/products/idn/docs/identity-now/saas-connectivity/img/new_connectivity_diagram_both.png b/docs/connectivity/saas-connectivity/img/new_connectivity_diagram_both.png similarity index 100% rename from products/idn/docs/identity-now/saas-connectivity/img/new_connectivity_diagram_both.png rename to docs/connectivity/saas-connectivity/img/new_connectivity_diagram_both.png diff --git a/products/idn/docs/identity-now/saas-connectivity/img/old_connectivity_diagram.png b/docs/connectivity/saas-connectivity/img/old_connectivity_diagram.png similarity index 100% rename from products/idn/docs/identity-now/saas-connectivity/img/old_connectivity_diagram.png rename to docs/connectivity/saas-connectivity/img/old_connectivity_diagram.png diff --git a/products/idn/docs/identity-now/saas-connectivity/img/radio.png b/docs/connectivity/saas-connectivity/img/radio.png similarity index 100% rename from products/idn/docs/identity-now/saas-connectivity/img/radio.png rename to docs/connectivity/saas-connectivity/img/radio.png diff --git a/products/idn/docs/identity-now/saas-connectivity/img/select.png b/docs/connectivity/saas-connectivity/img/select.png similarity index 100% rename from products/idn/docs/identity-now/saas-connectivity/img/select.png rename to docs/connectivity/saas-connectivity/img/select.png diff --git a/products/idn/docs/identity-now/saas-connectivity/in-depth/api-calls.md b/docs/connectivity/saas-connectivity/in-depth/api-calls.md similarity index 98% rename from products/idn/docs/identity-now/saas-connectivity/in-depth/api-calls.md rename to docs/connectivity/saas-connectivity/in-depth/api-calls.md index 6815faec8..e446b156a 100644 --- a/products/idn/docs/identity-now/saas-connectivity/in-depth/api-calls.md +++ b/docs/connectivity/saas-connectivity/in-depth/api-calls.md @@ -7,7 +7,7 @@ sidebar_position: 1 sidebar_class_name: apiCalls keywords: ['connectivity', 'connectors', 'api calls'] description: 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. -slug: /docs/saas-connectivity/in-depth/api-calls +slug: /connectivity/saas-connectivity/in-depth/api-calls tags: ['Connectivity'] --- diff --git a/products/idn/docs/identity-now/saas-connectivity/in-depth/cli-advanced.md b/docs/connectivity/saas-connectivity/in-depth/cli-advanced.md similarity index 92% rename from products/idn/docs/identity-now/saas-connectivity/in-depth/cli-advanced.md rename to docs/connectivity/saas-connectivity/in-depth/cli-advanced.md index 1caced7e2..b0fd37514 100644 --- a/products/idn/docs/identity-now/saas-connectivity/in-depth/cli-advanced.md +++ b/docs/connectivity/saas-connectivity/in-depth/cli-advanced.md @@ -6,12 +6,12 @@ sidebar_label: CLI - Advanced sidebar_position: 1 sidebar_class_name: cliAdvanced keywords: ['connectivity', 'connectors', 'cli'] -description: Using the CLI to properly test and debug your connector in IdentityNow -slug: /docs/saas-connectivity/in-depth/cli-advanced +description: Using the CLI to properly test and debug your connector in Identity Security Cloud +slug: /connectivity/saas-connectivity/in-depth/cli-advanced tags: ['Connectivity'] --- -You can use the CLI to invoke a number of calls in IdentityNow, including calls that aren't specifically defined by the CLI. This section includes examples that show how you can invoke those calls: +You can use the CLI to invoke a number of calls in Identity Security Cloud, including calls that aren't specifically defined by the CLI. This section includes examples that show how you can invoke those calls: ## Use provided CLI invoke calls diff --git a/products/idn/docs/identity-now/saas-connectivity/in-depth/connector-timeouts.md b/docs/connectivity/saas-connectivity/in-depth/connector-timeouts.md similarity index 58% rename from products/idn/docs/identity-now/saas-connectivity/in-depth/connector-timeouts.md rename to docs/connectivity/saas-connectivity/in-depth/connector-timeouts.md index a99d995e6..61e5c81e1 100644 --- a/products/idn/docs/identity-now/saas-connectivity/in-depth/connector-timeouts.md +++ b/docs/connectivity/saas-connectivity/in-depth/connector-timeouts.md @@ -6,14 +6,14 @@ sidebar_label: Connector Timeouts sidebar_position: 1.2 sidebar_class_name: connectorTimeouts keywords: ['connectivity', 'connectors', 'timeout'] -description: IdentityNow will throw an error if your connector does not send a response in 3 minutes. For connector commands that might take longer than 3 minutes, make sure to send data at regular intervals to prevent a timeout. -slug: /docs/saas-connectivity/in-depth/connector-timeouts +description: Identity Security Cloud will throw an error if your connector does not send a response in 3 minutes. For connector commands that might take longer than 3 minutes, make sure to send data at regular intervals to prevent a timeout. +slug: /connectivity/saas-connectivity/in-depth/connector-timeouts tags: ['Connectivity'] --- -An IdentityNow SaaS Connectivity connector will send a timeout error if it doesn't send a response within 3 minutes. If the connector is sending thousands of records, the record fetching process will likely exceed this timeout limit. If you are storing all those records in memory before sending them to IDN, you can run into memory utilization issues. To prevent these issues, you should paginate through your source data and send the data back in regular intervals. +An Identity Security Cloud SaaS Connectivity connector will send a timeout error if it doesn't send a response within 3 minutes. If the connector is sending thousands of records, the record fetching process will likely exceed this timeout limit. If you are storing all those records in memory before sending them to ISC, you can run into memory utilization issues. To prevent these issues, you should paginate through your source data and send the data back in regular intervals. -In the case of a long running API call to the source system, you can also optionally send `res.keepAlive()` to keep the connection to IdentityNow open without having to send any data to IdentityNow. If `res.keepAlive()` or `res.send()` is not called within 3 minutes, a connector timeout will occur. +In the case of a long running API call to the source system, you can also optionally send `res.keepAlive()` to keep the connection to Identity Security Cloud open without having to send any data to Identity Security Cloud. If `res.keepAlive()` or `res.send()` is not called within 3 minutes, a connector timeout will occur. This is an example of how to set up this pagination: @@ -25,8 +25,8 @@ async getAccounts(res: Response): Promise { // each page will be called recursively until there are no more records to fetch, at which case the promise is fulfilled ).eachPage((records, fetchNextPage) => { for (let record of records) { - // this is the part that sends the data to IdentityNow. Since eachPage is called with just 10 records, - // if there are 100 records total, we would send data back to IDN in 10 sets of 10 records. + // this is the part that sends the data to Identity Security Cloud. Since eachPage is called with just 10 records, + // if there are 100 records total, we would send data back to ISC in 10 sets of 10 records. res.send({ identity: record.id, attributes: { diff --git a/products/idn/docs/identity-now/saas-connectivity/in-depth/debugging.md b/docs/connectivity/saas-connectivity/in-depth/debugging.md similarity index 93% rename from products/idn/docs/identity-now/saas-connectivity/in-depth/debugging.md rename to docs/connectivity/saas-connectivity/in-depth/debugging.md index 730254f9c..e99c27e7a 100644 --- a/products/idn/docs/identity-now/saas-connectivity/in-depth/debugging.md +++ b/docs/connectivity/saas-connectivity/in-depth/debugging.md @@ -7,7 +7,7 @@ sidebar_position: 2 sidebar_class_name: debugging keywords: ['connectivity', 'connectors', 'debugging'] description: An easy way to debug locally is to use console.log() to print debug information to your console. -slug: /docs/saas-connectivity/in-depth/debugging +slug: /connectivity/saas-connectivity/in-depth/debugging tags: ['Connectivity'] --- @@ -39,7 +39,7 @@ export const connector = async () => { }; ``` -`console.log()` statements work anywhere, and they work when you deploy your connector to IDN. However, these statements can create clutter in your code. You will often have to clean up debug statements once you are done. +`console.log()` statements work anywhere, and they work when you deploy your connector to ISC. However, these statements can create clutter in your code. You will often have to clean up debug statements once you are done. If your IDE supports debugging JavaScript, then your IDE’s built-in debugger can be a powerful and easy way to debug your code. @@ -87,6 +87,6 @@ With these configurations set, you can run the debugger by selecting the options ![debugging 2](./img/debugging2.png) -## Debug in IdentityNow +## Debug in Identity Security Cloud -You can use the `sail 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 `sail conn logs` command to gain insight into how your connector is performing while running in ISC. See the section on logging for more information. diff --git a/products/idn/docs/identity-now/saas-connectivity/in-depth/error-handling.md b/docs/connectivity/saas-connectivity/in-depth/error-handling.md similarity index 93% rename from products/idn/docs/identity-now/saas-connectivity/in-depth/error-handling.md rename to docs/connectivity/saas-connectivity/in-depth/error-handling.md index fb018285e..862454d8a 100644 --- a/products/idn/docs/identity-now/saas-connectivity/in-depth/error-handling.md +++ b/docs/connectivity/saas-connectivity/in-depth/error-handling.md @@ -7,7 +7,7 @@ sidebar_position: 3 sidebar_class_name: errorHandling keywords: ['connectivity', 'connectors', 'error handling'] description: If the code fails due to validation issues, connectivity, or configuration errors, you can handle the error and provide the user with information about what went wrong. -slug: /docs/saas-connectivity/in-depth/error-handling +slug: /connectivity/saas-connectivity/in-depth/error-handling tags: ['Connectivity'] --- @@ -45,7 +45,7 @@ export class AirtableClient { ## Not Found Error Type -The connector SDK offers a special error type of "Not Found". This error signals to IDN that the specific account is not in the source system. If the account should be in the source system, IDN will then call the connector ```std:account:create``` command to create the account. +The connector SDK offers a special error type of "Not Found". This error signals to ISC that the specific account is not in the source system. If the account should be in the source system, ISC will then call the connector ```std:account:create``` command to create the account. Here is an example: @@ -54,7 +54,7 @@ Here is an example: const account = await myClient.getAccount(input.identity) if (!account) { // account was not found, but identity now has the account and expects it to be there! - // Send an error message to IdentityNow so the account is automatically created + // Send an error message to Identity Security Cloud so the account is automatically created if (!account) { throw new ConnectorError("account is not found", ConnectorErrorType.NotFound) } diff --git a/products/idn/docs/identity-now/saas-connectivity/in-depth/img/debugging1.png b/docs/connectivity/saas-connectivity/in-depth/img/debugging1.png similarity index 100% rename from products/idn/docs/identity-now/saas-connectivity/in-depth/img/debugging1.png rename to docs/connectivity/saas-connectivity/in-depth/img/debugging1.png diff --git a/products/idn/docs/identity-now/saas-connectivity/in-depth/img/debugging2.png b/docs/connectivity/saas-connectivity/in-depth/img/debugging2.png similarity index 100% rename from products/idn/docs/identity-now/saas-connectivity/in-depth/img/debugging2.png rename to docs/connectivity/saas-connectivity/in-depth/img/debugging2.png diff --git a/products/idn/docs/identity-now/saas-connectivity/in-depth/img/testing1.png b/docs/connectivity/saas-connectivity/in-depth/img/testing1.png similarity index 100% rename from products/idn/docs/identity-now/saas-connectivity/in-depth/img/testing1.png rename to docs/connectivity/saas-connectivity/in-depth/img/testing1.png diff --git a/products/idn/docs/identity-now/saas-connectivity/in-depth/img/testing2.png b/docs/connectivity/saas-connectivity/in-depth/img/testing2.png similarity index 100% rename from products/idn/docs/identity-now/saas-connectivity/in-depth/img/testing2.png rename to docs/connectivity/saas-connectivity/in-depth/img/testing2.png diff --git a/products/idn/docs/identity-now/saas-connectivity/in-depth/linting.md b/docs/connectivity/saas-connectivity/in-depth/linting.md similarity index 93% rename from products/idn/docs/identity-now/saas-connectivity/in-depth/linting.md rename to docs/connectivity/saas-connectivity/in-depth/linting.md index ecf491755..77777240c 100644 --- a/products/idn/docs/identity-now/saas-connectivity/in-depth/linting.md +++ b/docs/connectivity/saas-connectivity/in-depth/linting.md @@ -7,7 +7,7 @@ sidebar_position: 4 sidebar_class_name: linting keywords: ['connectivity', 'connectors', 'linting'] description: Automatically check your connector source code for programmatic and stylistic errors. -slug: /docs/saas-connectivity/in-depth/linting +slug: /connectivity/saas-connectivity/in-depth/linting tags: ['Connectivity'] --- diff --git a/products/idn/docs/identity-now/saas-connectivity/in-depth/logging.md b/docs/connectivity/saas-connectivity/in-depth/logging.md similarity index 98% rename from products/idn/docs/identity-now/saas-connectivity/in-depth/logging.md rename to docs/connectivity/saas-connectivity/in-depth/logging.md index 1f4c1477e..4e2cdd0e6 100644 --- a/products/idn/docs/identity-now/saas-connectivity/in-depth/logging.md +++ b/docs/connectivity/saas-connectivity/in-depth/logging.md @@ -7,13 +7,13 @@ sidebar_position: 5 sidebar_class_name: logging keywords: ['connectivity', 'connectors', 'logging'] description: You can use this feature to read the logs of your connectors. -slug: /docs/saas-connectivity/in-depth/logging +slug: /connectivity/saas-connectivity/in-depth/logging tags: ['Connectivity'] --- ## Printing Logs with the CLI -Fetch logs from IDN by issuing the `sail conn logs` command: +Fetch logs from ISC by issuing the `sail conn logs` command: ```bash $ sail conn logs diff --git a/products/idn/docs/identity-now/saas-connectivity/in-depth/rate-limits.md b/docs/connectivity/saas-connectivity/in-depth/rate-limits.md similarity index 98% rename from products/idn/docs/identity-now/saas-connectivity/in-depth/rate-limits.md rename to docs/connectivity/saas-connectivity/in-depth/rate-limits.md index 65e5114e8..49b813331 100644 --- a/products/idn/docs/identity-now/saas-connectivity/in-depth/rate-limits.md +++ b/docs/connectivity/saas-connectivity/in-depth/rate-limits.md @@ -7,7 +7,7 @@ sidebar_position: 6 sidebar_class_name: handlingRateLimits keywords: ['connectivity', 'connectors', 'rate limits'] description: Rate limiting for SaaS Connectivity. -slug: /docs/saas-connectivity/in-depth/handling-rate-limits +slug: /connectivity/saas-connectivity/in-depth/handling-rate-limits tags: ['Connectivity'] --- diff --git a/products/idn/docs/identity-now/saas-connectivity/in-depth/testing.md b/docs/connectivity/saas-connectivity/in-depth/testing.md similarity index 99% rename from products/idn/docs/identity-now/saas-connectivity/in-depth/testing.md rename to docs/connectivity/saas-connectivity/in-depth/testing.md index 93c501bed..56b579b86 100644 --- a/products/idn/docs/identity-now/saas-connectivity/in-depth/testing.md +++ b/docs/connectivity/saas-connectivity/in-depth/testing.md @@ -7,7 +7,7 @@ sidebar_position: 7 sidebar_class_name: testing keywords: ['connectivity', 'connectors', 'testing'] description: Testing SaaS Connectivity. -slug: /docs/saas-connectivity/in-depth/testing +slug: /connectivity/saas-connectivity/in-depth/testing tags: ['Connectivity'] --- diff --git a/products/idn/docs/identity-now/saas-connectivity/index.md b/docs/connectivity/saas-connectivity/index.md similarity index 80% rename from products/idn/docs/identity-now/saas-connectivity/index.md rename to docs/connectivity/saas-connectivity/index.md index b74fda1bd..790ad4d8d 100644 --- a/products/idn/docs/identity-now/saas-connectivity/index.md +++ b/docs/connectivity/saas-connectivity/index.md @@ -6,8 +6,8 @@ sidebar_label: SaaS Connectivity sidebar_position: 4 sidebar_class_name: saasConnectivity keywords: ['connectivity', 'connectors'] -description: SaaS Connectivity is a cloud based connector runtime that makes developing and deploying web service connectors easy. -slug: /docs/saas-connectivity +description: Cloud-based connectivity without VAs. +slug: /connectivity/saas-connectivity tags: ['Connectivity'] --- @@ -15,12 +15,12 @@ SaaS Connectivity is a cloud based connector runtime that makes developing and d ## What Are Connectors -Connectors are the bridges between the SailPoint Identity Now (IDN) SaaS platform and the source systems that IDN needs to communicate with and aggregate data from. An example of a source system IDN may need to communicate with would be an Oracle HR system or GitHub. In these cases, IDN synchronizes data between systems to ensure account entitlements and state are correct through the organization. +Connectors are the bridges between the SailPoint Identity Security Cloud (ISC) SaaS platform and the source systems that ISC needs to communicate with and aggregate data from. An example of a source system ISC may need to communicate with would be an Oracle HR system or GitHub. In these cases, ISC synchronizes data between systems to ensure account entitlements and state are correct through the organization. ## Why We Are Introducing SaaS Connectivity The primary driver for indroducing the SaaS Connectivity framework is to allow a way to connect to other cloud based sources in a truly SaaS architecture, without the need to rely on a VA. There are also other benefits that come with the SaaS Connectivity framework: - - Ability to develop, debug and test custom connectors locally without any dependencies on IdentityNow + - Ability to develop, debug and test custom connectors locally without any dependencies on Identity Security Cloud - Features to customize the user interface when configuring the connector that are specific to the source - Support for more modern languages and frameworks @@ -30,7 +30,7 @@ VA connectors always communicate with external sources through the Virtual Appli ![Old Connectivity](./img/old_connectivity_diagram.png) -The new Cloud connectors work differently - they run on the IDN platform instead: +The new Cloud connectors work differently - they run on the ISC platform instead: ![New Connectivity](./img/new_connectivity_diagram.png) diff --git a/products/idn/docs/identity-now/saas-connectivity/limits.md b/docs/connectivity/saas-connectivity/limits.md similarity index 84% rename from products/idn/docs/identity-now/saas-connectivity/limits.md rename to docs/connectivity/saas-connectivity/limits.md index a71a5fcd1..9ee82d3c6 100644 --- a/products/idn/docs/identity-now/saas-connectivity/limits.md +++ b/docs/connectivity/saas-connectivity/limits.md @@ -7,7 +7,7 @@ sidebar_position: 6.8 sidebar_class_name: limits keywords: ['connectivity', 'connectors', 'commands', 'cli'] description: This describes certain limits that are in place when running a SaaS Connector -slug: /docs/saas-connectivity/limits +slug: /connectivity/saas-connectivity/limits tags: ['Connectivity'] --- @@ -15,7 +15,7 @@ Below is a list of limits set in SaaS Connectivity: - **Max Run Time** - The actual run time of a connector is not limited at this time, however a response in the form of `res.send()` must be recieved from a command at least every 3 minutes - - If you have a long running call, you can use `res.keepAlive()` to send a heartbeat to IdentityNow in between `res.send()` calls to let it know the connector is still running + - If you have a long running call, you can use `res.keepAlive()` to send a heartbeat to Identity Security Cloud in between `res.send()` calls to let it know the connector is still running - **Response Size** - The maximum size of a single `res.send()` call is 256 KiB. Not that some metadata is sent along with the call, so the max size of the payload sent will be slightly less than 256 KiB - **Memory Limits** diff --git a/products/idn/docs/identity-now/saas-connectivity/postman-collection.md b/docs/connectivity/saas-connectivity/postman-collection.md similarity index 93% rename from products/idn/docs/identity-now/saas-connectivity/postman-collection.md rename to docs/connectivity/saas-connectivity/postman-collection.md index 421516fdb..601602fa5 100644 --- a/products/idn/docs/identity-now/saas-connectivity/postman-collection.md +++ b/docs/connectivity/saas-connectivity/postman-collection.md @@ -7,7 +7,7 @@ sidebar_position: 6 sidebar_class_name: postmanCollection keywords: ['connectivity', 'connectors', 'postman'] description: Use the following Postman Collection file to run tests for each of the commands locally. -slug: /docs/saas-connectivity/postman-collection +slug: /connectivity/saas-connectivity/postman-collection tags: ['Connectivity', 'Postman'] --- diff --git a/products/idn/docs/identity-now/saas-connectivity/prerequisites.md b/docs/connectivity/saas-connectivity/prerequisites.md similarity index 84% rename from products/idn/docs/identity-now/saas-connectivity/prerequisites.md rename to docs/connectivity/saas-connectivity/prerequisites.md index 09251dd13..d9388dae0 100644 --- a/products/idn/docs/identity-now/saas-connectivity/prerequisites.md +++ b/docs/connectivity/saas-connectivity/prerequisites.md @@ -7,7 +7,7 @@ sidebar_position: 1 sidebar_class_name: prerequisites keywords: ['connectivity', 'connectors', 'prerequisites'] description: These are some prerequisites you must have before you start building SaaS Connectors. -slug: /docs/saas-connectivity/prerequisites +slug: /connectivity/saas-connectivity/prerequisites tags: ['Connectivity'] --- @@ -19,7 +19,7 @@ To develop a connector, Node >= 18.0.0 is required. Download node from the [node ### SailPoint CLI -SailPoint provides a CLI tool to manage the connectors' lifecycles. To install and set up the CLI, [follow the instructions here](../../../idn/tools/cli) or you can directly download and install from the [GitHub releases page](https://github.com/sailpoint-oss/sailpoint-cli/releases) +SailPoint provides a CLI tool to manage the connectors' lifecycles. To install and set up the CLI, [follow the instructions here](../../tools/cli) or you can directly download and install from the [GitHub releases page](https://github.com/sailpoint-oss/sailpoint-cli/releases) ## Recommended Software @@ -29,7 +29,7 @@ Although you can develop connectors in a text editor, use an Integrated Developm ### Postman -A convenient way to test your connector before deploying to IDN is to use Postman. You can get it from the [postman.com downloads page](https://www.postman.com/downloads/) +A convenient way to test your connector before deploying to ISC is to use Postman. You can get it from the [postman.com downloads page](https://www.postman.com/downloads/) ## Creating your first project @@ -61,15 +61,15 @@ my-first-project This directory contains three main files: -- **index.ts:** Use this file to register all the available commands the connector supports, provide the necessary configuration options to the client code implementing the API for the source, and pass data the client code obtains to IdentityNow. This file can either use a vendor supplied client Software Development Kit (SDK) to interact with the web service or reference custom client code within the project. +- **index.ts:** Use this file to register all the available commands the connector supports, provide the necessary configuration options to the client code implementing the API for the source, and pass data the client code obtains to Identity Security Cloud. This file can either use a vendor supplied client Software Development Kit (SDK) to interact with the web service or reference custom client code within the project. - **my-client.ts:** Use this template to create custom client code to interact with a web service’s APIs. If the web service does not provide an SDK, you can modify this file to implement the necessary API calls to interact with the source web service. -- **connector-spec.ts** This file describes how the connector works to IDN. More information about the connector spec is available in the next section. At a high level, it has the information for the following: +- **connector-spec.ts** This file describes how the connector works to ISC. More information about the connector spec is available in the next section. At a high level, it has the information for the following: - What commands the connector supports - What config values the user must provide when creating the connector - Defining the account schema - Defining the entitlment schema - - Defining the account create template that maps fields from IDN to the connector + - Defining the account create template that maps fields from ISC to the connector These files are templates that provide guidance to begin implementing the connector on the target web service. Although you can implement a connector's entire functionality within these three files (or even just one if the web service provides an SDK), you can implement your own code architecture, like breaking out common utility functions into a separate file or creating separate files for each operation. diff --git a/products/idn/docs/identity-now/saas-connectivity/test-build-deploy.md b/docs/connectivity/saas-connectivity/test-build-deploy.md similarity index 84% rename from products/idn/docs/identity-now/saas-connectivity/test-build-deploy.md rename to docs/connectivity/saas-connectivity/test-build-deploy.md index 97637f4aa..339b996fb 100644 --- a/products/idn/docs/identity-now/saas-connectivity/test-build-deploy.md +++ b/docs/connectivity/saas-connectivity/test-build-deploy.md @@ -7,7 +7,7 @@ sidebar_position: 2 sidebar_class_name: testBuildDeploy keywords: ['connectivity', 'connectors', 'test', 'build', 'deploy'] description: As you implement command handlers, you must test them. The connector SDK provides some utility methods to locally run your connector to test, build, and deploy. -slug: /docs/saas-connectivity/test-build-deploy +slug: /connectivity/saas-connectivity/test-build-deploy tags: ['Connectivity'] --- @@ -37,17 +37,17 @@ As you implement command handlers, you must test them. The connector SDK provide ## Create and Upload Connector Bundle -Follow these steps to use the CLI to package a connector bundle, create it in your IdentityNow org, and upload it to IdentityNow. +Follow these steps to use the CLI to package a connector bundle, create it in your Identity Security Cloud org, and upload it to Identity Security Cloud. ### Package Connector Files -You must compress the files in the connector project into a zip file before uploading them to IdentityNow. +You must compress the files in the connector project into a zip file before uploading them to Identity Security Cloud. Use the CLI to run `npm run pack-zip` to build and package the connector bundle. Put the resulting zip file in the `dist` folder. ### Create Connector In Your Org -Before uploading the zip file, you must create an entry for the connector in your IdentityNow org. Run `sail conn create "my-project"` to create a connector entry. +Before uploading the zip file, you must create an entry for the connector in your Identity Security Cloud org. Run `sail conn create "my-project"` to create a connector entry. The response to this command contains a connector ID you can use to manage this connector. @@ -76,9 +76,9 @@ $ sail conn list +--------------------------------------+----------------------------+ ``` -### Upload Connector Zip File to IdentityNow +### Upload Connector Zip File to Identity Security Cloud -Run `sail conn upload -c [connectorID | connectorAlias] -f dist/[connector filename].zip` to upload the zip file built from the previous step to IdentityNow. +Run `sail conn upload -c [connectorID | connectorAlias] -f dist/[connector filename].zip` to upload the zip file built from the previous step to Identity Security Cloud. ```bash $ sail conn upload -c example-connector -f dist/example-connector-0.1.0.zip @@ -103,15 +103,15 @@ $ sail conn tags list -c example-connector :::caution Important Make sure that you implement a form of version control or regular backup process for your connectors. -You cannot recover the source code from IDN because it gets sent to IDN as a compiled and minified JavaScript (JS) bundle that cannot be easily expanded into its original source code structure. +You cannot recover the source code from ISC because it gets sent to ISC as a compiled and minified JavaScript (JS) bundle that cannot be easily expanded into its original source code structure. ::: -## Test Your Connector in IdentityNow +## Test Your Connector in Identity Security Cloud -Follow these steps to test a connector bundle in both IdentityNow and the IdentityNow user interface (UI). +Follow these steps to test a connector bundle in both Identity Security Cloud and the Identity Security Cloud user interface (UI). -### Test Your Connector Bundle In IdentityNow +### Test Your Connector Bundle In Identity Security Cloud The connector CLI provides ways to test invoking commands with any connector upload version. Before running a command, create a file, **config.json**, in the root project folder. Include any configuration items required to interact with the target web service in this file, such as API token, username, password, organization, version, etc. The following snippet is an example: @@ -141,8 +141,8 @@ $ sail connectors invoke account-list -c example-connector -p config.json > > Ensure that you add config.json to your .gitignore file so you do not accidentally store secrets in your code repository. -## Test Your Connector from IdentityNow UI +## Test Your Connector from Identity Security Cloud UI -Go to your IdentityNow org’s source section. Create a source from the connector you just uploaded. This connector will display in the dropdown list: **example-connector (tag: latest)** +Go to your Identity Security Cloud org’s source section. Create a source from the connector you just uploaded. This connector will display in the dropdown list: **example-connector (tag: latest)** -After creating a source, you can to test connection, aggregate account, etc. from the IdentityNow UI. +After creating a source, you can to test connection, aggregate account, etc. from the Identity Security Cloud UI. diff --git a/products/idn/docs/identity-now/saas-connectivity/videos.md b/docs/connectivity/saas-connectivity/videos.md similarity index 94% rename from products/idn/docs/identity-now/saas-connectivity/videos.md rename to docs/connectivity/saas-connectivity/videos.md index a7bfa0524..4c8adb4a0 100644 --- a/products/idn/docs/identity-now/saas-connectivity/videos.md +++ b/docs/connectivity/saas-connectivity/videos.md @@ -7,7 +7,7 @@ sidebar_position: 1.5 sidebar_class_name: videos keywords: ['connectivity', 'connectors', 'videos'] description: Helpful videos on using SaaS connectivity -slug: /docs/saas-connectivity/videos +slug: /connectivity/saas-connectivity/videos tags: ['Connectivity'] --- import Video from '@site/src/components/Video'; diff --git a/docs/extensibility.md b/docs/extensibility.md new file mode 100644 index 000000000..e25b29e06 --- /dev/null +++ b/docs/extensibility.md @@ -0,0 +1,27 @@ +--- +id: extensibility +title: Extensibility +pagination_label: Extensibility +sidebar_label: Extensibility +sidebar_position: 1 +sidebar_class_name: extensibility +keywords: ['extensibility'] +description: Extend your ISC platform. +slug: /extensibility +tags: ['extensibility'] +--- + +## Overview +The Identity Security Cloud (ISC) platform is designed for extensibility, which means that it's designed to allow the addition of new capabilities or functionalities. In addition to the APIs, SailPoint provides a number of extensibility options you can use to build custom solutions and integrations that meet your organization's needs. + +```mdx-code-block +import DocCardList from '@theme/DocCardList'; +import {useCurrentSidebarCategory} from '@docusaurus/theme-common'; + + +``` + +## Discuss +The most valuable resource for ISC developers is the SailPoint Developer Community itself, where ISC users and experts all over the world come together to ask questions and provide solutions. + +To learn more about ISC extensibility and discuss the different extensibility options with SailPoint Developer Community members, go to the [SailPoint Developer Community Forum](https://developer.sailpoint.com/discuss/c/isc/6). \ No newline at end of file diff --git a/products/idn/docs/identity-now/_category_.json b/docs/extensibility/_category_.json similarity index 100% rename from products/idn/docs/identity-now/_category_.json rename to docs/extensibility/_category_.json diff --git a/docs/extensibility/configuration-management/_category_.json b/docs/extensibility/configuration-management/_category_.json new file mode 100644 index 000000000..e8ff3fd29 --- /dev/null +++ b/docs/extensibility/configuration-management/_category_.json @@ -0,0 +1,5 @@ +{ + "customProps": { + "description": "Export and import tenant configurations." + } +} \ No newline at end of file diff --git a/docs/extensibility/configuration-management/index.mdx b/docs/extensibility/configuration-management/index.mdx new file mode 100644 index 000000000..9d7a47ff5 --- /dev/null +++ b/docs/extensibility/configuration-management/index.mdx @@ -0,0 +1,36 @@ +--- +id: configuration-management +title: Configuration Management +pagination_label: Configuration Management +sidebar_label: Configuration Management +sidebar_position: 6 +sidebar_class_name: Configuration Management +hide_title: true +keywords: + [ + 'portal', + 'docs', + 'documentation', + ] +description: Export and import tenant configurations. +slug: /extensibility/configuration-management +tags: ['Introduction', 'Getting Started'] +--- + +## Overview +Configuration Management provides you with a form of version control for your tenant configurations. +With Configuration Management, you can export snapshots of your current tenant configurations, downloading them in a JSON. +These configurations can serve as different versions of your tenant configuration. +You can then import those configurations into tenants to update, resore, or migrate tenant configurations. + +```mdx-code-block +import DocCardList from '@theme/DocCardList'; +import {useCurrentSidebarCategory} from '@docusaurus/theme-common'; + + +``` + +## Discuss +The most valuable resource for ISC developers is the SailPoint Developer Community itself, where ISC users and experts all over the world come together to ask questions and provide solutions. + +To learn more about ISC configuration management and discuss it with SailPoint Developer Community members, go to the [SailPoint Developer Community Forum](https://developer.sailpoint.com/discuss/c/isc/6). diff --git a/products/idn/docs/identity-now/saas-configuration.mdx b/docs/extensibility/configuration-management/saas-configuration.mdx similarity index 94% rename from products/idn/docs/identity-now/saas-configuration.mdx rename to docs/extensibility/configuration-management/saas-configuration.mdx index f6cd0ee92..95a939216 100644 --- a/products/idn/docs/identity-now/saas-configuration.mdx +++ b/docs/extensibility/configuration-management/saas-configuration.mdx @@ -6,7 +6,7 @@ sidebar_position: 3 sidebar_class_name: saasConfiguration keywords: ['configuration'] description: Use SaaS Configuration APIs to import and export configurations. -slug: /docs/saas-configuration +slug: /extensibility/configuration-management/saas-configuration tags: ['SaaS Configuration'] --- @@ -67,7 +67,7 @@ The available supported objects are also available via REST API! See List Config ### Process -![img](./img/sp-config-export.png) +![img](../img/sp-config-export.png) 1. **Start Export** - Start the export process by configuring a JSON payload for the export options. This payload will be sent to `POST /beta/sp-config/export`. 2. **Response with Export Status** - An export status will be given in response. This contains a `jobId` and a `status` to be used to subsequently monitor the process. Initially, this may have a status of `NOT_STARTED`. @@ -85,7 +85,7 @@ The available supported objects are also available via REST API! See List Config ### Process -![img](./img/sp-config-import.png) +![img](../img/sp-config-import.png) 1. **Start Import** - Start the import process by configuring a JSON payload for the import options. This will then be sent to `POST /beta/sp-config/import`. 2. **Response with Import Status** - An import status will be given in response. This contains a `jobId` and a `status` to be used to subsequently monitor the process. Initially this might have a status of `NOT_STARTED`. @@ -111,7 +111,7 @@ The available supported objects are also available via REST API! See List Config **Description** -[This endpoint](https://developer.sailpoint.com/idn/api/beta/list-sp-config-objects) gets the list of object configurations known to the tenant export/import service. +[This endpoint](https://developer.sailpoint.com/docs/api/beta/list-sp-config-objects) gets the list of object configurations known to the tenant export/import service. Object configurations containing "importUrl" and "exportUrl" are available for export/import. @@ -216,7 +216,7 @@ Content-Type: application/json **Description** -[This endpoint](https://developer.sailpoint.com/idn/api/beta/export-sp-config) exports selected objects from the tenant to a JSON configuration file. +[This endpoint](https://developer.sailpoint.com/docs/api/beta/export-sp-config) exports selected objects from the tenant to a JSON configuration file. @@ -298,7 +298,7 @@ You can only use the `includedIds` and `includedNames` filters when you're expor **Description** -[This endpoint](https://developer.sailpoint.com/idn/api/beta/export-sp-config-job-status) gets the status of the export job identified by its `id` parameter. +[This endpoint](https://developer.sailpoint.com/docs/api/beta/export-sp-config-job-status) gets the status of the export job identified by its `id` parameter. This request requires one of the following security scopes: @@ -339,7 +339,7 @@ Content-Type: application/json **Description** -[This endpoint](https://developer.sailpoint.com/idn/api/beta/export-sp-config-download) gets the export job's resulting export file by using the requested `id` and downloads it to a file. +[This endpoint](https://developer.sailpoint.com/docs/api/beta/export-sp-config-download) gets the export job's resulting export file by using the requested `id` and downloads it to a file. This request requires one of the following security scopes: @@ -503,7 +503,7 @@ Content-Type: application/json **Description** -[This endpoint](https://developer.sailpoint.com/idn/api/beta/import-sp-config) imports objects from a JSON configuration file into a tenant. +[This endpoint](https://developer.sailpoint.com/docs/api/beta/import-sp-config) imports objects from a JSON configuration file into a tenant. By default, every import job first exports all existing objects supported by sp-config as a backup before attempting the import. The import job provides a backup so the configuration's import status is available for inspection or restore if needed. You can skip the backup by setting `excludeBackup` to `true` in the import options. @@ -559,7 +559,7 @@ Example: POST /beta/sp-config/import?preview=true **Description** -[This endpoint](https://developer.sailpoint.com/idn/api/beta/import-sp-config-job-status) gets the status of the import job identified by its `id` parameter. +[This endpoint](https://developer.sailpoint.com/docs/api/beta/import-sp-config-job-status) gets the status of the import job identified by its `id` parameter. This request requires the following security scope: @@ -600,7 +600,7 @@ Content-Type: application/json **Description** -[This endpoint](https://developer.sailpoint.com/idn/api/beta/import-sp-config-download) gets the import job's resulting import file by using the requested `id` and downloads the file. +[This endpoint](https://developer.sailpoint.com/docs/api/beta/import-sp-config-download) gets the import job's resulting import file by using the requested `id` and downloads the file. The downloaded file will contain the import job's results, including any associated error, warning or informational messages. This request requires the following security scope: diff --git a/docs/extensibility/event-triggers/_category_.json b/docs/extensibility/event-triggers/_category_.json new file mode 100644 index 000000000..9b49f47c2 --- /dev/null +++ b/docs/extensibility/event-triggers/_category_.json @@ -0,0 +1,5 @@ +{ + "customProps": { + "description": "Actions triggered by specific events." + } +} \ No newline at end of file diff --git a/products/idn/docs/identity-now/event-triggers/available/access-request-decision.md b/docs/extensibility/event-triggers/available/access-request-decision.md similarity index 88% rename from products/idn/docs/identity-now/event-triggers/available/access-request-decision.md rename to docs/extensibility/event-triggers/available/access-request-decision.md index e4c1ed2e7..f098dc7e7 100644 --- a/products/idn/docs/identity-now/event-triggers/available/access-request-decision.md +++ b/docs/extensibility/event-triggers/available/access-request-decision.md @@ -17,13 +17,13 @@ keywords: 'available', ] description: Fires after an access request is approved. -slug: /docs/event-triggers/triggers/access-request-decision +slug: /extensibility/event-triggers/triggers/access-request-decision tags: ['Event Triggers', 'Available Event Triggers', 'Fire and Forget'] --- ## Event Context -The SailPoint IdentityNow platform now includes event triggers within the access request approval workflow. The 'Access Request Decision' event trigger provides more proactive governance and ensures users can quickly obtain needed access. +The SailPoint Identity Security Cloud platform now includes event triggers within the access request approval workflow. The 'Access Request Decision' event trigger provides more proactive governance and ensures users can quickly obtain needed access. ![Flow](./img/access-request-postapproval-path.png) diff --git a/products/idn/docs/identity-now/event-triggers/available/access-request-dynamic-approval.md b/docs/extensibility/event-triggers/available/access-request-dynamic-approval.md similarity index 91% rename from products/idn/docs/identity-now/event-triggers/available/access-request-dynamic-approval.md rename to docs/extensibility/event-triggers/available/access-request-dynamic-approval.md index a1b771403..ddeebc5ab 100644 --- a/products/idn/docs/identity-now/event-triggers/available/access-request-dynamic-approval.md +++ b/docs/extensibility/event-triggers/available/access-request-dynamic-approval.md @@ -7,7 +7,7 @@ sidebar_class_name: accessRequestDynamicApproval keywords: ['event', 'trigger', 'access', 'request', 'dynamic', 'approval', 'available'] description: Fires after an access request is submitted. -slug: /docs/event-triggers/triggers/access-request-dynamic-approval +slug: /extensibility/event-triggers/triggers/access-request-dynamic-approval tags: ['Event Triggers', 'Available Event Triggers', 'Request Response'] --- @@ -18,12 +18,12 @@ The Access Request Dynamic Approval event trigger provides a way to route a requ When an access request is submitted, the Access Request Dynamic Approval trigger does the following: - Sends data about the access request and expects a response including the ID of an existing identity or workgroup (i.e. governance group) to add to the approval workflow. -- Based on the ID received, an approval task is assigned to the identity or governance group in IdentityNow for a decision as an additional step after other configured approval requirements are met. +- Based on the ID received, an approval task is assigned to the identity or governance group in Identity Security Cloud for a decision as an additional step after other configured approval requirements are met. - If the new approver is also the target identity for this request, the manager is assigned instead. If the identity has no manager, a random org admin is assigned. - If the ID of the additional approver is wrong, then a random org admin is assigned. - You can choose to **NOT** add an additional approver by providing an empty object as the response to the triggered REST request. -You can use this trigger to develop logic outside of IdentityNow’s out-of-the-box offerings to route an approval step to users such as the following: +You can use this trigger to develop logic outside of Identity Security Cloud’s out-of-the-box offerings to route an approval step to users such as the following: - The recipient’s department head - The recipient’s cost center diff --git a/products/idn/docs/identity-now/event-triggers/available/access-request-submitted.md b/docs/extensibility/event-triggers/available/access-request-submitted.md similarity index 98% rename from products/idn/docs/identity-now/event-triggers/available/access-request-submitted.md rename to docs/extensibility/event-triggers/available/access-request-submitted.md index 4eb2ade50..180be84e1 100644 --- a/products/idn/docs/identity-now/event-triggers/available/access-request-submitted.md +++ b/docs/extensibility/event-triggers/available/access-request-submitted.md @@ -6,7 +6,7 @@ sidebar_label: Access Request Submitted sidebar_class_name: accessRequestSubmitted keywords: ['event', 'trigger', 'access', 'request', 'submitted', 'preapproval', 'available'] description: Fires after an access request is submitted. -slug: /docs/event-triggers/triggers/access-request-submitted +slug: /extensibility/event-triggers/triggers/access-request-submitted tags: ['Event Triggers', 'Available Event Triggers', 'Request Response'] --- diff --git a/products/idn/docs/identity-now/event-triggers/available/account-aggregation-completed.md b/docs/extensibility/event-triggers/available/account-aggregation-completed.md similarity index 92% rename from products/idn/docs/identity-now/event-triggers/available/account-aggregation-completed.md rename to docs/extensibility/event-triggers/available/account-aggregation-completed.md index fab67236d..6e0de65a9 100644 --- a/products/idn/docs/identity-now/event-triggers/available/account-aggregation-completed.md +++ b/docs/extensibility/event-triggers/available/account-aggregation-completed.md @@ -7,7 +7,7 @@ sidebar_class_name: accountAggregationCompleted keywords: ['event', 'trigger', 'account', 'aggregation', 'completed', 'available'] description: Fires after an account aggregation completed, terminated, or failed. -slug: /docs/event-triggers/triggers/account-aggregation-completed +slug: /extensibility/event-triggers/triggers/account-aggregation-completed tags: ['Event Triggers', 'Available Event Triggers', 'Fire and Forget'] --- @@ -19,9 +19,9 @@ The platform has introduced an event trigger within the Source Aggregation workf After the initial collection of accounts in the source system during aggregation completes, some uses cases for this trigger include the following: -- Notify an administrator that IdentityNow was able to successfully connect to the source system and collect source accounts. +- Notify an administrator that Identity Security Cloud was able to successfully connect to the source system and collect source accounts. - Notify an administrator when the aggregation is terminated manually during the account collection phase. -- Notify an administrator or system (e.g. PagerDuty) that IdentityNow failed to collect accounts during aggregation and indicate required remediation for the source system. +- Notify an administrator or system (e.g. PagerDuty) that Identity Security Cloud failed to collect accounts during aggregation and indicate required remediation for the source system. :::info diff --git a/products/idn/docs/identity-now/event-triggers/available/campaign-activated.md b/docs/extensibility/event-triggers/available/campaign-activated.md similarity index 95% rename from products/idn/docs/identity-now/event-triggers/available/campaign-activated.md rename to docs/extensibility/event-triggers/available/campaign-activated.md index e27649520..a303caec3 100644 --- a/products/idn/docs/identity-now/event-triggers/available/campaign-activated.md +++ b/docs/extensibility/event-triggers/available/campaign-activated.md @@ -6,7 +6,7 @@ sidebar_label: Campaign Activated sidebar_class_name: campaignActivated keywords: ['event', 'trigger', 'campaign', 'activated', 'available'] description: Triggered when a campaign is activated. -slug: /docs/event-triggers/triggers/campaign-activated +slug: /extensibility/event-triggers/triggers/campaign-activated tags: ['Event Triggers', 'Available Event Triggers', 'Fire and Forget'] --- diff --git a/products/idn/docs/identity-now/event-triggers/available/campaign-ended.md b/docs/extensibility/event-triggers/available/campaign-ended.md similarity index 95% rename from products/idn/docs/identity-now/event-triggers/available/campaign-ended.md rename to docs/extensibility/event-triggers/available/campaign-ended.md index dea4ee34e..7646b140d 100644 --- a/products/idn/docs/identity-now/event-triggers/available/campaign-ended.md +++ b/docs/extensibility/event-triggers/available/campaign-ended.md @@ -6,7 +6,7 @@ sidebar_label: Campaign Ended sidebar_class_name: campaignEnded keywords: ['event', 'trigger', 'campaign', 'ended', 'available'] description: Triggered when a campaign is ended. -slug: /docs/event-triggers/triggers/campaign-ended +slug: /extensibility/event-triggers/triggers/campaign-ended tags: ['Event Triggers', 'Available Event Triggers', 'Fire and Forget'] --- diff --git a/products/idn/docs/identity-now/event-triggers/available/campaign-generated.md b/docs/extensibility/event-triggers/available/campaign-generated.md similarity index 96% rename from products/idn/docs/identity-now/event-triggers/available/campaign-generated.md rename to docs/extensibility/event-triggers/available/campaign-generated.md index 5c7b393aa..485601343 100644 --- a/products/idn/docs/identity-now/event-triggers/available/campaign-generated.md +++ b/docs/extensibility/event-triggers/available/campaign-generated.md @@ -6,7 +6,7 @@ sidebar_label: Campaign Generated sidebar_class_name: campaignGenerated keywords: ['event', 'trigger', 'campaign', 'generated', 'available'] description: Triggered when a campaign finishes generating. -slug: /docs/event-triggers/triggers/campaign-generated +slug: /extensibility/event-triggers/triggers/campaign-generated tags: ['Event Triggers', 'Available Event Triggers', 'Fire and Forget'] --- diff --git a/products/idn/docs/identity-now/event-triggers/available/certification-signed-off.md b/docs/extensibility/event-triggers/available/certification-signed-off.md similarity index 96% rename from products/idn/docs/identity-now/event-triggers/available/certification-signed-off.md rename to docs/extensibility/event-triggers/available/certification-signed-off.md index e0b87a2c9..109337a0a 100644 --- a/products/idn/docs/identity-now/event-triggers/available/certification-signed-off.md +++ b/docs/extensibility/event-triggers/available/certification-signed-off.md @@ -6,7 +6,7 @@ sidebar_label: Certification Signed Off sidebar_class_name: certificationSignedOff keywords: ['event', 'trigger', 'certification', 'available'] description: Triggered when a certification is signed off by its reviewer. -slug: /docs/event-triggers/triggers/certification-signed-off +slug: /extensibility/event-triggers/triggers/certification-signed-off tags: ['Event Triggers', 'Available Event Triggers', 'Fire and Forget'] --- diff --git a/products/idn/docs/identity-now/event-triggers/available/form-submitted.md b/docs/extensibility/event-triggers/available/form-submitted.md similarity index 96% rename from products/idn/docs/identity-now/event-triggers/available/form-submitted.md rename to docs/extensibility/event-triggers/available/form-submitted.md index 4183dcedd..998ecfe6e 100644 --- a/products/idn/docs/identity-now/event-triggers/available/form-submitted.md +++ b/docs/extensibility/event-triggers/available/form-submitted.md @@ -6,7 +6,7 @@ sidebar_label: Form Submitted sidebar_class_name: formSubmitted keywords: ['event', 'trigger', 'form', 'submitted', 'available'] description: Triggered when a form is submitted. -slug: /docs/event-triggers/triggers/form-submitted +slug: /extensibility/event-triggers/triggers/form-submitted tags: ['Event Triggers', 'Available Event Triggers', 'Fire and Forget'] --- diff --git a/products/idn/docs/identity-now/event-triggers/available/identity-attribute-changed.md b/docs/extensibility/event-triggers/available/identity-attribute-changed.md similarity index 96% rename from products/idn/docs/identity-now/event-triggers/available/identity-attribute-changed.md rename to docs/extensibility/event-triggers/available/identity-attribute-changed.md index f6f234ab4..02f30b340 100644 --- a/products/idn/docs/identity-now/event-triggers/available/identity-attribute-changed.md +++ b/docs/extensibility/event-triggers/available/identity-attribute-changed.md @@ -6,7 +6,7 @@ sidebar_label: Identity Attributes Changed sidebar_class_name: identityAttributesChanged keywords: ['event', 'trigger', 'identity', 'attributes', 'changed', 'available'] description: Fires after one or more identity attributes changed. -slug: /docs/event-triggers/triggers/identity-attribute-changed +slug: /extensibility/event-triggers/triggers/identity-attribute-changed tags: ['Event Triggers', 'Available Event Triggers', 'Fire and Forget'] --- diff --git a/products/idn/docs/identity-now/event-triggers/available/identity-created.md b/docs/extensibility/event-triggers/available/identity-created.md similarity index 96% rename from products/idn/docs/identity-now/event-triggers/available/identity-created.md rename to docs/extensibility/event-triggers/available/identity-created.md index 64134b661..678f76484 100644 --- a/products/idn/docs/identity-now/event-triggers/available/identity-created.md +++ b/docs/extensibility/event-triggers/available/identity-created.md @@ -6,7 +6,7 @@ sidebar_label: Identity Created sidebar_class_name: identityCreated keywords: ['event', 'trigger', 'identity', 'created', 'available'] description: Fires after an identity is created. -slug: /docs/event-triggers/triggers/identity-created +slug: /extensibility/event-triggers/triggers/identity-created tags: ['Event Triggers', 'Available Event Triggers', 'Fire and Forget'] --- diff --git a/products/idn/docs/identity-now/event-triggers/available/img/access-request-postapproval-path.png b/docs/extensibility/event-triggers/available/img/access-request-postapproval-path.png similarity index 100% rename from products/idn/docs/identity-now/event-triggers/available/img/access-request-postapproval-path.png rename to docs/extensibility/event-triggers/available/img/access-request-postapproval-path.png diff --git a/products/idn/docs/identity-now/event-triggers/available/img/access-request-preapproval-failure.png b/docs/extensibility/event-triggers/available/img/access-request-preapproval-failure.png similarity index 100% rename from products/idn/docs/identity-now/event-triggers/available/img/access-request-preapproval-failure.png rename to docs/extensibility/event-triggers/available/img/access-request-preapproval-failure.png diff --git a/products/idn/docs/identity-now/event-triggers/available/img/access-request-preapproval-path.png b/docs/extensibility/event-triggers/available/img/access-request-preapproval-path.png similarity index 100% rename from products/idn/docs/identity-now/event-triggers/available/img/access-request-preapproval-path.png rename to docs/extensibility/event-triggers/available/img/access-request-preapproval-path.png diff --git a/products/idn/docs/identity-now/event-triggers/available/img/aggregation-delete-threshold.png b/docs/extensibility/event-triggers/available/img/aggregation-delete-threshold.png similarity index 100% rename from products/idn/docs/identity-now/event-triggers/available/img/aggregation-delete-threshold.png rename to docs/extensibility/event-triggers/available/img/aggregation-delete-threshold.png diff --git a/products/idn/docs/identity-now/event-triggers/available/img/aggregation-diagram.png b/docs/extensibility/event-triggers/available/img/aggregation-diagram.png similarity index 100% rename from products/idn/docs/identity-now/event-triggers/available/img/aggregation-diagram.png rename to docs/extensibility/event-triggers/available/img/aggregation-diagram.png diff --git a/products/idn/docs/identity-now/event-triggers/available/img/aggregation-enable-scheduling.png b/docs/extensibility/event-triggers/available/img/aggregation-enable-scheduling.png similarity index 100% rename from products/idn/docs/identity-now/event-triggers/available/img/aggregation-enable-scheduling.png rename to docs/extensibility/event-triggers/available/img/aggregation-enable-scheduling.png diff --git a/products/idn/docs/identity-now/event-triggers/available/img/attributes-highlight.png b/docs/extensibility/event-triggers/available/img/attributes-highlight.png similarity index 100% rename from products/idn/docs/identity-now/event-triggers/available/img/attributes-highlight.png rename to docs/extensibility/event-triggers/available/img/attributes-highlight.png diff --git a/products/idn/docs/identity-now/event-triggers/available/img/campaign-generated-generating.png b/docs/extensibility/event-triggers/available/img/campaign-generated-generating.png similarity index 100% rename from products/idn/docs/identity-now/event-triggers/available/img/campaign-generated-generating.png rename to docs/extensibility/event-triggers/available/img/campaign-generated-generating.png diff --git a/products/idn/docs/identity-now/event-triggers/available/img/campaign-generated-preview.png b/docs/extensibility/event-triggers/available/img/campaign-generated-preview.png similarity index 100% rename from products/idn/docs/identity-now/event-triggers/available/img/campaign-generated-preview.png rename to docs/extensibility/event-triggers/available/img/campaign-generated-preview.png diff --git a/products/idn/docs/identity-now/event-triggers/available/img/identity-created-attributes-highlight.png b/docs/extensibility/event-triggers/available/img/identity-created-attributes-highlight.png similarity index 100% rename from products/idn/docs/identity-now/event-triggers/available/img/identity-created-attributes-highlight.png rename to docs/extensibility/event-triggers/available/img/identity-created-attributes-highlight.png diff --git a/products/idn/docs/identity-now/event-triggers/available/img/identity-created-path.png b/docs/extensibility/event-triggers/available/img/identity-created-path.png similarity index 100% rename from products/idn/docs/identity-now/event-triggers/available/img/identity-created-path.png rename to docs/extensibility/event-triggers/available/img/identity-created-path.png diff --git a/products/idn/docs/identity-now/event-triggers/available/img/provisioning-access-request-2.png b/docs/extensibility/event-triggers/available/img/provisioning-access-request-2.png similarity index 100% rename from products/idn/docs/identity-now/event-triggers/available/img/provisioning-access-request-2.png rename to docs/extensibility/event-triggers/available/img/provisioning-access-request-2.png diff --git a/products/idn/docs/identity-now/event-triggers/available/img/provisioning-access-request-certification.png b/docs/extensibility/event-triggers/available/img/provisioning-access-request-certification.png similarity index 100% rename from products/idn/docs/identity-now/event-triggers/available/img/provisioning-access-request-certification.png rename to docs/extensibility/event-triggers/available/img/provisioning-access-request-certification.png diff --git a/products/idn/docs/identity-now/event-triggers/available/img/provisioning-access-request.png b/docs/extensibility/event-triggers/available/img/provisioning-access-request.png similarity index 100% rename from products/idn/docs/identity-now/event-triggers/available/img/provisioning-access-request.png rename to docs/extensibility/event-triggers/available/img/provisioning-access-request.png diff --git a/products/idn/docs/identity-now/event-triggers/available/img/provisioning-action.png b/docs/extensibility/event-triggers/available/img/provisioning-action.png similarity index 100% rename from products/idn/docs/identity-now/event-triggers/available/img/provisioning-action.png rename to docs/extensibility/event-triggers/available/img/provisioning-action.png diff --git a/products/idn/docs/identity-now/event-triggers/available/img/provisioning-lifecycle-management.png b/docs/extensibility/event-triggers/available/img/provisioning-lifecycle-management.png similarity index 100% rename from products/idn/docs/identity-now/event-triggers/available/img/provisioning-lifecycle-management.png rename to docs/extensibility/event-triggers/available/img/provisioning-lifecycle-management.png diff --git a/products/idn/docs/identity-now/event-triggers/available/img/provisioning-role-membership.png b/docs/extensibility/event-triggers/available/img/provisioning-role-membership.png similarity index 100% rename from products/idn/docs/identity-now/event-triggers/available/img/provisioning-role-membership.png rename to docs/extensibility/event-triggers/available/img/provisioning-role-membership.png diff --git a/products/idn/docs/identity-now/event-triggers/available/img/saved-search-path.png b/docs/extensibility/event-triggers/available/img/saved-search-path.png similarity index 100% rename from products/idn/docs/identity-now/event-triggers/available/img/saved-search-path.png rename to docs/extensibility/event-triggers/available/img/saved-search-path.png diff --git a/products/idn/docs/identity-now/event-triggers/available/img/trigger-path.png b/docs/extensibility/event-triggers/available/img/trigger-path.png similarity index 100% rename from products/idn/docs/identity-now/event-triggers/available/img/trigger-path.png rename to docs/extensibility/event-triggers/available/img/trigger-path.png diff --git a/products/idn/docs/identity-now/event-triggers/available/img/va-cluster-failed.png b/docs/extensibility/event-triggers/available/img/va-cluster-failed.png similarity index 100% rename from products/idn/docs/identity-now/event-triggers/available/img/va-cluster-failed.png rename to docs/extensibility/event-triggers/available/img/va-cluster-failed.png diff --git a/products/idn/docs/identity-now/event-triggers/available/img/va-cluster-healthy-source.png b/docs/extensibility/event-triggers/available/img/va-cluster-healthy-source.png similarity index 100% rename from products/idn/docs/identity-now/event-triggers/available/img/va-cluster-healthy-source.png rename to docs/extensibility/event-triggers/available/img/va-cluster-healthy-source.png diff --git a/products/idn/docs/identity-now/event-triggers/available/img/va-cluster-unhealthy-source.png b/docs/extensibility/event-triggers/available/img/va-cluster-unhealthy-source.png similarity index 100% rename from products/idn/docs/identity-now/event-triggers/available/img/va-cluster-unhealthy-source.png rename to docs/extensibility/event-triggers/available/img/va-cluster-unhealthy-source.png diff --git a/products/idn/docs/identity-now/event-triggers/available/img/va-cluster-warning.png b/docs/extensibility/event-triggers/available/img/va-cluster-warning.png similarity index 100% rename from products/idn/docs/identity-now/event-triggers/available/img/va-cluster-warning.png rename to docs/extensibility/event-triggers/available/img/va-cluster-warning.png diff --git a/products/idn/docs/identity-now/event-triggers/available/index.mdx b/docs/extensibility/event-triggers/available/index.mdx similarity index 86% rename from products/idn/docs/identity-now/event-triggers/available/index.mdx rename to docs/extensibility/event-triggers/available/index.mdx index 5ce153d65..58fd41bc0 100644 --- a/products/idn/docs/identity-now/event-triggers/available/index.mdx +++ b/docs/extensibility/event-triggers/available/index.mdx @@ -7,13 +7,13 @@ sidebar_class_name: availableEventTriggers keywords: ['event', 'trigger', 'available'] description: Event triggers that are generally available. sidebar_position: 7 -slug: /docs/event-triggers/available +slug: /extensibility/event-triggers/available tags: ['Event Triggers', 'Available Event Triggers'] --- import DocCardList from '@theme/DocCardList'; import {useCurrentSidebarCategory} from '@docusaurus/theme-common'; -The event triggers in this section are generally available to all IDN tenants. Event triggers currently in development are considered [Early Access](../early-access/index.mdx) and require a support ticket to be enabled in a tenant. +The event triggers in this section are generally available to all ISC tenants. Event triggers currently in development are considered [Early Access](../early-access/index.mdx) and require a support ticket to be enabled in a tenant. diff --git a/products/idn/docs/identity-now/event-triggers/available/native-change-account-created.md b/docs/extensibility/event-triggers/available/native-change-account-created.md similarity index 96% rename from products/idn/docs/identity-now/event-triggers/available/native-change-account-created.md rename to docs/extensibility/event-triggers/available/native-change-account-created.md index 344c095aa..6de4780e4 100644 --- a/products/idn/docs/identity-now/event-triggers/available/native-change-account-created.md +++ b/docs/extensibility/event-triggers/available/native-change-account-created.md @@ -6,7 +6,7 @@ sidebar_label: Native Change Account Created sidebar_class_name: nativeChangeAccountCreated keywords: ['account', 'created', 'available'] description: Fires after Account Aggregations detects that a new account is created external to Identity Security Platform on sources -slug: /docs/event-triggers/triggers/native-change-account-created +slug: /extensibility/event-triggers/triggers/native-change-account-created tags: ['Event Triggers', 'Available Event Triggers', 'Fire and Forget'] --- @@ -16,7 +16,7 @@ tags: ['Event Triggers', 'Available Event Triggers', 'Fire and Forget'] You must have at least one source configured for Native Change Detection (NCD) before you will receive events from this trigger. There are two ways you can configure a source for NCD: -1. Invoke the [update native change detection configuration](https://developer.sailpoint.com/idn/api/beta/put-native-change-detection-config) for each source you want to receive events for NCD. +1. Invoke the [update native change detection configuration](https://developer.sailpoint.com/docs/api/beta/put-native-change-detection-config) for each source you want to receive events for NCD. 2. Configure the NCD options on the source in the source configuration UI. ::: @@ -180,7 +180,7 @@ This is an example input from this trigger: - `multiValueAttributeChanges` List of multivalued attributes that were aggregated with the account. Only `addedValues` will appear for account created events. - it will include ALL account attributes if the config is `"allNonEntitlementAttributes": true` - it will include the enumerated list of attributes contained in `"selectedNonEntitlementAttributes": []` -- `account` The details of the account as it appears in IdentityNow. This information can be used to query the account API for more information. +- `account` The details of the account as it appears in Identity Security Cloud. This information can be used to query the account API for more information. ## Additional Information and Links diff --git a/products/idn/docs/identity-now/event-triggers/available/native-change-account-deleted.md b/docs/extensibility/event-triggers/available/native-change-account-deleted.md similarity index 95% rename from products/idn/docs/identity-now/event-triggers/available/native-change-account-deleted.md rename to docs/extensibility/event-triggers/available/native-change-account-deleted.md index 48417a7dc..0da5ec974 100644 --- a/products/idn/docs/identity-now/event-triggers/available/native-change-account-deleted.md +++ b/docs/extensibility/event-triggers/available/native-change-account-deleted.md @@ -6,7 +6,7 @@ sidebar_label: Native Change Account Deleted sidebar_class_name: nativeChangeAccountDeleted keywords: ['account', 'deleted', 'available'] description: Fires after Account Aggregations detects that an account is deleted external to Identity Security Platform on sources -slug: /docs/event-triggers/triggers/native-change-account-deleted +slug: /extensibility/event-triggers/triggers/native-change-account-deleted tags: ['Event Triggers', 'Available Event Triggers', 'Fire and Forget'] --- @@ -16,7 +16,7 @@ tags: ['Event Triggers', 'Available Event Triggers', 'Fire and Forget'] You must have at least one source configured for Native Change Detection (NCD) before you will receive events from this trigger. There are two ways you can configure a source for NCD: -1. Invoke the [update native change detection configuration](https://developer.sailpoint.com/idn/api/beta/put-native-change-detection-config) for each source you want to receive events for NCD. +1. Invoke the [update native change detection configuration](https://developer.sailpoint.com/docs/api/beta/put-native-change-detection-config) for each source you want to receive events for NCD. 2. Configure the NCD options on the source in the source configuration UI. ::: @@ -168,7 +168,7 @@ This is an example input from this trigger: - `multiValueAttributeChanges` List of multivalued attributes that were aggregated with the account. Only `removedValues` will appear for account deleted events. - it will include ALL account attributes if the config is `"allNonEntitlementAttributes": true` - it will include the enumerated list of attributes contained in `"selectedNonEntitlementAttributes": []` -- `account` The details of the account as it appears in IdentityNow. This information can be used to query the account API for more information. +- `account` The details of the account as it appears in Identity Security Cloud. This information can be used to query the account API for more information. ## Additional Information and Links diff --git a/products/idn/docs/identity-now/event-triggers/available/native-change-account-updated.md b/docs/extensibility/event-triggers/available/native-change-account-updated.md similarity index 95% rename from products/idn/docs/identity-now/event-triggers/available/native-change-account-updated.md rename to docs/extensibility/event-triggers/available/native-change-account-updated.md index ecefd2bb0..948afa2f1 100644 --- a/products/idn/docs/identity-now/event-triggers/available/native-change-account-updated.md +++ b/docs/extensibility/event-triggers/available/native-change-account-updated.md @@ -6,7 +6,7 @@ sidebar_label: Native Change Account Updated sidebar_class_name: nativeChangeAccountUpdated keywords: ['account', 'updated', 'available'] description: Fires after an account is updated outside of Identity Security Platform -slug: /docs/event-triggers/triggers/native-change-account-updated +slug: /extensibility/event-triggers/triggers/native-change-account-updated tags: ['Event Triggers', 'Available Event Triggers', 'Fire and Forget'] --- @@ -16,7 +16,7 @@ tags: ['Event Triggers', 'Available Event Triggers', 'Fire and Forget'] You must have at least one source configured for Native Change Detection (NCD) before you will receive events from this trigger. There are two ways you can configure a source for NCD: -1. Invoke the [update native change detection configuration](https://developer.sailpoint.com/idn/api/beta/put-native-change-detection-config) for each source you want to receive events for NCD. +1. Invoke the [update native change detection configuration](https://developer.sailpoint.com/docs/api/beta/put-native-change-detection-config) for each source you want to receive events for NCD. 2. Configure the NCD options on the source in the source configuration UI. ::: @@ -135,7 +135,7 @@ This is an example input from this trigger: - `multiValueAttributeChanges` List of multivalued attributes that were added and/or removed on the account. - it will include ALL account attributes if the config is `"allNonEntitlementAttributes": true` - it will include the enumerated list of attributes contained in `"selectedNonEntitlementAttributes": []` -- `account` The details of the account as it appears in IdentityNow. This information can be used to query the account API for more information. +- `account` The details of the account as it appears in Identity Security Cloud. This information can be used to query the account API for more information. ## Additional Information and Links diff --git a/products/idn/docs/identity-now/event-triggers/available/outlier-detected.md b/docs/extensibility/event-triggers/available/outlier-detected.md similarity index 96% rename from products/idn/docs/identity-now/event-triggers/available/outlier-detected.md rename to docs/extensibility/event-triggers/available/outlier-detected.md index 1bf53a138..00f752d9c 100644 --- a/products/idn/docs/identity-now/event-triggers/available/outlier-detected.md +++ b/docs/extensibility/event-triggers/available/outlier-detected.md @@ -7,7 +7,7 @@ sidebar_class_name: outlierDetected keywords: ['event', 'trigger', 'outlier', 'detected'] description: Fires after an identity was detected as an outlier. -slug: /docs/event-triggers/triggers/outlier-detected +slug: /extensibility/event-triggers/triggers/outlier-detected tags: ['Event Triggers', 'Available Event Triggers', 'Fire and Forget'] --- diff --git a/products/idn/docs/identity-now/event-triggers/available/provisioning-completed.md b/docs/extensibility/event-triggers/available/provisioning-completed.md similarity index 95% rename from products/idn/docs/identity-now/event-triggers/available/provisioning-completed.md rename to docs/extensibility/event-triggers/available/provisioning-completed.md index 8955e5169..ca274ef02 100644 --- a/products/idn/docs/identity-now/event-triggers/available/provisioning-completed.md +++ b/docs/extensibility/event-triggers/available/provisioning-completed.md @@ -7,7 +7,7 @@ sidebar_class_name: provisioningCompleted keywords: ['event', 'trigger', 'provisioning', 'action', 'completed', 'available'] description: Fires after a provisioning action completed on a source. -slug: /docs/event-triggers/triggers/provisioning-completed +slug: /extensibility/event-triggers/triggers/provisioning-completed tags: ['Event Triggers', 'Available Event Triggers', 'Fire and Forget'] --- @@ -83,7 +83,7 @@ To provision to a target application, the connector for the source must support - `PROVISIONING` - Can write to accounts. Currently, the trigger does not include attribute synchronization. - `PASSWORD` - Can update password for accounts. -For a list of supported connectors and features, see [Supported Connectors for IdentityNow](https://community.sailpoint.com/t5/Connectors/Supported-Sources-Connectors-for-IdentityNow/ta-p/80019). +For a list of supported connectors and features, see [Supported Connectors for Identity Security Cloud](https://community.sailpoint.com/t5/Connectors/Supported-Sources-Connectors-for-Identity Security Cloud/ta-p/80019). For information about configuring sources for provisioning, see [How can I edit the Create Profile on a source?](https://community.sailpoint.com/t5/Connectors/How-can-I-edit-the-Create-Profile-on-a-source/ta-p/74429). @@ -110,7 +110,7 @@ The following steps must be completed: - Access profile using source entitlements. Role setup is optional. - Application enabled for Access Request. -> **NOTE:** There is no indication to the approver in the IdentityNow UI that the approval is for a revoke action. This must be considered for all usage of these APIs. +> **NOTE:** There is no indication to the approver in the Identity Security Cloud UI that the approval is for a revoke action. This must be considered for all usage of these APIs. ![Flow](./img/provisioning-access-request-2.png) diff --git a/products/idn/docs/identity-now/event-triggers/available/scheduled-search.md b/docs/extensibility/event-triggers/available/scheduled-search.md similarity index 95% rename from products/idn/docs/identity-now/event-triggers/available/scheduled-search.md rename to docs/extensibility/event-triggers/available/scheduled-search.md index 63ec34b3b..c4649f11f 100644 --- a/products/idn/docs/identity-now/event-triggers/available/scheduled-search.md +++ b/docs/extensibility/event-triggers/available/scheduled-search.md @@ -6,7 +6,7 @@ sidebar_label: Scheduled Search sidebar_class_name: scheduledSearch keywords: ['event', 'trigger', 'saved', 'scheduled', 'search', 'complete', 'available'] description: Fires after a scheduled search completes. -slug: /docs/event-triggers/triggers/scheduled-search +slug: /extensibility/event-triggers/triggers/scheduled-search tags: ['Event Triggers', 'Available Event Triggers', 'Fire and Forget'] --- @@ -16,7 +16,7 @@ tags: ['Event Triggers', 'Available Event Triggers', 'Fire and Forget'] Users can subscribe to saved searches and receive an email of a report generated from the saved search. For example, a user can save a search query called "Identities with upcoming end dates" and create a subscription to receive a daily report showing identities with an end date within 10 days from the current date. This event trigger can also notify an external HTTP application that a report generated from a saved search subscription is available to be processed. -'Scheduled search' events occur based on the schedules set for saved search subscriptions. For example, if you have a scheduled saved search for Monday, Tuesday, Wednesday, Thursday, Friday at 6:00 GMT, your HTTP endpoint will also receive a notification at those times. This can be set using the `schedule` object in the [create scheduled search endpoint](/idn/api/v3/create-scheduled-search). +'Scheduled search' events occur based on the schedules set for saved search subscriptions. For example, if you have a scheduled saved search for Monday, Tuesday, Wednesday, Thursday, Friday at 6:00 GMT, your HTTP endpoint will also receive a notification at those times. This can be set using the `schedule` object in the [create scheduled search endpoint](/docs/api/v3/create-scheduled-search). To receive this event when a saved search query does not have any results, set `emailEmptyResults` to `TRUE`. You can also set the expiration date in the `expiration` field within the `schedule` object. Your HTTP endpoint will stop receiving these events when the scheduled search expires. diff --git a/products/idn/docs/identity-now/event-triggers/available/source-created.md b/docs/extensibility/event-triggers/available/source-created.md similarity index 95% rename from products/idn/docs/identity-now/event-triggers/available/source-created.md rename to docs/extensibility/event-triggers/available/source-created.md index e584613ad..938003fae 100644 --- a/products/idn/docs/identity-now/event-triggers/available/source-created.md +++ b/docs/extensibility/event-triggers/available/source-created.md @@ -6,7 +6,7 @@ sidebar_label: Source Created sidebar_class_name: sourceCreated keywords: ['event', 'trigger', 'source', 'created', 'available'] description: Fires after a source is created. -slug: /docs/event-triggers/triggers/source-created +slug: /extensibility/event-triggers/triggers/source-created tags: ['Event Triggers', 'Available Event Triggers', 'Fire and Forget'] --- diff --git a/products/idn/docs/identity-now/event-triggers/available/source-deleted.md b/docs/extensibility/event-triggers/available/source-deleted.md similarity index 95% rename from products/idn/docs/identity-now/event-triggers/available/source-deleted.md rename to docs/extensibility/event-triggers/available/source-deleted.md index 7779f0f72..87ecdd892 100644 --- a/products/idn/docs/identity-now/event-triggers/available/source-deleted.md +++ b/docs/extensibility/event-triggers/available/source-deleted.md @@ -6,7 +6,7 @@ sidebar_label: Source Deleted sidebar_class_name: sourceDeleted keywords: ['event', 'trigger', 'source', 'deleted', 'available'] description: Fires after a source is deleted. -slug: /docs/event-triggers/triggers/source-deleted +slug: /extensibility/event-triggers/triggers/source-deleted tags: ['Event Triggers', 'Available Event Triggers', 'Fire and Forget'] --- diff --git a/products/idn/docs/identity-now/event-triggers/available/source-updated.md b/docs/extensibility/event-triggers/available/source-updated.md similarity index 95% rename from products/idn/docs/identity-now/event-triggers/available/source-updated.md rename to docs/extensibility/event-triggers/available/source-updated.md index cea8335a1..205bda20e 100644 --- a/products/idn/docs/identity-now/event-triggers/available/source-updated.md +++ b/docs/extensibility/event-triggers/available/source-updated.md @@ -6,7 +6,7 @@ sidebar_label: Source Updated sidebar_class_name: sourceUpdated keywords: ['event', 'trigger', 'source', 'updated', 'available'] description: Fires after a source is updated. -slug: /docs/event-triggers/triggers/source-updated +slug: /extensibility/event-triggers/triggers/source-updated tags: ['Event Triggers', 'Available Event Triggers', 'Fire and Forget'] --- diff --git a/products/idn/docs/identity-now/event-triggers/available/va-cluster-status-change.md b/docs/extensibility/event-triggers/available/va-cluster-status-change.md similarity index 92% rename from products/idn/docs/identity-now/event-triggers/available/va-cluster-status-change.md rename to docs/extensibility/event-triggers/available/va-cluster-status-change.md index cf8c9a94b..53fc16d12 100644 --- a/products/idn/docs/identity-now/event-triggers/available/va-cluster-status-change.md +++ b/docs/extensibility/event-triggers/available/va-cluster-status-change.md @@ -6,7 +6,7 @@ sidebar_label: VA Cluster Status Change sidebar_class_name: vaClusterStatusChange keywords: ['event', 'trigger', 'va', 'cluster', 'status', 'change', 'available'] description: Fires after the status of a VA cluster has changed. -slug: /docs/event-triggers/triggers/va-cluster-status-change +slug: /extensibility/event-triggers/triggers/va-cluster-status-change tags: ['Event Triggers', 'Available Event Triggers', 'Fire and Forget'] --- @@ -23,7 +23,7 @@ Additional notes about VA Cluster Status Changes: - VA cluster health checks run every 30 minutes. - This trigger will invoke on any VA cluster health status change (i.e. healthy -> unhealthy, unhealthy -> healthy). -- See [troubleshooting virtual appliances](https://community.sailpoint.com/t5/IdentityNow-Connectors/Virtual-Appliance-Troubleshooting-Guide/ta-p/78735) for more information. +- See [troubleshooting virtual appliances](https://community.sailpoint.com/t5/Identity Security Cloud-Connectors/Virtual-Appliance-Troubleshooting-Guide/ta-p/78735) for more information. Healthy Cluster Source diff --git a/products/idn/docs/identity-now/event-triggers/early-access/identity-deleted.md b/docs/extensibility/event-triggers/early-access/identity-deleted.md similarity index 69% rename from products/idn/docs/identity-now/event-triggers/early-access/identity-deleted.md rename to docs/extensibility/event-triggers/early-access/identity-deleted.md index cc35a21ad..d0f859c97 100644 --- a/products/idn/docs/identity-now/event-triggers/early-access/identity-deleted.md +++ b/docs/extensibility/event-triggers/early-access/identity-deleted.md @@ -6,7 +6,7 @@ sidebar_label: Identity Deleted sidebar_class_name: identityDeleted keywords: ['event', 'trigger', 'identity', 'deleted', 'early access'] description: Fires after an identity is deleted. -slug: /docs/event-triggers/triggers/identity-deleted +slug: /extensibility/event-triggers/triggers/identity-deleted tags: ['Event Triggers', 'Early Access Event Triggers', 'Fire and Forget'] --- @@ -29,11 +29,11 @@ Identity deleted event will occur when an identity meets all of the following re - No assigned capabilities (ex. not an assigned cert reviewer) - Not involved in any active certification as a target (its access is not being certified) -After accounts are aggregated and the identity refresh process finds an identity that meets the above criteria, the associated identity is deleted from IdentityNow. For more information, see [Configuring Correlation](https://community.sailpoint.com/t5/Connectors/Configuring-Correlation/ta-p/74045). The Identity deleted event contains any identity attributes as they are configured in the identity profile. For more information, see [Mapping Identity Profiles](https://community.sailpoint.com/t5/Admin-Help/Mapping-Identity-Profiles/ta-p/77877). +After accounts are aggregated and the identity refresh process finds an identity that meets the above criteria, the associated identity is deleted from Identity Security Cloud. For more information, see [Configuring Correlation](https://community.sailpoint.com/t5/Connectors/Configuring-Correlation/ta-p/74045). The Identity deleted event contains any identity attributes as they are configured in the identity profile. For more information, see [Mapping Identity Profiles](https://community.sailpoint.com/t5/Admin-Help/Mapping-Identity-Profiles/ta-p/77877). :::info -IdentityNow will **hide** an identity from the identity list in the UI when the authoritative account is removed. This does not necessarily mean that the identity has been deleted. The identity will only be deleted when the above criteria are met. The deletion task run each night, so there will be a delay from when the criteria are met to when the identity will actually be deleted. +Identity Security Cloud will **hide** an identity from the identity list in the UI when the authoritative account is removed. This does not necessarily mean that the identity has been deleted. The identity will only be deleted when the above criteria are met. The deletion task run each night, so there will be a delay from when the criteria are met to when the identity will actually be deleted. ::: diff --git a/products/idn/docs/identity-now/event-triggers/early-access/img/identity-deleted-path.png b/docs/extensibility/event-triggers/early-access/img/identity-deleted-path.png similarity index 100% rename from products/idn/docs/identity-now/event-triggers/early-access/img/identity-deleted-path.png rename to docs/extensibility/event-triggers/early-access/img/identity-deleted-path.png diff --git a/products/idn/docs/identity-now/event-triggers/early-access/index.mdx b/docs/extensibility/event-triggers/early-access/index.mdx similarity index 94% rename from products/idn/docs/identity-now/event-triggers/early-access/index.mdx rename to docs/extensibility/event-triggers/early-access/index.mdx index 254a29047..70aeaa384 100644 --- a/products/idn/docs/identity-now/event-triggers/early-access/index.mdx +++ b/docs/extensibility/event-triggers/early-access/index.mdx @@ -7,7 +7,7 @@ sidebar_class_name: earlyAccessEventTriggers keywords: ['event', 'trigger', 'early access'] description: Event triggers that require a support ticket to enable. sidebar_position: 8 -slug: /docs/event-triggers/early-access +slug: /extensibility/event-triggers/early-access tags: ['Event Triggers', 'Early Access Event Triggers'] --- diff --git a/products/idn/docs/identity-now/event-triggers/early-access/source-account-created.md b/docs/extensibility/event-triggers/early-access/source-account-created.md similarity index 89% rename from products/idn/docs/identity-now/event-triggers/early-access/source-account-created.md rename to docs/extensibility/event-triggers/early-access/source-account-created.md index 6d228b735..ad100ac66 100644 --- a/products/idn/docs/identity-now/event-triggers/early-access/source-account-created.md +++ b/docs/extensibility/event-triggers/early-access/source-account-created.md @@ -6,7 +6,7 @@ sidebar_label: Source Account Created sidebar_class_name: sourceAccountCreated keywords: ['event', 'trigger', 'source', 'account', 'created', 'early access'] description: Fires after a source account is created. -slug: /docs/event-triggers/triggers/source-account-created +slug: /extensibility/event-triggers/triggers/source-account-created tags: ['Event Triggers', 'Early Access Event Triggers', 'Fire and Forget'] --- @@ -18,7 +18,7 @@ This is an early access event trigger. Please contact support to have it enabled ## Event Context -Source Account Created events occur after a new account is detected during an account aggregration and refresh from a source. This trigger cannot determine whether account creation happened on a source or in IdentityNow. It omits events related to IdentityNow accounts, such as the IdentityNow Admin. +Source Account Created events occur after a new account is detected during an account aggregration and refresh from a source. This trigger cannot determine whether account creation happened on a source or in Identity Security Cloud. It omits events related to Identity Security Cloud accounts, such as the Identity Security Cloud Admin. Use this event trigger to watch for new accounts with highly privileged access, such as an account created in Active Directory Domain Admins. diff --git a/products/idn/docs/identity-now/event-triggers/early-access/source-account-deleted.md b/docs/extensibility/event-triggers/early-access/source-account-deleted.md similarity index 88% rename from products/idn/docs/identity-now/event-triggers/early-access/source-account-deleted.md rename to docs/extensibility/event-triggers/early-access/source-account-deleted.md index 6a955fab0..80f4b289f 100644 --- a/products/idn/docs/identity-now/event-triggers/early-access/source-account-deleted.md +++ b/docs/extensibility/event-triggers/early-access/source-account-deleted.md @@ -6,7 +6,7 @@ sidebar_label: Source Account Deleted sidebar_class_name: sourceAccountDeleted keywords: ['event', 'trigger', 'source', 'account', 'deleted', 'early access'] description: Fires after a source account is deleted. -slug: /docs/event-triggers/triggers/source-account-deleted +slug: /extensibility/event-triggers/triggers/source-account-deleted tags: ['Event Triggers', 'Early Access Event Triggers', 'Fire and Forget'] --- @@ -18,7 +18,7 @@ This is an early access event trigger. Please contact support to have it enabled ## Event Context -Source Account Deleted events occur whenever an account is deleted from its source during an account aggregation operation. The account may have been manually removed or deleted as the result of a provisioning event. The trigger cannot determine whether the account deletion happened on a source or in IdentityNow. It omits events related to IdentityNow accounts, such as the IdentityNow Admin. +Source Account Deleted events occur whenever an account is deleted from its source during an account aggregation operation. The account may have been manually removed or deleted as the result of a provisioning event. The trigger cannot determine whether the account deletion happened on a source or in Identity Security Cloud. It omits events related to Identity Security Cloud accounts, such as the Identity Security Cloud Admin. Use this event trigger to watch for deletions of authoritative accounts, such as an account deleted on Workday. diff --git a/products/idn/docs/identity-now/event-triggers/early-access/source-account-updated.md b/docs/extensibility/event-triggers/early-access/source-account-updated.md similarity index 86% rename from products/idn/docs/identity-now/event-triggers/early-access/source-account-updated.md rename to docs/extensibility/event-triggers/early-access/source-account-updated.md index 68f091916..91a79ab48 100644 --- a/products/idn/docs/identity-now/event-triggers/early-access/source-account-updated.md +++ b/docs/extensibility/event-triggers/early-access/source-account-updated.md @@ -6,8 +6,7 @@ sidebar_label: Source Account Updated sidebar_class_name: sourceAccountUpdated keywords: ['event', 'trigger', 'source', 'account', 'updated', 'early access'] description: Fires after a source account is updated. -pagination_next: docs/identity-now/event-triggers/event-triggers -slug: /docs/event-triggers/triggers/source-account-updated +slug: /extensibility/event-triggers/triggers/source-account-updated tags: ['Event Triggers', 'Early Access Event Triggers', 'Fire and Forget'] --- @@ -19,7 +18,7 @@ This is an early access event trigger. Please contact support to have it enabled ## Event Context -Source Account Updated events occur whenever one or more account attributes change on a single account during an account aggregation operation. The trigger cannot determine whether the account update happened on a source or in IdentityNow. It omits events related to IdentityNow accounts, such as the IdentityNow Admin. The following actions are considered updates: +Source Account Updated events occur whenever one or more account attributes change on a single account during an account aggregation operation. The trigger cannot determine whether the account update happened on a source or in Identity Security Cloud. It omits events related to Identity Security Cloud accounts, such as the Identity Security Cloud Admin. The following actions are considered updates: - Update account attributes - Enable or disable an account diff --git a/products/idn/docs/identity-now/event-triggers/filtering-events.md b/docs/extensibility/event-triggers/filtering-events.md similarity index 92% rename from products/idn/docs/identity-now/event-triggers/filtering-events.md rename to docs/extensibility/event-triggers/filtering-events.md index 6d3e35b45..cfda93dff 100644 --- a/products/idn/docs/identity-now/event-triggers/filtering-events.md +++ b/docs/extensibility/event-triggers/filtering-events.md @@ -7,7 +7,7 @@ sidebar_position: 4 sidebar_class_name: filteringEvents keywords: ['filtering', 'events'] description: Many triggers can produce a staggering amount of events if left unfiltered. Event filtering helps you solve this problem. -slug: /docs/event-triggers/filtering-events +slug: /extensibility/event-triggers/filtering-events tags: ['Event Triggers'] --- @@ -81,7 +81,7 @@ Developing a filter can be faster when you use a tool like an online [JSONpath e ![JSONPath editor](./img/jsonpath-editor.png) -Most of the examples provided in the operator tables above can be used against the Identity Attributes Changed event trigger input, as seen below. You can find all of the input/output schemas for the other available triggers in our [API specification](/idn/api/beta/triggers#available-event-triggers). +Most of the examples provided in the operator tables above can be used against the Identity Attributes Changed event trigger input, as seen below. You can find all of the input/output schemas for the other available triggers in our [API specification](/docs/api/beta/triggers#available-event-triggers). ```json { @@ -130,7 +130,7 @@ To validate a filter using the UI, subscribe to a new event trigger or edit an e ### Validating Filters Using the API -You can validate a trigger filter by using the [test filter](/idn/api/beta/test-subscription-filter) API endpoint. You must escape any double quotes, as seen in the example payload in the API description. Also, you must provide a sample input for the validation engine to run against. It is best to use the input example included in the input/output schemas for the event trigger you want to apply your filter to. Refer to [this table](/idn/api/beta/triggers#available-event-triggers) to find the schema of your event trigger. This is an example request: +You can validate a trigger filter by using the [test filter](/docs/api/beta/test-subscription-filter) API endpoint. You must escape any double quotes, as seen in the example payload in the API description. Also, you must provide a sample input for the validation engine to run against. It is best to use the input example included in the input/output schemas for the event trigger you want to apply your filter to. Refer to [this table](/docs/api/beta/triggers#available-event-triggers) to find the schema of your event trigger. This is an example request: ```text POST https://{tenant}.api.identitynow.com/beta/trigger-subscriptions/validate-filter @@ -182,4 +182,4 @@ If SailPoint accepts your trigger filter, you must test whether it actually work Once you fire off a test event, monitor your webhook.site webpage for an incoming event. If the filter matches the test input, you will an event come in. If the filter does not match the input, then it will nott fire. Test both scenarios to make sure your filter is not always evaluating to `true`, and that it will indeed evaluate to `false` under the correct circumstances. For example, the filter `$[?($.identity.name contains "john")]` will match the test event for Identity Attributes Changed and you will see an event in webhook.site, but you also want to make sure that `$[?($.identity.name contains "archer")]` doesn't fire because the test input is always the same. -If you want to control the test input to validate your filter against a more robust set of data, use the [test invocation](/idn/api/beta/start-test-trigger-invocation) API endpoint. +If you want to control the test input to validate your filter against a more robust set of data, use the [test invocation](/docs/api/beta/start-test-trigger-invocation) API endpoint. diff --git a/products/idn/docs/identity-now/event-triggers/img/activity-log.png b/docs/extensibility/event-triggers/img/activity-log.png similarity index 100% rename from products/idn/docs/identity-now/event-triggers/img/activity-log.png rename to docs/extensibility/event-triggers/img/activity-log.png diff --git a/products/idn/docs/identity-now/event-triggers/img/available-triggers.png b/docs/extensibility/event-triggers/img/available-triggers.png similarity index 100% rename from products/idn/docs/identity-now/event-triggers/img/available-triggers.png rename to docs/extensibility/event-triggers/img/available-triggers.png diff --git a/products/idn/docs/identity-now/event-triggers/img/debug-connection.png b/docs/extensibility/event-triggers/img/debug-connection.png similarity index 100% rename from products/idn/docs/identity-now/event-triggers/img/debug-connection.png rename to docs/extensibility/event-triggers/img/debug-connection.png diff --git a/products/idn/docs/identity-now/event-triggers/img/jsonpath-editor.png b/docs/extensibility/event-triggers/img/jsonpath-editor.png similarity index 100% rename from products/idn/docs/identity-now/event-triggers/img/jsonpath-editor.png rename to docs/extensibility/event-triggers/img/jsonpath-editor.png diff --git a/products/idn/docs/identity-now/event-triggers/img/slack-workflow.png b/docs/extensibility/event-triggers/img/slack-workflow.png similarity index 100% rename from products/idn/docs/identity-now/event-triggers/img/slack-workflow.png rename to docs/extensibility/event-triggers/img/slack-workflow.png diff --git a/products/idn/docs/identity-now/event-triggers/img/test-subscription.png b/docs/extensibility/event-triggers/img/test-subscription.png similarity index 100% rename from products/idn/docs/identity-now/event-triggers/img/test-subscription.png rename to docs/extensibility/event-triggers/img/test-subscription.png diff --git a/products/idn/docs/identity-now/event-triggers/img/ui-filter.png b/docs/extensibility/event-triggers/img/ui-filter.png similarity index 100% rename from products/idn/docs/identity-now/event-triggers/img/ui-filter.png rename to docs/extensibility/event-triggers/img/ui-filter.png diff --git a/products/idn/docs/identity-now/event-triggers/img/webhook-site.png b/docs/extensibility/event-triggers/img/webhook-site.png similarity index 100% rename from products/idn/docs/identity-now/event-triggers/img/webhook-site.png rename to docs/extensibility/event-triggers/img/webhook-site.png diff --git a/products/idn/docs/identity-now/event-triggers/img/what-are-triggers.png b/docs/extensibility/event-triggers/img/what-are-triggers.png similarity index 100% rename from products/idn/docs/identity-now/event-triggers/img/what-are-triggers.png rename to docs/extensibility/event-triggers/img/what-are-triggers.png diff --git a/products/idn/docs/identity-now/event-triggers/img/zapier-webhook.png b/docs/extensibility/event-triggers/img/zapier-webhook.png similarity index 100% rename from products/idn/docs/identity-now/event-triggers/img/zapier-webhook.png rename to docs/extensibility/event-triggers/img/zapier-webhook.png diff --git a/products/idn/docs/identity-now/event-triggers/index.md b/docs/extensibility/event-triggers/index.md similarity index 73% rename from products/idn/docs/identity-now/event-triggers/index.md rename to docs/extensibility/event-triggers/index.md index 97bce895a..5f7e944dd 100644 --- a/products/idn/docs/identity-now/event-triggers/index.md +++ b/docs/extensibility/event-triggers/index.md @@ -6,14 +6,14 @@ sidebar_label: Event Triggers sidebar_position: 3 sidebar_class_name: eventTriggers keywords: ['event', 'triggers', 'webhooks'] -description: The result of any action performed in a service is called an event. Services like IdentityNow constantly generate events like an update to a setting or the completion of an account aggregation. -slug: /docs/event-triggers +description: Actions triggered by specific events. +slug: /extensibility/event-triggers tags: ['Event Triggers'] --- ## What Are Triggers -The result of any action performed in a service is called an **event**. Services like IdentityNow constantly generate events like an update to a setting or the completion of an account aggregation. Most events a service generates are of little value to clients, so services create event triggers, also known as web hooks, that allow clients to subscribe to specific events they are interested in. Similar to news letters or RSS feeds, each subscription tells the service what event a client is interested in and where to send the client the notification. +The result of any action performed in a service is called an **event**. Services like Identity Security Cloud constantly generate events like an update to a setting or the completion of an account aggregation. Most events a service generates are of little value to clients, so services create event triggers, also known as web hooks, that allow clients to subscribe to specific events they are interested in. Similar to news letters or RSS feeds, each subscription tells the service what event a client is interested in and where to send the client the notification. ## How Are Triggers Different from APIs diff --git a/products/idn/docs/identity-now/event-triggers/preparing-a-subscriber-service.md b/docs/extensibility/event-triggers/preparing-a-subscriber-service.md similarity index 93% rename from products/idn/docs/identity-now/event-triggers/preparing-a-subscriber-service.md rename to docs/extensibility/event-triggers/preparing-a-subscriber-service.md index 3b657f2aa..2ee818473 100644 --- a/products/idn/docs/identity-now/event-triggers/preparing-a-subscriber-service.md +++ b/docs/extensibility/event-triggers/preparing-a-subscriber-service.md @@ -7,7 +7,7 @@ sidebar_position: 2 sidebar_class_name: preparingSubscriberService keywords: ['event', 'triggers', 'subscriber'] description: Before you can subscribe to an event trigger, you must prepare a service that can accept incoming HTTP requests from the event trigger service. -slug: /docs/event-triggers/preparing-subscriber-service +slug: /extensibility/event-triggers/preparing-subscriber-service tags: ['Event Triggers'] --- @@ -15,7 +15,7 @@ Before you can subscribe to an event trigger, you must prepare a service that ca ## Webhook Testing Service -There are many webhook testing websites that generate a unique URL you can use to subscribe to an event trigger and explore the data sent by the trigger. One site is https://webhook.site. This site generates a unique URL whenever you open it, which you can copy and paste into the subscription configuration in IdentityNow. Any events that the trigger generates will be sent to this website for you to analyze. +There are many webhook testing websites that generate a unique URL you can use to subscribe to an event trigger and explore the data sent by the trigger. One site is https://webhook.site. This site generates a unique URL whenever you open it, which you can copy and paste into the subscription configuration in Identity Security Cloud. Any events that the trigger generates will be sent to this website for you to analyze. ![Webhook.site](./img/webhook-site.png) diff --git a/products/idn/docs/identity-now/event-triggers/responding-to-a-request-response-trigger.mdx b/docs/extensibility/event-triggers/responding-to-a-request-response-trigger.mdx similarity index 95% rename from products/idn/docs/identity-now/event-triggers/responding-to-a-request-response-trigger.mdx rename to docs/extensibility/event-triggers/responding-to-a-request-response-trigger.mdx index fc2d36c54..5a7acd65f 100644 --- a/products/idn/docs/identity-now/event-triggers/responding-to-a-request-response-trigger.mdx +++ b/docs/extensibility/event-triggers/responding-to-a-request-response-trigger.mdx @@ -7,7 +7,7 @@ sidebar_position: 6 sidebar_class_name: respondingResponseRequiredTriggers keywords: ['event', 'trigger', 'request_response'] description: Specify how your application interacts with response required type trigger services. -slug: /docs/event-triggers/responding-request-response-trigger +slug: /extensibility/event-triggers/responding-request-response-trigger tags: ['Event Triggers'] --- @@ -190,4 +190,4 @@ POST `https://{tenant}.api.identitynow.com/beta/trigger-invocations/e9103ca9-02c ## Trigger invocation status -To check the status of a particular trigger invocation, you can use the [list invocation statuses](/idn/api/beta/list-trigger-invocation-status) endpoint. The status endpoint works for both `REQUEST_RESPONSE` and `FIRE_AND_FORGET` triggers. However, the status of `FIRE_AND_FORGET` trigger invocations will contain null values in their `completeInvocationInput` since `FIRE_AND_FORGET` triggers don't need a response to complete. +To check the status of a particular trigger invocation, you can use the [list invocation statuses](/docs/api/beta/list-trigger-invocation-status) endpoint. The status endpoint works for both `REQUEST_RESPONSE` and `FIRE_AND_FORGET` triggers. However, the status of `FIRE_AND_FORGET` trigger invocations will contain null values in their `completeInvocationInput` since `FIRE_AND_FORGET` triggers don't need a response to complete. diff --git a/products/idn/docs/identity-now/event-triggers/subscribing-to-a-trigger.md b/docs/extensibility/event-triggers/subscribing-to-a-trigger.md similarity index 54% rename from products/idn/docs/identity-now/event-triggers/subscribing-to-a-trigger.md rename to docs/extensibility/event-triggers/subscribing-to-a-trigger.md index 2a7a19a56..41fe3b182 100644 --- a/products/idn/docs/identity-now/event-triggers/subscribing-to-a-trigger.md +++ b/docs/extensibility/event-triggers/subscribing-to-a-trigger.md @@ -6,25 +6,25 @@ sidebar_label: Subscribing to a Trigger sidebar_position: 3 sidebar_class_name: subscribingToTrigger keywords: ['event', 'trigger', 'subscribing'] -description: Usually, you will subscribe to event triggers using the user interface in IDN. Refer to subscribing to event triggers to learn how to subscribe to an event trigger through the IDN UI. -slug: /docs/event-triggers/subscribing-to-trigger +description: Usually, you will subscribe to event triggers using the user interface in ISC. Refer to subscribing to event triggers to learn how to subscribe to an event trigger through the ISC UI. +slug: /extensibility/event-triggers/subscribing-to-trigger tags: ['Event Triggers'] --- ## View the Available Triggers -SailPoint is continuously developing new event triggers to satisfy different use cases. Some of these triggers are considered **early access** and are only available in an IDN tenant upon request. To see a list of available event triggers in your tenant, go to the **Event Triggers** tab in the **Admin** section of IdentityNow. The first page is a list of your tenant's available event triggers. You can select each trigger to learn more about its type, what causes it to fire, and what the payload will look like. +SailPoint is continuously developing new event triggers to satisfy different use cases. Some of these triggers are considered **early access** and are only available in an ISC tenant upon request. To see a list of available event triggers in your tenant, go to the **Event Triggers** tab in the **Admin** section of Identity Security Cloud. The first page is a list of your tenant's available event triggers. You can select each trigger to learn more about its type, what causes it to fire, and what the payload will look like. ![Available triggers](./img/available-triggers.png) ## Subscribe to a Trigger from the UI -Usually, you will subscribe to event triggers using the user interface in IDN. Refer to [subscribing to event triggers](https://documentation.sailpoint.com/saas/help/common/event_triggers.html#subscribing-to-event-triggers) to learn how to subscribe to an event trigger through the IDN UI. +Usually, you will subscribe to event triggers using the user interface in ISC. Refer to [subscribing to event triggers](https://documentation.sailpoint.com/saas/help/common/event_triggers.html#subscribing-to-event-triggers) to learn how to subscribe to an event trigger through the ISC UI. ## Subscribe to a Trigger from the API Sometimes, you may need to use the API to subscribe to event triggers. This can occur when you want to programatically subscribe/unsubscribe from event triggers in a custom application or no-code solution that does not have a native integration with SailPoint. -If this is your first time calling a SailPoint API, refer to the [getting started guide](../../../api/getting-started.md) to learn how to generate a token and call the APIs. +If this is your first time calling a SailPoint API, refer to the [getting started guide](../../api/getting-started.md) to learn how to generate a token and call the APIs. -Start by reviewing the list of [available event triggers](/idn/api/beta/triggers#available-event-triggers), and take note of the **ID** of the trigger you want to subscribe to (ex `idn:access-request-dynamic-approver`). Use the [create subscription](/idn/api/beta/create-subscription) endpoint to subscribe to an event trigger of your choosing. See the API docs for the latest details about how to craft a subscription request. +Start by reviewing the list of [available event triggers](/docs/api/beta/triggers#available-event-triggers), and take note of the **ID** of the trigger you want to subscribe to (ex `idn:access-request-dynamic-approver`). Use the [create subscription](/docs/api/beta/create-subscription) endpoint to subscribe to an event trigger of your choosing. See the API docs for the latest details about how to craft a subscription request. diff --git a/products/idn/docs/identity-now/event-triggers/testing-triggers.md b/docs/extensibility/event-triggers/testing-triggers.md similarity index 92% rename from products/idn/docs/identity-now/event-triggers/testing-triggers.md rename to docs/extensibility/event-triggers/testing-triggers.md index d74164e13..742e4cefa 100644 --- a/products/idn/docs/identity-now/event-triggers/testing-triggers.md +++ b/docs/extensibility/event-triggers/testing-triggers.md @@ -7,7 +7,7 @@ sidebar_position: 5 sidebar_class_name: testingTriggers keywords: ['event', 'trigger', 'testing'] description: It is important to test your trigger subscription configuration with your actual subscribing service before enabling your subscription for production use. -slug: /docs/event-triggers/testing-triggers +slug: /extensibility/event-triggers/testing-triggers tags: ['Event Triggers'] --- @@ -21,7 +21,7 @@ The easiest way to send a test event to your subscribing service is to use the * Doing so sends a test event to your subscribing service, using the default example payload for the specific trigger you are subscribing to. This is an easy way to validate that your service can receive events, but it lacks the ability to modify the event payload to test your filter against different payloads. However, there is an API endpoint you can use to modify the test payload. -If you want to control the test input to validate your filter against a more robust set of data, you can use the [test invocation](/idn/api/beta/start-test-trigger-invocation) API endpoint. You can use this API to send an input payload with any values that you want. This is an example of an invocation of this API: +If you want to control the test input to validate your filter against a more robust set of data, you can use the [test invocation](/docs/api/beta/start-test-trigger-invocation) API endpoint. You can use this API to send an input payload with any values that you want. This is an example of an invocation of this API: ```text POST `https://{tenant}.api.identitynow.com/beta/trigger-invocations/test` @@ -69,7 +69,7 @@ Check the **Created** date with the time you sent the test events. If they are b ![debug connection](./img/debug-connection.png) -You can also view the activity log by using the [list latest invocation statuses](/idn/api/beta/list-trigger-invocation-status) endpoint. +You can also view the activity log by using the [list latest invocation statuses](/docs/api/beta/list-trigger-invocation-status) endpoint. ### Filter Issues diff --git a/products/idn/docs/identity-now/event-triggers/trigger-types.md b/docs/extensibility/event-triggers/trigger-types.md similarity index 97% rename from products/idn/docs/identity-now/event-triggers/trigger-types.md rename to docs/extensibility/event-triggers/trigger-types.md index 447c7a5ff..4301f8de1 100644 --- a/products/idn/docs/identity-now/event-triggers/trigger-types.md +++ b/docs/extensibility/event-triggers/trigger-types.md @@ -7,7 +7,7 @@ sidebar_position: 1 sidebar_class_name: triggerTypes keywords: ['event', 'trigger', 'types'] description: These are the different trigger types you can use. -slug: /docs/event-triggers/trigger-types +slug: /extensibility/event-triggers/trigger-types tags: ['Event Triggers'] --- diff --git a/products/idn/docs/identity-now/img/sp-config-export.png b/docs/extensibility/img/sp-config-export.png similarity index 100% rename from products/idn/docs/identity-now/img/sp-config-export.png rename to docs/extensibility/img/sp-config-export.png diff --git a/products/idn/docs/identity-now/img/sp-config-import.png b/docs/extensibility/img/sp-config-import.png similarity index 100% rename from products/idn/docs/identity-now/img/sp-config-import.png rename to docs/extensibility/img/sp-config-import.png diff --git a/docs/extensibility/rules/_category_.json b/docs/extensibility/rules/_category_.json new file mode 100644 index 000000000..9c10c2cb2 --- /dev/null +++ b/docs/extensibility/rules/_category_.json @@ -0,0 +1,5 @@ +{ + "customProps": { + "description": "Advanced configurations with custom logic." + } +} \ No newline at end of file diff --git a/products/idn/docs/identity-now/rules/cloud-rules/account_profile_attribute_generator.md b/docs/extensibility/rules/cloud-rules/account_profile_attribute_generator.md similarity index 88% rename from products/idn/docs/identity-now/rules/cloud-rules/account_profile_attribute_generator.md rename to docs/extensibility/rules/cloud-rules/account_profile_attribute_generator.md index a2db8614c..9d1784263 100644 --- a/products/idn/docs/identity-now/rules/cloud-rules/account_profile_attribute_generator.md +++ b/docs/extensibility/rules/cloud-rules/account_profile_attribute_generator.md @@ -6,7 +6,7 @@ sidebar_label: Account Profile Attribute Generator sidebar_class_name: accountProfileAttributeGenerator keywords: ['cloud', 'rules', 'account profile', 'attribute generator'] description: This rule generates complex account attribute values during provisioning, e.g. when creating an account. -slug: /docs/rules/cloud-rules/account-profile-attribute-generator +slug: /extensibility/rules/cloud-rules/account-profile-attribute-generator tags: ['Rules'] --- @@ -16,7 +16,7 @@ This rule generates complex account attribute values during provisioning, e.g. w ## Execution -- **Cloud Execution** - This rule executes in the IdentityNow cloud, and it has read-only access to IdentityNow data models, but it does not have access to on-premise sources or connectors. +- **Cloud Execution** - This rule executes in the Identity Security Cloud cloud, and it has read-only access to Identity Security Cloud data models, but it does not have access to on-premise sources or connectors. - **Logging** - Logging statements are currently only visible to SailPoint personnel. ![Rule Execution](../img/cloud_execution.png) @@ -26,7 +26,7 @@ This rule generates complex account attribute values during provisioning, e.g. w | Argument | Type | Purpose | | --- | --- | --- | | log | org.apache.log4j.Logger | Logger to log statements. _Note: This executes in the cloud, and logging is currently not exposed to anyone other than SailPoint._ | -| idn | sailpoint.server.IdnRuleUtil | Provides a read-only starting point for using the SailPoint API. From this passed reference, the rule can interrogate the IdentityNow data model including identities or account information via helper methods as described in [IdnRuleUtil](../idn_rule_utility.md). | +| idn | sailpoint.server.IdnRuleUtil | Provides a read-only starting point for using the SailPoint API. From this passed reference, the rule can interrogate the Identity Security Cloud data model including identities or account information via helper methods as described in [IdnRuleUtil](../idn_rule_utility.md). | | identity | sailpoint.object.Identity | Reference to identity object representing the identity being calculated. | | application | sailpoint.object.Application | Read-only reference to application object that represents the source to which provisioning is being done. | | field | sailpoint.object.Field | Field object used to get information about the attribute being generated. | diff --git a/products/idn/docs/identity-now/rules/cloud-rules/account_profile_attribute_generator_from_template.md b/docs/extensibility/rules/cloud-rules/account_profile_attribute_generator_from_template.md similarity index 89% rename from products/idn/docs/identity-now/rules/cloud-rules/account_profile_attribute_generator_from_template.md rename to docs/extensibility/rules/cloud-rules/account_profile_attribute_generator_from_template.md index 2918bb2db..4e4043a4b 100644 --- a/products/idn/docs/identity-now/rules/cloud-rules/account_profile_attribute_generator_from_template.md +++ b/docs/extensibility/rules/cloud-rules/account_profile_attribute_generator_from_template.md @@ -6,7 +6,7 @@ sidebar_label: Account Profile Attribute Generator (from Template) sidebar_class_name: accountProfileAttributeGeneratorTemplate keywords: ['cloud', 'rules', 'account profile', 'attribute generator'] description: This rule generates complex account attribute values during provisioning, e.g. when creating an account. The rule's configuration comes from a template of values. -slug: /docs/rules/cloud-rules/account-profile-attribute-generator-template +slug: /extensibility/rules/cloud-rules/account-profile-attribute-generator-template tags: ['Rules'] --- @@ -41,7 +41,7 @@ In the following example, the template is `${firstname}.${lastname}${uniqueCount ## Execution -- **Cloud Execution** - This rule executes in the IdentityNow cloud, and it has read-only access to IdentityNow data models, but it does not have access to on-premise sources or connectors. +- **Cloud Execution** - This rule executes in the Identity Security Cloud cloud, and it has read-only access to Identity Security Cloud data models, but it does not have access to on-premise sources or connectors. - **Logging** - Logging statements are currently only visible to SailPoint personnel. ![Rule Execution](../img/cloud_execution.png) @@ -51,7 +51,7 @@ In the following example, the template is `${firstname}.${lastname}${uniqueCount | Argument | Type | Purpose | | --- | --- | --- | | log | org.apache.log4j.Logger | Logger to log statements. _Note: This executes in the cloud, and logging is currently not exposed to anyone other than SailPoint._ | -| idn | sailpoint.server.IdnRuleUtil | Provides a read-only starting point for using the SailPoint API. From this passed reference, the rule can interrogate the IdentityNow data model including identities or account information via helper methods as described in [IdnRuleUtil](../idn_rule_utility.md). | +| idn | sailpoint.server.IdnRuleUtil | Provides a read-only starting point for using the SailPoint API. From this passed reference, the rule can interrogate the Identity Security Cloud data model including identities or account information via helper methods as described in [IdnRuleUtil](../idn_rule_utility.md). | | identity | sailpoint.object.Identity | Reference to identity object representing the identity being calculated. | | field | sailpoint.object.Field | Field object used to get information about the attribute being generated. | diff --git a/products/idn/docs/identity-now/rules/cloud-rules/before_provisioning_rule.md b/docs/extensibility/rules/cloud-rules/before_provisioning_rule.md similarity index 86% rename from products/idn/docs/identity-now/rules/cloud-rules/before_provisioning_rule.md rename to docs/extensibility/rules/cloud-rules/before_provisioning_rule.md index 04934e4f2..dcffd7bd1 100644 --- a/products/idn/docs/identity-now/rules/cloud-rules/before_provisioning_rule.md +++ b/docs/extensibility/rules/cloud-rules/before_provisioning_rule.md @@ -6,7 +6,7 @@ sidebar_label: Before Provisioning Rule sidebar_class_name: beforeProvisioningRule keywords: ['cloud', 'rules', 'before provisioning'] description: This rule runs before provisioning to a source. -slug: /docs/rules/cloud-rules/before-provisioning-rule +slug: /extensibility/rules/cloud-rules/before-provisioning-rule tags: ['Rules'] --- @@ -22,7 +22,7 @@ These are some examples of when to use this rule: ## Execution -- **Cloud Execution** - This rule executes in the IdentityNow cloud, and it has read-only access to IdentityNow data models, but it does not have access to on-premise sources or connectors. +- **Cloud Execution** - This rule executes in the Identity Security Cloud cloud, and it has read-only access to Identity Security Cloud data models, but it does not have access to on-premise sources or connectors. - **Logging** - Logging statements are currently only visible to SailPoint personnel. ![Rule Execution](../img/cloud_execution.png) @@ -32,7 +32,7 @@ These are some examples of when to use this rule: | Argument | Type | Purpose | | --- | --- | --- | | log | org.apache.log4j.Logger | Logger to log statements. _Note: This executes in the cloud, and logging is currently not exposed to anyone other than SailPoint._ | -| idn | sailpoint.server.IdnRuleUtil | Provides a read-only starting point for using the SailPoint API. From this passed reference, the rule can interrogate the IdentityNow data model including identities or account information via helper methods as described in [IdnRuleUtil](../idn_rule_utility.md). | +| idn | sailpoint.server.IdnRuleUtil | Provides a read-only starting point for using the SailPoint API. From this passed reference, the rule can interrogate the Identity Security Cloud data model including identities or account information via helper methods as described in [IdnRuleUtil](../idn_rule_utility.md). | | plan | sailpoint.object.ProvisioningPlan | A set of provisioning instructions which are sent to the source connectors. | | application | sailpoint.object.Application | Read-only reference to application object that represents the source to which provisioning is being done. | diff --git a/products/idn/docs/identity-now/rules/cloud-rules/build_map_rule.md b/docs/extensibility/rules/cloud-rules/build_map_rule.md similarity index 89% rename from products/idn/docs/identity-now/rules/cloud-rules/build_map_rule.md rename to docs/extensibility/rules/cloud-rules/build_map_rule.md index 48035f063..9957a869b 100644 --- a/products/idn/docs/identity-now/rules/cloud-rules/build_map_rule.md +++ b/docs/extensibility/rules/cloud-rules/build_map_rule.md @@ -6,7 +6,7 @@ sidebar_label: BuildMap Rule sidebar_class_name: buildMapRule keywords: ['cloud', 'rules'] description: This rule manipulates raw input data provided by the rows and columns in a file and builds a map from the incoming data. -slug: /docs/rules/cloud-rules/buildmap-rule +slug: /extensibility/rules/cloud-rules/buildmap-rule tags: ['Rules'] --- @@ -22,7 +22,7 @@ This rule runs in the cloud, but it's really a connector rule because it execute ## Execution -- **Cloud Execution** - This rule executes in the IdentityNow cloud, and has read-only access to the records from the Delimited File being imported. However, it doesn't have access to on-premise sources or connectors. +- **Cloud Execution** - This rule executes in the Identity Security Cloud cloud, and has read-only access to the records from the Delimited File being imported. However, it doesn't have access to on-premise sources or connectors. - **Logging** - Logging statements are currently only visible to SailPoint personnel. ![Rule Execution](../img/cloud_execution.png) diff --git a/products/idn/docs/identity-now/rules/cloud-rules/correlation_rule.md b/docs/extensibility/rules/cloud-rules/correlation_rule.md similarity index 84% rename from products/idn/docs/identity-now/rules/cloud-rules/correlation_rule.md rename to docs/extensibility/rules/cloud-rules/correlation_rule.md index bfaf265f6..2d2e0f1cd 100644 --- a/products/idn/docs/identity-now/rules/cloud-rules/correlation_rule.md +++ b/docs/extensibility/rules/cloud-rules/correlation_rule.md @@ -6,7 +6,7 @@ sidebar_label: Correlation Rule sidebar_class_name: Correlation Rule keywords: ['cloud', 'rules', 'correlation'] description: This rule associates or correlates an account to an identity, based on complex logic. -slug: /docs/rules/cloud-rules/correlation-rule +slug: /extensibility/rules/cloud-rules/correlation-rule tags: ['Rules'] --- @@ -16,7 +16,7 @@ This rule associates or correlates an account to an identity, based on complex l ## Execution -- **Cloud Execution** - This rule executes in the IdentityNow cloud, and it has read-only access to IdentityNow data models, but it does not have access to on-premise sources or connectors. +- **Cloud Execution** - This rule executes in the Identity Security Cloud cloud, and it has read-only access to Identity Security Cloud data models, but it does not have access to on-premise sources or connectors. - **Logging** - Logging statements are currently only visible to SailPoint personnel. ![Rule Execution](../img/cloud_execution.png) @@ -26,7 +26,7 @@ This rule associates or correlates an account to an identity, based on complex l | Argument | Type | Purpose | | --- | --- | --- | | log | org.apache.log4j.Logger | Logger to log statements. _Note: This executes in the cloud, and logging is currently not exposed to anyone other than SailPoint._ | -| idn | sailpoint.server.IdnRuleUtil | Provides a read-only starting point for using the SailPoint API. From this passed reference, the rule can interrogate the IdentityNow data model including identities or account information via helper methods as described in [IdnRuleUtil](../idn_rule_utility.md). | +| idn | sailpoint.server.IdnRuleUtil | Provides a read-only starting point for using the SailPoint API. From this passed reference, the rule can interrogate the Identity Security Cloud data model including identities or account information via helper methods as described in [IdnRuleUtil](../idn_rule_utility.md). | | account | sailpoint.object.ResourceObject | Read-only representation of account data that has been aggregated. Use this as a basis to determine correlation linkages with a specific identity. | | application | sailpoint.object.Application | Read-only reference to application object that represents the source to which account correlation is being done. | diff --git a/products/idn/docs/identity-now/rules/cloud-rules/generic_rule.md b/docs/extensibility/rules/cloud-rules/generic_rule.md similarity index 92% rename from products/idn/docs/identity-now/rules/cloud-rules/generic_rule.md rename to docs/extensibility/rules/cloud-rules/generic_rule.md index 9dc928548..3496544dc 100644 --- a/products/idn/docs/identity-now/rules/cloud-rules/generic_rule.md +++ b/docs/extensibility/rules/cloud-rules/generic_rule.md @@ -6,7 +6,7 @@ sidebar_label: Generic Rule sidebar_class_name: Generic Rule keywords: ['cloud', 'rules', 'generic'] description: This rule performs transforms. -slug: /docs/rules/cloud-rules/generic-rule +slug: /extensibility/rules/cloud-rules/generic-rule tags: ['Rules'] --- @@ -45,7 +45,7 @@ return result[index]; ## Execution -- **Cloud Execution** - This rule executes in the IdentityNow cloud, and it has read-only access to IdentityNow data models, but it does not have access to on-premise sources or connectors. +- **Cloud Execution** - This rule executes in the Identity Security Cloud cloud, and it has read-only access to Identity Security Cloud data models, but it does not have access to on-premise sources or connectors. - **Logging** - Logging statements are currently only visible to SailPoint personnel. ![Rule Execution](../img/cloud_execution.png) @@ -55,7 +55,7 @@ return result[index]; | Argument | Type | Purpose | | --- | --- | --- | | log | org.apache.log4j.Logger | Logger to log statements. _Note: This executes in the cloud, and logging is currently not exposed to anyone other than SailPoint._ | -| idn | sailpoint.server.IdnRuleUtil | Provides a read-only starting point for using the SailPoint API. From this passed reference, the rule can interrogate the IdentityNow data model including identities or account information via helper methods as described in [IdnRuleUtil](../idn_rule_utility.md). | +| idn | sailpoint.server.IdnRuleUtil | Provides a read-only starting point for using the SailPoint API. From this passed reference, the rule can interrogate the Identity Security Cloud data model including identities or account information via helper methods as described in [IdnRuleUtil](../idn_rule_utility.md). | ## Output diff --git a/products/idn/docs/identity-now/rules/cloud-rules/identity_attribute_rule.md b/docs/extensibility/rules/cloud-rules/identity_attribute_rule.md similarity index 73% rename from products/idn/docs/identity-now/rules/cloud-rules/identity_attribute_rule.md rename to docs/extensibility/rules/cloud-rules/identity_attribute_rule.md index 76c51b5f7..37627437f 100644 --- a/products/idn/docs/identity-now/rules/cloud-rules/identity_attribute_rule.md +++ b/docs/extensibility/rules/cloud-rules/identity_attribute_rule.md @@ -6,7 +6,7 @@ sidebar_label: Identity Attribute Rule sidebar_class_name: identityAttributeRule keywords: ['cloud', 'rules', 'identity attribute'] description: This rule calculates and returns an identity attribute for a specific identity. -slug: /docs/rules/cloud-rules/identity-attribute-rule +slug: /extensibility/rules/cloud-rules/identity-attribute-rule tags: ['Rules'] --- @@ -16,11 +16,11 @@ tags: ['Rules'] This rule calculates and returns an identity attribute for a specific identity. This rule is known as a "complex" rule on the identity profile. -An important consideration with IdentityAttribute rules is whether generation logic that includes uniqueness checks is acceptable. While not explicitly disallowed, this type of logic is firmly against SailPoint's [best practices](https://community.sailpoint.com/t5/IdentityNow-Articles/Best-Practices-Generating-Usernames-in-IdentityNow/ta-p/153749). When calculating and promoting identity attributes via a transform or a rule, the logic contained within the attribute is always re-run and new values might end up being generated where such behavior is not desired. Additionally, the attribute calculation process is multi-threaded, so the uniqueness logic contained on a single attribute is not always guaranteed to be accurate. For this reason, SailPoint strongly discourages the use of logic that conducts uniqueness checks within an IdentityAttribute rule. The recommendation is to execute this check during account generation for the target system where the value is needed. +An important consideration with IdentityAttribute rules is whether generation logic that includes uniqueness checks is acceptable. While not explicitly disallowed, this type of logic is firmly against SailPoint's [best practices](https://community.sailpoint.com/t5/Identity Security Cloud-Articles/Best-Practices-Generating-Usernames-in-Identity Security Cloud/ta-p/153749). When calculating and promoting identity attributes via a transform or a rule, the logic contained within the attribute is always re-run and new values might end up being generated where such behavior is not desired. Additionally, the attribute calculation process is multi-threaded, so the uniqueness logic contained on a single attribute is not always guaranteed to be accurate. For this reason, SailPoint strongly discourages the use of logic that conducts uniqueness checks within an IdentityAttribute rule. The recommendation is to execute this check during account generation for the target system where the value is needed. ## Execution -- **Cloud Execution** - This rule executes in the IdentityNow cloud, and it has read-only access to IdentityNow data models, but it does not have access to on-premise sources or connectors. +- **Cloud Execution** - This rule executes in the Identity Security Cloud cloud, and it has read-only access to Identity Security Cloud data models, but it does not have access to on-premise sources or connectors. - **Logging** - Logging statements are currently only visible to SailPoint personnel. - **Usage** - To use this rule once installed, first select "Complex Data Source" option under the Source dropdown, then select the rule name under the Transform drop down. @@ -31,7 +31,7 @@ An important consideration with IdentityAttribute rules is whether generation lo | Argument | Type | Purpose | | --- | --- | --- | | log | org.apache.log4j.Logger | Logger to log statements. _Note: This executes in the cloud, and logging is currently not exposed to anyone other than SailPoint._ | -| idn | sailpoint.server.IdnRuleUtil | Provides a read-only starting point for using the SailPoint API. From this passed reference, the rule can interrogate the IdentityNow data model including identities or account information via helper methods as described in [IdnRuleUtil](../idn_rule_utility.md). | +| idn | sailpoint.server.IdnRuleUtil | Provides a read-only starting point for using the SailPoint API. From this passed reference, the rule can interrogate the Identity Security Cloud data model including identities or account information via helper methods as described in [IdnRuleUtil](../idn_rule_utility.md). | | identity | sailpoint.object.Identity | Reference to identity object representing the identity being calculated. | | oldValue | java.lang.Object | Attribute value for the identity attribute before the rule runs. | diff --git a/products/idn/docs/identity-now/rules/cloud-rules/index.md b/docs/extensibility/rules/cloud-rules/index.md similarity index 96% rename from products/idn/docs/identity-now/rules/cloud-rules/index.md rename to docs/extensibility/rules/cloud-rules/index.md index c5dfe93cf..9897ac30c 100644 --- a/products/idn/docs/identity-now/rules/cloud-rules/index.md +++ b/docs/extensibility/rules/cloud-rules/index.md @@ -7,7 +7,7 @@ sidebar_position: 2 sidebar_class_name: cloudExecutedRules keywords: ['cloud', 'rules'] description: Overview of cloud-executed rules -slug: /docs/rules/cloud-rules +slug: /extensibility/rules/cloud-rules tags: ['Rules'] --- @@ -93,7 +93,7 @@ Once you have submitted your rule and you are in the review process, remember th - **Timing:** SailPoint will examine your rule as soon as possible. Most rules are reviewed within 24 hours of submission. However, if your rule is complex, poorly documented, hard to read, or if it presents new issues, it may require greater scrutiny and consideration. If your rule is repeatedly rejected for the same guideline violation, your rule's review may take longer to complete. - **Status Updates:** Your rule's current status will be reflected in your [SailPoint Expert Services request](https://www.sailpoint.com/services/professional/#contact-form), so you can monitor its progress there. - **Expedite Requests:** If you have a critical timing issue, you can request an expedited review. Respect your fellow implementers by seeking expedited review only when you truly need it. If you are found to be abusing this system, SailPoint may reject further requests going forward. -- **Rejections:** SailPoint's goal is to apply these guidelines fairly and consistently, but mistaken rejections can happen. If your rule has been rejected and you have questions or you would like to provide additional information, communicate directly with the rule review team. This may help get your rule into IdentityNow, and it can help SailPoint improve the process or identify a need for clarity in its policies. If you still disagree with the outcome, let SailPoint know and someone can look into it. +- **Rejections:** SailPoint's goal is to apply these guidelines fairly and consistently, but mistaken rejections can happen. If your rule has been rejected and you have questions or you would like to provide additional information, communicate directly with the rule review team. This may help get your rule into Identity Security Cloud, and it can help SailPoint improve the process or identify a need for clarity in its policies. If you still disagree with the outcome, let SailPoint know and someone can look into it. - **Changes:** Rule changes or modifications to meet guidelines are not the reviewer's responsibility. They are the responsibility of the person(s) submitting the rule. Reviewers may give advice, examples, etc. to help, but doing so does not guarantee a solution. You should test the rules with the changes before resubmission. ``` diff --git a/products/idn/docs/identity-now/rules/cloud-rules/manager_correlation_rule.md b/docs/extensibility/rules/cloud-rules/manager_correlation_rule.md similarity index 85% rename from products/idn/docs/identity-now/rules/cloud-rules/manager_correlation_rule.md rename to docs/extensibility/rules/cloud-rules/manager_correlation_rule.md index 8ea71fe5d..4b666f5e6 100644 --- a/products/idn/docs/identity-now/rules/cloud-rules/manager_correlation_rule.md +++ b/docs/extensibility/rules/cloud-rules/manager_correlation_rule.md @@ -6,7 +6,7 @@ sidebar_label: Manager Correlation Rule sidebar_class_name: managerCorrelationRule keywords: ['cloud', 'rules', 'manager correlation'] description: This rule calculates a manager relationship between identities. -slug: /docs/rules/cloud-rules/manager-correlation-rule +slug: /extensibility/rules/cloud-rules/manager-correlation-rule tags: ['Rules'] --- @@ -24,7 +24,7 @@ The manager correlation rule runs before configured manager account correlation. ## Execution -- **Cloud Execution** - This rule executes in the IdentityNow cloud, and it has read-only access to IdentityNow data models, but it does not have access to on-premise sources or connectors. +- **Cloud Execution** - This rule executes in the Identity Security Cloud cloud, and it has read-only access to Identity Security Cloud data models, but it does not have access to on-premise sources or connectors. - **Logging** - Logging statements are currently only visible to SailPoint personnel. ![Rule Execution](../img/cloud_execution.png) @@ -34,7 +34,7 @@ The manager correlation rule runs before configured manager account correlation. | Argument | Type | Purpose | | --- | --- | --- | | log | org.apache.log4j.Logger | Logger to log statements. _Note: This executes in the cloud, and logging is currently not exposed to anyone other than SailPoint._ | -| idn | sailpoint.server.IdnRuleUtil | Provides a read-only starting point for using the SailPoint API. From this passed reference, the rule can interrogate the IdentityNow data model including identities or account information via helper methods as described in [IdnRuleUtil](../idn_rule_utility.md). | +| idn | sailpoint.server.IdnRuleUtil | Provides a read-only starting point for using the SailPoint API. From this passed reference, the rule can interrogate the Identity Security Cloud data model including identities or account information via helper methods as described in [IdnRuleUtil](../idn_rule_utility.md). | | link | sailpoint.object.Link | Read-only representation of account data that has been aggregated. Use this as a basis to determine manager linkages to a specific manager identity. | | managerAttributeValue | java.lang.Object | Attribute value stored in the manager attribute. | diff --git a/products/idn/docs/identity-now/rules/connector-rules/before_after_operation_rule.md b/docs/extensibility/rules/connector-rules/before_after_operation_rule.md similarity index 98% rename from products/idn/docs/identity-now/rules/connector-rules/before_after_operation_rule.md rename to docs/extensibility/rules/connector-rules/before_after_operation_rule.md index 97ada8755..2c8a235f7 100644 --- a/products/idn/docs/identity-now/rules/connector-rules/before_after_operation_rule.md +++ b/docs/extensibility/rules/connector-rules/before_after_operation_rule.md @@ -6,7 +6,7 @@ sidebar_label: Before and After Rule Operations sidebar_class_name: beforeAndAfterRuleOperations keywords: ['cloud', 'rules'] description: This rule executes PowerShell commands on the IQService component after a source account has an operation performed on it. -slug: /docs/rules/connector-rules/before-and-after-rule-operations +slug: /extensibility/rules/connector-rules/before-and-after-rule-operations tags: ['Rules'] --- @@ -44,7 +44,7 @@ The following operations can be performed on a source: ## Architecture Best Practices -For supportability, it is recommended that you write these operation rules with only the most basic logic necessary to trigger a PowerShell script and shift the bulk of the downstream events and/or modifications to the PowerShell script itself. This script would reside on the client's servers and can therefore be easily maintained or modified by the client as needed. It also allows the client to implement changes to the PowerShell scripted functionality without requiring code review by SailPoint because the code runs outside of the IdentityNow platform. +For supportability, it is recommended that you write these operation rules with only the most basic logic necessary to trigger a PowerShell script and shift the bulk of the downstream events and/or modifications to the PowerShell script itself. This script would reside on the client's servers and can therefore be easily maintained or modified by the client as needed. It also allows the client to implement changes to the PowerShell scripted functionality without requiring code review by SailPoint because the code runs outside of the Identity Security Cloud platform. ## Rule Template diff --git a/products/idn/docs/identity-now/rules/connector-rules/index.md b/docs/extensibility/rules/connector-rules/index.md similarity index 86% rename from products/idn/docs/identity-now/rules/connector-rules/index.md rename to docs/extensibility/rules/connector-rules/index.md index 907593333..0c07ca463 100644 --- a/products/idn/docs/identity-now/rules/connector-rules/index.md +++ b/docs/extensibility/rules/connector-rules/index.md @@ -7,13 +7,13 @@ sidebar_position: 3 sidebar_class_name: cloudExecutedRules keywords: ['connector', 'rules'] description: Overview of connector-executed rules. -slug: /docs/rules/connector-rules +slug: /extensibility/rules/connector-rules tags: ['Rules'] --- -**Connector-Executed Rules** or **Connector Rules** are rules that are executed in the IdentityNow virtual appliance, and they are usually extensions of the connector itself. The rules are commonly used to perform complex connector-related functions, so they are specific to only certain connectors. Because these rules execute in the virtual appliance, they do not have access to query the IdentityNow data model or fetch information from IdentityNow. They rely instead on contextual information sent from IdentityNow. Connector-executed rules may also have managed connections provided in their contexts to support querying end systems or sources. Though these managed connections may be used, making additional connections or call-outs is not allowed. +**Connector-Executed Rules** or **Connector Rules** are rules that are executed in the Identity Security Cloud virtual appliance, and they are usually extensions of the connector itself. The rules are commonly used to perform complex connector-related functions, so they are specific to only certain connectors. Because these rules execute in the virtual appliance, they do not have access to query the Identity Security Cloud data model or fetch information from Identity Security Cloud. They rely instead on contextual information sent from Identity Security Cloud. Connector-executed rules may also have managed connections provided in their contexts to support querying end systems or sources. Though these managed connections may be used, making additional connections or call-outs is not allowed. -Unlike cloud rules, connector rules do not have a rule review process and are directly editable with the [Connector Rule REST APIs](https://developer.sailpoint.com/idn/api/beta/connector-rule-management). For more details, see [Configuration Process](#configuration-process). +Unlike cloud rules, connector rules do not have a rule review process and are directly editable with the [Connector Rule REST APIs](https://developer.sailpoint.com/docs/api/beta/connector-rule-management). For more details, see [Configuration Process](#configuration-process). ## Supported Connector Rules @@ -35,16 +35,16 @@ Unlike cloud rules, connector rules do not have a rule review process and are di ## Configuration Process -Connector Rules are directly editable with the [Connector Rule REST APIs](https://developer.sailpoint.com/idn/api/beta/connector-rule-management), which provide ability to interact with rules directly. +Connector Rules are directly editable with the [Connector Rule REST APIs](https://developer.sailpoint.com/docs/api/beta/connector-rule-management), which provide ability to interact with rules directly. | Name | Path | | --- | --- | -| [List Connector Rules](/idn/api/beta/get-connector-rule-list) | `GET /beta/connector-rules/` | -| [Get Connector Rule](/idn/api/beta/get-connector-rule) | `GET /beta/connector-rules/{id}` | -| [Create Connector Rule](/idn/api/beta/create-connector-rule) | `POST /beta/connector-rules/` | -| [Update Connector Rule](/idn/api/beta/update-connector-rule) | `PUT /beta/connector-rules/{id}` | -| [Delete Connector Rule](/idn/api/beta/delete-connector-rule) | `DELETE /beta/connector-rules/{id}` | -| [Validate Connector Rule](/idn/api/beta/validate-connector-rule) | `POST /beta/connector-rules/validate` | +| [List Connector Rules](/docs/api/beta/get-connector-rule-list) | `GET /beta/connector-rules/` | +| [Get Connector Rule](/docs/api/beta/get-connector-rule) | `GET /beta/connector-rules/{id}` | +| [Create Connector Rule](/docs/api/beta/create-connector-rule) | `POST /beta/connector-rules/` | +| [Update Connector Rule](/docs/api/beta/update-connector-rule) | `PUT /beta/connector-rules/{id}` | +| [Delete Connector Rule](/docs/api/beta/delete-connector-rule) | `DELETE /beta/connector-rules/{id}` | +| [Validate Connector Rule](/docs/api/beta/validate-connector-rule) | `POST /beta/connector-rules/validate` | SailPoint architectural optimizations have added resiliency and protections against malformed or long-running rules. These APIs also offer built-in protection and checking against potentially harmful code. For more information, see [Rule Code Restrictions](../../rules/index.md#rule-code-restrictions). diff --git a/products/idn/docs/identity-now/rules/connector-rules/jdbc_build_map_rule.md b/docs/extensibility/rules/connector-rules/jdbc_build_map_rule.md similarity index 97% rename from products/idn/docs/identity-now/rules/connector-rules/jdbc_build_map_rule.md rename to docs/extensibility/rules/connector-rules/jdbc_build_map_rule.md index fa937030e..19b184a77 100644 --- a/products/idn/docs/identity-now/rules/connector-rules/jdbc_build_map_rule.md +++ b/docs/extensibility/rules/connector-rules/jdbc_build_map_rule.md @@ -6,7 +6,7 @@ sidebar_label: JDBC BuildMap Rule sidebar_class_name: jdbcBuildMapRule keywords: ['cloud', 'rules'] description: This rule manipulates raw input data provided by the rows and columns in a file and builds a map from the incoming data. -slug: /docs/rules/connector-rules/jdbc-buildmap-rule +slug: /extensibility/rules/connector-rules/jdbc-buildmap-rule tags: ['Rules'] --- diff --git a/products/idn/docs/identity-now/rules/connector-rules/jdbc_provision_rule.md b/docs/extensibility/rules/connector-rules/jdbc_provision_rule.md similarity index 99% rename from products/idn/docs/identity-now/rules/connector-rules/jdbc_provision_rule.md rename to docs/extensibility/rules/connector-rules/jdbc_provision_rule.md index 2019881c5..a197c199d 100644 --- a/products/idn/docs/identity-now/rules/connector-rules/jdbc_provision_rule.md +++ b/docs/extensibility/rules/connector-rules/jdbc_provision_rule.md @@ -6,7 +6,7 @@ sidebar_label: JDBC Provision Rule sidebar_class_name: jdbcProvisionRule keywords: ['cloud', 'rules', 'jdbc'] description: This rule performs provisioning actions from a provisioning plan provided by a supplied JDBC connection. These actions typically issue SQL commands, such as insert, update, select, and delete. -slug: /docs/rules/connector-rules/jdbc-provisioning-rule +slug: /extensibility/rules/connector-rules/jdbc-provisioning-rule tags: ['Rules'] --- diff --git a/products/idn/docs/identity-now/rules/connector-rules/sap_buildmap_rule.md b/docs/extensibility/rules/connector-rules/sap_buildmap_rule.md similarity index 98% rename from products/idn/docs/identity-now/rules/connector-rules/sap_buildmap_rule.md rename to docs/extensibility/rules/connector-rules/sap_buildmap_rule.md index 9ba5b7540..0890eed7c 100644 --- a/products/idn/docs/identity-now/rules/connector-rules/sap_buildmap_rule.md +++ b/docs/extensibility/rules/connector-rules/sap_buildmap_rule.md @@ -6,7 +6,7 @@ sidebar_label: SAP BuildMap Rule sidebar_class_name: sapBuildMapRule keywords: ['cloud', 'rules', 'sap'] description: This rule gathers additional attributes from SAP systems to build accounts. This rule is implemented using SAP's Java Connector (JCo) framework provided by a supplied SAP connection. -slug: /docs/rules/connector-rules/sap-buildmap-rule +slug: /extensibility/rules/connector-rules/sap-buildmap-rule tags: ['Rules'] --- diff --git a/products/idn/docs/identity-now/rules/connector-rules/sap_hr_provisioning_modify_rule.md b/docs/extensibility/rules/connector-rules/sap_hr_provisioning_modify_rule.md similarity index 99% rename from products/idn/docs/identity-now/rules/connector-rules/sap_hr_provisioning_modify_rule.md rename to docs/extensibility/rules/connector-rules/sap_hr_provisioning_modify_rule.md index 2fe909fad..b40d4b48e 100644 --- a/products/idn/docs/identity-now/rules/connector-rules/sap_hr_provisioning_modify_rule.md +++ b/docs/extensibility/rules/connector-rules/sap_hr_provisioning_modify_rule.md @@ -6,7 +6,7 @@ sidebar_label: SAP HR Provisioning Modify Rule sidebar_class_name: sapHRProvisioningModifyRule keywords: ['cloud', 'rules', 'sap'] description: This rule performs SAP HR modification operations during provisioning. This rule is typically used for attribute sync to custom SAP HR attributes. -slug: /docs/rules/connector-rules/sap-provisioning-modify-rule +slug: /extensibility/rules/connector-rules/sap-provisioning-modify-rule tags: ['Rules'] --- diff --git a/products/idn/docs/identity-now/rules/connector-rules/web_services_after_operation_rule.md b/docs/extensibility/rules/connector-rules/web_services_after_operation_rule.md similarity index 98% rename from products/idn/docs/identity-now/rules/connector-rules/web_services_after_operation_rule.md rename to docs/extensibility/rules/connector-rules/web_services_after_operation_rule.md index 8c2f19ca1..f40c05dc1 100644 --- a/products/idn/docs/identity-now/rules/connector-rules/web_services_after_operation_rule.md +++ b/docs/extensibility/rules/connector-rules/web_services_after_operation_rule.md @@ -6,7 +6,7 @@ sidebar_label: Web Services After Operation Rule sidebar_class_name: webServicesAfterOperationRule keywords: ['cloud', 'rules', 'webservices'] description: This rule calculates attributes after a web-service operation call. -slug: /docs/rules/connector-rules/webservices-after-provisioning-rule +slug: /extensibility/rules/connector-rules/webservices-after-provisioning-rule tags: ['Rules'] --- diff --git a/products/idn/docs/identity-now/rules/connector-rules/web_services_before_operation_rule.md b/docs/extensibility/rules/connector-rules/web_services_before_operation_rule.md similarity index 98% rename from products/idn/docs/identity-now/rules/connector-rules/web_services_before_operation_rule.md rename to docs/extensibility/rules/connector-rules/web_services_before_operation_rule.md index 9f2f2622a..e1c0651bd 100644 --- a/products/idn/docs/identity-now/rules/connector-rules/web_services_before_operation_rule.md +++ b/docs/extensibility/rules/connector-rules/web_services_before_operation_rule.md @@ -6,7 +6,7 @@ sidebar_label: Web Services Before Operation Rule sidebar_class_name: webServicesBeforeOperationRule keywords: ['cloud', 'rules', 'webservices'] description: This rule calculates attributes before a web-service operation call. -slug: /docs/rules/connector-rules/webservices-before-provisioning-rule +slug: /extensibility/rules/connector-rules/webservices-before-provisioning-rule tags: ['Rules'] --- diff --git a/products/idn/docs/identity-now/rules/guides/img/account-create.png b/docs/extensibility/rules/guides/img/account-create.png similarity index 100% rename from products/idn/docs/identity-now/rules/guides/img/account-create.png rename to docs/extensibility/rules/guides/img/account-create.png diff --git a/products/idn/docs/identity-now/rules/guides/index.md b/docs/extensibility/rules/guides/index.md similarity index 93% rename from products/idn/docs/identity-now/rules/guides/index.md rename to docs/extensibility/rules/guides/index.md index fbe78d20e..5e1d9bca2 100644 --- a/products/idn/docs/identity-now/rules/guides/index.md +++ b/docs/extensibility/rules/guides/index.md @@ -7,7 +7,7 @@ sidebar_position: 1 sidebar_class_name: Rules keywords: ['rules', 'guides'] description: Rule Guides -slug: /docs/rules/guides +slug: /extensibility/rules/guides tags: ['Rules', 'Guides'] --- diff --git a/products/idn/docs/identity-now/rules/guides/your_first_rule.md b/docs/extensibility/rules/guides/your_first_rule.md similarity index 97% rename from products/idn/docs/identity-now/rules/guides/your_first_rule.md rename to docs/extensibility/rules/guides/your_first_rule.md index 888700355..fb8bd7b06 100644 --- a/products/idn/docs/identity-now/rules/guides/your_first_rule.md +++ b/docs/extensibility/rules/guides/your_first_rule.md @@ -7,7 +7,7 @@ sidebar_class_name: yourFirstRule keywords: ['rules', 'guides', 'first'] description: Learn to build your first rule! sidebar_position: 1 -slug: /docs/rules/guides/your-first-rule +slug: /extensibility/rules/guides/your-first-rule tags: ['Rules', 'Guides', 'First'] --- @@ -25,7 +25,7 @@ In this guide you'll learn the end to end process of writing a cloud rule to gen This rule generates complex account attribute values during provisioning, e.g. when creating an account. You would typically use this rule when you are creating an account to generate attributes like usernames. -This rule executes in the IdentityNow (IDN) cloud, and it has read-only access to IDN data models, but it doesn't have access to on-premise sources or connectors. +This rule executes in the Identity Security Cloud (ISC) cloud, and it has read-only access to ISC data models, but it doesn't have access to on-premise sources or connectors. Refer to [Attribute Generator Rule](../cloud-rules/account_profile_attribute_generator.md) to learn more about the inputs available to you during the rule execution. @@ -105,7 +105,7 @@ flowchart TD ## Write the Rule -Create a new xml file with this naming scheme [rule file naming](/idn/docs/rules/cloud-rules#review-guidelines). +Create a new xml file with this naming scheme [rule file naming](/docs/extensibility/rules/cloud-rules#review-guidelines). Open that file in your preferred editor. @@ -209,7 +209,7 @@ Add a description and the necessary imports for your rule. This rule will need ` ### Logic if the Proposed Username Exceeds the Max Length -If the full name exceeds the `MAX_USERNAME_LENGTH` the rule will check whether the length of the first name is greater than the MAX_USERNAME_LENGTH minus 2 (in the case below 10) characters of the first name - this allows for the period `.` and the first character of the last name to take up the remaining two characters. If the first name is less than the `MAX_USERNAME_LENGTH` the rule will use the full first name for the username with the period `.` and the first character of the last name appended. After the username is determined, a call to `isUnique( username )` is made. This uses the IDNRuleUtil class to check Active Directory if the username exists. You will add in that function shortly. +If the full name exceeds the `MAX_USERNAME_LENGTH` the rule will check whether the length of the first name is greater than the MAX_USERNAME_LENGTH minus 2 (in the case below 10) characters of the first name - this allows for the period `.` and the first character of the last name to take up the remaining two characters. If the first name is less than the `MAX_USERNAME_LENGTH` the rule will use the full first name for the username with the period `.` and the first character of the last name appended. After the username is determined, a call to `isUnique( username )` is made. This uses the ISCRuleUtil class to check Active Directory if the username exists. You will add in that function shortly. ```java if(fullName.length() > MAX_USERNAME_LENGTH) { @@ -280,7 +280,7 @@ else{ ### Add Function `isUnique()` To Check Active Directory for Username -The `isUnique()` function takes the username as a string and uses the `accountExistsByDisplayName()` function from the IDNRuleUtil class to search Active Directory and return a true or false result, depending on whether the username is taken. The function takes an application name and username to test against. The variables `idn` and `application` are included as inputs to the attribute generator rule and are already initialized. Refer to [inputs](../cloud-rules/account_profile_attribute_generator.md#input) to see all inputs available to attribute generator rules. +The `isUnique()` function takes the username as a string and uses the `accountExistsByDisplayName()` function from the ISCRuleUtil class to search Active Directory and return a true or false result, depending on whether the username is taken. The function takes an application name and username to test against. The variables `idn` and `application` are included as inputs to the attribute generator rule and are already initialized. Refer to [inputs](../cloud-rules/account_profile_attribute_generator.md#input) to see all inputs available to attribute generator rules. ```java public boolean isUnique ( String username ) throws GeneralException { @@ -428,7 +428,7 @@ return generateUsername( identity.getFirstname(), identity.getLastname() ); Before you send the rule to the professional services team to upload your rule to your tenant for use, you can send it through the rule validator to check for any errors. -Refer to [Rule Validator](https://community.sailpoint.com/t5/Professional-Services/IdentityNow-Rule-Validator/ta-p/166116) for installation. +Refer to [Rule Validator](https://community.sailpoint.com/t5/Professional-Services/Identity Security Cloud-Rule-Validator/ta-p/166116) for installation. Run the rule validator against your newly written rule. @@ -488,7 +488,7 @@ To submit your Cloud Rule for review, approval, and inclusion in the SailPoint p ## Add Rule To Account Creation -Log into your IDN tenant and navigate to **Admin** -> **Connections** -> **Sources** -> **{Source Name}** -> **Accounts** -> **Create Account**. Scroll to the attribute you wish to use the rule for generating the username. Check the generator radio button and pick your new rule from the drop down. +Log into your ISC tenant and navigate to **Admin** -> **Connections** -> **Sources** -> **{Source Name}** -> **Accounts** -> **Create Account**. Scroll to the attribute you wish to use the rule for generating the username. Check the generator radio button and pick your new rule from the drop down. ![Account Create](./img/account-create.png) diff --git a/products/idn/docs/identity-now/rules/idn_rule_utility.md b/docs/extensibility/rules/idn_rule_utility.md similarity index 93% rename from products/idn/docs/identity-now/rules/idn_rule_utility.md rename to docs/extensibility/rules/idn_rule_utility.md index c4489ca68..62af2606f 100644 --- a/products/idn/docs/identity-now/rules/idn_rule_utility.md +++ b/docs/extensibility/rules/idn_rule_utility.md @@ -1,31 +1,31 @@ --- id: rule-utility -title: Using IDNRuleUtil as a Wrapper for Common Rule Operations -pagination_label: IdentityNow Rule Utility -sidebar_label: IdentityNow Rule Utility +title: Using ISCRuleUtil as a Wrapper for Common Rule Operations +pagination_label: Identity Security Cloud Rule Utility +sidebar_label: Identity Security Cloud Rule Utility sidebar_position: 4 sidebar_class_name: ruleUtility keywords: ['rule', 'utility'] -description: Using IDNRuleUtil as a Wrapper for Common Rule Operations -slug: /docs/rules/rule-utility +description: Using ISCRuleUtil as a Wrapper for Common Rule Operations +slug: /extensibility/rules/rule-utility tags: ['Rules'] --- ## Overview -Use this guide to learn how to configure searchable account attributes within IdentityNow and then leverage them within the IDNRuleUtil wrapper class when searching accounts for attributes such as uniqueness checks. There are also methods in the IDNRuleUtil wrapper class you can use without the additional searchable attributes. +Use this guide to learn how to configure searchable account attributes within Identity Security Cloud and then leverage them within the ISCRuleUtil wrapper class when searching accounts for attributes such as uniqueness checks. There are also methods in the ISCRuleUtil wrapper class you can use without the additional searchable attributes. -Search attributes allow you to search across accounts and sources to determine whether a specific attribute value is being used in your IdentityNow environment. +Search attributes allow you to search across accounts and sources to determine whether a specific attribute value is being used in your Identity Security Cloud environment. There are three critical components involves with working with searchable attributes: -- [Configuration of search attributes within IdentityNow](#configuration-of-search-attributes-within-identitynow) +- [Configuration of search attributes within Identity Security Cloud](#configuration-of-search-attributes-within-identitynow) - Seed data for accounts already aggregated into the system. - Ensure attribute promotion happens for new/changed accounts that are aggregated. - [Create rules that can be used to query the newly created attribute values](#create-rules-that-can-be-used-to-query-the-newly-created-attribute-values) - [Implement rules within the Create Profile section of each source an account is being provisioned for](#implement-rules-within-the-create-profile-section-of-each-source-for-which-an-account-is-being-provisioned) -## Configuration of Search Attributes within IdentityNow +## Configuration of Search Attributes within Identity Security Cloud When you are planning to implement search attributes, it is important that you consider the way new accounts' values will be generated and which attributes should be used as references. @@ -39,9 +39,9 @@ You need the following information to create search attributes: - Display name for the new attribute configuration. -The following example shows how to create a new attribute with the [Search Attributes API](/idn/api/beta/create-search-attribute-config): +The following example shows how to create a new attribute with the [Search Attributes API](/docs/api/beta/create-search-attribute-config): -Your company has two sources. The first is Active Directory, and the second is Workday. When the system aggregates new accounts, the company wants to query IdentityNow to see whether an email address already exists. If the email address is not in use, you can assign it to the new account. If it is in use, you can iterate on the email address value (add a 1 for example). You can then query IdentityNow once more to see whether your incremented email address is in use. You can repeat this procedure until you have determined that an email address is unique. +Your company has two sources. The first is Active Directory, and the second is Workday. When the system aggregates new accounts, the company wants to query Identity Security Cloud to see whether an email address already exists. If the email address is not in use, you can assign it to the new account. If it is in use, you can iterate on the email address value (add a 1 for example). You can then query Identity Security Cloud once more to see whether your incremented email address is in use. You can repeat this procedure until you have determined that an email address is unique. The following information is necessary to create your search attribute: @@ -62,9 +62,9 @@ The following information is necessary to create your search attribute: - Display name for the new attribute configuration: - `Promoted Email Address` -### Create the New Search Attribute in IdentityNow +### Create the New Search Attribute in Identity Security Cloud -To call the APIs for search attributes, you need a personal access token and the name of your tenant to provide with the request. To retrieve a personal access token, see [Personal Access Tokens](../../../api/authentication.md#personal-access-tokens). To get the name of your tenant, see [Finding Your Organization Tenant Name](../../../api/getting-started.md#find-your-tenant-name) +To call the APIs for search attributes, you need a personal access token and the name of your tenant to provide with the request. To retrieve a personal access token, see [Personal Access Tokens](../../api/authentication.md#personal-access-tokens). To get the name of your tenant, see [Finding Your Organization Tenant Name](../../api/getting-started.md#find-your-tenant-name) Doing so creates an account search configuration for the two sources/attributes specified. All new/changed accounts that are aggregated have this new attribute(“promotedEmailAddress”) created in the account schema and the value of the attribute(“mail” or “emailAddress”), depending on the source, is promoted to that new attribute. @@ -91,7 +91,7 @@ Aggregation only processes new and/or changed accounts for many sources. If an a If this source has already been aggregated before the account search configuration was created, a non-optimized aggregation must now be performed to seed the new attribute data for all existing accounts. -At this point, the configuration exists to promote attributes on any new/changed account that comes into IdentityNow. These attributes and their associated values are stored for use in custom rules. Each account that exists on either of these sources will now have a new attribute called “promotedEmailAddress”. _The value of this attribute will be the value of `mail` if it is the Active Directory Source or `emailAddress` if it is the Workday source._ +At this point, the configuration exists to promote attributes on any new/changed account that comes into Identity Security Cloud. These attributes and their associated values are stored for use in custom rules. Each account that exists on either of these sources will now have a new attribute called “promotedEmailAddress”. _The value of this attribute will be the value of `mail` if it is the Active Directory Source or `emailAddress` if it is the Workday source._ ## Create Rules that Can Be Used to Query the Newly Created Attribute values diff --git a/products/idn/docs/identity-now/rules/img/cloud_execution.png b/docs/extensibility/rules/img/cloud_execution.png similarity index 100% rename from products/idn/docs/identity-now/rules/img/cloud_execution.png rename to docs/extensibility/rules/img/cloud_execution.png diff --git a/products/idn/docs/identity-now/rules/img/connector_execution.png b/docs/extensibility/rules/img/connector_execution.png similarity index 100% rename from products/idn/docs/identity-now/rules/img/connector_execution.png rename to docs/extensibility/rules/img/connector_execution.png diff --git a/products/idn/docs/identity-now/rules/img/rule_execution.png b/docs/extensibility/rules/img/rule_execution.png similarity index 100% rename from products/idn/docs/identity-now/rules/img/rule_execution.png rename to docs/extensibility/rules/img/rule_execution.png diff --git a/products/idn/docs/identity-now/rules/index.md b/docs/extensibility/rules/index.md similarity index 84% rename from products/idn/docs/identity-now/rules/index.md rename to docs/extensibility/rules/index.md index 010d01bbe..791396ec8 100644 --- a/products/idn/docs/identity-now/rules/index.md +++ b/docs/extensibility/rules/index.md @@ -6,8 +6,8 @@ sidebar_label: Rules sidebar_position: 2 sidebar_class_name: rules keywords: ['rules'] -description: Documentation for rule development in IdentityNow. -slug: /docs/rules +description: Advanced configurations with custom logic. +slug: /extensibility/rules tags: ['Rules'] --- @@ -17,40 +17,40 @@ In SailPoint solutions, rules serve as a flexible configuration framework implem ## Java Beanshell -Rules in IdentityNow are written in Java Beanshell, a lightweight scripting language that allows you to define custom logic and behavior within the rules. Java Beanshell provides a familiar syntax similar to Java, making it easier for implementers to create and maintain rule configurations. +Rules in Identity Security Cloud are written in Java Beanshell, a lightweight scripting language that allows you to define custom logic and behavior within the rules. Java Beanshell provides a familiar syntax similar to Java, making it easier for implementers to create and maintain rule configurations. For more information about Java Beanshell, you can refer to the [Java Beanshell Documentation](https://github.com/beanshell/beanshell/wiki). ## Rule Execution -IdentityNow (IDN) is a multi-tenant cloud solution, and its architecture varies differently from other SailPoint products like IdentityIQ (IIQ). Therefore, the way rules execute within IDN reflects the architectural design considerations the platform was built on. These considerations determine the rule's limitations. +Identity Security Cloud (ISC) is a multi-tenant cloud solution, and its architecture varies differently from other SailPoint products like IdentityIQ (IIQ). Therefore, the way rules execute within ISC reflects the architectural design considerations the platform was built on. These considerations determine the rule's limitations. There are two primary places where you can execute rules: -- **Cloud Execution** - These rules are executed in the IDN multi-tenant cloud. -- **Connector Execution** - These rules are executed on the on-premise IDN virtual appliance. +- **Cloud Execution** - These rules are executed in the ISC multi-tenant cloud. +- **Connector Execution** - These rules are executed on the on-premise ISC virtual appliance. ![Rule Execution](./img/rule_execution.png) -**Cloud-Executed Rules** or **Cloud Rules** typically only perform a specific function, such as calculating attribute values. Many of these rules may be able to query the IDN data-model in a read-only fashion, but they do not have the ability to commit transactions, save objects, etc. +**Cloud-Executed Rules** or **Cloud Rules** typically only perform a specific function, such as calculating attribute values. Many of these rules may be able to query the ISC data-model in a read-only fashion, but they do not have the ability to commit transactions, save objects, etc. Because these rules execute in a multi-tenant cloud environment, they have a restricted context, and they are closely scrutinized to ensure that they execute in an efficient and secure manner. For more details, see [Cloud Rules](./cloud-rules/index.md). -**Connector-Executed Rules** or **Connector Rules** are rules executed in the IDN virtual appliance, and they are often an extension connector itself. The rules are commonly used for performing complex connector-related functions, so they are specific to only certain connectors. Because these rules execute in the virtual appliance, they do not have access to query the IDN data model or fetch information from IDN. They rely instead on contextual information sent from IDN. Connector-executed rules may also have managed connections supplied in their contexts to support querying end systems or sources. Though you may use these managed connections, you cannot make making additional connections or call-outs. +**Connector-Executed Rules** or **Connector Rules** are rules executed in the ISC virtual appliance, and they are often an extension connector itself. The rules are commonly used for performing complex connector-related functions, so they are specific to only certain connectors. Because these rules execute in the virtual appliance, they do not have access to query the ISC data model or fetch information from ISC. They rely instead on contextual information sent from ISC. Connector-executed rules may also have managed connections supplied in their contexts to support querying end systems or sources. Though you may use these managed connections, you cannot make making additional connections or call-outs. For more details, see the [Connector Rules](./connector-rules/index.md). ## Support Considerations -Though IDN shares some common functionality with other SailPoint products like IIQ, the same rules are not necessarily supported, nor do they necessarily execute the same way or with the same context and variables. SailPoint recommends that you become familiar with which rules execute with which products, as well as the nuances in their execution contexts. +Though ISC shares some common functionality with other SailPoint products like IIQ, the same rules are not necessarily supported, nor do they necessarily execute the same way or with the same context and variables. SailPoint recommends that you become familiar with which rules execute with which products, as well as the nuances in their execution contexts. -From a SailPoint support perspective, rules are considered configurations. SailPoint supports the underlying platform but not the rule configurations themselves. Any problems with the way rules are implemented or run over time are the responsibilities the customer or implementer must manage. SailPoint's IDN Expert Services need hours to cover any rule configuration work (e.g., creating rules, best practices reviews, application to your IDN environment, and promotion between sandbox & prod environments). Contact your Customer Success Manager with any questions. While rules allow some advanced flexibility, you must consider these support implications when you are deciding whether to implement rules. Consider rule usage a last resort, and use IdentityNow features instead whenever you can. +From a SailPoint support perspective, rules are considered configurations. SailPoint supports the underlying platform but not the rule configurations themselves. Any problems with the way rules are implemented or run over time are the responsibilities the customer or implementer must manage. SailPoint's ISC Expert Services need hours to cover any rule configuration work (e.g., creating rules, best practices reviews, application to your ISC environment, and promotion between sandbox & prod environments). Contact your Customer Success Manager with any questions. While rules allow some advanced flexibility, you must consider these support implications when you are deciding whether to implement rules. Consider rule usage a last resort, and use Identity Security Cloud features instead whenever you can. ## Best Practices for Rule deployments -SailPoint IDN deployments often require the deployment of rules to the client’s IDN tenants. Because IDN is a multi-tenant solution, rules that are poorly written can have negative performance implications on other tenants in the same cloud. As such, SailPoint requires all rules to be reviewed prior to deployment. The time to complete these reviews requires an expert services contract to leverage billable hours. +SailPoint ISC deployments often require the deployment of rules to the client’s ISC tenants. Because ISC is a multi-tenant solution, rules that are poorly written can have negative performance implications on other tenants in the same cloud. As such, SailPoint requires all rules to be reviewed prior to deployment. The time to complete these reviews requires an expert services contract to leverage billable hours. This article covers common topics around this process including best practices, rule review expectations, and more. @@ -76,11 +76,11 @@ In the case of rejection, we recommend submitting a new ticket to avoid a scenar ## Promote Rules from Sandbox to Production -A rule that has been approved in a sandbox tenant through the SailPoint rule review process, like an IdentityAttribute, Correlation or ManagerCorrelation rule or any other rule type, for example, can be migrated to the production IDN tenant. +A rule that has been approved in a sandbox tenant through the SailPoint rule review process, like an IdentityAttribute, Correlation or ManagerCorrelation rule or any other rule type, for example, can be migrated to the production ISC tenant. This applies to all rule types, as the signature has been approved/verified during the SailPoint rule review process, the sp-config API allows you to import ANY ‘approved’ tenant rules. (this includes cloud rules!) -For more details on the sp-config API see [sp-config](/idn/api/beta/export-sp-config) +For more details on the sp-config API see [sp-config](/docs/api/beta/export-sp-config) ## Rule Guidelines @@ -198,7 +198,7 @@ Log4j Logger.getLogger​ ``` -Note that the earlier code fragments are not allowed within [connector-executed rules](./connector-rules/index.md#supported-connector-rules) because they are not valid at the connector level. They will, for a short time, still be allowed for pre-existing [cloud-executed rules](./cloud-rules/index.md) as a review exception. However, any new rules using these constructs will be returned to the submitter, and the submitter will be asked to rewrite the rule, using the [IDN Rule Utility](./idn_rule_utility.md) helper methods instead: +Note that the earlier code fragments are not allowed within [connector-executed rules](./connector-rules/index.md#supported-connector-rules) because they are not valid at the connector level. They will, for a short time, still be allowed for pre-existing [cloud-executed rules](./cloud-rules/index.md) as a review exception. However, any new rules using these constructs will be returned to the submitter, and the submitter will be asked to rewrite the rule, using the [ISC Rule Utility](./idn_rule_utility.md) helper methods instead: - context - .getObjectById() @@ -209,11 +209,11 @@ Note that the earlier code fragments are not allowed within [connector-executed ## Other Rules -While IDN shares some common functionality with other SailPoint products like IIQ, the same rules are not necessarily supported, nor do they necessarily execute the same way. SailPoint recommends that you become familiar with which rules execute with which products, as well as the nuances in their execution contexts. IDN considers any other rules not mentioned in the Cloud-Executed Rules or Connector-Executed Rules sections to be unsupported. +While ISC shares some common functionality with other SailPoint products like IIQ, the same rules are not necessarily supported, nor do they necessarily execute the same way. SailPoint recommends that you become familiar with which rules execute with which products, as well as the nuances in their execution contexts. ISC considers any other rules not mentioned in the Cloud-Executed Rules or Connector-Executed Rules sections to be unsupported. ## Deprecated Rules -The following rules have been deprecated in IDN. SailPoint recommends using supported product functionality instead of these rules: +The following rules have been deprecated in ISC. SailPoint recommends using supported product functionality instead of these rules: - **Certification Exclusion Rules** - Use configurable certification campaign filters instead. - **Identity Selector Rules** - Use role standard assignment criteria instead. diff --git a/products/idn/docs/identity-now/rules/rule-java-docs/index.mdx b/docs/extensibility/rules/rule-java-docs/index.mdx similarity index 91% rename from products/idn/docs/identity-now/rules/rule-java-docs/index.mdx rename to docs/extensibility/rules/rule-java-docs/index.mdx index 83abaa998..7f45e331c 100644 --- a/products/idn/docs/identity-now/rules/rule-java-docs/index.mdx +++ b/docs/extensibility/rules/rule-java-docs/index.mdx @@ -7,7 +7,7 @@ sidebar_position: 6 sidebar_class_name: ruleJavaDocs keywords: ['rules', 'java', 'docs'] description: Documentation for rule development in IdentityNow. -slug: /docs/rules/java-docs +slug: /extensibility/rules/java-docs tags: ['Rules', 'Java', 'Docs'] --- diff --git a/docs/extensibility/transforms/_category_.json b/docs/extensibility/transforms/_category_.json new file mode 100644 index 000000000..17d3fb707 --- /dev/null +++ b/docs/extensibility/transforms/_category_.json @@ -0,0 +1,5 @@ +{ + "customProps": { + "description": "Modify attribute data without code." + } +} \ No newline at end of file diff --git a/products/idn/docs/identity-now/transforms/guides/identity-context.md b/docs/extensibility/transforms/guides/identity-context.md similarity index 96% rename from products/idn/docs/identity-now/transforms/guides/identity-context.md rename to docs/extensibility/transforms/guides/identity-context.md index dff00cec2..6e0a4dc7a 100644 --- a/products/idn/docs/identity-now/transforms/guides/identity-context.md +++ b/docs/extensibility/transforms/guides/identity-context.md @@ -7,7 +7,7 @@ sidebar_class_name: identityContextTransform keywords: ['transforms', 'guides', 'nested', 'lifecycle'] description: Examples on how you might use the identity attribute context. sidebar_position: 5 -slug: /docs/transforms/guides/identity-context-examples +slug: /extensibility/transforms/guides/identity-context-examples tags: ['Transforms', 'Guides', 'identity'] --- @@ -23,7 +23,7 @@ The following variables are available to the Apache Velocity template engine whe | attributeDefinition | sailpoint.object.ObjectAttribute | This is the definition of the attribute being promoted. | | oldValue | Object | This is the attribute's previous value. | -For available methods on these objects see our [Rules Java Docs](https://developer.sailpoint.com/idn/docs/rules/java-docs). +For available methods on these objects see our [Rules Java Docs](https://developer.sailpoint.com/docs/extensibility/rules/java-docs). ## Examples diff --git a/products/idn/docs/identity-now/transforms/guides/img/account_schema.png b/docs/extensibility/transforms/guides/img/account_schema.png similarity index 100% rename from products/idn/docs/identity-now/transforms/guides/img/account_schema.png rename to docs/extensibility/transforms/guides/img/account_schema.png diff --git a/products/idn/docs/identity-now/transforms/guides/img/account_summary.png b/docs/extensibility/transforms/guides/img/account_summary.png similarity index 100% rename from products/idn/docs/identity-now/transforms/guides/img/account_summary.png rename to docs/extensibility/transforms/guides/img/account_summary.png diff --git a/products/idn/docs/identity-now/transforms/guides/img/create_source.png b/docs/extensibility/transforms/guides/img/create_source.png similarity index 100% rename from products/idn/docs/identity-now/transforms/guides/img/create_source.png rename to docs/extensibility/transforms/guides/img/create_source.png diff --git a/products/idn/docs/identity-now/transforms/guides/img/identity_profile.png b/docs/extensibility/transforms/guides/img/identity_profile.png similarity index 100% rename from products/idn/docs/identity-now/transforms/guides/img/identity_profile.png rename to docs/extensibility/transforms/guides/img/identity_profile.png diff --git a/products/idn/docs/identity-now/transforms/guides/img/mappings_tab.png b/docs/extensibility/transforms/guides/img/mappings_tab.png similarity index 100% rename from products/idn/docs/identity-now/transforms/guides/img/mappings_tab.png rename to docs/extensibility/transforms/guides/img/mappings_tab.png diff --git a/products/idn/docs/identity-now/transforms/guides/img/temporary_password_attribute_mapping.png b/docs/extensibility/transforms/guides/img/temporary_password_attribute_mapping.png similarity index 100% rename from products/idn/docs/identity-now/transforms/guides/img/temporary_password_attribute_mapping.png rename to docs/extensibility/transforms/guides/img/temporary_password_attribute_mapping.png diff --git a/products/idn/docs/identity-now/transforms/guides/index.md b/docs/extensibility/transforms/guides/index.md similarity index 93% rename from products/idn/docs/identity-now/transforms/guides/index.md rename to docs/extensibility/transforms/guides/index.md index d72b6db49..ec6dab248 100644 --- a/products/idn/docs/identity-now/transforms/guides/index.md +++ b/docs/extensibility/transforms/guides/index.md @@ -6,7 +6,7 @@ sidebar_label: Guides sidebar_class_name: transforms keywords: ['transforms', 'guides'] description: Transform Guides -slug: /docs/transforms/guides +slug: /extensibility/transforms/guides tags: ['Transforms', 'Guides'] --- diff --git a/products/idn/docs/identity-now/transforms/guides/lifecycle-state-transforms.md b/docs/extensibility/transforms/guides/lifecycle-state-transforms.md similarity index 98% rename from products/idn/docs/identity-now/transforms/guides/lifecycle-state-transforms.md rename to docs/extensibility/transforms/guides/lifecycle-state-transforms.md index 72ba74957..d5739a089 100644 --- a/products/idn/docs/identity-now/transforms/guides/lifecycle-state-transforms.md +++ b/docs/extensibility/transforms/guides/lifecycle-state-transforms.md @@ -7,7 +7,7 @@ sidebar_class_name: lifecycleStateTransform keywords: ['transforms', 'guides', 'nested', 'lifecycle'] description: Learn how to build a lifecycle state transform. sidebar_position: 4 -slug: /docs/transforms/guides/lifecycle-state-transform +slug: /extensibility/transforms/guides/lifecycle-state-transform tags: ['Transforms', 'Guides', 'Lifecycle'] --- @@ -15,7 +15,7 @@ tags: ['Transforms', 'Guides', 'Lifecycle'] In this guide, you will walk through a lifecycle state transform that requires you to nest multiple transforms together to achieve your desired result. -A lifecycle state is a status an identity can be in, such as `active`, `inactive` and `terminated`, for example. You can then use this lifecycle state in IdentityNow to determine an identity's access. +A lifecycle state is a status an identity can be in, such as `active`, `inactive` and `terminated`, for example. You can then use this lifecycle state in Identity Security Cloud to determine an identity's access. ## Determine lifecycle state from end date attribute diff --git a/products/idn/docs/identity-now/transforms/guides/provisioning-policy-transform.md b/docs/extensibility/transforms/guides/provisioning-policy-transform.md similarity index 89% rename from products/idn/docs/identity-now/transforms/guides/provisioning-policy-transform.md rename to docs/extensibility/transforms/guides/provisioning-policy-transform.md index b04033b68..71b88e8d6 100644 --- a/products/idn/docs/identity-now/transforms/guides/provisioning-policy-transform.md +++ b/docs/extensibility/transforms/guides/provisioning-policy-transform.md @@ -7,19 +7,19 @@ sidebar_class_name: transformsInProvisioningPolicies keywords: ['transforms', 'guides', 'provisioning', 'policies'] description: Learn how to use transforms in your provisioning policies! sidebar_position: 3 -slug: /docs/transforms/guides/transforms-in-provisioning-policies +slug: /extensibility/transforms/guides/transforms-in-provisioning-policies tags: ['Transforms', 'Guides', 'Provisioning', 'Policies'] --- ## Overview -In this guide, you will learn how to use [IdentityNow's Transforms](/idn/api/v3/transforms) in a provisioning policy for a source. This can be useful if you need to hide the attribute in your identity attribute list but still need the attribute during provisioning. +In this guide, you will learn how to use [Identity Security Cloud's Transforms](/docs/api/v3/transforms) in a provisioning policy for a source. This can be useful if you need to hide the attribute in your identity attribute list but still need the attribute during provisioning. ## Create provisioning policy Use the Create provisioning policy for new users who have been granted access to a source and need to be provisioned on that source. You can define the custom attributes you want to create during the provisioning process. You can use transforms to modify the data before sending it to the source. -First, call the [Get Provisioning Policy API](/idn/api/v3/get-provisioning-policy) for the source you want to add your transform to. +First, call the [Get Provisioning Policy API](/docs/api/v3/get-provisioning-policy) for the source you want to add your transform to. This is an example create provisioning policy response for a source: @@ -195,7 +195,7 @@ If you assume the given attributes have the following values, this transform wou ## Add the transform to your existing policy -Upload your complete CREATE provisioning policy by using the [Create Provisioning Policy API](/idn/api/v3/create-provisioning-policy), or use the [Update Provisioning Policy API](/idn/api/v3/put-provisioning-policy) to update an existing provisioning policy. +Upload your complete CREATE provisioning policy by using the [Create Provisioning Policy API](/docs/api/v3/create-provisioning-policy), or use the [Update Provisioning Policy API](/docs/api/v3/put-provisioning-policy) to update an existing provisioning policy. This is the example response with the full policy, along with the new attribute: @@ -352,4 +352,4 @@ This is the example response with the full policy, along with the new attribute: ## Next Steps -For more information on all available transforms, refer to [Transform Operations](/idn/docs/transforms/operations). If you're having trouble creating your transform in provisioning policies, reach out with your question in the [Developer Community Forum](https://developer.sailpoint.com/discuss/)! +For more information on all available transforms, refer to [Transform Operations](/docs/extensibility/transforms/operations). If you're having trouble creating your transform in provisioning policies, reach out with your question in the [Developer Community Forum](https://developer.sailpoint.com/discuss/)! diff --git a/products/idn/docs/identity-now/transforms/guides/temporary-password.md b/docs/extensibility/transforms/guides/temporary-password.md similarity index 93% rename from products/idn/docs/identity-now/transforms/guides/temporary-password.md rename to docs/extensibility/transforms/guides/temporary-password.md index 6117d811d..d3702b4bb 100644 --- a/products/idn/docs/identity-now/transforms/guides/temporary-password.md +++ b/docs/extensibility/transforms/guides/temporary-password.md @@ -7,7 +7,7 @@ sidebar_class_name: generateTemporaryPassword keywords: ['transforms', 'guides', 'password'] description: Generate a temporary password for all users. sidebar_position: 2 -slug: /docs/transforms/guides/temporary-password +slug: /extensibility/transforms/guides/temporary-password tags: ['Transforms', 'Guides', 'Password'] --- @@ -129,7 +129,7 @@ The first part of the password is the user's first intitial in lowercase. You ca ### The User's Last Name Comes Next with the First Character in Uppercase -Adding to the transform, you can create a variable for the first character of the last name. You can do so by using the [substring operation](/idn/docs/transforms/operations/substring) and the [upper operation](/idn/docs/transforms/operations/upper). Once you have the variable `lastInitialUppercase` created, you can add that variable to the end of the static string in the value key. +Adding to the transform, you can create a variable for the first character of the last name. You can do so by using the [substring operation](/docs/extensibility/transforms/operations/substring) and the [upper operation](/docs/extensibility/transforms/operations/upper). Once you have the variable `lastInitialUppercase` created, you can add that variable to the end of the static string in the value key. **Last Initial Variable** @@ -290,7 +290,7 @@ You also need the end of the last name without the first character you already h ### The User's Two-Digit Start Month Comes Next, Taken from the Hire_Date -To get the two-digit start month, use the [split operation](/idn/docs/transforms/operations/split). The `hire_date` is in the format of `YYYY-MM-DD`. To to get the month, split on `-` and set the index to return as 1. +To get the two-digit start month, use the [split operation](/docs/extensibility/transforms/operations/split). The `hire_date` is in the format of `YYYY-MM-DD`. To to get the month, split on `-` and set the index to return as 1. **Hire Date Month Variable** @@ -492,7 +492,7 @@ To add the final part of the password, which is the static string `RstP\*!7`, us To verify your transform is working, create the transfrom through the REST API. -To call the APIs for transforms, you need a personal access token and your tenant's name to provide with the request. For more information about how to get a personal access token, see [Personal Access Tokens](../../../../api/authentication.md#personal-access-tokens). For more information about how to get the name of your tenant, see [Finding Your Organization Tenant Name](../../../../api/getting-started.md#find-your-tenant-name). +To call the APIs for transforms, you need a personal access token and your tenant's name to provide with the request. For more information about how to get a personal access token, see [Personal Access Tokens](../../../api/authentication.md#personal-access-tokens). For more information about how to get the name of your tenant, see [Finding Your Organization Tenant Name](../../../api/getting-started.md#find-your-tenant-name). ```bash curl --location --request POST 'https://{tenant}.api.identitynow.com/v3/transforms' \ @@ -580,7 +580,7 @@ curl --location --request POST 'https://{tenant}.api.identitynow.com/v3/transfor Once you have created the transform successfully, you can apply the new transform and preview what the password will look like for each user. -Log in to your IdentityNow tenant and go to **Admin** > **Identities** > **Identity Profiles**. Select the name of the profile you created earlier, Transform Example. Select the **Mappings** tab, scroll to the bottom and select **Add New Attribute**. Name the attribute `Temporary Password`. To save the new mappings, you must fill out the id, email, first name and last name mappings. +Log in to your Identity Security Cloud tenant and go to **Admin** > **Identities** > **Identity Profiles**. Select the name of the profile you created earlier, Transform Example. Select the **Mappings** tab, scroll to the bottom and select **Add New Attribute**. Name the attribute `Temporary Password`. To save the new mappings, you must fill out the id, email, first name and last name mappings. ![Attribute Mapping](./img/temporary_password_attribute_mapping.png) diff --git a/products/idn/docs/identity-now/transforms/guides/your-first-transform.md b/docs/extensibility/transforms/guides/your-first-transform.md similarity index 86% rename from products/idn/docs/identity-now/transforms/guides/your-first-transform.md rename to docs/extensibility/transforms/guides/your-first-transform.md index b152a8413..4d8a0270e 100644 --- a/products/idn/docs/identity-now/transforms/guides/your-first-transform.md +++ b/docs/extensibility/transforms/guides/your-first-transform.md @@ -7,25 +7,25 @@ sidebar_class_name: yourFirstTransform keywords: ['transforms', 'guides', 'first'] description: Learn to build your first transform! sidebar_position: 1 -slug: /docs/transforms/guides/your-first-transform +slug: /extensibility/transforms/guides/your-first-transform tags: ['Transforms', 'Guides', 'First'] --- ## Overview -In this guide, you will learn how to use [IdentityNow's Transform REST APIs](/idn/api/v3/transforms) to do the following: +In this guide, you will learn how to use [Identity Security Cloud's Transform REST APIs](/docs/api/v3/transforms) to do the following: -- [List Transforms in Your IdentityNow Tenant](#list-transforms-in-your-identitynow-tenant) +- [List Transforms in Your Identity Security Cloud Tenant](#list-transforms-in-your-identitynow-tenant) - [Create a Transform](#create-a-transform) - [Get Transform by ID](#get-transform-by-id) - [Update a Transform](#update-a-transform) - [Delete a Transform](#delete-a-transform) -## List Transforms in your IdentityNow Tenant +## List Transforms in your Identity Security Cloud Tenant -To call the APIs for transforms, you need a personal access token and your tenant's name to provide with the request. For more information about how to get a personal access token, see [Personal Access Tokens](../../../../api/authentication.md#personal-access-tokens). For more information about how to get the name of your tenant, see [Finding Your Organization Tenant Name](../../../../api/getting-started.md#finding-your-orgtenant-name). +To call the APIs for transforms, you need a personal access token and your tenant's name to provide with the request. For more information about how to get a personal access token, see [Personal Access Tokens](../../../api/authentication.md#personal-access-tokens). For more information about how to get the name of your tenant, see [Finding Your Organization Tenant Name](../../../api/getting-started.md#finding-your-orgtenant-name). -Before you create your first custom transform, see what transforms are already in the tenant. You can get this information by calling the [List Transforms API](/idn/api/v3/list-transforms). +Before you create your first custom transform, see what transforms are already in the tenant. You can get this information by calling the [List Transforms API](/docs/api/v3/list-transforms). ```bash curl --location --request GET 'https://{tenant}.api.identitynow.com/v3/transforms' --header 'Authorization: Bearer {token}' @@ -118,11 +118,11 @@ 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 Identity Security Cloud by going to **Admin** > **Identities** > **Identity Profiles** > (An Identity Profile) > **Mappings** (tab). ![Mappings Tab](./img/mappings_tab.png) -For more information about creating transforms, see [Create Transform](/idn/api/v3/create-transform). +For more information about creating transforms, see [Create Transform](/docs/api/v3/create-transform). ## Get Transform by ID @@ -152,7 +152,7 @@ curl --location --request GET 'https://{tenant}.api.identitynow.com/v3/transform } ``` -For more information about getting a transform by its `id` see the API [Transform by ID](/idn/api/v3/get-transform). +For more information about getting a transform by its `id` see the API [Transform by ID](/docs/api/v3/get-transform). ## Update a Transform @@ -203,7 +203,7 @@ curl --location --request PUT 'https://{tenant}.api.identitynow.com/v3/transform } ``` -For more information about updating transforms, see [Update a transform](/idn/api/v3/update-transform). +For more information about updating transforms, see [Update a transform](/docs/api/v3/update-transform). ## Delete a Transform @@ -214,7 +214,7 @@ curl --location --request DELETE 'https://{tenant}.api.identitynow.com/v3/transf --header 'Authorization: Bearer {token}' ``` -For more information about deleting transforms, see the API [Delete Transform](/idn/api/v3/delete-transform). +For more information about deleting transforms, see the API [Delete Transform](/docs/api/v3/delete-transform). ## Next Steps diff --git a/products/idn/docs/identity-now/transforms/img/account_schema.png b/docs/extensibility/transforms/img/account_schema.png similarity index 100% rename from products/idn/docs/identity-now/transforms/img/account_schema.png rename to docs/extensibility/transforms/img/account_schema.png diff --git a/products/idn/docs/identity-now/transforms/img/account_summary.png b/docs/extensibility/transforms/img/account_summary.png similarity index 100% rename from products/idn/docs/identity-now/transforms/img/account_summary.png rename to docs/extensibility/transforms/img/account_summary.png diff --git a/products/idn/docs/identity-now/transforms/img/configuring_transform_behavior_1.png b/docs/extensibility/transforms/img/configuring_transform_behavior_1.png similarity index 100% rename from products/idn/docs/identity-now/transforms/img/configuring_transform_behavior_1.png rename to docs/extensibility/transforms/img/configuring_transform_behavior_1.png diff --git a/products/idn/docs/identity-now/transforms/img/configuring_transform_behavior_2.png b/docs/extensibility/transforms/img/configuring_transform_behavior_2.png similarity index 100% rename from products/idn/docs/identity-now/transforms/img/configuring_transform_behavior_2.png rename to docs/extensibility/transforms/img/configuring_transform_behavior_2.png diff --git a/products/idn/docs/identity-now/transforms/img/create_source.png b/docs/extensibility/transforms/img/create_source.png similarity index 100% rename from products/idn/docs/identity-now/transforms/img/create_source.png rename to docs/extensibility/transforms/img/create_source.png diff --git a/products/idn/docs/identity-now/transforms/img/how_transforms_work_1.png b/docs/extensibility/transforms/img/how_transforms_work_1.png similarity index 100% rename from products/idn/docs/identity-now/transforms/img/how_transforms_work_1.png rename to docs/extensibility/transforms/img/how_transforms_work_1.png diff --git a/products/idn/docs/identity-now/transforms/img/how_transforms_work_2.png b/docs/extensibility/transforms/img/how_transforms_work_2.png similarity index 100% rename from products/idn/docs/identity-now/transforms/img/how_transforms_work_2.png rename to docs/extensibility/transforms/img/how_transforms_work_2.png diff --git a/products/idn/docs/identity-now/transforms/img/how_transforms_work_3.png b/docs/extensibility/transforms/img/how_transforms_work_3.png similarity index 100% rename from products/idn/docs/identity-now/transforms/img/how_transforms_work_3.png rename to docs/extensibility/transforms/img/how_transforms_work_3.png diff --git a/products/idn/docs/identity-now/transforms/img/how_transforms_work_4.png b/docs/extensibility/transforms/img/how_transforms_work_4.png similarity index 100% rename from products/idn/docs/identity-now/transforms/img/how_transforms_work_4.png rename to docs/extensibility/transforms/img/how_transforms_work_4.png diff --git a/products/idn/docs/identity-now/transforms/img/identity_profile.png b/docs/extensibility/transforms/img/identity_profile.png similarity index 100% rename from products/idn/docs/identity-now/transforms/img/identity_profile.png rename to docs/extensibility/transforms/img/identity_profile.png diff --git a/products/idn/docs/identity-now/transforms/img/mappings_tab.png b/docs/extensibility/transforms/img/mappings_tab.png similarity index 100% rename from products/idn/docs/identity-now/transforms/img/mappings_tab.png rename to docs/extensibility/transforms/img/mappings_tab.png diff --git a/products/idn/docs/identity-now/transforms/img/temporary_password_attribute_mapping.png b/docs/extensibility/transforms/img/temporary_password_attribute_mapping.png similarity index 100% rename from products/idn/docs/identity-now/transforms/img/temporary_password_attribute_mapping.png rename to docs/extensibility/transforms/img/temporary_password_attribute_mapping.png diff --git a/products/idn/docs/identity-now/transforms/img/what_are_transforms_1.png b/docs/extensibility/transforms/img/what_are_transforms_1.png similarity index 100% rename from products/idn/docs/identity-now/transforms/img/what_are_transforms_1.png rename to docs/extensibility/transforms/img/what_are_transforms_1.png diff --git a/products/idn/docs/identity-now/transforms/index.md b/docs/extensibility/transforms/index.md similarity index 85% rename from products/idn/docs/identity-now/transforms/index.md rename to docs/extensibility/transforms/index.md index 1f4959497..fb17d25a4 100644 --- a/products/idn/docs/identity-now/transforms/index.md +++ b/docs/extensibility/transforms/index.md @@ -6,9 +6,11 @@ sidebar_label: Transforms sidebar_position: 1 sidebar_class_name: transforms keywords: ['transforms'] -description: Building Transforms in IdentityNow -slug: /docs/transforms +description: Modify attribute data without code. +slug: /extensibility/transforms tags: ['Transforms'] +customProps: + description: Modify attribute data without code. --- In SailPoint's cloud services, transforms allow you to manipulate attribute values while aggregating from or provisioning to a source. This guide provides a reference to help you understand the purpose, configuration, and usage of transforms. @@ -26,17 +28,17 @@ flowchart LR
-Because there is no code to write, an administrator can configure these by using a JSON object structure and uploading them into IdentityNow using [IdentityNow's Transform REST APIs](/idn/api/v3/transforms). +Because there is no code to write, an administrator can configure these by using a JSON object structure and uploading them into Identity Security Cloud using [Identity Security Cloud's Transform REST APIs](/docs/api/v3/transforms). :::info -Sometimes transforms are referred to as Seaspray, the codename for transforms. IdentityNow Transforms and Seaspray are essentially the same. +Sometimes transforms are referred to as Seaspray, the codename for transforms. Identity Security Cloud Transforms and Seaspray are essentially the same. ::: ## How Transforms Work -Transforms typically have an input(s) and output(s). The way the transformation occurs mainly depends on the type of transform. Refer to [Operations in IdentityNow Transforms](./operations/index.md) for more information. +Transforms typically have an input(s) and output(s). The way the transformation occurs mainly depends on the type of transform. Refer to [Operations in Identity Security Cloud Transforms](./operations/index.md) for more information. For example, a [Lower transform](./operations/lower.md) transforms any input text strings into lowercase versions as output. So if the input were `Foo`, the lowercase output of the transform would be `foo`: @@ -76,7 +78,7 @@ flowchart LR ### Complex Nested Transforms -For more complex use cases, a single transform may not be enough. It is possible to link several transforms together. IdentityNow calls these 'nested' transforms because they are transform objects within other transform objects. +For more complex use cases, a single transform may not be enough. It is possible to link several transforms together. Identity Security Cloud calls these 'nested' transforms because they are transform objects within other transform objects. An example of a nested transform would be using the previous [Concat transform](./operations/concatenation.md) and passing its output as an input to another [Lower transform](./operations/lower.md). If the inputs `Foo` and `Bar` were passed into the transforms, the ultimate output would be `foobar`, concatenated and in lowercase. @@ -127,7 +129,7 @@ Transforms are JSON objects. Prior to this, the transforms have been shown as fl There are three main components of a transform object: -1. `name` - This specifies the name of the transform. It refers to a transform in the IdentityNow API or User Interface (UI). Only provide a name on the root-level transform. Nested transforms do not have names. +1. `name` - This specifies the name of the transform. It refers to a transform in the Identity Security Cloud API or User Interface (UI). Only provide a name on the root-level transform. Nested transforms do not have names. 2. `type` - This specifies the transform type, which ultimately determines the transform's behavior. @@ -135,7 +137,7 @@ There are three main components of a transform object: :::caution -When uploading a transform to IdentityNow it cannot exceed 400KB. +When uploading a transform to Identity Security Cloud it cannot exceed 400KB. ::: @@ -172,7 +174,7 @@ The following variables are available to the Apache Velocity template engine whe ## Implicit vs Explicit Input -A special configuration attribute available to all transforms is input. If the input attribute is not specified, this is referred to as implicit input, and the system determines the input based on what is configured. If the input attribute is specified, then this is referred to as explicit input, and the system's input is ignored in favor of whatever the transform explicitly specifies. A good way to understand this concept is to walk through an example. Imagine that IdentityNow has the following: +A special configuration attribute available to all transforms is input. If the input attribute is not specified, this is referred to as implicit input, and the system determines the input based on what is configured. If the input attribute is specified, then this is referred to as explicit input, and the system's input is ignored in favor of whatever the transform explicitly specifies. A good way to understand this concept is to walk through an example. Imagine that Identity Security Cloud has the following: - An account on Source 1 with department set to `Services`. - An account on Source 2 with department set to `Engineering`. @@ -240,17 +242,17 @@ These transforms are configured separately from the transforms applied via the i ::: #### Configuration -These can be configured in IdentityNow by going to **Admin** > **Sources** > (A Source) > **Accounts** (tab) > **Create Account**. +These can be configured in Identity Security Cloud by going to **Admin** > **Sources** > (A Source) > **Accounts** (tab) > **Create Account**. The available options on this page are constructed as transforms behind the scenes. For example, the identity attribute mapping choice is saved as an [identity attribute transform](./operations/identity-attribute.md) definition within the saved create profile. -These can also be configured with IdentityNow REST APIs. You can define any kind of transform you want for any field in the create profile policy, to calculate account attributes in ways beyond what the UI offers. See [Transforms in Provisioning Policies](./guides/provisioning-policy-transform.md). +These can also be configured with Identity Security Cloud REST APIs. You can define any kind of transform you want for any field in the create profile policy, to calculate account attributes in ways beyond what the UI offers. See [Transforms in Provisioning Policies](./guides/provisioning-policy-transform.md). -For more information on the IdentityNow REST API endpoints used to managed transform objects in APIs, refer to [IdentityNow Transform REST APIs](/idn/api/v3/transforms). +For more information on the Identity Security Cloud REST API endpoints used to managed transform objects in APIs, refer to [Identity Security Cloud Transform REST APIs](/docs/api/v3/transforms). :::tip -For details about authentication against REST APIs, refer to the [authentication docs](../../../api/authentication.md). +For details about authentication against REST APIs, refer to the [authentication docs](../../api/authentication.md). ::: @@ -290,9 +292,9 @@ To test a transform for account data, you must provision a new account on that s Sometimes it can be difficult to decide when to implement a transform and when to implement a rule. Both transforms and rules can calculate values for identity or account attributes. -Despite their functional similarity, transforms and rules have very different implementations. Transforms are JSON-based configurations, editable with IdentityNow's transform REST APIs. Rules are implemented with code (typically [BeanShell](https://github.com/beanshell/beanshell), a Java-like syntax), so they must follow the [IdentityNow Rule Guidelines](https://community.sailpoint.com/docs/DOC-12122), and they require SailPoint to be reviewed and installed into the tenant. Rules, however, can do things that transforms cannot in some cases. +Despite their functional similarity, transforms and rules have very different implementations. Transforms are JSON-based configurations, editable with Identity Security Cloud's transform REST APIs. Rules are implemented with code (typically [BeanShell](https://github.com/beanshell/beanshell), a Java-like syntax), so they must follow the [Identity Security Cloud Rule Guidelines](https://community.sailpoint.com/docs/DOC-12122), and they require SailPoint to be reviewed and installed into the tenant. Rules, however, can do things that transforms cannot in some cases. -Because transforms have easier and more accessible implementations, they are generally recommended. With transforms, any IdentityNow administrator can view, create, edit, and delete transforms directly with REST API without SailPoint involvement. +Because transforms have easier and more accessible implementations, they are generally recommended. With transforms, any Identity Security Cloud administrator can view, create, edit, and delete transforms directly with REST API without SailPoint involvement. If something cannot be done with a transform, then consider using a rule. When you are transitioning from a transform to a rule, you must take special consideration when you decide where the rule executes. @@ -300,6 +302,6 @@ If something cannot be done with a transform, then consider using a rule. When y - If you are calculating account attributes (during provisioning), you can use [Attribute Generator rules](https://community.sailpoint.com/docs/DOC-12645) instead of account transforms. -- All rules you build must follow the [IdentityNow Rule Guidelines](https://community.sailpoint.com/docs/DOC-12122). +- All rules you build must follow the [Identity Security Cloud Rule Guidelines](https://community.sailpoint.com/docs/DOC-12122). If you use a rule, make note of it for administrative purposes. The best practice is to check in these types of artifacts into some sort of version control (e.g., GitHub, et. Al.) for records. diff --git a/products/idn/docs/identity-now/transforms/operations/account-attribute.md b/docs/extensibility/transforms/operations/account-attribute.md similarity index 94% rename from products/idn/docs/identity-now/transforms/operations/account-attribute.md rename to docs/extensibility/transforms/operations/account-attribute.md index 5cc4abfee..56918c54b 100644 --- a/products/idn/docs/identity-now/transforms/operations/account-attribute.md +++ b/docs/extensibility/transforms/operations/account-attribute.md @@ -6,7 +6,7 @@ sidebar_label: Account Attribute sidebar_class_name: accountAttribute keywords: ['transforms', 'operations', 'account', 'attribute'] description: Look up an account for a particular source on an identity. -slug: /docs/transforms/operations/account-attribute +slug: /extensibility/transforms/operations/account-attribute tags: ['Transforms', 'Transform Operations'] --- @@ -16,8 +16,8 @@ Use the account attribute transform to look up an account for a particular sourc :::note Other Considerations -- If there are multiple accounts, then IdentityNow by default takes the value from the oldest account (based on the account created date). You can configure this behavior by specifying `accountSortAttribute` and `accountSortDescending` attributes. -- If there are multiple accounts and the oldest account has a null attribute value, by default IdentityNow moves to the next account that can have a value (if there are any). You can override this behavior with the `accountReturnFirstLink` property. +- If there are multiple accounts, then Identity Security Cloud by default takes the value from the oldest account (based on the account created date). You can configure this behavior by specifying `accountSortAttribute` and `accountSortDescending` attributes. +- If there are multiple accounts and the oldest account has a null attribute value, by default Identity Security Cloud moves to the next account that can have a value (if there are any). You can override this behavior with the `accountReturnFirstLink` property. - You can filter the multiple accounts returned based on the data they contain so that you can target specific accounts. This is often used to target accounts that are "active" instead of those that are not. ::: diff --git a/products/idn/docs/identity-now/transforms/operations/base64-decode.md b/docs/extensibility/transforms/operations/base64-decode.md similarity index 99% rename from products/idn/docs/identity-now/transforms/operations/base64-decode.md rename to docs/extensibility/transforms/operations/base64-decode.md index 0fad59749..3db723162 100644 --- a/products/idn/docs/identity-now/transforms/operations/base64-decode.md +++ b/docs/extensibility/transforms/operations/base64-decode.md @@ -6,7 +6,7 @@ sidebar_label: Base64 Decode sidebar_class_name: base64Decode keywords: ['transforms', 'operations', 'base64', 'decode'] description: Render base64 data in its original binary format. -slug: /docs/transforms/operations/base64-decode +slug: /extensibility/transforms/operations/base64-decode tags: ['Transforms', 'Transform Operations'] --- diff --git a/products/idn/docs/identity-now/transforms/operations/base64-encode.md b/docs/extensibility/transforms/operations/base64-encode.md similarity index 99% rename from products/idn/docs/identity-now/transforms/operations/base64-encode.md rename to docs/extensibility/transforms/operations/base64-encode.md index 4e5a91153..f803d9926 100644 --- a/products/idn/docs/identity-now/transforms/operations/base64-encode.md +++ b/docs/extensibility/transforms/operations/base64-encode.md @@ -6,7 +6,7 @@ sidebar_label: Base64 Encode sidebar_class_name: base64Encode keywords: ['transforms', 'operations', 'base64', 'encode'] description: Encode data with a Base64-based text encoding scheme. -slug: /docs/transforms/operations/base64-encode +slug: /extensibility/transforms/operations/base64-encode tags: ['Transforms', 'Transform Operations'] --- diff --git a/products/idn/docs/identity-now/transforms/operations/concatenation.md b/docs/extensibility/transforms/operations/concatenation.md similarity index 97% rename from products/idn/docs/identity-now/transforms/operations/concatenation.md rename to docs/extensibility/transforms/operations/concatenation.md index 126f1d388..063606d84 100644 --- a/products/idn/docs/identity-now/transforms/operations/concatenation.md +++ b/docs/extensibility/transforms/operations/concatenation.md @@ -6,7 +6,7 @@ sidebar_label: Concatenation sidebar_class_name: concatenation keywords: ['transforms', 'operations', 'concatenation'] description: Join two or more string values into a combined output. -slug: /docs/transforms/operations/concatenation +slug: /extensibility/transforms/operations/concatenation tags: ['Transforms', 'Transform Operations'] --- diff --git a/products/idn/docs/identity-now/transforms/operations/conditional.md b/docs/extensibility/transforms/operations/conditional.md similarity index 98% rename from products/idn/docs/identity-now/transforms/operations/conditional.md rename to docs/extensibility/transforms/operations/conditional.md index e33525575..43bddccdc 100644 --- a/products/idn/docs/identity-now/transforms/operations/conditional.md +++ b/docs/extensibility/transforms/operations/conditional.md @@ -6,7 +6,7 @@ sidebar_label: Conditional sidebar_class_name: conditional keywords: ['transforms', 'operations', 'conditional'] description: Output different values depending on simple conditional logic. -slug: /docs/transforms/operations/conditional +slug: /extensibility/transforms/operations/conditional tags: ['Transforms', 'Transform Operations'] --- diff --git a/products/idn/docs/identity-now/transforms/operations/date-compare.md b/docs/extensibility/transforms/operations/date-compare.md similarity index 98% rename from products/idn/docs/identity-now/transforms/operations/date-compare.md rename to docs/extensibility/transforms/operations/date-compare.md index dcc176d4f..5ad89b8a0 100644 --- a/products/idn/docs/identity-now/transforms/operations/date-compare.md +++ b/docs/extensibility/transforms/operations/date-compare.md @@ -6,7 +6,7 @@ sidebar_label: Date Compare sidebar_class_name: dateCompare keywords: ['transforms', 'operations', 'date', 'compare'] description: Compare two dates and return a calculated value. -slug: /docs/transforms/operations/date-compare +slug: /extensibility/transforms/operations/date-compare tags: ['Transforms', 'Transform Operations'] --- diff --git a/products/idn/docs/identity-now/transforms/operations/date-format.md b/docs/extensibility/transforms/operations/date-format.md similarity index 98% rename from products/idn/docs/identity-now/transforms/operations/date-format.md rename to docs/extensibility/transforms/operations/date-format.md index 916e37400..e432da841 100644 --- a/products/idn/docs/identity-now/transforms/operations/date-format.md +++ b/docs/extensibility/transforms/operations/date-format.md @@ -6,7 +6,7 @@ sidebar_label: Date Format sidebar_class_name: dateFormat keywords: ['transforms', 'operations', 'date', 'format'] description: Convert datetime strings from one format to another. -slug: /docs/transforms/operations/date-format +slug: /extensibility/transforms/operations/date-format tags: ['Transforms', 'Transform Operations'] --- diff --git a/products/idn/docs/identity-now/transforms/operations/date-math.md b/docs/extensibility/transforms/operations/date-math.md similarity index 97% rename from products/idn/docs/identity-now/transforms/operations/date-math.md rename to docs/extensibility/transforms/operations/date-math.md index 2d62842f4..03555bbe8 100644 --- a/products/idn/docs/identity-now/transforms/operations/date-math.md +++ b/docs/extensibility/transforms/operations/date-math.md @@ -6,7 +6,7 @@ sidebar_label: Date Math sidebar_class_name: dateMath keywords: ['transforms', 'operations', 'date', 'math'] description: Add, subtract, and round components of a timestamp's incoming value. -slug: /docs/transforms/operations/date-math +slug: /extensibility/transforms/operations/date-math tags: ['Transforms', 'Transform Operations'] --- @@ -146,7 +146,7 @@ This transform takes the `startDate` attribute from a user's record in the "HR S

 

-This transform take the `HIREDATE` from Workday and converts it to [ISO8601](https://en.wikipedia.org/wiki/ISO_8601) to be used in the Date Math transform. The Date Math transform then creates a new Date of `HIREDATE + 1`. Since that is then outputted in the format "yyyy-MM-dd'T'HH:mm", you can then use it in a [dateFormat](/idn/docs/transforms/operations/date-format) transform to give a WIN32 formatted date. +This transform take the `HIREDATE` from Workday and converts it to [ISO8601](https://en.wikipedia.org/wiki/ISO_8601) to be used in the Date Math transform. The Date Math transform then creates a new Date of `HIREDATE + 1`. Since that is then outputted in the format "yyyy-MM-dd'T'HH:mm", you can then use it in a [dateFormat](/docs/extensibility/transforms/operations/date-format) transform to give a WIN32 formatted date. **Transform Request Body**: diff --git a/products/idn/docs/identity-now/transforms/operations/decompose-diacritical-marks.md b/docs/extensibility/transforms/operations/decompose-diacritical-marks.md similarity index 98% rename from products/idn/docs/identity-now/transforms/operations/decompose-diacritical-marks.md rename to docs/extensibility/transforms/operations/decompose-diacritical-marks.md index af1e6aabd..974060751 100644 --- a/products/idn/docs/identity-now/transforms/operations/decompose-diacritical-marks.md +++ b/docs/extensibility/transforms/operations/decompose-diacritical-marks.md @@ -6,7 +6,7 @@ sidebar_label: Decompose Diacritial Marks sidebar_class_name: decomposeDiacriticalMarks keywords: ['transforms', 'operations', 'decompose', 'diacritical', 'marks'] description: Clean or standardize symbols used within language. -slug: /docs/transforms/operations/decompose-diacritical-marks +slug: /extensibility/transforms/operations/decompose-diacritical-marks tags: ['Transforms', 'Transform Operations'] --- diff --git a/products/idn/docs/identity-now/transforms/operations/e164-phone.md b/docs/extensibility/transforms/operations/e164-phone.md similarity index 98% rename from products/idn/docs/identity-now/transforms/operations/e164-phone.md rename to docs/extensibility/transforms/operations/e164-phone.md index 0f64e1944..847cba5ed 100644 --- a/products/idn/docs/identity-now/transforms/operations/e164-phone.md +++ b/docs/extensibility/transforms/operations/e164-phone.md @@ -6,7 +6,7 @@ sidebar_label: E.164 Phone sidebar_class_name: e164Phone keywords: ['transforms', 'operations', 'e164', 'phone'] description: Convert a phone number string into an E.164-compatible number. -slug: /docs/transforms/operations/e164-phone +slug: /extensibility/transforms/operations/e164-phone tags: ['Transforms', 'Transform Operations'] --- diff --git a/products/idn/docs/identity-now/transforms/operations/first-valid.md b/docs/extensibility/transforms/operations/first-valid.md similarity index 99% rename from products/idn/docs/identity-now/transforms/operations/first-valid.md rename to docs/extensibility/transforms/operations/first-valid.md index 5c4cd70ee..6a2cb2230 100644 --- a/products/idn/docs/identity-now/transforms/operations/first-valid.md +++ b/docs/extensibility/transforms/operations/first-valid.md @@ -6,7 +6,7 @@ sidebar_label: First Valid sidebar_class_name: firstValid keywords: ['transforms', 'operations', 'first', 'valid'] description: Return the first piece of data that is not null. -slug: /docs/transforms/operations/first-valid +slug: /extensibility/transforms/operations/first-valid tags: ['Transforms', 'Transform Operations'] --- diff --git a/products/idn/docs/identity-now/transforms/operations/generate-random-string.md b/docs/extensibility/transforms/operations/generate-random-string.md similarity index 98% rename from products/idn/docs/identity-now/transforms/operations/generate-random-string.md rename to docs/extensibility/transforms/operations/generate-random-string.md index 84bb94c8f..a48f201be 100644 --- a/products/idn/docs/identity-now/transforms/operations/generate-random-string.md +++ b/docs/extensibility/transforms/operations/generate-random-string.md @@ -6,7 +6,7 @@ sidebar_label: Generate Random String sidebar_class_name: generateRandomString keywords: ['transforms', 'operations', 'generate', 'random', 'string'] description: Generate a random string of any length. -slug: /docs/transforms/operations/generate-random-string +slug: /extensibility/transforms/operations/generate-random-string tags: ['Transforms', 'Transform Operations'] --- diff --git a/products/idn/docs/identity-now/transforms/operations/get-end-of-string.md b/docs/extensibility/transforms/operations/get-end-of-string.md similarity index 97% rename from products/idn/docs/identity-now/transforms/operations/get-end-of-string.md rename to docs/extensibility/transforms/operations/get-end-of-string.md index 59f4dfb0b..e0c1759b2 100644 --- a/products/idn/docs/identity-now/transforms/operations/get-end-of-string.md +++ b/docs/extensibility/transforms/operations/get-end-of-string.md @@ -6,7 +6,7 @@ sidebar_label: Get End of String sidebar_class_name: getEndOfString keywords: ['transforms', 'operations', 'get', 'end', 'string'] description: Get the rightmost N characters of a string. -slug: /docs/transforms/operations/get-end-of-string +slug: /extensibility/transforms/operations/get-end-of-string tags: ['Transforms', 'Transform Operations'] --- diff --git a/products/idn/docs/identity-now/transforms/operations/get-reference-identity-attribute.md b/docs/extensibility/transforms/operations/get-reference-identity-attribute.md similarity index 97% rename from products/idn/docs/identity-now/transforms/operations/get-reference-identity-attribute.md rename to docs/extensibility/transforms/operations/get-reference-identity-attribute.md index 024ae9360..82326455b 100644 --- a/products/idn/docs/identity-now/transforms/operations/get-reference-identity-attribute.md +++ b/docs/extensibility/transforms/operations/get-reference-identity-attribute.md @@ -7,7 +7,7 @@ sidebar_class_name: getReferenceIdentityAttribute keywords: ['transforms', 'operations', 'get', 'reference', 'identity', 'attribute'] description: Get another user's identity attribute. -slug: /docs/transforms/operations/get-reference-identity-attribute +slug: /extensibility/transforms/operations/get-reference-identity-attribute tags: ['Transforms', 'Transform Operations'] --- diff --git a/products/idn/docs/identity-now/transforms/operations/identity-attribute.md b/docs/extensibility/transforms/operations/identity-attribute.md similarity index 97% rename from products/idn/docs/identity-now/transforms/operations/identity-attribute.md rename to docs/extensibility/transforms/operations/identity-attribute.md index 5229b58c1..431e8aaa1 100644 --- a/products/idn/docs/identity-now/transforms/operations/identity-attribute.md +++ b/docs/extensibility/transforms/operations/identity-attribute.md @@ -6,7 +6,7 @@ sidebar_label: Identity Attribute sidebar_class_name: identityAttribute keywords: ['transforms', 'operations', 'identity', 'attribute'] description: Get a user's identity attribute's value. -slug: /docs/transforms/operations/identity-attribute +slug: /extensibility/transforms/operations/identity-attribute tags: ['Transforms', 'Transform Operations'] --- diff --git a/products/idn/docs/identity-now/transforms/operations/img/lower_transform_input.png b/docs/extensibility/transforms/operations/img/lower_transform_input.png similarity index 100% rename from products/idn/docs/identity-now/transforms/operations/img/lower_transform_input.png rename to docs/extensibility/transforms/operations/img/lower_transform_input.png diff --git a/products/idn/docs/identity-now/transforms/operations/img/sailpoint_logo.png b/docs/extensibility/transforms/operations/img/sailpoint_logo.png similarity index 100% rename from products/idn/docs/identity-now/transforms/operations/img/sailpoint_logo.png rename to docs/extensibility/transforms/operations/img/sailpoint_logo.png diff --git a/products/idn/docs/identity-now/transforms/operations/index-of.md b/docs/extensibility/transforms/operations/index-of.md similarity index 98% rename from products/idn/docs/identity-now/transforms/operations/index-of.md rename to docs/extensibility/transforms/operations/index-of.md index df3e67c59..79161acb8 100644 --- a/products/idn/docs/identity-now/transforms/operations/index-of.md +++ b/docs/extensibility/transforms/operations/index-of.md @@ -6,7 +6,7 @@ sidebar_label: Index Of sidebar_class_name: indexOf keywords: ['transforms', 'operations', 'index', 'of'] description: Get the location of a specific substring within a value. -slug: /docs/transforms/operations/index-of +slug: /extensibility/transforms/operations/index-of tags: ['Transforms', 'Transform Operations'] --- diff --git a/products/idn/docs/identity-now/transforms/operations/index.md b/docs/extensibility/transforms/operations/index.md similarity index 94% rename from products/idn/docs/identity-now/transforms/operations/index.md rename to docs/extensibility/transforms/operations/index.md index b99188de6..3a7ff3485 100644 --- a/products/idn/docs/identity-now/transforms/operations/index.md +++ b/docs/extensibility/transforms/operations/index.md @@ -6,7 +6,7 @@ sidebar_label: Operations sidebar_class_name: operations keywords: ['transforms', 'operations'] description: A list of transform operations. -slug: /docs/transforms/operations +slug: /extensibility/transforms/operations tags: ['Transforms', 'Transform Operations'] --- diff --git a/products/idn/docs/identity-now/transforms/operations/iso-3166.md b/docs/extensibility/transforms/operations/iso-3166.md similarity index 98% rename from products/idn/docs/identity-now/transforms/operations/iso-3166.md rename to docs/extensibility/transforms/operations/iso-3166.md index d30a2eeba..0915511bf 100644 --- a/products/idn/docs/identity-now/transforms/operations/iso-3166.md +++ b/docs/extensibility/transforms/operations/iso-3166.md @@ -6,7 +6,7 @@ sidebar_label: ISO3166 sidebar_class_name: iso3166 keywords: ['transforms', 'operations', 'iso3166'] description: Convert a string into an ISO 3166 country code value. -slug: /docs/transforms/operations/iso-3166 +slug: /extensibility/transforms/operations/iso-3166 tags: ['Transforms', 'Transform Operations'] --- diff --git a/products/idn/docs/identity-now/transforms/operations/last-index-of.md b/docs/extensibility/transforms/operations/last-index-of.md similarity index 98% rename from products/idn/docs/identity-now/transforms/operations/last-index-of.md rename to docs/extensibility/transforms/operations/last-index-of.md index 20348d18d..f15bb72a8 100644 --- a/products/idn/docs/identity-now/transforms/operations/last-index-of.md +++ b/docs/extensibility/transforms/operations/last-index-of.md @@ -6,7 +6,7 @@ sidebar_label: Last Index Of sidebar_class_name: lastIndexOf keywords: ['transforms', 'operations', 'last', 'index', 'of'] description: Returns last location of specific substring. -slug: /docs/transforms/operations/last-index-of +slug: /extensibility/transforms/operations/last-index-of tags: ['Transforms', 'Transform Operations'] --- diff --git a/products/idn/docs/identity-now/transforms/operations/left-pad.md b/docs/extensibility/transforms/operations/left-pad.md similarity index 98% rename from products/idn/docs/identity-now/transforms/operations/left-pad.md rename to docs/extensibility/transforms/operations/left-pad.md index 4ff0badf6..87e80c7c2 100644 --- a/products/idn/docs/identity-now/transforms/operations/left-pad.md +++ b/docs/extensibility/transforms/operations/left-pad.md @@ -6,7 +6,7 @@ sidebar_label: Left Pad sidebar_class_name: leftPad keywords: ['transforms', 'operations', 'left', 'pad'] description: Left pad of the input string. -slug: /docs/transforms/operations/left-pad +slug: /extensibility/transforms/operations/left-pad tags: ['Transforms', 'Transform Operations'] --- diff --git a/products/idn/docs/identity-now/transforms/operations/lookup.md b/docs/extensibility/transforms/operations/lookup.md similarity index 98% rename from products/idn/docs/identity-now/transforms/operations/lookup.md rename to docs/extensibility/transforms/operations/lookup.md index 3a89e6632..22f56a1e3 100644 --- a/products/idn/docs/identity-now/transforms/operations/lookup.md +++ b/docs/extensibility/transforms/operations/lookup.md @@ -6,7 +6,7 @@ sidebar_label: Lookup sidebar_class_name: lookup keywords: ['transforms', 'operations', 'lookup'] description: Look up and return a key's matching value. -slug: /docs/transforms/operations/lookup +slug: /extensibility/transforms/operations/lookup tags: ['Transforms', 'Transform Operations'] --- diff --git a/products/idn/docs/identity-now/transforms/operations/lower.md b/docs/extensibility/transforms/operations/lower.md similarity index 97% rename from products/idn/docs/identity-now/transforms/operations/lower.md rename to docs/extensibility/transforms/operations/lower.md index 2e6ede5c9..66493c153 100644 --- a/products/idn/docs/identity-now/transforms/operations/lower.md +++ b/docs/extensibility/transforms/operations/lower.md @@ -6,7 +6,7 @@ sidebar_label: Lower sidebar_class_name: lower keywords: ['transforms', 'operations', 'lower'] description: Convert an input string into all lowercase letters. -slug: /docs/transforms/operations/lower +slug: /extensibility/transforms/operations/lower tags: ['Transforms', 'Transform Operations'] --- diff --git a/products/idn/docs/identity-now/transforms/operations/name-normalizer.md b/docs/extensibility/transforms/operations/name-normalizer.md similarity index 98% rename from products/idn/docs/identity-now/transforms/operations/name-normalizer.md rename to docs/extensibility/transforms/operations/name-normalizer.md index 5bec80d10..549fb520b 100644 --- a/products/idn/docs/identity-now/transforms/operations/name-normalizer.md +++ b/docs/extensibility/transforms/operations/name-normalizer.md @@ -6,7 +6,7 @@ sidebar_label: Name Normalizer sidebar_class_name: nameNormalizer keywords: ['transforms', 'operations', 'name normalizer'] description: Clean or standardize the spelling of strings coming in from source systems. -slug: /docs/transforms/operations/name-normalizer +slug: /extensibility/transforms/operations/name-normalizer tags: ['Transforms', 'Transform Operations'] --- diff --git a/products/idn/docs/identity-now/transforms/operations/random-alphanumeric.md b/docs/extensibility/transforms/operations/random-alphanumeric.md similarity index 97% rename from products/idn/docs/identity-now/transforms/operations/random-alphanumeric.md rename to docs/extensibility/transforms/operations/random-alphanumeric.md index 56ac89130..328642530 100644 --- a/products/idn/docs/identity-now/transforms/operations/random-alphanumeric.md +++ b/docs/extensibility/transforms/operations/random-alphanumeric.md @@ -6,7 +6,7 @@ sidebar_label: Random Alphanumeric sidebar_class_name: randomAlphanumeric keywords: ['transforms', 'operations', 'random alphanumeric'] description: Generate a random string of any length. -slug: /docs/transforms/operations/random-alphanumeric +slug: /extensibility/transforms/operations/random-alphanumeric tags: ['Transforms', 'Transform Operations'] --- diff --git a/products/idn/docs/identity-now/transforms/operations/random-numeric.md b/docs/extensibility/transforms/operations/random-numeric.md similarity index 96% rename from products/idn/docs/identity-now/transforms/operations/random-numeric.md rename to docs/extensibility/transforms/operations/random-numeric.md index 5a3756226..d3224071d 100644 --- a/products/idn/docs/identity-now/transforms/operations/random-numeric.md +++ b/docs/extensibility/transforms/operations/random-numeric.md @@ -6,7 +6,7 @@ sidebar_label: Random Numeric sidebar_class_name: randomNumeric keywords: ['transforms', 'operations', 'random numeric'] description: Generate a random number of any length. -slug: /docs/transforms/operations/random-numeric +slug: /extensibility/transforms/operations/random-numeric tags: ['Transforms', 'Transform Operations'] --- diff --git a/products/idn/docs/identity-now/transforms/operations/reference.md b/docs/extensibility/transforms/operations/reference.md similarity index 98% rename from products/idn/docs/identity-now/transforms/operations/reference.md rename to docs/extensibility/transforms/operations/reference.md index f924d1bbc..ec5f5c100 100644 --- a/products/idn/docs/identity-now/transforms/operations/reference.md +++ b/docs/extensibility/transforms/operations/reference.md @@ -6,7 +6,7 @@ sidebar_label: Reference sidebar_class_name: reference keywords: ['transforms', 'operations', 'reference'] description: Reuse a transform that has already been written. -slug: /docs/transforms/operations/reference +slug: /extensibility/transforms/operations/reference tags: ['Transforms', 'Transform Operations'] --- diff --git a/products/idn/docs/identity-now/transforms/operations/replace-all.md b/docs/extensibility/transforms/operations/replace-all.md similarity index 98% rename from products/idn/docs/identity-now/transforms/operations/replace-all.md rename to docs/extensibility/transforms/operations/replace-all.md index 24df71e09..6476d2157 100644 --- a/products/idn/docs/identity-now/transforms/operations/replace-all.md +++ b/docs/extensibility/transforms/operations/replace-all.md @@ -6,7 +6,7 @@ sidebar_label: Replace All sidebar_class_name: replaceAll keywords: ['transforms', 'operations', 'replace all'] description: Find and replace all instances of all patterns. -slug: /docs/transforms/operations/replace-all +slug: /extensibility/transforms/operations/replace-all tags: ['Transforms', 'Transform Operations'] --- diff --git a/products/idn/docs/identity-now/transforms/operations/replace.md b/docs/extensibility/transforms/operations/replace.md similarity index 92% rename from products/idn/docs/identity-now/transforms/operations/replace.md rename to docs/extensibility/transforms/operations/replace.md index 30b83d5ef..be2fb22ac 100644 --- a/products/idn/docs/identity-now/transforms/operations/replace.md +++ b/docs/extensibility/transforms/operations/replace.md @@ -6,7 +6,7 @@ sidebar_label: Replace sidebar_class_name: replace keywords: ['transforms', 'operations', 'replace'] description: Find and replace all instances of a single string. -slug: /docs/transforms/operations/replace +slug: /extensibility/transforms/operations/replace tags: ['Transforms', 'Transform Operations'] --- @@ -22,7 +22,7 @@ The replace transform takes a `regex` attribute as an argument to identify which { "attributes": { "regex": "IIQ", - "replacement": "IdentityNow" + "replacement": "Identity Security Cloud" }, "type": "replace", "name": "Replace Transform" @@ -44,11 +44,11 @@ The replace transform takes a `regex` attribute as an argument to identify which ## Examples -This transform makes a simple word replacement, exchanging "IIQ" for "IdentityNow". +This transform makes a simple word replacement, exchanging "IIQ" for "Identity Security Cloud". ```bash Input: "Working with IIQ is fun" -Output: "Working with IdentityNow is fun" +Output: "Working with Identity Security Cloud is fun" ``` **Transform Request Body**: @@ -57,7 +57,7 @@ Output: "Working with IdentityNow is fun" { "attributes": { "regex": "IIQ", - "replacement": "IdentityNow" + "replacement": "Identity Security Cloud" }, "type": "replace", "name": "Replace Transform" diff --git a/products/idn/docs/identity-now/transforms/operations/right-pad.md b/docs/extensibility/transforms/operations/right-pad.md similarity index 98% rename from products/idn/docs/identity-now/transforms/operations/right-pad.md rename to docs/extensibility/transforms/operations/right-pad.md index 11efdb291..f773192a2 100644 --- a/products/idn/docs/identity-now/transforms/operations/right-pad.md +++ b/docs/extensibility/transforms/operations/right-pad.md @@ -6,7 +6,7 @@ sidebar_label: Right Pad sidebar_class_name: rightPad keywords: ['transforms', 'operations', 'right pad'] description: Add padding to the right of an incoming string. -slug: /docs/transforms/operations/right-pad +slug: /extensibility/transforms/operations/right-pad tags: ['Transforms', 'Transform Operations'] --- diff --git a/products/idn/docs/identity-now/transforms/operations/rule.md b/docs/extensibility/transforms/operations/rule.md similarity index 98% rename from products/idn/docs/identity-now/transforms/operations/rule.md rename to docs/extensibility/transforms/operations/rule.md index 3fa3448ab..146002f4f 100644 --- a/products/idn/docs/identity-now/transforms/operations/rule.md +++ b/docs/extensibility/transforms/operations/rule.md @@ -6,7 +6,7 @@ sidebar_label: Rule sidebar_class_name: rule keywords: ['transforms', 'operations', 'rule'] description: Reuse rule logic that has already been written for a previous use case. -slug: /docs/transforms/operations/rule +slug: /extensibility/transforms/operations/rule tags: ['Transforms', 'Transform Operations'] --- diff --git a/products/idn/docs/identity-now/transforms/operations/split.md b/docs/extensibility/transforms/operations/split.md similarity index 98% rename from products/idn/docs/identity-now/transforms/operations/split.md rename to docs/extensibility/transforms/operations/split.md index 27c670d7e..e13660cc1 100644 --- a/products/idn/docs/identity-now/transforms/operations/split.md +++ b/docs/extensibility/transforms/operations/split.md @@ -6,7 +6,7 @@ sidebar_label: Split sidebar_class_name: split keywords: ['transforms', 'operations', 'split'] description: Return the Nth element of a split array. -slug: /docs/transforms/operations/split +slug: /extensibility/transforms/operations/split tags: ['Transforms', 'Transform Operations'] --- diff --git a/products/idn/docs/identity-now/transforms/operations/static.md b/docs/extensibility/transforms/operations/static.md similarity index 89% rename from products/idn/docs/identity-now/transforms/operations/static.md rename to docs/extensibility/transforms/operations/static.md index b6d2c893a..9e4593aad 100644 --- a/products/idn/docs/identity-now/transforms/operations/static.md +++ b/docs/extensibility/transforms/operations/static.md @@ -6,7 +6,7 @@ sidebar_label: Static sidebar_class_name: static keywords: ['transforms', 'operations', 'static'] description: Return a fixed string value. -slug: /docs/transforms/operations/static +slug: /extensibility/transforms/operations/static tags: ['Transforms', 'Transform Operations'] --- @@ -17,7 +17,7 @@ Use the static transform to return a fixed string value, or more commonly, to ev :::note Other Considerations - When you are using static transforms within the create profile for a source, you can enter the value directly in the input field if the user selects Static as the attribute type. -- Because IdentityNow supports the ability to order attributes in a create profile, you can use the Velocity template of an attribute higher in the list to generate a static value for an attribute that is lower in the list. For example, if you wanted to generate an email address based on a display name, you would need to do the follwing: +- Because Identity Security Cloud supports the ability to order attributes in a create profile, you can use the Velocity template of an attribute higher in the list to generate a static value for an attribute that is lower in the list. For example, if you wanted to generate an email address based on a display name, you would need to do the follwing: - Move the "displayName" attribute higher in the list so that it is created before the email address. - In the "mail" attribute, select Static for the attribute type. In the Static Value field, enter `$displayName@yourdomain.com`. diff --git a/products/idn/docs/identity-now/transforms/operations/substring.md b/docs/extensibility/transforms/operations/substring.md similarity index 98% rename from products/idn/docs/identity-now/transforms/operations/substring.md rename to docs/extensibility/transforms/operations/substring.md index 6cf135736..e6f71f276 100644 --- a/products/idn/docs/identity-now/transforms/operations/substring.md +++ b/docs/extensibility/transforms/operations/substring.md @@ -6,7 +6,7 @@ sidebar_label: Substring sidebar_class_name: substring keywords: ['transforms', 'operations', 'substring'] description: Get the inner portion of a string passed into the transform. -slug: /docs/transforms/operations/substring +slug: /extensibility/transforms/operations/substring tags: ['Transforms', 'Transform Operations'] --- diff --git a/products/idn/docs/identity-now/transforms/operations/trim.md b/docs/extensibility/transforms/operations/trim.md similarity index 97% rename from products/idn/docs/identity-now/transforms/operations/trim.md rename to docs/extensibility/transforms/operations/trim.md index e34f33e60..037e4353f 100644 --- a/products/idn/docs/identity-now/transforms/operations/trim.md +++ b/docs/extensibility/transforms/operations/trim.md @@ -6,7 +6,7 @@ sidebar_label: Trim sidebar_class_name: trim keywords: ['transforms', 'operations', 'trim'] description: Trim whitespaces from both the beginning and ending of input strings. -slug: /docs/transforms/operations/trim +slug: /extensibility/transforms/operations/trim tags: ['Transforms', 'Transform Operations'] --- diff --git a/products/idn/docs/identity-now/transforms/operations/upper.md b/docs/extensibility/transforms/operations/upper.md similarity index 97% rename from products/idn/docs/identity-now/transforms/operations/upper.md rename to docs/extensibility/transforms/operations/upper.md index e7453c40e..a08538c06 100644 --- a/products/idn/docs/identity-now/transforms/operations/upper.md +++ b/docs/extensibility/transforms/operations/upper.md @@ -6,7 +6,7 @@ sidebar_label: Upper sidebar_class_name: upper keywords: ['transforms', 'operations', 'upper'] description: Convert an input string into all uppercase letters. -slug: /docs/transforms/operations/upper +slug: /extensibility/transforms/operations/upper tags: ['Transforms', 'Transform Operations'] --- diff --git a/products/idn/docs/identity-now/transforms/operations/username-generator.md b/docs/extensibility/transforms/operations/username-generator.md similarity index 94% rename from products/idn/docs/identity-now/transforms/operations/username-generator.md rename to docs/extensibility/transforms/operations/username-generator.md index 0a2ca42e6..62ab0db74 100644 --- a/products/idn/docs/identity-now/transforms/operations/username-generator.md +++ b/docs/extensibility/transforms/operations/username-generator.md @@ -6,7 +6,7 @@ sidebar_label: Username Generator sidebar_class_name: usernameGenerator keywords: ['transforms', 'operations', 'username', 'generator'] description: Derive a unique value for an attribute in an account create profile. -slug: /docs/transforms/operations/username-generator +slug: /extensibility/transforms/operations/username-generator tags: ['Transforms', 'Transform Operations'] --- @@ -25,7 +25,7 @@ Use the username generator transform to specify logic to use when it derives a u The username generator transform is intended for use as a configuration within the account create profile for a source. Thus, this transform's structure is more extensive than a typical Seaspray implementation -- it must be assigned to a create profile attribute (designated by `name`) and provide certain uniqueness check attributes such as `cloudMaxSize`, `cloudMaxUniqueChecks`, and `cloudRequired`. -The `cloudMaxSize` attribute denotes the maximum length of generated data allowable as a result of the generator logic. The transform truncates any characters over the `cloudMaxSize`. The `cloudMaxUniqueChecks` attribute determines the maximum number of iterations the generator must attempt before failing to generate a value. The `cloudRequired` attribute is an internal flag required for the IdentityNow platform - leave it as `true`. +The `cloudMaxSize` attribute denotes the maximum length of generated data allowable as a result of the generator logic. The transform truncates any characters over the `cloudMaxSize`. The `cloudMaxUniqueChecks` attribute determines the maximum number of iterations the generator must attempt before failing to generate a value. The `cloudRequired` attribute is an internal flag required for the Identity Security Cloud platform - leave it as `true`. Provide the username generator transform itself in the create profile attribute entry's `transform` parameter. @@ -101,9 +101,9 @@ Provide the username generator transform itself in the create profile attribute > **Note** that you can leverage `$uniqueCounter` here to automatically increment a counter if the generated value is not available and you want to try appending numeric values (i.e., 1, 2, 3, etc.) instead of progressing beyond the current pattern. - **Optional Attributes** - - **sourceCheck** - This boolean value (true/false) indicates whether the generator must check only the IdentityNow database's representation of accounts for uniqueness, or whether it must query the target system directly. If no value is provided, the attribute defaults to `false`. + - **sourceCheck** - This boolean value (true/false) indicates whether the generator must check only the Identity Security Cloud database's representation of accounts for uniqueness, or whether it must query the target system directly. If no value is provided, the attribute defaults to `false`. - `true` indicates the generator must check the target system directly. The generator only respects this setting if the system supports the `getObject` functionality. For systems that lack the ability to query for single account objects, the generator ignores this setting and defaults to `false`. The generator only checks the attribute identified in the account schema as the `accountID`. - - `false` indicates the generator must check only the IdentityNow database of accounts. The generator only checks the `accountID`. + - `false` indicates the generator must check only the Identity Security Cloud database of accounts. The generator only checks the `accountID`. ## Examples diff --git a/products/idn/docs/identity-now/transforms/operations/uuid-generator.md b/docs/extensibility/transforms/operations/uuid-generator.md similarity index 96% rename from products/idn/docs/identity-now/transforms/operations/uuid-generator.md rename to docs/extensibility/transforms/operations/uuid-generator.md index 1d8d5d59b..f5f1c6299 100644 --- a/products/idn/docs/identity-now/transforms/operations/uuid-generator.md +++ b/docs/extensibility/transforms/operations/uuid-generator.md @@ -6,7 +6,7 @@ sidebar_label: UUID Generator sidebar_class_name: uuidGenerator keywords: ['transforms', 'operations', 'uuid', 'generator'] description: Create a universal unique ID (UUID). -slug: /docs/transforms/operations/uuid-generator +slug: /extensibility/transforms/operations/uuid-generator tags: ['Transforms', 'Transform Operations'] --- diff --git a/docs/guides.md b/docs/guides.md new file mode 100644 index 000000000..5c9e53525 --- /dev/null +++ b/docs/guides.md @@ -0,0 +1,27 @@ +--- +id: guides +title: Guides +pagination_label: Guides +sidebar_label: Guides +sidebar_position: 1 +sidebar_class_name: guides +keywords: ['guides'] +description: ISC guides. +slug: /guides +tags: ['guides'] +--- + +## Overview +Identity Security Cloud (ISC) has all sorts of potential specific solutions you can implement as long as you know how. These specific solutions may either not fall into one of the extensibility, connectivity, tools, or reporting categories, or they may fall into multiple categories. Read these guides to learn how to implement these specific solutions. + +```mdx-code-block +import DocCardList from '@theme/DocCardList'; +import {useCurrentSidebarCategory} from '@docusaurus/theme-common'; + + +``` + +## Discuss +The most valuable resource for ISC developers is the SailPoint Developer Community itself, where ISC users and experts all over the world come together to ask questions and provide solutions. + +To learn more about these ISC topics and discuss them with SailPoint Developer Community members, go to the [SailPoint Developer Community Forum](https://developer.sailpoint.com/discuss/c/isc/6). \ No newline at end of file diff --git a/products/idn/docs/identity-now/identitynow-guides/disable-access-profile-requests.md b/docs/guides/disable-access-profile-requests.md similarity index 74% rename from products/idn/docs/identity-now/identitynow-guides/disable-access-profile-requests.md rename to docs/guides/disable-access-profile-requests.md index b0a2dbb48..814f63a79 100644 --- a/products/idn/docs/identity-now/identitynow-guides/disable-access-profile-requests.md +++ b/docs/guides/disable-access-profile-requests.md @@ -6,20 +6,20 @@ sidebar_label: Disable Access Profile Requests sidebar_position: 1 sidebar_class_name: disableAccessProfileRequests keywords: ['access', 'request', 'access profile', 'request center', 'disable'] -description: Read this guide to learn how to disable access requests for access profiles. -slug: /docs/disable-access-profile-requests +description: Bulk disable access profile requests. +slug: /guides/disable-access-profile-requests tags: ['AccessProfileRequestManagement'] --- ## Overview -In IdentityNow, [access profiles](https://documentation.sailpoint.com/saas/help/access/access-profiles.html) are groups of [entitlements](https://documentation.sailpoint.com/saas/help/access/entitlements.html), which represent access rights on [sources](https://documentation.sailpoint.com/saas/help/sources/index.html). By default, all access profiles are marked as requestable. This means that an organization's users can submit [access requests](https://documentation.sailpoint.com/saas/help/requests/index.html) for the access profiles in the IdentityNow [Request Center](https://documentation.sailpoint.com/saas/user-help/requests/request_center.html), where all access profiles are listed. +In Identity Security Cloud, [access profiles](https://documentation.sailpoint.com/saas/help/access/access-profiles.html) are groups of [entitlements](https://documentation.sailpoint.com/saas/help/access/entitlements.html), which represent access rights on [sources](https://documentation.sailpoint.com/saas/help/sources/index.html). By default, all access profiles are marked as requestable. This means that an organization's users can submit [access requests](https://documentation.sailpoint.com/saas/help/requests/index.html) for the access profiles in the Identity Security Cloud [Request Center](https://documentation.sailpoint.com/saas/user-help/requests/request_center.html), where all access profiles are listed. -You can disable requests for access profiles to prevent users from gaining inappropriate or undesired access. In the UI, you can edit the [individual access profile](https://documentation.sailpoint.com/saas/help/requests/config_ap_roles.html#configuring-access-profiles-for-requests) to disable requests for the access profile. You can also use the [PATCH Access Profile endpoint](https://developer.sailpoint.com/idn/api/v3/patch-access-profile) to mark the individual access profile as non-requestable. +You can disable requests for access profiles to prevent users from gaining inappropriate or undesired access. In the UI, you can edit the [individual access profile](https://documentation.sailpoint.com/saas/help/requests/config_ap_roles.html#configuring-access-profiles-for-requests) to disable requests for the access profile. You can also use the [PATCH Access Profile endpoint](https://developer.sailpoint.com/docs/api/v3/patch-access-profile) to mark the individual access profile as non-requestable. You may have many access profiles that you want to disable requests for, and you don't want one to get overlooked and then inappropriately accessed. There are three different processes you can use to ensure that you have disabled requests for all access profiles that aren't currently associated with [applications](https://documentation.sailpoint.com/saas/help/common/app-config.html) configured for access requests. Read this guide to learn how to perform these processes. ## Disable requests for individual access profiles with the UI -Follow these steps to use the IdentityNow UI to individually disable requests for all access profiles that aren't currently associated with applications: +Follow these steps to use the Identity Security Cloud UI to individually disable requests for all access profiles that aren't currently associated with applications: 1. Identify the access profiles that are associated with applications configured for access requests. Create a list of these associated access profiles. - Go to **Admin > Applications** and open each application you use for access requests. These applications have both 'Visible in the Request Center' and 'Allow Access Requests' marked on the 'Configuration' tab. @@ -33,7 +33,7 @@ Once you have performed this process, all the access profiles that aren't curren ## Disable requests for individual access profiles with the API Follow these steps to use two API endpoints to individually disable access requests for all access profiles that aren't currently associated with applications: -1. Use the [Search endpoint](https://developer.sailpoint.com/idn/api/v3/search-post) to identify the access profiles that are **not** associated with applications configured for access requests. Sending the following query will return a list of these unassociated access profiles. +1. Use the [Search endpoint](https://developer.sailpoint.com/docs/api/v3/search-post) to identify the access profiles that are **not** associated with applications configured for access requests. Sending the following query will return a list of these unassociated access profiles. - Provide this request body. It will return all access profiles that have a null or empty `apps` list. ``` { @@ -63,7 +63,7 @@ Follow these steps to use two API endpoints to individually disable access reque } ``` - The response body will include all the details of each unassociated access profile. Extract the `id` for each access profile returned. -2. Use the [PATCH Access Profile endpoint](https://developer.sailpoint.com/idn/api/v3/patch-access-profile) and provide the unassociated access profile's `id` to update the specified access profile's `requestable` field. +2. Use the [PATCH Access Profile endpoint](https://developer.sailpoint.com/docs/api/v3/patch-access-profile) and provide the unassociated access profile's `id` to update the specified access profile's `requestable` field. - Provide this request body. It will use the `replace` operation to update the value in the specified access profile's `requestable` path to `false`. ``` [ @@ -80,7 +80,7 @@ Once you have performed this process for each of the unassociated access profile ## Bulk disable requests for access profiles with the API Follow these steps to use two API endpoints to bulk disable access requests for all access profiles that aren't currently associated with applications: -1. Use the [Search endpoint](https://developer.sailpoint.com/idn/api/v3/search-post) to identify the access profiles that are **not** associated with applications configured for access requests. Sending the following query will return a list of these unassociated access profiles. +1. Use the [Search endpoint](https://developer.sailpoint.com/docs/api/v3/search-post) to identify the access profiles that are **not** associated with applications configured for access requests. Sending the following query will return a list of these unassociated access profiles. - Provide this request body. It will return all access profiles that have a null or empty `apps` list. ``` { @@ -110,7 +110,7 @@ Follow these steps to use two API endpoints to bulk disable access requests for } ``` - The response body will include all the details of each unassociated access profile. Extract the `id` for each access profile returned. -2. Use the [Update Requestability for Access Profiles endpoint](https://developer.sailpoint.com/idn/api/beta/update-access-profiles-in-bulk) and provide every unassociated access profile's `id`, along with the updated values for their `requestable` fields. +2. Use the [Update Requestability for Access Profiles endpoint](https://developer.sailpoint.com/docs/api/beta/update-access-profiles-in-bulk) and provide every unassociated access profile's `id`, along with the updated values for their `requestable` fields. - Provide this request body. It can bulk update all the access profiles you specify - you just need to specify each access profile's `id` and the `requestable` value you want for the access profile. ``` [ diff --git a/products/idn/docs/identity-now/global-platform-resources/img/idn-console.PNG b/docs/guides/img/idn-console.PNG similarity index 100% rename from products/idn/docs/identity-now/global-platform-resources/img/idn-console.PNG rename to docs/guides/img/idn-console.PNG diff --git a/products/idn/docs/identity-now/global-platform-resources/img/postman1.PNG b/docs/guides/img/postman1.PNG similarity index 100% rename from products/idn/docs/identity-now/global-platform-resources/img/postman1.PNG rename to docs/guides/img/postman1.PNG diff --git a/products/idn/docs/identity-now/global-platform-resources/img/postman2.PNG b/docs/guides/img/postman2.PNG similarity index 100% rename from products/idn/docs/identity-now/global-platform-resources/img/postman2.PNG rename to docs/guides/img/postman2.PNG diff --git a/products/idn/api/img/service-accounts/account-schema.png b/docs/guides/img/service-accounts/account-schema.png similarity index 100% rename from products/idn/api/img/service-accounts/account-schema.png rename to docs/guides/img/service-accounts/account-schema.png diff --git a/products/idn/api/img/service-accounts/create-identity-profile.png b/docs/guides/img/service-accounts/create-identity-profile.png similarity index 100% rename from products/idn/api/img/service-accounts/create-identity-profile.png rename to docs/guides/img/service-accounts/create-identity-profile.png diff --git a/products/idn/api/img/service-accounts/download-schema.png b/docs/guides/img/service-accounts/download-schema.png similarity index 100% rename from products/idn/api/img/service-accounts/download-schema.png rename to docs/guides/img/service-accounts/download-schema.png diff --git a/products/idn/api/img/service-accounts/import-accounts.png b/docs/guides/img/service-accounts/import-accounts.png similarity index 100% rename from products/idn/api/img/service-accounts/import-accounts.png rename to docs/guides/img/service-accounts/import-accounts.png diff --git a/products/idn/api/img/service-accounts/imported-account.png b/docs/guides/img/service-accounts/imported-account.png similarity index 100% rename from products/idn/api/img/service-accounts/imported-account.png rename to docs/guides/img/service-accounts/imported-account.png diff --git a/products/idn/api/img/service-accounts/invite.png b/docs/guides/img/service-accounts/invite.png similarity index 100% rename from products/idn/api/img/service-accounts/invite.png rename to docs/guides/img/service-accounts/invite.png diff --git a/products/idn/api/img/service-accounts/login.png b/docs/guides/img/service-accounts/login.png similarity index 100% rename from products/idn/api/img/service-accounts/login.png rename to docs/guides/img/service-accounts/login.png diff --git a/products/idn/api/img/service-accounts/mappings.png b/docs/guides/img/service-accounts/mappings.png similarity index 100% rename from products/idn/api/img/service-accounts/mappings.png rename to docs/guides/img/service-accounts/mappings.png diff --git a/products/idn/docs/identity-now/global-platform-resources/ip-address-allow-list.md b/docs/guides/ip-address-allow-list.md similarity index 75% rename from products/idn/docs/identity-now/global-platform-resources/ip-address-allow-list.md rename to docs/guides/ip-address-allow-list.md index 1ad6c41ed..36f274b55 100644 --- a/products/idn/docs/identity-now/global-platform-resources/ip-address-allow-list.md +++ b/docs/guides/ip-address-allow-list.md @@ -3,16 +3,14 @@ id: ip-address-allow-list title: IP Address Allow List pagination_label: IP Address Allow List sidebar_label: IP Address Allow List -sidebar_position: 8 +sidebar_position: 2 sidebar_class_name: allowList keywords: ['connectivity', 'connectors', 'workflows', 'allowlist','ip address'] -description: This document outlines how to create an IP Address Allow List for secure access to internal resources by certain IdentityNow services, and how to find your tenant's hosting region to set up this list​. -slug: /docs/global-platform-resources/ip-address-allow-list +description: Create an IP Address Allow List​. +slug: /guides/ip-address-allow-list tags: ['Connectivity', 'connectors', 'workflows', 'allowlist','ip address'] --- -# IP Address Allow List - ## Overview Some SaaS services like Workflows and SaaS Connectivity might need to reach out to internal resources to perform operations inside a customer environment. Instead of opening up those internal resources to the entire internet, you can create an IP Address Allow List so that you can be sure that all SaaS resources can access them while restricting the IP Address range to only allow what is required @@ -23,11 +21,11 @@ In order to create an IP Address Allow list, you need to know what region your t ### Finding your tenant using the admin console -Go to the admin console in IdentityNow and find the 'Org Details' section. You will find your tenant's host region there: +Go to the admin console in Identity Security Cloud and find the 'Org Details' section. You will find your tenant's host region there: ![img](./img/idn-console.PNG) -### Finding your tenant programatically using the IP address returned by IdentityNow +### Finding your tenant programatically using the IP address returned by Identity Security Cloud If you can't access the admin console or you want to dynamically find the region through code, follow these steps to find it: @@ -35,13 +33,13 @@ If you can't access the admin console or you want to dynamically find the region ![img](./img/postman1.PNG) -2. After a succesful call to IdentityNow, hover over the globe icon in the response window in postman to get the IP address: +2. After a succesful call to Identity Security Cloud, hover over the globe icon in the response window in postman to get the IP address: ![img](./img/postman2.PNG) 3. Download the [IP Address ranges from AWS](https://ip-ranges.amazonaws.com/ip-ranges.json) -4. Compare the IP address found when calling IdentityNow to the list provided by AWS to determine where your tenant is hosted. You can run a simple Python script to easily find what region the IP address belongs to: +4. Compare the IP address found when calling Identity Security Cloud to the list provided by AWS to determine where your tenant is hosted. You can run a simple Python script to easily find what region the IP address belongs to: ```python from ipaddress import ip_network, ip_address @@ -72,7 +70,7 @@ The URL used to find your range of allow list URLs can be constructed using the https://files.accessiq.sailpoint.com/network/REGION/FILENAME ``` -Where REGION is the region of your IdentityNow Tenant and FILENAME is one of the three following: +Where REGION is the region of your Identity Security Cloud Tenant and FILENAME is one of the three following: ``` source_ips.yaml @@ -96,7 +94,7 @@ which will result in a file similar to the following: - "52.206.146.115/32" ``` -These IP Address ranges can now be used as an allow list to permit any call from your IdentityNow tenant to access your internal network. +These IP Address ranges can now be used as an allow list to permit any call from your Identity Security Cloud tenant to access your internal network. ## Limitations diff --git a/products/idn/api/service-accounts.md b/docs/guides/service-accounts.md similarity index 77% rename from products/idn/api/service-accounts.md rename to docs/guides/service-accounts.md index 2612a308f..d3235dccf 100644 --- a/products/idn/api/service-accounts.md +++ b/docs/guides/service-accounts.md @@ -6,19 +6,20 @@ sidebar_label: Service Accounts sidebar_position: 4 sidebar_class_name: serviceAccounts keywords: ['service account'] -description: Read this guide to learn how to create service accounts that can generate API tokens to be used in integrations. +description: Create and implement service accounts. +slug: /guides/service-accounts tags: ['Service Account', 'Authentication'] --- ## Service Accounts -Service accounts are identities in IdentityNow (IDN) that aren't real people. Their purpose is to provide credentials for automation services that can be managed and controlled separately from real identities. As a developer of integrations with IDN, there are two main advantages of creating service accounts: you can scope access to the least privilege necessary to do the job, and you can ensure that your integration's access doesn't end when you leave your organization. If you use your user account to generate credentials for integrations, they are tied to your level of access (i.e. admin) and can be revoked when you leave the organization - this could cause downtime in your integrations. +Service accounts are identities in Identity Security Cloud (ISC) that aren't real people. Their purpose is to provide credentials for automation services that can be managed and controlled separately from real identities. As a developer of integrations with ISC, there are two main advantages of creating service accounts: you can scope access to the least privilege necessary to do the job, and you can ensure that your integration's access doesn't end when you leave your organization. If you use your user account to generate credentials for integrations, they are tied to your level of access (i.e. admin) and can be revoked when you leave the organization - this could cause downtime in your integrations. Read this guide to learn how to create service accounts and implement them. ### Implementing service accounts -Any authoritative source can be used to create and manage service accounts, with Active Directory (AD) being a likely choice. Using AD to create service accounts is advantageous because doing so provisions your service accounts with unique email addresses that can be used to log in to IDN as the service account. However, if you don't want to create service accounts by using AD, you can use a flat file source to create and manage your accounts. +Any authoritative source can be used to create and manage service accounts, with Active Directory (AD) being a likely choice. Using AD to create service accounts is advantageous because doing so provisions your service accounts with unique email addresses that can be used to log in to ISC as the service account. However, if you don't want to create service accounts by using AD, you can use a flat file source to create and manage your accounts. ### Create a delimited file source @@ -38,7 +39,7 @@ Then open the CSV and add a new service account: - Set the `id` to a unique value that won't be duplicated anywhere in this file (ex. `SA-001`). - Set the `name` to quickly describe the account's purpose (ex. `audit01`). -- Set the `e-mail` to a valid email address that you have access to. This is important - you will receive the IDN invite as an email to set the password and login as the service account. This can be your email address or any other email address you have access to (ex `admin@company.com`). You can also reuse this email address as many times as you want. +- Set the `e-mail` to a valid email address that you have access to. This is important - you will receive the ISC invite as an email to set the password and login as the service account. This can be your email address or any other email address you have access to (ex `admin@company.com`). You can also reuse this email address as many times as you want. - Set the `purpose` to a brief description of what this account is used for. This can help you identify accounts later on when you need to manage and delete old accounts (ex. `Automate monthly audit report`). Save the CSV and upload it to your source from the 'Import Accounts' tab. @@ -78,6 +79,6 @@ If you have not received the invite, check your junk folder or deleted folder be ### Permissions and access tokens -New service accounts are given the basic "user" level. Depending on what you need your service account to do, you will need to modify the user level appropriately. For more information about user levels and how to set them, refer to [user level permissions](./authorization.md#user-level-permissions). +New service accounts are given the basic "user" level. Depending on what you need your service account to do, you will need to modify the user level appropriately. For more information about user levels and how to set them, refer to [user level permissions](../api/authorization.md#user-level-permissions). -Once your service account has the appropriate user level, you can generate [personal access tokens](./authentication.md#personal-access-tokens) (PATs) from the service account to fulfill the needs of your integrations. You can further refine your PATs' access by applying [scopes](./authorization.md#scopes) to each PAT you create. +Once your service account has the appropriate user level, you can generate [personal access tokens](../api/authentication.md#personal-access-tokens) (PATs) from the service account to fulfill the needs of your integrations. You can further refine your PATs' access by applying [scopes](../api/authorization.md#scopes) to each PAT you create. diff --git a/docs/iiq.md b/docs/iiq.md new file mode 100644 index 000000000..7d13ebb12 --- /dev/null +++ b/docs/iiq.md @@ -0,0 +1,19 @@ +--- +id: iiq +title: IdentityIQ +pagination_label: IdentityIQ +sidebar_label: IdentityIQ +sidebar_position: 1 +sidebar_class_name: docs +keywords: ['docs'] +description: Building extensibility in IdentityIQ +slug: /iiq +tags: ['docs'] +--- + +```mdx-code-block +import DocCardList from '@theme/DocCardList'; +import {useCurrentSidebarCategory} from '@docusaurus/theme-common'; + + +``` diff --git a/products/iiq/docs/identity-iq/plugin-developer-guide/appendix-a/index.md b/docs/iiq/plugin-developer-guide/appendix-a/index.md similarity index 99% rename from products/iiq/docs/identity-iq/plugin-developer-guide/appendix-a/index.md rename to docs/iiq/plugin-developer-guide/appendix-a/index.md index 16fea54ae..423e8fd93 100644 --- a/products/iiq/docs/identity-iq/plugin-developer-guide/appendix-a/index.md +++ b/docs/iiq/plugin-developer-guide/appendix-a/index.md @@ -7,7 +7,7 @@ sidebar_position: 10 sidebar_class_name: plugin_developer_guide_appendix_migration keywords: ['plugin'] description: Migration from IdentityIQ 7.0 to 7.1 -slug: /docs/plugin-developer-guide/appendix-migration +slug: /iiq/plugin-developer-guide/appendix-migration tags: ['plugin','guide','identityiq'] --- diff --git a/products/iiq/docs/identity-iq/plugin-developer-guide/appendix-b/index.md b/docs/iiq/plugin-developer-guide/appendix-b/index.md similarity index 96% rename from products/iiq/docs/identity-iq/plugin-developer-guide/appendix-b/index.md rename to docs/iiq/plugin-developer-guide/appendix-b/index.md index 299e697af..2052e995e 100644 --- a/products/iiq/docs/identity-iq/plugin-developer-guide/appendix-b/index.md +++ b/docs/iiq/plugin-developer-guide/appendix-b/index.md @@ -7,7 +7,7 @@ sidebar_position: 11 sidebar_class_name: plugin_developer_guide_updates keywords: ['plugin'] description: IdentityIQ 8.0 Updates -slug: /docs/plugin-developer-guide/updates +slug: /iiq/plugin-developer-guide/updates tags: ['plugin','guide','identityiq'] --- # Appendix B - 8.0 Updates diff --git a/products/iiq/docs/identity-iq/plugin-developer-guide/chapter-1/index.md b/docs/iiq/plugin-developer-guide/chapter-1/index.md similarity index 99% rename from products/iiq/docs/identity-iq/plugin-developer-guide/chapter-1/index.md rename to docs/iiq/plugin-developer-guide/chapter-1/index.md index 4dd6d82f3..1dc24079c 100644 --- a/products/iiq/docs/identity-iq/plugin-developer-guide/chapter-1/index.md +++ b/docs/iiq/plugin-developer-guide/chapter-1/index.md @@ -7,7 +7,7 @@ sidebar_position: 1 sidebar_class_name: plugin_developer_guide_overview keywords: ['plugin'] description: IdentityIQ Plugin Developer Guide Overview -slug: /docs/plugin-developer-guide/overview +slug: /iiq/plugin-developer-guide/overview tags: ['plugin','guide','identityiq'] --- diff --git a/products/iiq/docs/identity-iq/plugin-developer-guide/chapter-2/index.md b/docs/iiq/plugin-developer-guide/chapter-2/index.md similarity index 99% rename from products/iiq/docs/identity-iq/plugin-developer-guide/chapter-2/index.md rename to docs/iiq/plugin-developer-guide/chapter-2/index.md index b4f98154e..96d96d800 100644 --- a/products/iiq/docs/identity-iq/plugin-developer-guide/chapter-2/index.md +++ b/docs/iiq/plugin-developer-guide/chapter-2/index.md @@ -7,7 +7,7 @@ sidebar_position: 2 sidebar_class_name: plugin_developer_guide_manifest keywords: ['plugin'] description: IdentityIQ Plugin Manifest File -slug: /docs/plugin-developer-guide/manifest +slug: /iiq/plugin-developer-guide/manifest tags: ['plugin','guide','identityiq'] --- diff --git a/products/iiq/docs/identity-iq/plugin-developer-guide/chapter-3/index.md b/docs/iiq/plugin-developer-guide/chapter-3/index.md similarity index 99% rename from products/iiq/docs/identity-iq/plugin-developer-guide/chapter-3/index.md rename to docs/iiq/plugin-developer-guide/chapter-3/index.md index 4bc2e99dc..73a236413 100644 --- a/products/iiq/docs/identity-iq/plugin-developer-guide/chapter-3/index.md +++ b/docs/iiq/plugin-developer-guide/chapter-3/index.md @@ -7,7 +7,7 @@ sidebar_position: 3 sidebar_class_name: plugin_developer_guide_build_file keywords: ['plugin'] description: IdentityIQ Plugin Build File -slug: /docs/plugin-developer-guide/build-file +slug: /iiq/plugin-developer-guide/build-file tags: ['plugin','guide','identityiq'] --- diff --git a/products/iiq/docs/identity-iq/plugin-developer-guide/chapter-4/index.md b/docs/iiq/plugin-developer-guide/chapter-4/index.md similarity index 97% rename from products/iiq/docs/identity-iq/plugin-developer-guide/chapter-4/index.md rename to docs/iiq/plugin-developer-guide/chapter-4/index.md index 02c2f828f..9c4c14241 100644 --- a/products/iiq/docs/identity-iq/plugin-developer-guide/chapter-4/index.md +++ b/docs/iiq/plugin-developer-guide/chapter-4/index.md @@ -7,7 +7,7 @@ sidebar_position: 4 sidebar_class_name: plugin_developer_guide_database_scripts keywords: ['plugin'] description: IdentityIQ Plugin Database Scripts -slug: /docs/plugin-developer-guide/database-scripts +slug: /iiq/plugin-developer-guide/database-scripts tags: ['plugin','guide','identityiq'] --- diff --git a/products/iiq/docs/identity-iq/plugin-developer-guide/chapter-5/index.md b/docs/iiq/plugin-developer-guide/chapter-5/index.md similarity index 98% rename from products/iiq/docs/identity-iq/plugin-developer-guide/chapter-5/index.md rename to docs/iiq/plugin-developer-guide/chapter-5/index.md index c57ae6a2f..331c00c16 100644 --- a/products/iiq/docs/identity-iq/plugin-developer-guide/chapter-5/index.md +++ b/docs/iiq/plugin-developer-guide/chapter-5/index.md @@ -7,7 +7,7 @@ sidebar_position: 5 sidebar_class_name: plugin_developer_guide_ui_elements keywords: ['plugin'] description: IdentityIQ Plugin UI Elements -slug: /docs/plugin-developer-guide/ui-elements +slug: /iiq/plugin-developer-guide/ui-elements tags: ['plugin','guide','identityiq'] --- # UI Elements diff --git a/products/iiq/docs/identity-iq/plugin-developer-guide/chapter-6/index.md b/docs/iiq/plugin-developer-guide/chapter-6/index.md similarity index 97% rename from products/iiq/docs/identity-iq/plugin-developer-guide/chapter-6/index.md rename to docs/iiq/plugin-developer-guide/chapter-6/index.md index 5a69372c6..b12417ff0 100644 --- a/products/iiq/docs/identity-iq/plugin-developer-guide/chapter-6/index.md +++ b/docs/iiq/plugin-developer-guide/chapter-6/index.md @@ -7,7 +7,7 @@ sidebar_position: 6 sidebar_class_name: plugin_developer_guide_xml_artifacts keywords: ['plugin'] description: IdentityIQ Plugin XML Artifacts -slug: /docs/plugin-developer-guide/xml-artifacts +slug: /iiq/plugin-developer-guide/xml-artifacts tags: ['plugin','guide','identityiq'] --- diff --git a/products/iiq/docs/identity-iq/plugin-developer-guide/chapter-7/index.md b/docs/iiq/plugin-developer-guide/chapter-7/index.md similarity index 98% rename from products/iiq/docs/identity-iq/plugin-developer-guide/chapter-7/index.md rename to docs/iiq/plugin-developer-guide/chapter-7/index.md index 333e75885..0587d3463 100644 --- a/products/iiq/docs/identity-iq/plugin-developer-guide/chapter-7/index.md +++ b/docs/iiq/plugin-developer-guide/chapter-7/index.md @@ -7,7 +7,7 @@ sidebar_position: 7 sidebar_class_name: plugin_developer_guide_java_rest_resources keywords: ['plugin'] description: IdentityIQ Plugin Java Classes REST Resources -slug: /docs/plugin-developer-guide/java-classes-rest-resources +slug: /iiq/plugin-developer-guide/java-classes-rest-resources tags: ['plugin','guide','identityiq'] --- diff --git a/products/iiq/docs/identity-iq/plugin-developer-guide/chapter-8/index.md b/docs/iiq/plugin-developer-guide/chapter-8/index.md similarity index 99% rename from products/iiq/docs/identity-iq/plugin-developer-guide/chapter-8/index.md rename to docs/iiq/plugin-developer-guide/chapter-8/index.md index 2b430320f..800aceaa9 100644 --- a/products/iiq/docs/identity-iq/plugin-developer-guide/chapter-8/index.md +++ b/docs/iiq/plugin-developer-guide/chapter-8/index.md @@ -7,7 +7,7 @@ sidebar_position: 8 sidebar_class_name: plugin_developer_guide_java_executors keywords: ['plugin'] description: IdentityIQ Plugin Java Class Plugin Executors -slug: /docs/plugin-developer-guide/java-classes-executors +slug: /iiq/plugin-developer-guide/java-classes-executors tags: ['plugin','guide','identityiq'] --- diff --git a/products/iiq/docs/identity-iq/plugin-developer-guide/chapter-9/index.md b/docs/iiq/plugin-developer-guide/chapter-9/index.md similarity index 97% rename from products/iiq/docs/identity-iq/plugin-developer-guide/chapter-9/index.md rename to docs/iiq/plugin-developer-guide/chapter-9/index.md index 898594430..766691e99 100644 --- a/products/iiq/docs/identity-iq/plugin-developer-guide/chapter-9/index.md +++ b/docs/iiq/plugin-developer-guide/chapter-9/index.md @@ -7,7 +7,7 @@ sidebar_position: 9 sidebar_class_name: plugin_developer_guide_installation keywords: ['plugin'] description: IdentityIQ Plugin Installation -slug: /docs/plugin-developer-guide/installation +slug: /iiq/plugin-developer-guide/installation tags: ['plugin','guide','identityiq'] --- diff --git a/products/iiq/docs/identity-iq/plugin-developer-guide/img/database_scripts.png b/docs/iiq/plugin-developer-guide/img/database_scripts.png similarity index 100% rename from products/iiq/docs/identity-iq/plugin-developer-guide/img/database_scripts.png rename to docs/iiq/plugin-developer-guide/img/database_scripts.png diff --git a/products/iiq/docs/identity-iq/plugin-developer-guide/img/delete_plugin.png b/docs/iiq/plugin-developer-guide/img/delete_plugin.png similarity index 100% rename from products/iiq/docs/identity-iq/plugin-developer-guide/img/delete_plugin.png rename to docs/iiq/plugin-developer-guide/img/delete_plugin.png diff --git a/products/iiq/docs/identity-iq/plugin-developer-guide/img/drag_and_drop.png b/docs/iiq/plugin-developer-guide/img/drag_and_drop.png similarity index 100% rename from products/iiq/docs/identity-iq/plugin-developer-guide/img/drag_and_drop.png rename to docs/iiq/plugin-developer-guide/img/drag_and_drop.png diff --git a/products/iiq/docs/identity-iq/plugin-developer-guide/img/new_plugin.png b/docs/iiq/plugin-developer-guide/img/new_plugin.png similarity index 100% rename from products/iiq/docs/identity-iq/plugin-developer-guide/img/new_plugin.png rename to docs/iiq/plugin-developer-guide/img/new_plugin.png diff --git a/products/iiq/docs/identity-iq/plugin-developer-guide/img/persisted_file.png b/docs/iiq/plugin-developer-guide/img/persisted_file.png similarity index 100% rename from products/iiq/docs/identity-iq/plugin-developer-guide/img/persisted_file.png rename to docs/iiq/plugin-developer-guide/img/persisted_file.png diff --git a/products/iiq/docs/identity-iq/plugin-developer-guide/img/plugin_dist.png b/docs/iiq/plugin-developer-guide/img/plugin_dist.png similarity index 100% rename from products/iiq/docs/identity-iq/plugin-developer-guide/img/plugin_dist.png rename to docs/iiq/plugin-developer-guide/img/plugin_dist.png diff --git a/products/iiq/docs/identity-iq/plugin-developer-guide/img/plugin_structure.png b/docs/iiq/plugin-developer-guide/img/plugin_structure.png similarity index 100% rename from products/iiq/docs/identity-iq/plugin-developer-guide/img/plugin_structure.png rename to docs/iiq/plugin-developer-guide/img/plugin_structure.png diff --git a/products/iiq/docs/identity-iq/plugin-developer-guide/img/snippet.png b/docs/iiq/plugin-developer-guide/img/snippet.png similarity index 100% rename from products/iiq/docs/identity-iq/plugin-developer-guide/img/snippet.png rename to docs/iiq/plugin-developer-guide/img/snippet.png diff --git a/docs/index.md b/docs/index.md new file mode 100644 index 000000000..e630d1a2e --- /dev/null +++ b/docs/index.md @@ -0,0 +1,50 @@ +--- +id: docs +title: Identity Security Cloud +pagination_label: Docs +sidebar_label: Docs +sidebar_position: 1 +sidebar_class_name: docs +keywords: ['docs'] +description: The Identity Security Cloud Developer Documentation. +slug: / +tags: ['docs'] +--- + +## Overview + +:::caution What about IdentityNow? + +Looking for IdentityNow? You're in the right place! IdentityNow has an updated brand in Identity Security Cloud. + +::: + +Identity Security Cloud (ISC) is a unified, multi-tenant identity governance and security platform. ISC provides organizations with the ability to ensure that their users, known as identities in ISC, have secure access to different data sources, and it makes identity access management fast and easy. + +The ISC platform out of the box will often meet all your identity governance and security needs, but it's possible that it won't. The beauty of ISC is that even if it doesn't quite meet all your needs, you can extend the platform's functionality and build custom solutions that do! + +The SailPoint Developer Documentation provides developers with all the information they need to extend their platforms' functionality and build their desired solutions. The developer documentation is written for developers of all experience levels, from nontechnical users exploring what's possible to advanced developers who live and breathe code. + +Check out the developer documentation and see what's possible! + +:::info Are you a partner? + +The developer documentation is written for customers and partners who already have access to ISC. If you're interested in becoming a partner, go [here](https://www.sailpoint.com/partners/become-partner/). + +::: + +```mdx-code-block +import DocCardList from '@theme/DocCardList'; +import {useCurrentSidebarCategory} from '@docusaurus/theme-common'; + + +``` + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +## Discuss + +The most valuable resource for ISC developers is the SailPoint Developer Community itself, where ISC users and experts all over the world come together to ask questions and provide solutions. + +To learn more about ISC and discuss it with SailPoint Developer Community members, go to the [SailPoint Developer Community Forum](https://developer.sailpoint.com/discuss/c/isc/6). \ No newline at end of file diff --git a/products/iiq/docs/identity-iq/plugin-developer-guide/index.md b/docs/plugin-developer-guide.md similarity index 95% rename from products/iiq/docs/identity-iq/plugin-developer-guide/index.md rename to docs/plugin-developer-guide.md index fc2a7e132..93bf86cc5 100644 --- a/products/iiq/docs/identity-iq/plugin-developer-guide/index.md +++ b/docs/plugin-developer-guide.md @@ -6,8 +6,8 @@ sidebar_label: Plugin Developer Guide sidebar_position: 1 sidebar_class_name: plugin_developer_guide keywords: ['plugin'] -description: Plugin Developer Guide in IdentityIQ -slug: /docs/plugin-developer-guide +description: IdentityIQ Plugin Developer Guide. +slug: /iiq/plugin-developer-guide tags: ['plugin','guide','identityiq'] --- diff --git a/docs/reporting.md b/docs/reporting.md new file mode 100644 index 000000000..09d9dd3cb --- /dev/null +++ b/docs/reporting.md @@ -0,0 +1,28 @@ +--- +id: reporting +title: Reporting +pagination_label: Reporting +sidebar_label: Reporting +sidebar_position: 1 +sidebar_class_name: reporting +keywords: ['reporting'] +description: Collect data reports from ISC. +slug: /reporting +tags: ['reporting'] +--- + +## Overview + +Data reporting refers to the process of collecting and presenting data in a structured format that makes the data accessible and easy to understand, which facilitates an organization's data-driven decisions. Identity Security Cloud (ISC) provides different data reporting options you can use to extract data from your tenant and make it presentable. + +```mdx-code-block +import DocCardList from '@theme/DocCardList'; +import {useCurrentSidebarCategory} from '@docusaurus/theme-common'; + + +``` + +## Discuss +The most valuable resource for ISC developers is the SailPoint Developer Community itself, where ISC users and experts all over the world come together to ask questions and provide solutions. + +To learn more about ISC data reporting and discuss the different options with SailPoint Developer Community members, go to the [SailPoint Developer Community Forum](https://developer.sailpoint.com/discuss/c/isc/6). diff --git a/docs/reporting/access-intelligence-center/_category_.json b/docs/reporting/access-intelligence-center/_category_.json new file mode 100644 index 000000000..9c0816cc1 --- /dev/null +++ b/docs/reporting/access-intelligence-center/_category_.json @@ -0,0 +1,5 @@ +{ + "customProps": { + "description": "Create your own dashboards and discover key insights." + } +} \ No newline at end of file diff --git a/products/idn/docs/identity-now/access-intelligence-center/audit-er-diagram.md b/docs/reporting/access-intelligence-center/audit-er-diagram.md similarity index 98% rename from products/idn/docs/identity-now/access-intelligence-center/audit-er-diagram.md rename to docs/reporting/access-intelligence-center/audit-er-diagram.md index 0d30ee72a..f07326342 100644 --- a/products/idn/docs/identity-now/access-intelligence-center/audit-er-diagram.md +++ b/docs/reporting/access-intelligence-center/audit-er-diagram.md @@ -7,7 +7,7 @@ sidebar_position: 2 sidebar_class_name: AccessIntelligenceCenter keywords: ['data listing', 'data share', 'secure data sharing'] description: Access Intelligence Center Audit ER Diagram -slug: /docs/aic-audit-er-diagram +slug: /reporting/aic-audit-er-diagram tags: ['AccessIntelligenceCenter', 'AIC'] hide_table_of_contents: true --- diff --git a/products/idn/docs/identity-now/access-intelligence-center/identity-er-diagram.md b/docs/reporting/access-intelligence-center/identity-er-diagram.md similarity index 99% rename from products/idn/docs/identity-now/access-intelligence-center/identity-er-diagram.md rename to docs/reporting/access-intelligence-center/identity-er-diagram.md index f5e3c7fb3..1560860a2 100644 --- a/products/idn/docs/identity-now/access-intelligence-center/identity-er-diagram.md +++ b/docs/reporting/access-intelligence-center/identity-er-diagram.md @@ -7,7 +7,7 @@ sidebar_position: 1 sidebar_class_name: AccessIntelligenceCenter keywords: ['data listing', 'data share', 'secure data sharing'] description: Access Intelligence Center ER Diagram -slug: /docs/aic-er-diagram +slug: /reporting/aic-er-diagram tags: ['AccessIntelligenceCenter', 'AIC'] hide_table_of_contents: true --- diff --git a/products/idn/docs/identity-now/access-intelligence-center/index.md b/docs/reporting/access-intelligence-center/index.md similarity index 90% rename from products/idn/docs/identity-now/access-intelligence-center/index.md rename to docs/reporting/access-intelligence-center/index.md index fcf95ae64..8e67cd9c2 100644 --- a/products/idn/docs/identity-now/access-intelligence-center/index.md +++ b/docs/reporting/access-intelligence-center/index.md @@ -6,8 +6,8 @@ sidebar_label: Access Intelligence Center sidebar_position: 5 sidebar_class_name: AccessIntelligenceCenter keywords: ['data listing', 'data share', 'secure data sharing'] -description: Access Intelligence Center is an easy way to get IDN data of your organization in a structured format. -slug: /docs/access-intelligence-center +description: Custom dashboards for data analysis. +slug: /reporting/access-intelligence-center tags: ['AccessIntelligenceCenter', 'AIC'] hide_table_of_contents: true --- @@ -25,7 +25,7 @@ The AIC Audit dashboard focuses on more tangible audit events, such as access re With Reader permission, users can view any public sheets available and make selections to further filter the data. With Authoring permission, users can view public sheets, create new public or private sheets, and bookmark certain filters for future use. -## IdentityNow Documentation +## Identity Security Cloud Documentation For information on how to use AIC in your environment, see the documentation [here](https://documentation.sailpoint.com/saas/help/ai/access_insights/access_intelligence.html) ## Technical Documentation and Videos diff --git a/products/idn/docs/identity-now/access-intelligence-center/videos.md b/docs/reporting/access-intelligence-center/videos.md similarity index 97% rename from products/idn/docs/identity-now/access-intelligence-center/videos.md rename to docs/reporting/access-intelligence-center/videos.md index eba164688..809980410 100644 --- a/products/idn/docs/identity-now/access-intelligence-center/videos.md +++ b/docs/reporting/access-intelligence-center/videos.md @@ -7,7 +7,7 @@ sidebar_position: 2 sidebar_class_name: AccessIntelligenceCenter keywords: ['data listing', 'data share', 'secure data sharing'] description: Access Intelligence Center Videos -slug: /docs/aic-videos +slug: /reporting/aic-videos tags: ['AccessIntelligenceCenter', 'AIC'] --- diff --git a/docs/reporting/secure-data-share/_category_.json b/docs/reporting/secure-data-share/_category_.json new file mode 100644 index 000000000..11508475c --- /dev/null +++ b/docs/reporting/secure-data-share/_category_.json @@ -0,0 +1,5 @@ +{ + "customProps": { + "description": "Securely share ISC data with Snowflake." + } +} \ No newline at end of file diff --git a/products/idn/docs/identity-now/secure-data-share/audit-er-diagram.md b/docs/reporting/secure-data-share/audit-er-diagram.md similarity index 97% rename from products/idn/docs/identity-now/secure-data-share/audit-er-diagram.md rename to docs/reporting/secure-data-share/audit-er-diagram.md index 629beffb5..b381a9670 100644 --- a/products/idn/docs/identity-now/secure-data-share/audit-er-diagram.md +++ b/docs/reporting/secure-data-share/audit-er-diagram.md @@ -7,7 +7,7 @@ sidebar_position: 2 sidebar_class_name: secureDataShare keywords: ['data listing', 'data share', 'secure data sharing'] description: Secure Data Share Audit ER Diagram -slug: /docs/sds-audit-er-diagram +slug: /reporting/sds-audit-er-diagram tags: ['SecureDataShare', 'SDS'] hide_table_of_contents: true --- diff --git a/products/idn/docs/identity-now/secure-data-share/identity-er-diagram.md b/docs/reporting/secure-data-share/identity-er-diagram.md similarity index 99% rename from products/idn/docs/identity-now/secure-data-share/identity-er-diagram.md rename to docs/reporting/secure-data-share/identity-er-diagram.md index f949bcb47..39902a7f0 100644 --- a/products/idn/docs/identity-now/secure-data-share/identity-er-diagram.md +++ b/docs/reporting/secure-data-share/identity-er-diagram.md @@ -7,7 +7,7 @@ sidebar_position: 1 sidebar_class_name: secureDataShare keywords: ['data listing', 'data share', 'secure data sharing'] description: Secure Data Share Entity Relationship Diagram -slug: /docs/sds-er-diagram +slug: /reporting/sds-er-diagram tags: ['SecureDataShare', 'SDS'] hide_table_of_contents: true --- diff --git a/products/idn/docs/identity-now/secure-data-share/index.md b/docs/reporting/secure-data-share/index.md similarity index 83% rename from products/idn/docs/identity-now/secure-data-share/index.md rename to docs/reporting/secure-data-share/index.md index 656318640..aa92d7cc5 100644 --- a/products/idn/docs/identity-now/secure-data-share/index.md +++ b/docs/reporting/secure-data-share/index.md @@ -6,17 +6,17 @@ sidebar_label: Secure Data Share sidebar_position: 6 sidebar_class_name: secureDataShare keywords: ['data listing', 'data share', 'secure data sharing'] -description: Secure Data Share is an easy way to get IDN data of your organization in a structured format. -slug: /docs/secure-data-share +description: Share ISC data with Snowflake. +slug: /reporting/secure-data-share tags: ['SecureDataShare'] hide_table_of_contents: true --- import MermaidViewer from '@site/src/components/MermaidViewer'; -Secure Data Sharing (SDS) makes SailPoint's Identity data available directly to customer via their Snowflake account. DataSet comprises of structured Identity and audit data. Includes relationship tables that connects Identity with other domain entities like entitlements, roles, access profiles, accounts and Apps. This dataset has an additional Audit events table that is a flattened representation of all the events happening in IdentityNow for your organization. +Secure Data Sharing (SDS) makes SailPoint's Identity data available directly to customer via their Snowflake account. DataSet comprises of structured Identity and audit data. Includes relationship tables that connects Identity with other domain entities like entitlements, roles, access profiles, accounts and Apps. This dataset has an additional Audit events table that is a flattened representation of all the events happening in Identity Security Cloud for your organization. -## IdentityNow Documentation +## Identity Security Cloud Documentation For information on how to use SDS in your environment, see the documentation [here](https://documentation.sailpoint.com/saas/help/secure_data_share/secure_data_share.html). ## Technical Documentation diff --git a/docs/sidebar.js b/docs/sidebar.js new file mode 100644 index 000000000..9d6f9ef4a --- /dev/null +++ b/docs/sidebar.js @@ -0,0 +1,127 @@ +// const sidebars = { +// openApiSidebar: [ +// { +// type: 'category', +// label: 'API Specifications', +// collapsible: true, +// items: [ +// { +// type: 'doc', +// id: 'api/getting-started', +// }, +// { +// type: 'doc', +// id: 'api/authentication', +// }, +// { +// type: 'doc', +// id: 'api/authorization', +// }, +// { +// type: 'doc', +// id: 'api/service-accounts', +// }, +// { +// type: 'doc', +// id: 'api/standard-collection-parameters', +// }, +// { +// type: 'doc', +// id: 'api/rate-limit', +// }, +// { +// type: 'doc', +// id: 'api/postman-collections', +// }, +// { +// type: 'doc', +// id: 'api/patch-requests' +// }, +// { +// type: 'category', +// label: 'V3 APIs', +// link: { +// type: 'generated-index', +// title: 'V3 APIs', +// description: +// 'Use these APIs to interact with the IdentityNow platform to achieve repeatable, automated processes with greater scalability. We encourage you to join the SailPoint Developer Community forum at https://developer.sailpoint.com/discuss to connect with other developers using our APIs.', +// slug: '/api/v3', +// }, +// // @ts-ignore +// items: require('./api/v3/sidebar.js'), +// }, +// { +// type: 'category', +// label: 'Beta APIs', +// link: { +// type: 'generated-index', +// title: 'Beta APIs', +// description: +// 'Use these APIs to interact with the IdentityNow platform to achieve repeatable, automated processes with greater scalability. These APIs are in beta and are subject to change. We encourage you to join the SailPoint Developer Community forum at https://developer.sailpoint.com/discuss to connect with other developers using our APIs.', +// slug: '/api/beta', +// }, +// // @ts-ignore +// items: require('./api/beta/sidebar.js'), +// }, +// ], +// }, +// { +// type: 'category', +// label: 'Extensibility', +// items: [ +// { +// type: 'autogenerated', +// dirName: 'extensibility', +// } +// ] +// }, +// { +// type: 'category', +// label: 'Tools', +// items: [ +// { +// type: 'autogenerated', +// dirName: 'tools', +// } +// ] +// }, +// { +// type: 'category', +// label: 'Reporting', +// items: [ +// { +// type: 'autogenerated', +// dirName: 'reporting', +// } +// ] +// }, +// ] +// }; +// module.exports = sidebars; + +const sidebars = { + iiqOpenApiSidebar: [ + { + type: 'category', + label: 'IdentityIQ API', + link: { + type: 'generated-index', + title: 'IdentityIQ API', + description: + "These are the SCIM APIs for SailPoint's on-premise service, IdentityIQ. We encourage you to join the SailPoint Developer Community forum at https://developer.sailpoint.com/discuss to connect with other developers using our APIs.", + slug: '/api/iiq', + }, + // @ts-ignore + items: require('./api/sidebar.js'), + }, + ], + idnDocs: [ + { + type: 'autogenerated', + dirName: 'docs', + }, + ] + }; + + module.exports = sidebars; + \ No newline at end of file diff --git a/docs/tools.md b/docs/tools.md new file mode 100644 index 000000000..f328fc335 --- /dev/null +++ b/docs/tools.md @@ -0,0 +1,28 @@ +--- +id: tools +title: Tools +pagination_label: Tools +sidebar_label: Tools +sidebar_position: 1 +sidebar_class_name: tools +keywords: ['tools'] +description: ISC developer tools. +slug: /tools +tags: ['tools'] +--- + +## Overview + +The SailPoint Developer Relations Team has built some useful tools that improve the experience for developers building on the Identity Security Cloud (ISC) platform. These tools make it easier for developers to leverage the ISC APIs, extensibility options, and connectivity. + +```mdx-code-block +import DocCardList from '@theme/DocCardList'; +import {useCurrentSidebarCategory} from '@docusaurus/theme-common'; + + +``` + +## Discuss +The most valuable resource for ISC developers is the SailPoint Developer Community itself, where ISC users and experts all over the world come together to ask questions and provide solutions. + +To learn more about ISC tools and discuss them with SailPoint Developer Community members, go to the [SailPoint Developer Community Forum](https://developer.sailpoint.com/discuss/c/isc/6). diff --git a/products/idn/tools/cli/Templates/report.md b/docs/tools/cli/Templates/report.md similarity index 100% rename from products/idn/tools/cli/Templates/report.md rename to docs/tools/cli/Templates/report.md diff --git a/products/idn/tools/cli/Templates/search.md b/docs/tools/cli/Templates/search.md similarity index 89% rename from products/idn/tools/cli/Templates/search.md rename to docs/tools/cli/Templates/search.md index acd70a3c9..256da0e67 100644 --- a/products/idn/tools/cli/Templates/search.md +++ b/docs/tools/cli/Templates/search.md @@ -106,4 +106,4 @@ For example, the variable in this template is configured so you can choose how m } ``` -Everything inside this searchQuery object matches the standard format of an [IdentityNow search query](https://documentation.sailpoint.com/saas/help/search/building-query.html). A limited number of examples are provided [here](https://developer.sailpoint.com/idn/api/v3/search-post), but the searchQuery object is mapped to the full search object. This means that you can add any search query values missing from this object. +Everything inside this searchQuery object matches the standard format of an [Identity Security Cloud search query](https://documentation.sailpoint.com/saas/help/search/building-query.html). A limited number of examples are provided [here](https://developer.sailpoint.com/docs/api/v3/search-post), but the searchQuery object is mapped to the full search object. This means that you can add any search query values missing from this object. diff --git a/products/idn/tools/cli/Templates/spconfig.md b/docs/tools/cli/Templates/spconfig.md similarity index 94% rename from products/idn/tools/cli/Templates/spconfig.md rename to docs/tools/cli/Templates/spconfig.md index f02880c26..6747dca9d 100644 --- a/products/idn/tools/cli/Templates/spconfig.md +++ b/docs/tools/cli/Templates/spconfig.md @@ -11,7 +11,7 @@ slug: /tools/cli/templates/spconfig tags: ['CLI'] --- -Use SPConfig templates to perform complex import and export operations with IdentityNow (IDN) configurations. +Use SPConfig templates to perform complex import and export operations with Identity Security Cloud (ISC) configurations. This is an example of a template file with one SPConfig template populated: @@ -69,7 +69,7 @@ Use variables to dynamically populate values in the following content during com "exportBody": { ``` -The following object matches that detailed in the [API docs](https://developer.sailpoint.com/idn/api/beta/export-sp-config) +The following object matches that detailed in the [API docs](https://developer.sailpoint.com/docs/api/beta/export-sp-config) ```json "description": "Export all available objects", diff --git a/docs/tools/cli/_category_.json b/docs/tools/cli/_category_.json new file mode 100644 index 000000000..50f1f7ad1 --- /dev/null +++ b/docs/tools/cli/_category_.json @@ -0,0 +1,5 @@ +{ + "customProps": { + "description": "Terminal based tool for interaction with ISC." + } +} \ No newline at end of file diff --git a/products/idn/tools/cli/assets/img/vhs/MacOSAndLinux.gif b/docs/tools/cli/assets/img/vhs/MacOSAndLinux.gif similarity index 100% rename from products/idn/tools/cli/assets/img/vhs/MacOSAndLinux.gif rename to docs/tools/cli/assets/img/vhs/MacOSAndLinux.gif diff --git a/products/idn/tools/cli/assets/img/vhs/Sail.gif b/docs/tools/cli/assets/img/vhs/Sail.gif similarity index 100% rename from products/idn/tools/cli/assets/img/vhs/Sail.gif rename to docs/tools/cli/assets/img/vhs/Sail.gif diff --git a/products/idn/tools/cli/assets/img/vhs/brewinstall.gif b/docs/tools/cli/assets/img/vhs/brewinstall.gif similarity index 100% rename from products/idn/tools/cli/assets/img/vhs/brewinstall.gif rename to docs/tools/cli/assets/img/vhs/brewinstall.gif diff --git a/products/idn/tools/cli/assets/img/vhs/configure-pat.gif b/docs/tools/cli/assets/img/vhs/configure-pat.gif similarity index 100% rename from products/idn/tools/cli/assets/img/vhs/configure-pat.gif rename to docs/tools/cli/assets/img/vhs/configure-pat.gif diff --git a/products/idn/tools/cli/assets/img/vhs/transform-download.gif b/docs/tools/cli/assets/img/vhs/transform-download.gif similarity index 100% rename from products/idn/tools/cli/assets/img/vhs/transform-download.gif rename to docs/tools/cli/assets/img/vhs/transform-download.gif diff --git a/products/idn/tools/cli/assets/img/vhs/transform-list.gif b/docs/tools/cli/assets/img/vhs/transform-list.gif similarity index 100% rename from products/idn/tools/cli/assets/img/vhs/transform-list.gif rename to docs/tools/cli/assets/img/vhs/transform-list.gif diff --git a/products/idn/tools/cli/assets/img/vhs/transform.gif b/docs/tools/cli/assets/img/vhs/transform.gif similarity index 100% rename from products/idn/tools/cli/assets/img/vhs/transform.gif rename to docs/tools/cli/assets/img/vhs/transform.gif diff --git a/products/idn/tools/cli/cluster.md b/docs/tools/cli/cluster.md similarity index 91% rename from products/idn/tools/cli/cluster.md rename to docs/tools/cli/cluster.md index cf1edfd36..a688093df 100644 --- a/products/idn/tools/cli/cluster.md +++ b/docs/tools/cli/cluster.md @@ -33,7 +33,7 @@ sail cluster list This command returns a table of the clusters, along with their IDs. -This command uses the [Get all clusters endpoint](https://developer.sailpoint.com/idn/api/beta/get-managed-clusters). +This command uses the [Get all clusters endpoint](https://developer.sailpoint.com/docs/api/beta/get-managed-clusters). ## Get cluster by ID @@ -57,7 +57,7 @@ You can also get multiple clusters at once. Here is an example: sail cluster get f48e8c9c7dce4672bead8222a767dce7 3652192cc2264ad5827fdc1eb2d88f01 ``` -This command uses the [Get cluster endpoint](https://developer.sailpoint.com/idn/api/beta/get-managed-cluster). +This command uses the [Get cluster endpoint](https://developer.sailpoint.com/docs/api/beta/get-managed-cluster). ## Get cluster's log configuration @@ -73,13 +73,13 @@ Here is an example: sail cluster log get 2c91808580f6cc1a01811af8cf5f18cb ``` -This command uses the [Get cluster's log configuration endpoint](https://developer.sailpoint.com/idn/api/beta/get-client-log-configuration). +This command uses the [Get cluster's log configuration endpoint](https://developer.sailpoint.com/docs/api/beta/get-client-log-configuration). ## Set cluster's log configuration You can update a cluster's root logging level, the duration of its logging, and the connector logging class. To set a cluster's log configuration, run this command: -This command uses the [Update cluster's log configuration endpoint](https://developer.sailpoint.com/idn/api/beta/put-client-log-configuration). +This command uses the [Update cluster's log configuration endpoint](https://developer.sailpoint.com/docs/api/beta/put-client-log-configuration). ```shell sail cluster log set {cluster ID} -r {rootLevel} -d {durationMinutes} -c {connector logging class} diff --git a/products/idn/tools/cli/connectors.md b/docs/tools/cli/connectors.md similarity index 80% rename from products/idn/tools/cli/connectors.md rename to docs/tools/cli/connectors.md index d697af192..080a624b0 100644 --- a/products/idn/tools/cli/connectors.md +++ b/docs/tools/cli/connectors.md @@ -15,7 +15,7 @@ tags: ['CLI'] Learn how to use the CLI to create, manage, and test SaaS connectors in this guide. -You can use SaaS connectors to serve as bridges between your IdentityNow (IDN) tenant and other source systems without the use of a Virtual Appliance (VA). For more information about the SaaS connectors, refer to the [SaaS Connectivity](/idn/docs/saas-connectivity) guide. +You can use SaaS connectors to serve as bridges between your Identity Security Cloud (ISC) tenant and other source systems without the use of a Virtual Appliance (VA). For more information about the SaaS connectors, refer to the [SaaS Connectivity](/docs/connectivity/saas-connectivity) guide. The `connectors` command is a CLI interface for the SaaS Connectivity platform. The CLI is the best way to create, manage, and test SaaS connectors within your tenant. @@ -42,27 +42,27 @@ To initialize a connector project, run this command: sail conn init [connectorProjectName] ``` -This command creates a folder named `connectorProjectName` in your working directory. The folder includes all the files necessary to create a connector. For more information about initiating a connector project, refer to the [Create new project](/idn/docs/saas-connectivity/prerequisites/#create-new-project) section of the SaaS Connectivity documentation. +This command creates a folder named `connectorProjectName` in your working directory. The folder includes all the files necessary to create a connector. For more information about initiating a connector project, refer to the [Create new project](/docs/connectivity/saas-connectivity/prerequisites/#create-new-project) section of the SaaS Connectivity documentation. ### Create connector -To create a connector entry in your IDN tenant, run this command: +To create a connector entry in your ISC tenant, run this command: ```shell sail conn create [connectorAlias] ``` -This command registers your connector and gives it a unique ID. For more information about creating a connector in your tenant, refer to the [Create connector in your org](/idn/docs/saas-connectivity/test-build-deploy#create-connector-in-your-org) section of the SaaS Connectivity documentation. +This command registers your connector and gives it a unique ID. For more information about creating a connector in your tenant, refer to the [Create connector in your org](/docs/connectivity/saas-connectivity/test-build-deploy#create-connector-in-your-org) section of the SaaS Connectivity documentation. ### Upload connector -To upload a connector to your IDN tenant, run `npm run pack-zip` in the project directory to package the connector into a zip file. Then run this command: +To upload a connector to your ISC tenant, run `npm run pack-zip` in the project directory to package the connector into a zip file. Then run this command: ```shell sail conn upload -c [connectorID | connectorAlias] -f connector.zip ``` -You must package the project files before you upload them. For more information about how to package and upload connectors, refer to the [Create and upload connector bundle](/idn/docs/saas-connectivity/test-build-deploy/#create-and-upload-connector-bundle) section of the SaaS Connectivity documentation. +You must package the project files before you upload them. For more information about how to package and upload connectors, refer to the [Create and upload connector bundle](/docs/connectivity/saas-connectivity/test-build-deploy/#create-and-upload-connector-bundle) section of the SaaS Connectivity documentation. ### Invoke command @@ -72,7 +72,7 @@ To test connector commands, like `test-connection`, `account-list`, and `entitle sail conn invoke [command] -c [connectorID | connectorAlias] -p [config.json] -v [version] ``` -For more information about the different available connector commands, refer to [Connector Commands](/idn/docs/saas-connectivity/connector-commands). +For more information about the different available connector commands, refer to [Connector Commands](/docs/connectivity/saas-connectivity/connector-commands). The entitlement commands require an additional flag (`-t [entitlementType]`), like this example: @@ -80,7 +80,7 @@ The entitlement commands require an additional flag (`-t [entitlementType]`), li sail conn invoke entitlement-list -t [entitlementType] -c [connectorID | connectorAlias] -p [config.json] -v [version] ``` -For more information about invoking commands, refer to the [Test your connector in IdentityNow](/idn/docs/saas-connectivity/test-build-deploy#test-your-connector-in-identitynow) section of the SaaS Connectivity documentation. +For more information about invoking commands, refer to the [Test your connector in Identity Security Cloud](/docs/connectivity/saas-connectivity/test-build-deploy#test-your-connector-in-identitynow) section of the SaaS Connectivity documentation. ### List connectors @@ -120,7 +120,7 @@ sail conn delete -c [connectorID] ### Manage tags -You can use tags to create multiple instances of your connector that can be used in IDN. The `latest` tag is created by default and is the primary instance, typically used for production purposes. Tags are similar to branches in a version control system, like git or CVS. You can create a tag for actively developing the connector, or for any other purpose you want. +You can use tags to create multiple instances of your connector that can be used in ISC. The `latest` tag is created by default and is the primary instance, typically used for production purposes. Tags are similar to branches in a version control system, like git or CVS. You can create a tag for actively developing the connector, or for any other purpose you want. A common pattern is to create a `development` tag on a connector from a specific version, like the latest version. @@ -134,7 +134,7 @@ As the connector is developed and the version number increases, update the `deve sail conn tags update -c [connectorID | connectorAlias] -n [tagName] -v [version] ``` -You can test the connector in IDN by selecting the connector instance with the `development` tag. The CLI will use the version you point to with the update command. +You can test the connector in ISC by selecting the connector instance with the `development` tag. The CLI will use the version you point to with the update command. To see a connector's tags and the versions they point to, run this command: @@ -172,4 +172,4 @@ To get detailed logging statistics on each connector, run this command: sail conn stats ``` -For more information about connector logging, refer to [Logging](/idn/docs/saas-connectivity/in-depth/logging/). +For more information about connector logging, refer to [Logging](/docs/connectivity/saas-connectivity/in-depth/logging/). diff --git a/products/idn/tools/cli/index.md b/docs/tools/cli/index.md similarity index 84% rename from products/idn/tools/cli/index.md rename to docs/tools/cli/index.md index 95356292d..2255e0488 100644 --- a/products/idn/tools/cli/index.md +++ b/docs/tools/cli/index.md @@ -1,21 +1,21 @@ --- id: cli -title: CLI -pagination_label: CLI +title: Command Line Interface +pagination_label: Command Line Interface sidebar_label: CLI sidebar_position: 1 sidebar_class_name: cli keywords: ['cli'] -description: The SailPoint CLI is a terminal-based tool you can use to interact with your IDN tenant. +description: Terminal-based tool for interaction with ISC. slug: /tools/cli tags: ['CLI'] --- ## Start using the CLI -The SailPoint CLI is a terminal-based tool you can use to to interact with your IdentityNow (IDN) tenant. The CLI provides a text-based environment you can use to run operations known as "commands" to interact with your tenant however you want. +The SailPoint CLI is a terminal-based tool you can use to to interact with your Identity Security Cloud (ISC) tenant. The CLI provides a text-based environment you can use to run operations known as "commands" to interact with your tenant however you want. -You can use the CLI to perform many functions you would have otherwise used Postman or custom scripts to perform before. For example, you can use the CLI to call the SailPoint APIs to do whatever you want in your IDN tenant, and you can do all this directly on the command line, with minimal setup. +You can use the CLI to perform many functions you would have otherwise used Postman or custom scripts to perform before. For example, you can use the CLI to call the SailPoint APIs to do whatever you want in your ISC tenant, and you can do all this directly on the command line, with minimal setup. Learn how to use the SailPoint command line interface (CLI) in this guide. @@ -106,11 +106,11 @@ sudo yum localinstall /path/to/rpm/package/sail_x.x.x_linux_amd64.rpm ## Configuration -To configure the CLI to connect and authenticate to your IDN tenant, you must do the following: +To configure the CLI to connect and authenticate to your ISC tenant, you must do the following: -- Find your tenant name. To learn how to find it, refer to [Getting Started](/idn/api/getting-started#find-your-tenant-name). The CLI will use this tenant name to connect to your IDN instance. +- Find your tenant name. To learn how to find it, refer to [Getting Started](/docs/api/getting-started#find-your-tenant-name). The CLI will use this tenant name to connect to your ISC instance. - OAuth -- PAT | Create a personal access token (PAT). Make sure to note the "Client ID" and "Client Secret." The CLI needs this information to authenticate successfully. To learn how to create a PAT, refer to [Personal Access Tokens](/idn/api/authentication#personal-access-tokens). +- PAT | Create a personal access token (PAT). Make sure to note the "Client ID" and "Client Secret." The CLI needs this information to authenticate successfully. To learn how to create a PAT, refer to [Personal Access Tokens](/docs/api/authentication#personal-access-tokens). To configure your first environment for OAuth run the following command: ```bash @@ -119,8 +119,8 @@ sail env {environment} with `{environment}` being the name of the environment you wish to configure. You will be prompted for the following information: -- The Tenant URL - The web URL used to access your IdentityNow tenant (ex. https://tenant.identitynow.com), this is used during the OAuth process. -- The API URL - The API URL used to access your IdentityNow tenant (ex. https://tenant.api.identitynow.com), this is used for the api calls made by certain commands. +- The Tenant URL - The web URL used to access your Identity Security Cloud tenant (ex. https://tenant.identitynow.com), this is used during the OAuth process. +- The API URL - The API URL used to access your Identity Security Cloud tenant (ex. https://tenant.api.identitynow.com), this is used for the api calls made by certain commands. ### OAuth Authentication @@ -173,14 +173,14 @@ Run the `sail` command for an overview of available commands and flags. You can These commands are available: -- `connectors`: This command is a CLI interface for the SaaS Connectivity platform. The CLI is the best way to create and manage SaaS connectors within your tenant. For more information about the `connectors` command, refer to the CLI [Connectors guide](/idn/tools/cli/connectors). -- `search`: Run this command to access IDN search functionality within the CLI. For more information about the `search` command, refer to the CLI [Search guide](/idn/tools/cli/search). -- `set`: Run this command to configure your CLI settings. For more information about the `set` command, refer to the CLI [Set guide](/idn/tools/cli/set). -- `spconfig`: Run this command to access IDN SP Config functionality. For more information about the `spconfig` command, refer to the CLI [SPConfig guide](/idn/tools/cli/spconfig). -- `transform`: This command is a CLI interface that makes it easy to create, manage, and test transforms. For more information about the `transform` command, refer to the CLI [Transforms guide](/idn/tools/cli/transforms). -- `va`: Run this command to access VAs connected to your tenant. For more information about the `va` command, refer to the CLI [VA guide](/idn/tools/cli/va). -- `cluster`: Run this command to access VA clusters connected to your tenant. For more information about the `cluster` command, refer to the CLI [Clusters guide](/idn/tools/cli/cluster). -- `workflow`: Run this command to create and manage workflows within the CLI. For more information about the `workflow` command, refer to the CLI [Workflows guide](/idn/tools/cli/workflow). +- `connectors`: This command is a CLI interface for the SaaS Connectivity platform. The CLI is the best way to create and manage SaaS connectors within your tenant. For more information about the `connectors` command, refer to the CLI [Connectors guide](/docs/tools/cli/connectors). +- `search`: Run this command to access ISC search functionality within the CLI. For more information about the `search` command, refer to the CLI [Search guide](/docs/tools/cli/search). +- `set`: Run this command to configure your CLI settings. For more information about the `set` command, refer to the CLI [Set guide](/docs/tools/cli/set). +- `spconfig`: Run this command to access ISC SP Config functionality. For more information about the `spconfig` command, refer to the CLI [SPConfig guide](/docs/tools/cli/spconfig). +- `transform`: This command is a CLI interface that makes it easy to create, manage, and test transforms. For more information about the `transform` command, refer to the CLI [Transforms guide](/docs/tools/cli/transforms). +- `va`: Run this command to access VAs connected to your tenant. For more information about the `va` command, refer to the CLI [VA guide](/docs/tools/cli/va). +- `cluster`: Run this command to access VA clusters connected to your tenant. For more information about the `cluster` command, refer to the CLI [Clusters guide](/docs/tools/cli/cluster). +- `workflow`: Run this command to create and manage workflows within the CLI. For more information about the `workflow` command, refer to the CLI [Workflows guide](/docs/tools/cli/workflow). ## GitHub diff --git a/products/idn/tools/cli/sanitize.md b/docs/tools/cli/sanitize.md similarity index 100% rename from products/idn/tools/cli/sanitize.md rename to docs/tools/cli/sanitize.md diff --git a/products/idn/tools/cli/search.md b/docs/tools/cli/search.md similarity index 73% rename from products/idn/tools/cli/search.md rename to docs/tools/cli/search.md index 12d25c676..9e9c9166c 100644 --- a/products/idn/tools/cli/search.md +++ b/docs/tools/cli/search.md @@ -6,20 +6,20 @@ sidebar_label: Search sidebar_position: 3 sidebar_class_name: cli keywords: ['cli', 'search'] -description: Learn how to use the CLI to search your IDN tenant in this guide. +description: Learn how to use the CLI to search your ISC tenant in this guide. slug: /tools/cli/search tags: ['CLI'] --- # Search -Learn how to use the CLI to search your IDN tenant in this guide. +Learn how to use the CLI to search your ISC tenant in this guide. -In IdentityNow (IDN), you can search across all the sources connected to your tenant and return virtually any information you have access to. The `search` command allows you to access IDN search functionality within the CLI. For more information about the `search` command, refer to the CLI [Search guide](/idn/tools/cli/search). For more information about search in IDN, refer to [Search](idn/api/v3/search). +In Identity Security Cloud (ISC), you can search across all the sources connected to your tenant and return virtually any information you have access to. The `search` command allows you to access ISC search functionality within the CLI. For more information about the `search` command, refer to the CLI [Search guide](docs/tools/cli/search). For more information about search in ISC, refer to [Search](docs/api/v3/search). -In IdentityNow, you can search all the sources connected to your tenant and return virtually any information you have access to. To learn more about search in IdentityNow, refer to [Search](https://documentation.sailpoint.com/saas/help/search/index.html). +In Identity Security Cloud, you can search all the sources connected to your tenant and return virtually any information you have access to. To learn more about search in Identity Security Cloud, refer to [Search](https://documentation.sailpoint.com/saas/help/search/index.html). -The `search` command makes it easy to search in IdentityNow with the SailPoint CLI. Read this guide to learn how to use the `query` and `template` commands to search IdentityNow with the CLI. +The `search` command makes it easy to search in Identity Security Cloud with the SailPoint CLI. Read this guide to learn how to use the `query` and `template` commands to search Identity Security Cloud with the CLI. - [Search](#search) - [Query](#query) @@ -35,11 +35,11 @@ The `search` command makes it easy to search in IdentityNow with the SailPoint C ## Query -Search queries in IdentityNow are flexible - they can be very broad or very narrow, and you can further narrow your results by using IdentityNow's specific syntax to structure your queries. To learn about structuring search queries, refer to [Building a Search Query](https://documentation.sailpoint.com/saas/help/search/building-query.html). +Search queries in Identity Security Cloud are flexible - they can be very broad or very narrow, and you can further narrow your results by using Identity Security Cloud's specific syntax to structure your queries. To learn about structuring search queries, refer to [Building a Search Query](https://documentation.sailpoint.com/saas/help/search/building-query.html). -The `query` command allows you to search IdentityNow for a query you specify. +The `query` command allows you to search Identity Security Cloud for a query you specify. -To use the `query` command to search IdentityNow, you must understand how to format your search queries. +To use the `query` command to search Identity Security Cloud, you must understand how to format your search queries. The basic format of a query is "field:term", so an example `query` command would like this: @@ -47,7 +47,7 @@ The basic format of a query is "field:term", so an example `query` command would sail search query "name:a*" --indices identities ``` -The CLI will use the [V3 Search endpoint](https://developer.sailpoint.com/idn/api/v3/search-post) to search for all identities starting with names starting with the letter "a". +The CLI will use the [V3 Search endpoint](https://developer.sailpoint.com/docs/api/v3/search-post) to search for all identities starting with names starting with the letter "a". The CLI will then generate a JSON file containing the search results. This JSON file will be located in a folder titled "search_results", within the current working directory, unless a folder path is specified. ### Command @@ -129,7 +129,7 @@ sail search query "name:a*" --indices identities --folderPath ./local/folder/pat For more detailed search queries, you can provide a predefined template instead of constructing the whole query every time. This allows you to run very detailed search queries quickly and easily. -The `template` command allows you to use predefined templates to search IdentityNow. +The `template` command allows you to use predefined templates to search Identity Security Cloud. ### Command @@ -139,7 +139,7 @@ This example shows the essential `template` command structure: sail search template all-provisioning-events-90-days ``` -The specified template file will give the CLI all the information it needs to perform its search in IdentityNow. +The specified template file will give the CLI all the information it needs to perform its search in Identity Security Cloud. ### Flags diff --git a/products/idn/tools/cli/set.md b/docs/tools/cli/set.md similarity index 100% rename from products/idn/tools/cli/set.md rename to docs/tools/cli/set.md diff --git a/products/idn/tools/cli/spconfig.md b/docs/tools/cli/spconfig.md similarity index 87% rename from products/idn/tools/cli/spconfig.md rename to docs/tools/cli/spconfig.md index 867f79b9b..9e8490d8c 100644 --- a/products/idn/tools/cli/spconfig.md +++ b/docs/tools/cli/spconfig.md @@ -15,7 +15,7 @@ tags: ['CLI'] Learn how to use the CLI to import and export configurations. -You can use the [SP Config APIs](/idn/api/beta/sp-config) to import configurations into IDN and export them out. +You can use the [SP Config APIs](/docs/api/beta/sp-config) to import configurations into ISC and export them out. With the `spconfig` command, you can access the same functionality. @@ -38,9 +38,9 @@ To perform SPConfig operations, you can run these commands: ### Download -You can use the `download` command to download import and export job results from IDN. The `download` command is specified differently for **Linux/Mac** and **Windows**, respectively. +You can use the `download` command to download import and export job results from ISC. The `download` command is specified differently for **Linux/Mac** and **Windows**, respectively. -To download import and export job results from IDN on **Linux/Mac**, run this command: +To download import and export job results from ISC on **Linux/Mac**, run this command: ```shell sail spconfig download \ @@ -48,7 +48,7 @@ sail spconfig download \ --export {export job ID} ``` -To download import and export job results from IDN on **Windows**, run this command: +To download import and export job results from ISC on **Windows**, run this command: ```shell sail spconfig download \ @@ -66,7 +66,7 @@ You can add these flags to the `download` command: ### Import -To begin an import task in IDN, run this command: +To begin an import task in ISC, run this command: ```shell sail spconfig import \ @@ -81,7 +81,7 @@ You can add these flags to the `import` command: ### Export -To begin an export task in IDN, run this command: +To begin an export task in ISC, run this command: ```shell sail spconfig export \ @@ -102,7 +102,7 @@ You can add these flags to the `export` command: ### Status -To check the status of import and export jobs in IDN, run this command: +To check the status of import and export jobs in ISC, run this command: ```shell sail spconfig status --import {import job ID to check} --export {export job ID to check} @@ -117,7 +117,7 @@ You can add these flags to the `status` command: ### Template -To begin exporting a template from IDN, run this command: +To begin exporting a template from ISC, run this command: ```shell sail spconfig template diff --git a/products/idn/tools/cli/transforms.md b/docs/tools/cli/transforms.md similarity index 93% rename from products/idn/tools/cli/transforms.md rename to docs/tools/cli/transforms.md index 8113bfe31..6d9ed1d76 100644 --- a/products/idn/tools/cli/transforms.md +++ b/docs/tools/cli/transforms.md @@ -15,7 +15,7 @@ tags: ['CLI'] Learn about the CLI commands you can use to create, manage, and test transforms in this guide. -In IdentityNow (IDN), you can use transforms to manipulate attribute data without writing any code. For more information about transforms, refer to [Transforms](/idn/docs/transforms). +In Identity Security Cloud (ISC), you can use transforms to manipulate attribute data without writing any code. For more information about transforms, refer to [Transforms](/docs/extensibility/transforms). With the `transforms` command, it's it easy to create, manage, and test transforms in the CLI. @@ -73,7 +73,7 @@ To update a transform from a `json` file, run the following command. Use the `-f sail transform update -f transform.json ``` -A common workflow is to first download the transforms, then make edits to the transform file, and then use the update command to save those edits in IDN. +A common workflow is to first download the transforms, then make edits to the transform file, and then use the update command to save those edits in ISC. ## Delete transform diff --git a/products/idn/tools/cli/va.md b/docs/tools/cli/va.md similarity index 98% rename from products/idn/tools/cli/va.md rename to docs/tools/cli/va.md index d62c6dd80..3dc27faf6 100644 --- a/products/idn/tools/cli/va.md +++ b/docs/tools/cli/va.md @@ -14,7 +14,7 @@ tags: ['CLI'] Learn about the CLI commands you can use to interact with VAs in this guide. -A virtual appliance (VA) is a Linux-based virtual machine that connects to your sources and applications in IDN by using APIs, connectors, and other integrations SailPoint has made available. +A virtual appliance (VA) is a Linux-based virtual machine that connects to your sources and applications in ISC by using APIs, connectors, and other integrations SailPoint has made available. For more information about VAs, refer to the [Virtual Appliance Reference Guide](https://community.sailpoint.com/t5/IdentityNow-Connectors/Virtual-Appliance-Reference-Guide/ta-p/74641?_ga=2.265747530.43742715.1681135659-1245631791.1680185785&_gl=1*1bevvkq*_ga*MTI0NTYzMTc5MS4xNjgwMTg1Nzg1*_ga_SS72Z4HXJM*MTY4MTMwOTc1MC4yOS4xLjE2ODEzMDk5MzkuMjguMC4w). diff --git a/products/idn/tools/cli/workflow.md b/docs/tools/cli/workflow.md similarity index 95% rename from products/idn/tools/cli/workflow.md rename to docs/tools/cli/workflow.md index 0736e71c6..fcebd0989 100644 --- a/products/idn/tools/cli/workflow.md +++ b/docs/tools/cli/workflow.md @@ -15,7 +15,7 @@ tags: ['CLI'] Learn how to use the SailPoint CLI to create, manage, and test workflows in this guide. -A workflow is a set of steps that are completed whenever a specific event occurs. Once that event triggers the workflow, the workflow performs the steps within IdentityNow. +A workflow is a set of steps that are completed whenever a specific event occurs. Once that event triggers the workflow, the workflow performs the steps within Identity Security Cloud. The `workflow` command makes it easy to create, manage, and test workflows from within the SailPoint CLI. To learn more about workflows, refer to [Workflows](https://documentation.sailpoint.com/saas/help/workflows/workflow-basics.html?h=workflow). @@ -42,7 +42,7 @@ The `workflow` command makes it easy to create, manage, and test workflows from The CLI will return a table of the available workflows in your tenant, with their IDs. - This command uses the [List Workflows endpoint](https://developer.sailpoint.com/idn/api/beta/list-workflows). + This command uses the [List Workflows endpoint](https://developer.sailpoint.com/docs/api/beta/list-workflows). ## Get workflow @@ -60,7 +60,7 @@ The `workflow` command makes it easy to create, manage, and test workflows from The CLI will return the workflow, along with all its details. - This command uses the [Get workflow endpoint](https://developer.sailpoint.com/idn/api/beta/get-workflow). + This command uses the [Get workflow endpoint](https://developer.sailpoint.com/docs/api/beta/get-workflow). ## Create workflow @@ -84,7 +84,7 @@ The `workflow` command makes it easy to create, manage, and test workflows from Once you create the workflow, it will be located in the file path you specified. - This command uses the [Create workflow endpoint](https://developer.sailpoint.com/idn/api/beta/create-workflow). + This command uses the [Create workflow endpoint](https://developer.sailpoint.com/docs/api/beta/create-workflow). ### File path @@ -130,7 +130,7 @@ The `workflow` command makes it easy to create, manage, and test workflows from The updated workflow will be located in the file path you specified. - This command uses the [Update workflow endpoint](https://developer.sailpoint.com/idn/api/beta/update-workflow). + This command uses the [Update workflow endpoint](https://developer.sailpoint.com/docs/api/beta/update-workflow). ### File path @@ -174,7 +174,7 @@ The `workflow` command makes it easy to create, manage, and test workflows from sail workflow delete $(cat list_of_workflowIDs.txt) ``` - This command uses the [Delete workflow endpoint](https://developer.sailpoint.com/idn/api/beta/delete-workflow). + This command uses the [Delete workflow endpoint](https://developer.sailpoint.com/docs/api/beta/delete-workflow). ## Download workflow diff --git a/products/idn/tools/rule-development-kit/assets/intellisense.png b/docs/tools/rule-development-kit/assets/intellisense.png similarity index 100% rename from products/idn/tools/rule-development-kit/assets/intellisense.png rename to docs/tools/rule-development-kit/assets/intellisense.png diff --git a/products/idn/tools/rule-development-kit/index.md b/docs/tools/rule-development-kit/index.md similarity index 96% rename from products/idn/tools/rule-development-kit/index.md rename to docs/tools/rule-development-kit/index.md index fcc21c1f2..dbdb06cb1 100644 --- a/products/idn/tools/rule-development-kit/index.md +++ b/docs/tools/rule-development-kit/index.md @@ -6,7 +6,7 @@ sidebar_label: Rule Development Kit sidebar_position: 3 sidebar_class_name: rdk keywords: ['rule', 'development','kit'] -description: The SailPoint Rule Development Kit is a project that enables you to develop rules more quickly and easily. +description: Rule development made quick and easy. slug: /tools/rule-development-kit tags: ['RDK'] --- @@ -15,7 +15,7 @@ tags: ['RDK'] The SailPoint Rule Development Kit (RDK) is a project you can use to develop rules more quickly and easily. -In SailPoint solutions, rules serve as flexible configuration frameworks implementers can leverage to preform complex or advanced configurations. To learn more about them, refer to [Rules](../../docs/identity-now/rules/index.md). +In SailPoint solutions, rules serve as flexible configuration frameworks implementers can leverage to preform complex or advanced configurations. To learn more about them, refer to [Rules](../../extensibility/rules/index.md). The RDK provides you with the available classes and methods available when you're developing a rule. You can mock out these classes and run your rule locally to test your logic before submitting it for review. @@ -60,7 +60,7 @@ src/ * **`src/main/java/`** Use this folder to develop your rules before putting them into the rule XML format. Import objects as needed from `sailpoint.*` -* **`src/main/resources/rules/`** Use this folder to store your rules in the XML format you would expect to upload to IdentityNow (IDN). +* **`src/main/resources/rules/`** Use this folder to store your rules in the XML format you would expect to upload to Identity Security Cloud (ISC). * **`src/test/java/sailpoint/`** Use this folder for test classes to test your rules. @@ -84,7 +84,7 @@ The rule development kit provides you with intellisense when writing rules, you ## Create your new rule -To get syntax highlighting and the features from the IDE, this guide shows how to write the rule in native Java and move it over to the XML format needed when you're storing it in IdentityNow (IDN). +To get syntax highlighting and the features from the IDE, this guide shows how to write the rule in native Java and move it over to the XML format needed when you're storing it in Identity Security Cloud (ISC). This guide will walk through an example of how to duplicate writing the 'Username Generator' rule that ships with the RDK. @@ -92,9 +92,9 @@ Create a new Java class under `src/main/java`, called `UsernameGenerator`. ## Import the classes and initialize the objects the rule needs -Each rule type has inputs provided to the rule. You can view available inputs for each rule type by clicking the rule type [here](/idn/docs/rules/cloud-rules#supported-cloud-rules). +Each rule type has inputs provided to the rule. You can view available inputs for each rule type by clicking the rule type [here](/docs/extensibility/rules/cloud-rules#supported-cloud-rules). -The 'Username Generator' rule uses the `AttributeGenerator` rule type. See [Attribute Generator](/idn/docs/rules/cloud-rules/account-profile-attribute-generator#input) for the available inputs. +The 'Username Generator' rule uses the `AttributeGenerator` rule type. See [Attribute Generator](/docs/extensibility/rules/cloud-rules/account-profile-attribute-generator#input) for the available inputs. In your IDE, import the classes needed, and initialize these inputs within your newly created class. @@ -117,7 +117,7 @@ public class UsernameGenerator { ## Write your rule logic -You can see the completed code for the 'Username Generator' in the following code. If you want to dive deeper into how this rule was written, follow [this guide](/idn/docs/rules/guides/your-first-rule). +You can see the completed code for the 'Username Generator' in the following code. If you want to dive deeper into how this rule was written, follow [this guide](/docs/extensibility/rules/guides/your-first-rule).
Completed Username Generator Code @@ -230,7 +230,7 @@ public class UsernameGenerator { ## Convert the rule to XML format -The final step required before you can test your rule is converting it to XML format. These XML files are stored under the `/src/main/resources/rules` directory in the RDK. You can find the `AttributeGenerator` template file [here](/idn/docs/rules/cloud-rules/account-profile-attribute-generator#template). +The final step required before you can test your rule is converting it to XML format. These XML files are stored under the `/src/main/resources/rules` directory in the RDK. You can find the `AttributeGenerator` template file [here](/docs/extensibility/rules/cloud-rules/account-profile-attribute-generator#template). Replace `Example Rule` with the preferred name of your rule, and add a short description. @@ -527,7 +527,7 @@ Interpreter i = new Interpreter(); ### Mock the objects and return the mocked data -Anywhere your rule uses data from IDN, you will need to mock out those objects. In the 'Username Generator' example, the objects used are `IdnRuleUtil`, `Application`, and `Identity`. +Anywhere your rule uses data from ISC, you will need to mock out those objects. In the 'Username Generator' example, the objects used are `IdnRuleUtil`, `Application`, and `Identity`. ```java IdnRuleUtil idn = mock(); diff --git a/docs/tools/sdk/_category_.json b/docs/tools/sdk/_category_.json new file mode 100644 index 000000000..5e0e7bf42 --- /dev/null +++ b/docs/tools/sdk/_category_.json @@ -0,0 +1,5 @@ +{ + "customProps": { + "description": "Streamlined development in your language of choice" + } +} \ No newline at end of file diff --git a/products/idn/tools/sdk/go/creating-resources.md b/docs/tools/sdk/go/creating-resources.md similarity index 100% rename from products/idn/tools/sdk/go/creating-resources.md rename to docs/tools/sdk/go/creating-resources.md diff --git a/products/idn/tools/sdk/go/deleting-resources.md b/docs/tools/sdk/go/deleting-resources.md similarity index 100% rename from products/idn/tools/sdk/go/deleting-resources.md rename to docs/tools/sdk/go/deleting-resources.md diff --git a/products/idn/tools/sdk/go/error-handling.md b/docs/tools/sdk/go/error-handling.md similarity index 100% rename from products/idn/tools/sdk/go/error-handling.md rename to docs/tools/sdk/go/error-handling.md diff --git a/products/idn/tools/sdk/go/getting-started.md b/docs/tools/sdk/go/getting-started.md similarity index 100% rename from products/idn/tools/sdk/go/getting-started.md rename to docs/tools/sdk/go/getting-started.md diff --git a/products/idn/tools/sdk/go/index.mdx b/docs/tools/sdk/go/index.mdx similarity index 94% rename from products/idn/tools/sdk/go/index.mdx rename to docs/tools/sdk/go/index.mdx index 5d6574969..e4f318042 100644 --- a/products/idn/tools/sdk/go/index.mdx +++ b/docs/tools/sdk/go/index.mdx @@ -6,7 +6,7 @@ sidebar_label: Golang sidebar_position: 2 sidebar_class_name: gosdk keywords: ['go', 'golang', 'sdk'] -description: Learn how to use the Golang SDK in this guide. +description: Easy ISC development in Golang SDK. slug: /tools/sdk/go tags: ['SDK', 'Software Development Kit'] --- @@ -19,9 +19,9 @@ You need the following to use the Go SDK: - Golang version 1.18 or above. You can download it [here](https://go.dev/dl/). You can use `go version` to check your version. -- Your tenant name in IdentityNow. To learn how to find it, refer to [Getting Started](/idn/api/getting-started#find-your-tenant-name). The SDK will use this tenant name to connect to your IdentityNow instance. +- Your tenant name in IdentityNow. To learn how to find it, refer to [Getting Started](/docs/api/getting-started#find-your-tenant-name). The SDK will use this tenant name to connect to your IdentityNow instance. -- A PAT with a client secret and ID. To learn how to create one in IDN, refer to [Personal Access Tokens](https://documentation.sailpoint.com/saas/help/common/api_keys.html#generating-a-personal-access-token). The SDK will use this PAT to authenticate with the SailPoint APIs. +- A PAT with a client secret and ID. To learn how to create one in ISC, refer to [Personal Access Tokens](https://documentation.sailpoint.com/saas/help/common/api_keys.html#generating-a-personal-access-token). The SDK will use this PAT to authenticate with the SailPoint APIs. ## Setup @@ -189,7 +189,7 @@ To get your environment variables to persist across PowerShell sessions, run the ## Discuss -You can use this SDK to build new tools that extend your IDN platform and improve experiences across your organization. Use this guide to get started, and if you have questions, don't hesitate to reach out on the SailPoint Developer Community forum at https://developer.sailpoint.com/discuss! +You can use this SDK to build new tools that extend your ISC platform and improve experiences across your organization. Use this guide to get started, and if you have questions, don't hesitate to reach out on the SailPoint Developer Community forum at https://developer.sailpoint.com/discuss! ## Getting Started diff --git a/products/idn/tools/sdk/go/pagination.md b/docs/tools/sdk/go/pagination.md similarity index 95% rename from products/idn/tools/sdk/go/pagination.md rename to docs/tools/sdk/go/pagination.md index 087d4effa..70dfecc03 100644 --- a/products/idn/tools/sdk/go/pagination.md +++ b/docs/tools/sdk/go/pagination.md @@ -11,7 +11,7 @@ slug: /tools/sdk/go/paginate tags: ['SDK', 'Software Development Kit'] --- -By default, your requests will return a maximum of 250 records. To return more, you must implement pagination. To learn more about pagination, refer to [Paginating Results](/idn/api/standard-collection-parameters/#paginating-results). +By default, your requests will return a maximum of 250 records. To return more, you must implement pagination. To learn more about pagination, refer to [Paginating Results](/docs/api/standard-collection-parameters/#paginating-results). Pagination is implemented with the SDK in the following code block on line 18: diff --git a/products/idn/tools/sdk/go/retries.md b/docs/tools/sdk/go/retries.md similarity index 100% rename from products/idn/tools/sdk/go/retries.md rename to docs/tools/sdk/go/retries.md diff --git a/products/idn/tools/sdk/go/search.md b/docs/tools/sdk/go/search.md similarity index 94% rename from products/idn/tools/sdk/go/search.md rename to docs/tools/sdk/go/search.md index 3ec32cdd3..40c77a6eb 100644 --- a/products/idn/tools/sdk/go/search.md +++ b/docs/tools/sdk/go/search.md @@ -11,7 +11,7 @@ slug: /tools/sdk/go/search tags: ['SDK', 'Software Development Kit'] --- -To try using the IDN [search functionality](/idn/api/v3/search-post) along with pagination, copy this code into your "sdk.go" file, following the main code: +To try using the ISC [search functionality](/docs/api/v3/search-post) along with pagination, copy this code into your "sdk.go" file, following the main code: ```go func getSearchResults(ctx context.Context, apiClient *sailpoint.APIClient) { diff --git a/products/idn/tools/sdk/go/updating-resources.md b/docs/tools/sdk/go/updating-resources.md similarity index 100% rename from products/idn/tools/sdk/go/updating-resources.md rename to docs/tools/sdk/go/updating-resources.md diff --git a/docs/tools/sdk/index.md b/docs/tools/sdk/index.md new file mode 100644 index 000000000..d7d8b39c4 --- /dev/null +++ b/docs/tools/sdk/index.md @@ -0,0 +1,29 @@ +--- +id: sdk +title: SDKs +pagination_label: SDKs +sidebar_label: SDKs +sidebar_position: 2 +sidebar_class_name: sdk +keywords: ['sdk'] +description: Easy ISC development in your preferred coding language. +slug: /tools/sdk +tags: ['SDK'] +--- + +## Overview + +The SailPoint software development kits (SDKs) make it easier for developers to leverage the Identity Security Cloud (ISC) APIs, extensibility options, and connectivity while they build with their preferred coding languages. + +```mdx-code-block +import DocCardList from '@theme/DocCardList'; +import {useCurrentSidebarCategory} from '@docusaurus/theme-common'; + + +``` + +## Discuss + +The most valuable resource for ISC developers is the SailPoint Developer Community itself, where ISC users and experts all over the world come together to ask questions and provide solutions. + +To learn more about the ISC SDKs and discuss them with SailPoint Developer Community members, go to the [SailPoint Developer Community Forum](https://developer.sailpoint.com/discuss/c/isc/6). \ No newline at end of file diff --git a/products/idn/tools/sdk/powershell/creating-resources.md b/docs/tools/sdk/powershell/creating-resources.md similarity index 100% rename from products/idn/tools/sdk/powershell/creating-resources.md rename to docs/tools/sdk/powershell/creating-resources.md diff --git a/products/idn/tools/sdk/powershell/deleting-resources.md b/docs/tools/sdk/powershell/deleting-resources.md similarity index 100% rename from products/idn/tools/sdk/powershell/deleting-resources.md rename to docs/tools/sdk/powershell/deleting-resources.md diff --git a/products/idn/tools/sdk/powershell/error-handling.md b/docs/tools/sdk/powershell/error-handling.md similarity index 100% rename from products/idn/tools/sdk/powershell/error-handling.md rename to docs/tools/sdk/powershell/error-handling.md diff --git a/products/idn/tools/sdk/powershell/getting-started.md b/docs/tools/sdk/powershell/getting-started.md similarity index 94% rename from products/idn/tools/sdk/powershell/getting-started.md rename to docs/tools/sdk/powershell/getting-started.md index fc43fb77a..bd8f2d690 100644 --- a/products/idn/tools/sdk/powershell/getting-started.md +++ b/docs/tools/sdk/powershell/getting-started.md @@ -87,21 +87,21 @@ DESCRIPTION PARAMETERS -Offset Offset into the full result set. Usually specified with *limit* to paginate through the results. For more information, refer to [V3 API Standard Collection - Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters). + Parameters](https://developer.sailpoint.com/docs/api/standard-collection-parameters). -Limit - Max number of results to return. For more information, refer to [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters). + Max number of results to return. For more information, refer to [V3 API Standard Collection Parameters](https://developer.sailpoint.com/docs/api/standard-collection-parameters). -Count If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. For more information, refer to [V3 API Standard Collection - Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters). + Parameters](https://developer.sailpoint.com/docs/api/standard-collection-parameters). -Name Name of the transform to retrieve from the list. -Filters - Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results). Filtering is + Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/docs/api/standard-collection-parameters#filtering-results). Filtering is supported for the following fields and operators: **internal**: *eq* **name**: *eq, sw* -WithHttpInfo [] diff --git a/products/idn/tools/sdk/powershell/index.mdx b/docs/tools/sdk/powershell/index.mdx similarity index 95% rename from products/idn/tools/sdk/powershell/index.mdx rename to docs/tools/sdk/powershell/index.mdx index 142bc0b91..958a1be00 100644 --- a/products/idn/tools/sdk/powershell/index.mdx +++ b/docs/tools/sdk/powershell/index.mdx @@ -6,7 +6,7 @@ sidebar_label: PowerShell sidebar_position: 3 sidebar_class_name: powershellsdk keywords: ['powershell', 'sdk'] -description: Learn how to use the PowerShell SDK in this guide. +description: Easy ISC development in PowerShell. slug: /tools/sdk/powershell tags: ['SDK'] --- @@ -19,9 +19,9 @@ You need the following to use the PowerShell SDK: - PowerShell 6.2 or greater. To learn how to install, refer to [Installing PowerShell](https://learn.microsoft.com/en-us/powershell/scripting/install/installing-powershell?view=powershell-7.4). -- Your tenant name in IdentityNow. To learn how to find it, refer to [Getting Started](/idn/api/getting-started#find-your-tenant-name). The SDK will use this tenant name to connect to your IdentityNow instance. +- Your tenant name in IdentityNow. To learn how to find it, refer to [Getting Started](/docs/api/getting-started#find-your-tenant-name). The SDK will use this tenant name to connect to your IdentityNow instance. -- A PAT with a client secret and ID. To learn how to create one in IDN, refer to [Personal Access Tokens](https://documentation.sailpoint.com/saas/help/common/api_keys.html#generating-a-personal-access-token). The SDK will use this PAT to authenticate with the SailPoint APIs. +- A PAT with a client secret and ID. To learn how to create one in ISC, refer to [Personal Access Tokens](https://documentation.sailpoint.com/saas/help/common/api_keys.html#generating-a-personal-access-token). The SDK will use this PAT to authenticate with the SailPoint APIs. ## Setup @@ -193,7 +193,7 @@ To get your environment variables to persist across PowerShell sessions, run the ## Discuss -You can use this SDK to build new tools that extend your IDN platform and improve experiences across your organization. Use this guide to get started, and if you have questions, don't hesitate to reach out on the SailPoint Developer Community forum at https://developer.sailpoint.com/discuss! +You can use this SDK to build new tools that extend your ISC platform and improve experiences across your organization. Use this guide to get started, and if you have questions, don't hesitate to reach out on the SailPoint Developer Community forum at https://developer.sailpoint.com/discuss! ## Getting Started diff --git a/products/idn/tools/sdk/powershell/pagination.md b/docs/tools/sdk/powershell/pagination.md similarity index 89% rename from products/idn/tools/sdk/powershell/pagination.md rename to docs/tools/sdk/powershell/pagination.md index 8725c8e58..e3b17d635 100644 --- a/products/idn/tools/sdk/powershell/pagination.md +++ b/docs/tools/sdk/powershell/pagination.md @@ -11,7 +11,7 @@ slug: /tools/sdk/powershell/paginate tags: ['SDK'] --- -By default, your requests will return a maximum of 250 records. To return more, you must implement pagination. To learn more about pagination, refer to [Paginating Results](/idn/api/standard-collection-parameters/#paginating-results). +By default, your requests will return a maximum of 250 records. To return more, you must implement pagination. To learn more about pagination, refer to [Paginating Results](/docs/api/standard-collection-parameters/#paginating-results). Pagination is implemented with the SDK in the following code block on line 8: @@ -45,4 +45,4 @@ The `-Parameters` specifies a hashtable of additional values passed to the API e You can also provide an `-InitialOffset` value to specify the record number to start the request on. For example, you can provide add `-InitialOffset 10` to start getting accounts from 11 instead of 0. -To find out whether an endpoint supports pagination, refer to its documentation. Any API supporting pagination lists the optional query parameters detailed in [Paginating Results](/idn/api/standard-collection-parameters/#paginating-results). +To find out whether an endpoint supports pagination, refer to its documentation. Any API supporting pagination lists the optional query parameters detailed in [Paginating Results](/docs/api/standard-collection-parameters/#paginating-results). diff --git a/products/idn/tools/sdk/powershell/retries.md b/docs/tools/sdk/powershell/retries.md similarity index 100% rename from products/idn/tools/sdk/powershell/retries.md rename to docs/tools/sdk/powershell/retries.md diff --git a/products/idn/tools/sdk/powershell/search.md b/docs/tools/sdk/powershell/search.md similarity index 78% rename from products/idn/tools/sdk/powershell/search.md rename to docs/tools/sdk/powershell/search.md index 62712c7bc..618f798d7 100644 --- a/products/idn/tools/sdk/powershell/search.md +++ b/docs/tools/sdk/powershell/search.md @@ -11,7 +11,7 @@ slug: /tools/sdk/powershell/search tags: ['SDK'] --- -The PowerShell SDK provides you access to IdentityNow's [Search](https://documentation.sailpoint.com/saas/help/search/index.html) functionality. +The PowerShell SDK provides you access to Identity Security Cloud's [Search](https://documentation.sailpoint.com/saas/help/search/index.html) functionality. Here is an example search you can copy into your PowerShell instance to try it out: @@ -40,7 +40,7 @@ try { } ``` -This example request uses the [Perform Search endpoint](/idn/api/v3/search-post) to search your tenant for identities with the name "john.doe". +This example request uses the [Perform Search endpoint](/docs/api/v3/search-post) to search your tenant for identities with the name "john.doe". ### Paginate search results @@ -79,7 +79,7 @@ try { } ``` -This example searches your IdentityNow tenant for all identities and sorts them by their `displayName` in descending order. The search returns a maximum of 150000 records (the `Limit`) and 5000 records per page (the `Increment`). +This example searches your Identity Security Cloud tenant for all identities and sorts them by their `displayName` in descending order. The search returns a maximum of 150000 records (the `Limit`) and 5000 records per page (the `Increment`). To paginate the search results, you can specify these parameters: diff --git a/products/idn/tools/sdk/powershell/updating-resources.md b/docs/tools/sdk/powershell/updating-resources.md similarity index 100% rename from products/idn/tools/sdk/powershell/updating-resources.md rename to docs/tools/sdk/powershell/updating-resources.md diff --git a/products/idn/tools/sdk/typescript/creating-resources.md b/docs/tools/sdk/typescript/creating-resources.md similarity index 100% rename from products/idn/tools/sdk/typescript/creating-resources.md rename to docs/tools/sdk/typescript/creating-resources.md diff --git a/products/idn/tools/sdk/typescript/deleting-resources.md b/docs/tools/sdk/typescript/deleting-resources.md similarity index 100% rename from products/idn/tools/sdk/typescript/deleting-resources.md rename to docs/tools/sdk/typescript/deleting-resources.md diff --git a/products/idn/tools/sdk/typescript/error-handling.md b/docs/tools/sdk/typescript/error-handling.md similarity index 100% rename from products/idn/tools/sdk/typescript/error-handling.md rename to docs/tools/sdk/typescript/error-handling.md diff --git a/products/idn/tools/sdk/typescript/getting-started.md b/docs/tools/sdk/typescript/getting-started.md similarity index 95% rename from products/idn/tools/sdk/typescript/getting-started.md rename to docs/tools/sdk/typescript/getting-started.md index 0ed5e9c8e..4b1d425f0 100644 --- a/products/idn/tools/sdk/typescript/getting-started.md +++ b/docs/tools/sdk/typescript/getting-started.md @@ -47,7 +47,7 @@ To run the SDK, run the `node src/index.js` command. This command sends the requ Using the same SDK function, you can list your transforms but limit the results to only what you want. This example wants a list of no more than 10 transforms that start with the name "Test": -Refer to [List Transforms](https://developer.sailpoint.com/idn/api/v3/list-transforms) for all its supported query parameters. +Refer to [List Transforms](https://developer.sailpoint.com/docs/api/v3/list-transforms) for all its supported query parameters. ```typescript import {Configuration, TransformsApi} from "sailpoint-api-client" diff --git a/products/idn/tools/sdk/typescript/index.mdx b/docs/tools/sdk/typescript/index.mdx similarity index 95% rename from products/idn/tools/sdk/typescript/index.mdx rename to docs/tools/sdk/typescript/index.mdx index 599059710..8c054ef5c 100644 --- a/products/idn/tools/sdk/typescript/index.mdx +++ b/docs/tools/sdk/typescript/index.mdx @@ -6,7 +6,7 @@ sidebar_label: TypeScript sidebar_position: 4 sidebar_class_name: typescriptsdk keywords: ['tsc', 'typescript', 'sdk'] -description: Learn how to use the TypeScript SDK in this guide. +description: Easy ISC development in TypeScript. slug: /tools/sdk/typescript tags: ['SDK'] --- @@ -27,9 +27,9 @@ You need the following to use the TypeScript SDK: npm install -g typescript ``` -- Your tenant name in IDN. To learn how to find it, refer to [Getting Started](/idn/api/getting-started#find-your-tenant-name). The SDK will use this tenant name to connect to your IDN instance. +- Your tenant name in ISC. To learn how to find it, refer to [Getting Started](/docs/api/getting-started#find-your-tenant-name). The SDK will use this tenant name to connect to your ISC instance. -- A PAT with a client secret and ID. To learn how to create one in IDN, refer to [Personal Access Tokens](https://documentation.sailpoint.com/saas/help/common/api_keys.html#generating-a-personal-access-token). The SDK will use this PAT to authenticate with the SailPoint APIs. +- A PAT with a client secret and ID. To learn how to create one in ISC, refer to [Personal Access Tokens](https://documentation.sailpoint.com/saas/help/common/api_keys.html#generating-a-personal-access-token). The SDK will use this PAT to authenticate with the SailPoint APIs. ## Setup @@ -229,7 +229,7 @@ To get your environment variables to persist across PowerShell sessions, run the ## Discuss -You can use this SDK to build new tools that extend your IDN platform and improve experiences across your organization. Use this guide to get started, and if you have questions, don't hesitate to reach out on the SailPoint Developer Community forum at https://developer.sailpoint.com/discuss! +You can use this SDK to build new tools that extend your ISC platform and improve experiences across your organization. Use this guide to get started, and if you have questions, don't hesitate to reach out on the SailPoint Developer Community forum at https://developer.sailpoint.com/discuss! ## Getting Started diff --git a/products/idn/tools/sdk/typescript/pagination.md b/docs/tools/sdk/typescript/pagination.md similarity index 89% rename from products/idn/tools/sdk/typescript/pagination.md rename to docs/tools/sdk/typescript/pagination.md index b80c2d71a..e17694143 100644 --- a/products/idn/tools/sdk/typescript/pagination.md +++ b/docs/tools/sdk/typescript/pagination.md @@ -11,7 +11,7 @@ slug: /tools/sdk/typescript/paginate tags: ['SDK'] --- -By default, your requests will return a maximum of 250 records. To return more, you must implement pagination. To learn more about pagination, refer to [Paginating Results](/idn/api/standard-collection-parameters/#paginating-results). +By default, your requests will return a maximum of 250 records. To return more, you must implement pagination. To learn more about pagination, refer to [Paginating Results](/docs/api/standard-collection-parameters/#paginating-results). Pagination is implemented with the SDK in the following code block on line 7: @@ -42,4 +42,4 @@ The `limit` specifies the total number of results you can return, 1000. The foll You can also provide an `offset` value to specify the record number to start the request on. For example, you can add `{offset: 11}` to start getting accounts from 11 instead of 0. -To find out whether an endpoint supports pagination, refer to its documentation. Any API supporting pagination lists the optional query parameters detailed in [Paginating Results](/idn/api/standard-collection-parameters/#paginating-results). +To find out whether an endpoint supports pagination, refer to its documentation. Any API supporting pagination lists the optional query parameters detailed in [Paginating Results](/docs/api/standard-collection-parameters/#paginating-results). diff --git a/products/idn/tools/sdk/typescript/retries.md b/docs/tools/sdk/typescript/retries.md similarity index 100% rename from products/idn/tools/sdk/typescript/retries.md rename to docs/tools/sdk/typescript/retries.md diff --git a/products/idn/tools/sdk/typescript/search.md b/docs/tools/sdk/typescript/search.md similarity index 91% rename from products/idn/tools/sdk/typescript/search.md rename to docs/tools/sdk/typescript/search.md index 92c6ecc16..ec089c0c1 100644 --- a/products/idn/tools/sdk/typescript/search.md +++ b/docs/tools/sdk/typescript/search.md @@ -11,7 +11,7 @@ slug: /tools/sdk/typescript/search tags: ['SDK'] --- -To try using the IDN [search functionality](/idn/api/v3/search-post) along with pagination, copy this code into your "index.ts" file: +To try using the ISC [search functionality](/docs/api/v3/search-post) along with pagination, copy this code into your "index.ts" file: ```typescript const search = async () => { diff --git a/products/idn/tools/sdk/typescript/updating-resources.md b/docs/tools/sdk/typescript/updating-resources.md similarity index 100% rename from products/idn/tools/sdk/typescript/updating-resources.md rename to docs/tools/sdk/typescript/updating-resources.md diff --git a/docusaurus.config.js b/docusaurus.config.js index 3abeb56fe..838cbee06 100644 --- a/docusaurus.config.js +++ b/docusaurus.config.js @@ -17,8 +17,8 @@ const config = { url: 'https://developer.sailpoint.com', baseUrl, favicon: 'img/SailPoint-Logo-Icon.ico', - onBrokenLinks: 'throw', - onBrokenMarkdownLinks: 'throw', + // onBrokenLinks: 'throw', + // onBrokenMarkdownLinks: 'throw', onDuplicateRoutes: 'throw', i18n: { defaultLocale: 'en', diff --git a/footer.js b/footer.js index 2b0899997..23150313b 100644 --- a/footer.js +++ b/footer.js @@ -2,19 +2,19 @@ module.exports = { style: 'light', links: [ { - title: 'IdentityNow', + title: 'Identity Security Cloud', items: [ { label: 'Your First API Call', - to: 'idn/api/getting-started', + to: 'docs/api/getting-started', }, { label: 'Build A Transform', - to: 'idn/docs/transforms/guides/your-first-transform', + to: 'docs/extensibility/transforms/guides/your-first-transform', }, { label: 'Build A SaaS Connector', - to: 'idn/docs/saas-connectivity', + to: 'docs/connectivity/saas-connectivity', }, { label: 'Get Certified', diff --git a/navbar.js b/navbar.js index 31cb62e4b..bdfc31b86 100644 --- a/navbar.js +++ b/navbar.js @@ -7,68 +7,19 @@ module.exports = { }, items: [ { - type: 'dropdown', - label: 'IdentityNow', position: 'left', - items: [ - {to: '#', label: 'API Specifications', className: 'navbar__section'}, - {to: '/idn/api/v3', label: 'V3 APIs', className: 'indent'}, - {to: '/idn/api/beta', label: 'Beta APIs', className: 'indent'}, - {to: '#', label: 'Documentation', className: 'navbar__section'}, - {to: 'idn/docs', label: 'IDN Documentation', className: 'indent'}, - {to: '#', label: 'Tools', className: 'navbar__section'}, - {to: 'idn/tools/cli', label: 'CLI', className: 'indent'}, - {to: 'idn/tools/sdk', label: 'SDKs', className: 'indent'}, - {to: 'idn/tools/rule-development-kit', label: 'Rule Development Kit', className: 'indent'}, - {to: '#', label: 'External Links', className: 'navbar__section'}, - { - href: 'https://documentation.sailpoint.com', - label: 'Product Documentation', - className: 'indent', - }, - { - href: 'https://university.sailpoint.com/Saba/Web_spf/NA10P1PRD075/guest/categorydetail/categ000000000003041/true/xxemptyxx/', - label: 'IdentityNow Certifications', - className: 'indent', - }, - ], + label: 'Identity Security Cloud', + to: '/docs', }, { - type: 'dropdown', + position: 'left', label: 'IdentityIQ', - position: 'left', - items: [ - {to: '#', label: 'API Specifications', className: 'navbar__section'}, - {to: '/iiq/api', label: 'IIQ APIs', className: 'indent'}, - {to: '#', label: 'Documentation', className: 'navbar__section'}, - {to: 'iiq/docs', label: 'IIQ Documentation', className: 'indent'}, - {to: '#', label: 'External Links', className: 'navbar__section'}, - { - href: 'https://documentation.sailpoint.com/#identityiq', - label: 'Product Documentation', - className: 'indent', - }, - { - href: 'https://university.sailpoint.com/Saba/Web_spf/NA10P1PRD075/guest/categorydetail/categ000000000003042/true/xxemptyxx/', - label: 'IdentityIQ Certifications', - className: 'indent', - }, - ], + to: '/docs/iiq', }, { - type: 'dropdown', - label: 'NERM', position: 'left', - items: [ - {to: '#', label: 'API Specifications', className: 'navbar__section'}, - {to: '/nerm/api', label: 'NERM APIs', className: 'indent'}, - {to: '#', label: 'External Links', className: 'navbar__section'}, - { - href: 'https://documentation.sailpoint.com', - label: 'Product Documentation', - className: 'indent', - } - ] + label: 'CoLab', + to: '/colab', }, { position: 'left', diff --git a/package-lock.json b/package-lock.json index ae4264c2f..1414b8c02 100644 --- a/package-lock.json +++ b/package-lock.json @@ -12,6 +12,9 @@ "@docusaurus/plugin-content-docs": "^2.4.3", "@docusaurus/plugin-google-tag-manager": "^2.4.3", "@docusaurus/theme-mermaid": "2.4.3", + "@fortawesome/fontawesome-svg-core": "^6.5.1", + "@fortawesome/pro-duotone-svg-icons": "^6.5.1", + "@fortawesome/react-fontawesome": "^0.2.0", "@mdx-js/react": "^1.6.22", "@typeform/embed-react": "^1.21.0", "autoprefixer": "^10.4.13", @@ -3228,6 +3231,50 @@ "resolved": "https://registry.npmjs.org/@exodus/schemasafe/-/schemasafe-1.3.0.tgz", "integrity": "sha512-5Aap/GaRupgNx/feGBwLLTVv8OQFfv3pq2lPRzPg9R+IOBnDgghTGW7l7EuVXOvg5cc/xSAlRW8rBrjIC3Nvqw==" }, + "node_modules/@fortawesome/fontawesome-common-types": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-common-types/-/fontawesome-common-types-6.5.1.tgz", + "integrity": "sha512-GkWzv+L6d2bI5f/Vk6ikJ9xtl7dfXtoRu3YGE6nq0p/FFqA1ebMOAWg3XgRyb0I6LYyYkiAo+3/KrwuBp8xG7A==", + "hasInstallScript": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/@fortawesome/fontawesome-svg-core": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-svg-core/-/fontawesome-svg-core-6.5.1.tgz", + "integrity": "sha512-MfRCYlQPXoLlpem+egxjfkEuP9UQswTrlCOsknus/NcMoblTH2g0jPrapbcIb04KGA7E2GZxbAccGZfWoYgsrQ==", + "hasInstallScript": true, + "dependencies": { + "@fortawesome/fontawesome-common-types": "6.5.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@fortawesome/pro-duotone-svg-icons": { + "version": "6.5.1", + "resolved": "https://npm.fontawesome.com/@fortawesome/pro-duotone-svg-icons/-/6.5.1/pro-duotone-svg-icons-6.5.1.tgz", + "integrity": "sha512-ywRh7WpcUD4To4TBFZc2EzbFblWiccNf9wwLFK56J7t8mO9ITQJAIPpT8x7DBrqejfbw9B4F6aH5fY6mfi0egg==", + "dependencies": { + "@fortawesome/fontawesome-common-types": "6.5.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@fortawesome/react-fontawesome": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@fortawesome/react-fontawesome/-/react-fontawesome-0.2.0.tgz", + "integrity": "sha512-uHg75Rb/XORTtVt7OS9WoK8uM276Ufi7gCzshVWkUJbHhh3svsUUeqXerrM96Wm7fRiDzfKRwSoahhMIkGAYHw==", + "dependencies": { + "prop-types": "^15.8.1" + }, + "peerDependencies": { + "@fortawesome/fontawesome-svg-core": "~1 || ~6", + "react": ">=16.3" + } + }, "node_modules/@hapi/hoek": { "version": "9.3.0", "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.3.0.tgz", diff --git a/package.json b/package.json index ce2670870..2472ac140 100644 --- a/package.json +++ b/package.json @@ -25,6 +25,9 @@ "@docusaurus/plugin-content-docs": "^2.4.3", "@docusaurus/plugin-google-tag-manager": "^2.4.3", "@docusaurus/theme-mermaid": "2.4.3", + "@fortawesome/fontawesome-svg-core": "^6.5.1", + "@fortawesome/pro-duotone-svg-icons": "^6.5.1", + "@fortawesome/react-fontawesome": "^0.2.0", "@mdx-js/react": "^1.6.22", "@typeform/embed-react": "^1.21.0", "autoprefixer": "^10.4.13", diff --git a/plugins.js b/plugins.js index 2e9222ed2..e22d7846c 100644 --- a/plugins.js +++ b/plugins.js @@ -23,49 +23,1569 @@ module.exports = [ to: '/ambassadors', from: ['/ambassador-program', '/ambassador'], }, + { + from: ['/idn/docs/saas-configuration'], + to: '/docs/extensibility/configuration-management/saas-configuration', + }, + { + from: ['/idn/docs/event-triggers'], + to: '/docs/extensibility/event-triggers', + }, + { + from: ['/idn/docs/event-triggers/available'], + to: '/docs/extensibility/event-triggers/available', + }, + { + from: ['/idn/docs/event-triggers/early-access'], + to: '/docs/extensibility/event-triggers/early-access', + }, + { + from: ['/idn/docs/event-triggers/filtering-events'], + to: '/docs/extensibility/event-triggers/filtering-events', + }, + { + from: ['/idn/docs/event-triggers/preparing-subscriber-service'], + to: '/docs/extensibility/event-triggers/preparing-subscriber-service', + }, + { + from: [ + '/idn/docs/event-triggers/responding-request-response-trigger', + ], + to: '/docs/extensibility/event-triggers/responding-request-response-trigger', + }, + { + from: ['/idn/docs/event-triggers/subscribing-to-trigger'], + to: '/docs/extensibility/event-triggers/subscribing-to-trigger', + }, + { + from: ['/idn/docs/event-triggers/testing-triggers'], + to: '/docs/extensibility/event-triggers/testing-triggers', + }, + { + from: ['/idn/docs/event-triggers/trigger-types'], + to: '/docs/extensibility/event-triggers/trigger-types', + }, + { + from: ['/idn/docs/event-triggers/triggers/access-request-decision'], + to: '/docs/extensibility/event-triggers/triggers/access-request-decision', + }, + { + from: [ + '/idn/docs/event-triggers/triggers/access-request-dynamic-approval', + ], + to: '/docs/extensibility/event-triggers/triggers/access-request-dynamic-approval', + }, + { + from: ['/idn/docs/event-triggers/triggers/access-request-submitted'], + to: '/docs/extensibility/event-triggers/triggers/access-request-submitted', + }, + { + from: [ + '/idn/docs/event-triggers/triggers/account-aggregation-completed', + ], + to: '/docs/extensibility/event-triggers/triggers/account-aggregation-completed', + }, + { + from: ['/idn/docs/event-triggers/triggers/campaign-activated'], + to: '/docs/extensibility/event-triggers/triggers/campaign-activated', + }, + { + from: ['/idn/docs/event-triggers/triggers/campaign-ended'], + to: '/docs/extensibility/event-triggers/triggers/campaign-ended', + }, + { + from: ['/idn/docs/event-triggers/triggers/campaign-generated'], + to: '/docs/extensibility/event-triggers/triggers/campaign-generated', + }, + { + from: ['/idn/docs/event-triggers/triggers/certification-signed-off'], + to: '/docs/extensibility/event-triggers/triggers/certification-signed-off', + }, + { + from: ['/idn/docs/event-triggers/triggers/form-submitted'], + to: '/docs/extensibility/event-triggers/triggers/form-submitted', + }, + { + from: [ + '/idn/docs/event-triggers/triggers/identity-attribute-changed', + ], + to: '/docs/extensibility/event-triggers/triggers/identity-attribute-changed', + }, + { + from: ['/idn/docs/event-triggers/triggers/identity-created'], + to: '/docs/extensibility/event-triggers/triggers/identity-created', + }, + { + from: ['/idn/docs/event-triggers/triggers/identity-deleted'], + to: '/docs/extensibility/event-triggers/triggers/identity-deleted', + }, + { + from: [ + '/idn/docs/event-triggers/triggers/native-change-account-created', + ], + to: '/docs/extensibility/event-triggers/triggers/native-change-account-created', + }, + { + from: [ + '/idn/docs/event-triggers/triggers/native-change-account-deleted', + ], + to: '/docs/extensibility/event-triggers/triggers/native-change-account-deleted', + }, + { + from: [ + '/idn/docs/event-triggers/triggers/native-change-account-updated', + ], + to: '/docs/extensibility/event-triggers/triggers/native-change-account-updated', + }, + { + from: ['/idn/docs/event-triggers/triggers/outlier-detected'], + to: '/docs/extensibility/event-triggers/triggers/outlier-detected', + }, + { + from: ['/idn/docs/event-triggers/triggers/provisioning-completed'], + to: '/docs/extensibility/event-triggers/triggers/provisioning-completed', + }, + { + from: ['/idn/docs/event-triggers/triggers/scheduled-search'], + to: '/docs/extensibility/event-triggers/triggers/scheduled-search', + }, + { + from: ['/idn/docs/event-triggers/triggers/source-account-created'], + to: '/docs/extensibility/event-triggers/triggers/source-account-created', + }, + { + from: ['/idn/docs/event-triggers/triggers/source-account-deleted'], + to: '/docs/extensibility/event-triggers/triggers/source-account-deleted', + }, + { + from: ['/idn/docs/event-triggers/triggers/source-account-updated'], + to: '/docs/extensibility/event-triggers/triggers/source-account-updated', + }, + { + from: ['/idn/docs/event-triggers/triggers/source-created'], + to: '/docs/extensibility/event-triggers/triggers/source-created', + }, + { + from: ['/idn/docs/event-triggers/triggers/source-deleted'], + to: '/docs/extensibility/event-triggers/triggers/source-deleted', + }, + { + from: ['/idn/docs/event-triggers/triggers/source-updated'], + to: '/docs/extensibility/event-triggers/triggers/source-updated', + }, + { + from: ['/idn/docs/event-triggers/triggers/va-cluster-status-change'], + to: '/docs/extensibility/event-triggers/triggers/va-cluster-status-change', + }, + { + from: ['/idn/docs/rules'], + to: '/docs/extensibility/rules', + }, + { + from: ['/idn/docs/rules/cloud-rules'], + to: '/docs/extensibility/rules/cloud-rules', + }, + { + from: [ + '/idn/docs/rules/cloud-rules/account-profile-attribute-generator', + ], + to: '/docs/extensibility/rules/cloud-rules/account-profile-attribute-generator', + }, + { + from: [ + '/idn/docs/rules/cloud-rules/account-profile-attribute-generator-template', + ], + to: '/docs/extensibility/rules/cloud-rules/account-profile-attribute-generator-template', + }, + { + from: ['/idn/docs/rules/cloud-rules/before-provisioning-rule'], + to: '/docs/extensibility/rules/cloud-rules/before-provisioning-rule', + }, + { + from: ['/idn/docs/rules/cloud-rules/buildmap-rule'], + to: '/docs/extensibility/rules/cloud-rules/buildmap-rule', + }, + { + from: ['/idn/docs/rules/cloud-rules/correlation-rule'], + to: '/docs/extensibility/rules/cloud-rules/correlation-rule', + }, + { + from: ['/idn/docs/rules/cloud-rules/generic-rule'], + to: '/docs/extensibility/rules/cloud-rules/generic-rule', + }, + { + from: ['/idn/docs/rules/cloud-rules/identity-attribute-rule'], + to: '/docs/extensibility/rules/cloud-rules/identity-attribute-rule', + }, + { + from: ['/idn/docs/rules/cloud-rules/manager-correlation-rule'], + to: '/docs/extensibility/rules/cloud-rules/manager-correlation-rule', + }, + { + from: ['/idn/docs/rules/connector-rules'], + to: '/docs/extensibility/rules/connector-rules', + }, + { + from: [ + '/idn/docs/rules/connector-rules/before-and-after-rule-operations', + ], + to: '/docs/extensibility/rules/connector-rules/before-and-after-rule-operations', + }, + { + from: ['/idn/docs/rules/connector-rules/jdbc-buildmap-rule'], + to: '/docs/extensibility/rules/connector-rules/jdbc-buildmap-rule', + }, + { + from: ['/idn/docs/rules/connector-rules/jdbc-provisioning-rule'], + to: '/docs/extensibility/rules/connector-rules/jdbc-provisioning-rule', + }, + { + from: ['/idn/docs/rules/connector-rules/sap-buildmap-rule'], + to: '/docs/extensibility/rules/connector-rules/sap-buildmap-rule', + }, + { + from: [ + '/idn/docs/rules/connector-rules/sap-provisioning-modify-rule', + ], + to: '/docs/extensibility/rules/connector-rules/sap-provisioning-modify-rule', + }, + { + from: [ + '/idn/docs/rules/connector-rules/webservices-after-provisioning-rule', + ], + to: '/docs/extensibility/rules/connector-rules/webservices-after-provisioning-rule', + }, + { + from: [ + '/idn/docs/rules/connector-rules/webservices-before-provisioning-rule', + ], + to: '/docs/extensibility/rules/connector-rules/webservices-before-provisioning-rule', + }, + { + from: ['/idn/docs/rules/guides'], + to: '/docs/extensibility/rules/guides', + }, + { + from: ['/idn/docs/rules/guides/your-first-rule'], + to: '/docs/extensibility/rules/guides/your-first-rule', + }, + { + from: ['/idn/docs/rules/java-docs'], + to: '/docs/extensibility/rules/java-docs', + }, + { + from: ['/idn/docs/rules/rule-utility'], + to: '/docs/extensibility/rules/rule-utility', + }, + { + from: ['/idn/docs/transforms'], + to: '/docs/extensibility/transforms', + }, + { + from: ['/idn/docs/transforms/guides'], + to: '/docs/extensibility/transforms/guides', + }, + { + from: ['/idn/docs/transforms/guides/identity-context-examples'], + to: '/docs/extensibility/transforms/guides/identity-context-examples', + }, + { + from: ['/idn/docs/transforms/guides/lifecycle-state-transform'], + to: '/docs/extensibility/transforms/guides/lifecycle-state-transform', + }, + { + from: ['/idn/docs/transforms/guides/temporary-password'], + to: '/docs/extensibility/transforms/guides/temporary-password', + }, + { + from: [ + '/idn/docs/transforms/guides/transforms-in-provisioning-policies', + ], + to: '/docs/extensibility/transforms/guides/transforms-in-provisioning-policies', + }, + { + from: ['/idn/docs/transforms/guides/your-first-transform'], + to: '/docs/extensibility/transforms/guides/your-first-transform', + }, + { + from: ['/idn/docs/transforms/operations'], + to: '/docs/extensibility/transforms/operations', + }, + { + from: ['/idn/docs/transforms/operations/account-attribute'], + to: '/docs/extensibility/transforms/operations/account-attribute', + }, + { + from: ['/idn/docs/transforms/operations/base64-decode'], + to: '/docs/extensibility/transforms/operations/base64-decode', + }, + { + from: ['/idn/docs/transforms/operations/base64-encode'], + to: '/docs/extensibility/transforms/operations/base64-encode', + }, + { + from: ['/idn/docs/transforms/operations/concatenation'], + to: '/docs/extensibility/transforms/operations/concatenation', + }, + { + from: ['/idn/docs/transforms/operations/conditional'], + to: '/docs/extensibility/transforms/operations/conditional', + }, + { + from: ['/idn/docs/transforms/operations/date-compare'], + to: '/docs/extensibility/transforms/operations/date-compare', + }, + { + from: ['/idn/docs/transforms/operations/date-format'], + to: '/docs/extensibility/transforms/operations/date-format', + }, + { + from: ['/idn/docs/transforms/operations/date-math'], + to: '/docs/extensibility/transforms/operations/date-math', + }, + { + from: ['/idn/docs/transforms/operations/decompose-diacritical-marks'], + to: '/docs/extensibility/transforms/operations/decompose-diacritical-marks', + }, + { + from: ['/idn/docs/transforms/operations/e164-phone'], + to: '/docs/extensibility/transforms/operations/e164-phone', + }, + { + from: ['/idn/docs/transforms/operations/first-valid'], + to: '/docs/extensibility/transforms/operations/first-valid', + }, + { + from: ['/idn/docs/transforms/operations/generate-random-string'], + to: '/docs/extensibility/transforms/operations/generate-random-string', + }, + { + from: ['/idn/docs/transforms/operations/get-end-of-string'], + to: '/docs/extensibility/transforms/operations/get-end-of-string', + }, + { + from: [ + '/idn/docs/transforms/operations/get-reference-identity-attribute', + ], + to: '/docs/extensibility/transforms/operations/get-reference-identity-attribute', + }, + { + from: ['/idn/docs/transforms/operations/identity-attribute'], + to: '/docs/extensibility/transforms/operations/identity-attribute', + }, + { + from: ['/idn/docs/transforms/operations/index-of'], + to: '/docs/extensibility/transforms/operations/index-of', + }, + { + from: ['/idn/docs/transforms/operations/iso-3166'], + to: '/docs/extensibility/transforms/operations/iso-3166', + }, + { + from: ['/idn/docs/transforms/operations/last-index-of'], + to: '/docs/extensibility/transforms/operations/last-index-of', + }, + { + from: ['/idn/docs/transforms/operations/left-pad'], + to: '/docs/extensibility/transforms/operations/left-pad', + }, + { + from: ['/idn/docs/transforms/operations/lookup'], + to: '/docs/extensibility/transforms/operations/lookup', + }, + { + from: ['/idn/docs/transforms/operations/lower'], + to: '/docs/extensibility/transforms/operations/lower', + }, + { + from: ['/idn/docs/transforms/operations/name-normalizer'], + to: '/docs/extensibility/transforms/operations/name-normalizer', + }, + { + from: ['/idn/docs/transforms/operations/random-alphanumeric'], + to: '/docs/extensibility/transforms/operations/random-alphanumeric', + }, + { + from: ['/idn/docs/transforms/operations/random-numeric'], + to: '/docs/extensibility/transforms/operations/random-numeric', + }, + { + from: ['/idn/docs/transforms/operations/reference'], + to: '/docs/extensibility/transforms/operations/reference', + }, + { + from: ['/idn/docs/transforms/operations/replace'], + to: '/docs/extensibility/transforms/operations/replace', + }, + { + from: ['/idn/docs/transforms/operations/replace-all'], + to: '/docs/extensibility/transforms/operations/replace-all', + }, + { + from: ['/idn/docs/transforms/operations/right-pad'], + to: '/docs/extensibility/transforms/operations/right-pad', + }, + { + from: ['/idn/docs/transforms/operations/rule'], + to: '/docs/extensibility/transforms/operations/rule', + }, + { + from: ['/idn/docs/transforms/operations/split'], + to: '/docs/extensibility/transforms/operations/split', + }, + { + from: ['/idn/docs/transforms/operations/static'], + to: '/docs/extensibility/transforms/operations/static', + }, + { + from: ['/idn/docs/transforms/operations/substring'], + to: '/docs/extensibility/transforms/operations/substring', + }, + { + from: ['/idn/docs/transforms/operations/trim'], + to: '/docs/extensibility/transforms/operations/trim', + }, + { + from: ['/idn/docs/transforms/operations/upper'], + to: '/docs/extensibility/transforms/operations/upper', + }, + { + from: ['/idn/docs/transforms/operations/username-generator'], + to: '/docs/extensibility/transforms/operations/username-generator', + }, + { + from: ['/idn/docs/transforms/operations/uuid-generator'], + to: '/docs/extensibility/transforms/operations/uuid-generator', + }, + { + from: ['/idn/docs/access-intelligence-center'], + to: '/docs/reporting/access-intelligence-center', + }, + { + from: ['/idn/docs/aic-audit-er-diagram'], + to: '/docs/reporting/aic-audit-er-diagram', + }, + { + from: ['/idn/docs/aic-er-diagram'], + to: '/docs/reporting/aic-er-diagram', + }, + { + from: ['/idn/docs/aic-videos'], + to: '/docs/reporting/aic-videos', + }, + { + from: ['/idn/docs/saas-connectivity'], + to: '/docs/connectivity/saas-connectivity', + }, + { + from: ['/idn/docs/saas-connectivity/commands/account-create'], + to: '/docs/connectivity/saas-connectivity/commands/account-create', + }, + { + from: ['/idn/docs/saas-connectivity/commands/account-delete'], + to: '/docs/connectivity/saas-connectivity/commands/account-delete', + }, + { + from: ['/idn/docs/saas-connectivity/commands/account-disable'], + to: '/docs/connectivity/saas-connectivity/commands/account-disable', + }, + { + from: ['/idn/docs/saas-connectivity/commands/account-discover'], + to: '/docs/connectivity/saas-connectivity/commands/account-discover', + }, + { + from: ['/idn/docs/saas-connectivity/commands/account-enable'], + to: '/docs/connectivity/saas-connectivity/commands/account-enable', + }, + { + from: ['/idn/docs/saas-connectivity/commands/account-list'], + to: '/docs/connectivity/saas-connectivity/commands/account-list', + }, + { + from: ['/idn/docs/saas-connectivity/commands/account-read'], + to: '/docs/connectivity/saas-connectivity/commands/account-read', + }, + { + from: ['/idn/docs/saas-connectivity/commands/account-unlock'], + to: '/docs/connectivity/saas-connectivity/commands/account-unlock', + }, + { + from: ['/idn/docs/saas-connectivity/commands/account-update'], + to: '/docs/connectivity/saas-connectivity/commands/account-update', + }, + { + from: ['/idn/docs/saas-connectivity/commands/change-password'], + to: '/docs/connectivity/saas-connectivity/commands/change-password', + }, + { + from: ['/idn/docs/saas-connectivity/commands/entitlement-list'], + to: '/docs/connectivity/saas-connectivity/commands/entitlement-list', + }, + { + from: ['/idn/docs/saas-connectivity/commands/entitlement-read'], + to: '/docs/connectivity/saas-connectivity/commands/entitlement-read', + }, + { + from: ['/idn/docs/saas-connectivity/commands/source-data-discover'], + to: '/docs/connectivity/saas-connectivity/commands/source-data-discover', + }, + { + from: ['/idn/docs/saas-connectivity/commands/source-data-read'], + to: '/docs/connectivity/saas-connectivity/commands/source-data-read', + }, + { + from: ['/idn/docs/saas-connectivity/commands/test-connection'], + to: '/docs/connectivity/saas-connectivity/commands/test-connection', + }, + { + from: ['/idn/docs/saas-connectivity/common-cli-commands'], + to: '/docs/connectivity/saas-connectivity/common-cli-commands', + }, + { + from: ['/idn/docs/saas-connectivity/connector-commands'], + to: '/docs/connectivity/saas-connectivity/connector-commands', + }, + { + from: ['/idn/docs/saas-connectivity/connector-spec'], + to: '/docs/connectivity/saas-connectivity/connector-spec', + }, + { + from: ['/idn/docs/saas-connectivity/connector-spec/card'], + to: '/docs/connectivity/saas-connectivity/connector-spec/card', + }, + { + from: ['/idn/docs/saas-connectivity/connector-spec/initial-value'], + to: '/docs/connectivity/saas-connectivity/connector-spec/initial-value', + }, + { + from: ['/idn/docs/saas-connectivity/connector-spec/key-value'], + to: '/docs/connectivity/saas-connectivity/connector-spec/key-value', + }, + { + from: ['/idn/docs/saas-connectivity/connector-spec/list'], + to: '/docs/connectivity/saas-connectivity/connector-spec/list', + }, + { + from: ['/idn/docs/saas-connectivity/connector-spec/radio'], + to: '/docs/connectivity/saas-connectivity/connector-spec/radio', + }, + { + from: ['/idn/docs/saas-connectivity/connector-spec/select'], + to: '/docs/connectivity/saas-connectivity/connector-spec/select', + }, + { + from: ['/idn/docs/saas-connectivity/customizers'], + to: '/docs/connectivity/saas-connectivity/customizers', + }, + { + from: ['/idn/docs/saas-connectivity/customizers/commands'], + to: '/docs/connectivity/saas-connectivity/customizers/commands', + }, + { + from: [ + '/idn/docs/saas-connectivity/customizers/commands/account-create', + ], + to: '/docs/connectivity/saas-connectivity/customizers/commands/account-create', + }, + { + from: [ + '/idn/docs/saas-connectivity/customizers/commands/account-delete', + ], + to: '/docs/connectivity/saas-connectivity/customizers/commands/account-delete', + }, + { + from: [ + '/idn/docs/saas-connectivity/customizers/commands/account-disable', + ], + to: '/docs/connectivity/saas-connectivity/customizers/commands/account-disable', + }, + { + from: [ + '/idn/docs/saas-connectivity/customizers/commands/account-enable', + ], + to: '/docs/connectivity/saas-connectivity/customizers/commands/account-enable', + }, + { + from: [ + '/idn/docs/saas-connectivity/customizers/commands/account-list', + ], + to: '/docs/connectivity/saas-connectivity/customizers/commands/account-list', + }, + { + from: [ + '/idn/docs/saas-connectivity/customizers/commands/account-read', + ], + to: '/docs/connectivity/saas-connectivity/customizers/commands/account-read', + }, + { + from: [ + '/idn/docs/saas-connectivity/customizers/commands/account-unlock', + ], + to: '/docs/connectivity/saas-connectivity/customizers/commands/account-unlock', + }, + { + from: [ + '/idn/docs/saas-connectivity/customizers/commands/account-update', + ], + to: '/docs/connectivity/saas-connectivity/customizers/commands/account-update', + }, + { + from: [ + '/idn/docs/saas-connectivity/customizers/commands/change-password', + ], + to: '/docs/connectivity/saas-connectivity/customizers/commands/change-password', + }, + { + from: [ + '/idn/docs/saas-connectivity/customizers/commands/entitlement-list', + ], + to: '/docs/connectivity/saas-connectivity/customizers/commands/entitlement-list', + }, + { + from: [ + '/idn/docs/saas-connectivity/customizers/commands/entitlement-read', + ], + to: '/docs/connectivity/saas-connectivity/customizers/commands/entitlement-read', + }, + { + from: [ + '/idn/docs/saas-connectivity/customizers/commands/source-data-discover', + ], + to: '/docs/connectivity/saas-connectivity/customizers/commands/source-data-discover', + }, + { + from: [ + '/idn/docs/saas-connectivity/customizers/commands/source-data-read', + ], + to: '/docs/connectivity/saas-connectivity/customizers/commands/source-data-read', + }, + { + from: [ + '/idn/docs/saas-connectivity/customizers/commands/test-connection', + ], + to: '/docs/connectivity/saas-connectivity/customizers/commands/test-connection', + }, + { + from: ['/idn/docs/saas-connectivity/customizers/example'], + to: '/docs/connectivity/saas-connectivity/customizers/example', + }, + { + from: ['/idn/docs/saas-connectivity/customizers/getting-started'], + to: '/docs/connectivity/saas-connectivity/customizers/getting-started', + }, + { + from: ['/idn/docs/saas-connectivity/customizers/linking'], + to: '/docs/connectivity/saas-connectivity/customizers/linking', + }, + { + from: ['/idn/docs/saas-connectivity/customizers/testing'], + to: '/docs/connectivity/saas-connectivity/customizers/testing', + }, + { + from: ['/idn/docs/saas-connectivity/customizers/upload'], + to: '/docs/connectivity/saas-connectivity/customizers/upload', + }, + { + from: ['/idn/docs/saas-connectivity/example-connectors'], + to: '/docs/connectivity/saas-connectivity/example-connectors', + }, + { + from: ['/idn/docs/saas-connectivity/in-depth/api-calls'], + to: '/docs/connectivity/saas-connectivity/in-depth/api-calls', + }, + { + from: ['/idn/docs/saas-connectivity/in-depth/cli-advanced'], + to: '/docs/connectivity/saas-connectivity/in-depth/cli-advanced', + }, + { + from: ['/idn/docs/saas-connectivity/in-depth/connector-timeouts'], + to: '/docs/connectivity/saas-connectivity/in-depth/connector-timeouts', + }, + { + from: ['/idn/docs/saas-connectivity/in-depth/debugging'], + to: '/docs/connectivity/saas-connectivity/in-depth/debugging', + }, + { + from: ['/idn/docs/saas-connectivity/in-depth/error-handling'], + to: '/docs/connectivity/saas-connectivity/in-depth/error-handling', + }, + { + from: ['/idn/docs/saas-connectivity/in-depth/handling-rate-limits'], + to: '/docs/connectivity/saas-connectivity/in-depth/handling-rate-limits', + }, + { + from: ['/idn/docs/saas-connectivity/in-depth/linting'], + to: '/docs/connectivity/saas-connectivity/in-depth/linting', + }, + { + from: ['/idn/docs/saas-connectivity/in-depth/logging'], + to: '/docs/connectivity/saas-connectivity/in-depth/logging', + }, + { + from: ['/idn/docs/saas-connectivity/in-depth/testing'], + to: '/docs/connectivity/saas-connectivity/in-depth/testing', + }, + { + from: ['/idn/docs/saas-connectivity/limits'], + to: '/docs/connectivity/saas-connectivity/limits', + }, + { + from: ['/idn/docs/saas-connectivity/postman-collection'], + to: '/docs/connectivity/saas-connectivity/postman-collection', + }, + { + from: ['/idn/docs/saas-connectivity/prerequisites'], + to: '/docs/connectivity/saas-connectivity/prerequisites', + }, + { + from: ['/idn/docs/saas-connectivity/test-build-deploy'], + to: '/docs/connectivity/saas-connectivity/test-build-deploy', + }, + { + from: ['/idn/docs/saas-connectivity/videos'], + to: '/docs/connectivity/saas-connectivity/videos', + }, + { + from: ['/idn/docs/sds-audit-er-diagram'], + to: '/docs/reporting/sds-audit-er-diagram', + }, + { + from: ['/idn/docs/sds-er-diagram'], + to: '/docs/reporting/sds-er-diagram', + }, + { + from: ['/idn/docs/secure-data-share'], + to: '/docs/reporting/secure-data-share', + }, + { + from: ['/idn/docs/global-platform-resources/ip-address-allow-list'], + to: '/docs/guides/ip-address-allow-list', + }, + { + from: ['/idn/docs/disable-access-profile-requests'], + to: '/docs/guides/disable-access-profile-requests', + }, + { + from: ['/idn/api/service-accounts'], + to: '/docs/guides/service-accounts', + }, + { + from: ['/iiq/docs'], + to: '/docs/iiq', + }, + { + from: ['/iiq/docs/plugin-developer-guide'], + to: '/docs/iiq/plugin-developer-guide', + }, + { + from: ['/iiq/docs/plugin-developer-guide/overview'], + to: '/docs/iiq/plugin-developer-guide/overview', + }, + { + from: ['/iiq/docs/plugin-developer-guide/manifest'], + to: '/docs/iiq/plugin-developer-guide/manifest', + }, + { + from: ['/iiq/docs/plugin-developer-guide/build-file'], + to: '/docs/iiq/plugin-developer-guide/build-file', + }, + { + from: ['/iiq/docs/plugin-developer-guide/database-scripts'], + to: '/docs/iiq/plugin-developer-guide/database-scripts', + }, + { + from: ['/iiq/docs/plugin-developer-guide/ui-elements'], + to: '/docs/iiq/plugin-developer-guide/ui-elements', + }, + { + from: ['/iiq/docs/plugin-developer-guide/xml-artifacts'], + to: '/docs/iiq/plugin-developer-guide/xml-artifacts', + }, + { + from: [ + '/iiq/docs/plugin-developer-guide/java-classes-rest-resources', + ], + to: '/docs/iiq/plugin-developer-guide/java-classes-rest-resources', + }, + { + from: ['/iiq/docs/plugin-developer-guide/java-classes-executors'], + to: '/docs/iiq/plugin-developer-guide/java-classes-executors', + }, + { + from: ['/iiq/docs/plugin-developer-guide/installation'], + to: '/docs/iiq/plugin-developer-guide/installation', + }, + { + from: ['/iiq/docs/plugin-developer-guide/appendix-migration'], + to: '/docs/iiq/plugin-developer-guide/appendix-migration', + }, + { + from: ['/iiq/docs/plugin-developer-guide/updates'], + to: '/docs/iiq/plugin-developer-guide/updates', + }, + { + from: ['/iiq/api'], + to: '/docs/api/iiq', + }, + { + from: ['/iiq/api/identityiq-scim-rest-api'], + to: '/docs/api/iiq/identityiq-scim-rest-api', + }, + { + from: ['/iiq/api/accounts'], + to: '/docs/api/iiq/accounts', + }, + { + from: ['/iiq/api/alerts'], + to: '/docs/api/iiq/alerts', + }, + { + from: ['/iiq/api/applications'], + to: '/docs/api/iiq/applications', + }, + { + from: ['/iiq/api/check-policy-violations'], + to: '/docs/api/iiq/check-policy-violations', + }, + { + from: ['/iiq/api/checked-policy-violations'], + to: '/docs/api/iiq/checked-policy-violations', + }, + { + from: ['/iiq/api/create-account'], + to: '/docs/api/iiq/create-account', + }, + { + from: ['/iiq/api/create-alert'], + to: '/docs/api/iiq/create-alert', + }, + { + from: ['/iiq/api/create-user'], + to: '/docs/api/iiq/create-user', + }, + { + from: ['/iiq/api/delete-account'], + to: '/docs/api/iiq/delete-account', + }, + { + from: ['/iiq/api/delete-user'], + to: '/docs/api/iiq/delete-user', + }, + { + from: ['/iiq/api/entitlements'], + to: '/docs/api/iiq/entitlements', + }, + { + from: ['/iiq/api/get-account-by-id'], + to: '/docs/api/iiq/get-account-by-id', + }, + { + from: ['/iiq/api/get-accounts'], + to: '/docs/api/iiq/get-accounts', + }, + { + from: ['/iiq/api/get-alert-by-id'], + to: '/docs/api/iiq/get-alert-by-id', + }, + { + from: ['/iiq/api/get-alerts'], + to: '/docs/api/iiq/get-alerts', + }, + { + from: ['/iiq/api/get-application'], + to: '/docs/api/iiq/get-application', + }, + { + from: ['/iiq/api/get-applications'], + to: '/docs/api/iiq/get-applications', + }, + { + from: ['/iiq/api/get-entitlement-by-id'], + to: '/docs/api/iiq/get-entitlement-by-id', + }, + { + from: ['/iiq/api/get-entitlements'], + to: '/docs/api/iiq/get-entitlements', + }, + { + from: ['/iiq/api/get-launched-workflow-by-id'], + to: '/docs/api/iiq/get-launched-workflow-by-id', + }, + { + from: ['/iiq/api/get-object-config-by-id'], + to: '/docs/api/iiq/get-object-config-by-id', + }, + { + from: ['/iiq/api/get-object-configs'], + to: '/docs/api/iiq/get-object-configs', + }, + { + from: ['/iiq/api/get-policy-violation-by-id'], + to: '/docs/api/iiq/get-policy-violation-by-id', + }, + { + from: ['/iiq/api/get-policy-violations'], + to: '/docs/api/iiq/get-policy-violations', + }, + { + from: ['/iiq/api/get-resource-type-by-id'], + to: '/docs/api/iiq/get-resource-type-by-id', + }, + { + from: ['/iiq/api/get-resource-types'], + to: '/docs/api/iiq/get-resource-types', + }, + { + from: ['/iiq/api/get-role'], + to: '/docs/api/iiq/get-role', + }, + { + from: ['/iiq/api/get-roles'], + to: '/docs/api/iiq/get-roles', + }, + { + from: ['/iiq/api/get-schema-by-id'], + to: '/docs/api/iiq/get-schema-by-id', + }, + { + from: ['/iiq/api/get-schemas'], + to: '/docs/api/iiq/get-schemas', + }, + { + from: ['/iiq/api/get-task-result-by-id'], + to: '/docs/api/iiq/get-task-result-by-id', + }, + { + from: ['/iiq/api/get-user-by-id'], + to: '/docs/api/iiq/get-user-by-id', + }, + { + from: ['/iiq/api/get-users'], + to: '/docs/api/iiq/get-users', + }, + { + from: ['/iiq/api/get-workflow-by-id'], + to: '/docs/api/iiq/get-workflow-by-id', + }, + { + from: ['/iiq/api/launch-workflow'], + to: '/docs/api/iiq/launch-workflow', + }, + { + from: ['/iiq/api/launched-workflows'], + to: '/docs/api/iiq/launched-workflows', + }, + { + from: ['/iiq/api/launched-workflows-get'], + to: '/docs/api/iiq/launched-workflows-get', + }, + { + from: ['/iiq/api/object-config'], + to: '/docs/api/iiq/object-config', + }, + { + from: ['/iiq/api/policy-violations'], + to: '/docs/api/iiq/policy-violations', + }, + { + from: ['/iiq/api/resource-types'], + to: '/docs/api/iiq/resource-types', + }, + { + from: ['/iiq/api/roles'], + to: '/docs/api/iiq/roles', + }, + { + from: ['/iiq/api/schemas'], + to: '/docs/api/iiq/schemas', + }, + { + from: ['/iiq/api/service-provider-config'], + to: '/docs/api/iiq/service-provider-config', + }, + { + from: ['/iiq/api/service-provider-config-get'], + to: '/docs/api/iiq/service-provider-config-get', + }, + { + from: ['/iiq/api/task-results'], + to: '/docs/api/iiq/task-results', + }, + { + from: ['/iiq/api/task-results-get'], + to: '/docs/api/iiq/task-results-get', + }, + { + from: ['/iiq/api/update-account'], + to: '/docs/api/iiq/update-account', + }, + { + from: ['/iiq/api/update-user'], + to: '/docs/api/iiq/update-user', + }, + { + from: ['/iiq/api/users'], + to: '/docs/api/iiq/users', + }, + { + from: ['/iiq/api/workflows'], + to: '/docs/api/iiq/workflows', + }, + { + from: ['/iiq/api/workflows-get'], + to: '/docs/api/iiq/workflows-get', + }, + { + from: ['/nerm/api/nerm-api'], + to: '/docs/api/nerm/v1/nerm-api', + }, + { + from: ['/nerm/api'], + to: '/docs/api/nerm/v1', + }, + { + from: ['/nerm/api/authentication'], + to: '/docs/api/nerm/authentication', + }, + { + from: ['/nerm/api/create-approval-action'], + to: '/docs/api/nerm/v1/create-approval-action', + }, + { + from: ['/nerm/api/create-ask-security-question-action'], + to: '/docs/api/nerm/v1/create-ask-security-question-action', + }, + { + from: ['/nerm/api/create-auto-assign-action'], + to: '/docs/api/nerm/v1/create-auto-assign-action', + }, + { + from: ['/nerm/api/create-automated-workflow'], + to: '/docs/api/nerm/v1/create-automated-workflow', + }, + { + from: ['/nerm/api/create-batch-update-action'], + to: '/docs/api/nerm/v1/create-batch-update-action', + }, + { + from: ['/nerm/api/create-batch-workflow'], + to: '/docs/api/nerm/v1/create-batch-workflow', + }, + { + from: ['/nerm/api/create-close-session-action'], + to: '/docs/api/nerm/v1/create-close-session-action', + }, + { + from: ['/nerm/api/create-contributors-action'], + to: '/docs/api/nerm/v1/create-contributors-action', + }, + { + from: ['/nerm/api/create-create-profile-action'], + to: '/docs/api/nerm/v1/create-create-profile-action', + }, + { + from: ['/nerm/api/create-create-workflow'], + to: '/docs/api/nerm/v1/create-create-workflow', + }, + { + from: ['/nerm/api/create-duplicate-prevention-action'], + to: '/docs/api/nerm/v1/create-duplicate-prevention-action', + }, + { + from: ['/nerm/api/create-email-verification-action'], + to: '/docs/api/nerm/v1/create-email-verification-action', + }, + { + from: ['/nerm/api/create-form'], + to: '/docs/api/nerm/v1/create-form', + }, + { + from: ['/nerm/api/create-form-attribute'], + to: '/docs/api/nerm/v1/create-form-attribute', + }, + { + from: ['/nerm/api/create-fulfillment-action'], + to: '/docs/api/nerm/v1/create-fulfillment-action', + }, + { + from: ['/nerm/api/create-identity-proofing-action'], + to: '/docs/api/nerm/v1/create-identity-proofing-action', + }, + { + from: ['/nerm/api/create-invitation-action'], + to: '/docs/api/nerm/v1/create-invitation-action', + }, + { + from: ['/nerm/api/create-ldap-action'], + to: '/docs/api/nerm/v1/create-ldap-action', + }, + { + from: ['/nerm/api/create-login-workflow'], + to: '/docs/api/nerm/v1/create-login-workflow', + }, + { + from: ['/nerm/api/create-notification-action'], + to: '/docs/api/nerm/v1/create-notification-action', + }, + { + from: ['/nerm/api/create-password-reset-action'], + to: '/docs/api/nerm/v1/create-password-reset-action', + }, + { + from: ['/nerm/api/create-password-update-workflow'], + to: '/docs/api/nerm/v1/create-password-update-workflow', + }, + { + from: ['/nerm/api/create-permission'], + to: '/docs/api/nerm/v1/create-permission', + }, + { + from: ['/nerm/api/create-profile-check-action'], + to: '/docs/api/nerm/v1/create-profile-check-action', + }, + { + from: ['/nerm/api/create-profile-page'], + to: '/docs/api/nerm/v1/create-profile-page', + }, + { + from: ['/nerm/api/create-profile-select-action'], + to: '/docs/api/nerm/v1/create-profile-select-action', + }, + { + from: ['/nerm/api/create-profile-type-role'], + to: '/docs/api/nerm/v1/create-profile-type-role', + }, + { + from: ['/nerm/api/create-registration-workflow'], + to: '/docs/api/nerm/v1/create-registration-workflow', + }, + { + from: ['/nerm/api/create-request-action'], + to: '/docs/api/nerm/v1/create-request-action', + }, + { + from: ['/nerm/api/create-rest-api-action'], + to: '/docs/api/nerm/v1/create-rest-api-action', + }, + { + from: ['/nerm/api/create-review-action'], + to: '/docs/api/nerm/v1/create-review-action', + }, + { + from: ['/nerm/api/create-run-workflow-action'], + to: '/docs/api/nerm/v1/create-run-workflow-action', + }, + { + from: ['/nerm/api/create-set-attributes-action'], + to: '/docs/api/nerm/v1/create-set-attributes-action', + }, + { + from: ['/nerm/api/create-set-security-question-action'], + to: '/docs/api/nerm/v1/create-set-security-question-action', + }, + { + from: ['/nerm/api/create-soap-api-action'], + to: '/docs/api/nerm/v1/create-soap-api-action', + }, + { + from: ['/nerm/api/create-status-change-action'], + to: '/docs/api/nerm/v1/create-status-change-action', + }, + { + from: ['/nerm/api/create-synced-attribute'], + to: '/docs/api/nerm/v1/create-synced-attribute', + }, + { + from: ['/nerm/api/create-unassign-action'], + to: '/docs/api/nerm/v1/create-unassign-action', + }, + { + from: ['/nerm/api/create-update-profile-action'], + to: '/docs/api/nerm/v1/create-update-profile-action', + }, + { + from: ['/nerm/api/create-update-workflow'], + to: '/docs/api/nerm/v1/create-update-workflow', + }, + { + from: ['/nerm/api/create-user-profiles'], + to: '/docs/api/nerm/v1/create-user-profiles', + }, + { + from: ['/nerm/api/create-username-password-action'], + to: '/docs/api/nerm/v1/create-username-password-action', + }, + { + from: ['/nerm/api/create-workflow-page'], + to: '/docs/api/nerm/v1/create-workflow-page', + }, + { + from: ['/nerm/api/delete-attribute-option'], + to: '/docs/api/nerm/v1/delete-attribute-option', + }, + { + from: ['/nerm/api/delete-profile'], + to: '/docs/api/nerm/v1/delete-profile', + }, + { + from: ['/nerm/api/delete-profile-type'], + to: '/docs/api/nerm/v1/delete-profile-type', + }, + { + from: ['/nerm/api/delete-profiles'], + to: '/docs/api/nerm/v1/delete-profiles', + }, + { + from: ['/nerm/api/delete-role-profile'], + to: '/docs/api/nerm/v1/delete-role-profile', + }, + { + from: ['/nerm/api/delete-synced-attribute'], + to: '/docs/api/nerm/v1/delete-synced-attribute', + }, + { + from: ['/nerm/api/delete-user'], + to: '/docs/api/nerm/v1/delete-user', + }, + { + from: ['/nerm/api/delete-user-profile'], + to: '/docs/api/nerm/v1/delete-user-profile', + }, + { + from: ['/nerm/api/delete-user-profiles'], + to: '/docs/api/nerm/v1/delete-user-profiles', + }, + { + from: ['/nerm/api/delete-user-role'], + to: '/docs/api/nerm/v1/delete-user-role', + }, + { + from: ['/nerm/api/get-advanced-search'], + to: '/docs/api/nerm/v1/get-advanced-search', + }, + { + from: ['/nerm/api/get-attribute'], + to: '/docs/api/nerm/v1/get-attribute', + }, + { + from: ['/nerm/api/get-attribute-option'], + to: '/docs/api/nerm/v1/get-attribute-option', + }, + { + from: ['/nerm/api/get-attribute-options'], + to: '/docs/api/nerm/v1/get-attribute-options', + }, + { + from: ['/nerm/api/get-attributes'], + to: '/docs/api/nerm/v1/get-attributes', + }, + { + from: ['/nerm/api/get-identity-proofing-results'], + to: '/docs/api/nerm/v1/get-identity-proofing-results', + }, + { + from: ['/nerm/api/get-job-status'], + to: '/docs/api/nerm/v1/get-job-status', + }, + { + from: ['/nerm/api/get-profile'], + to: '/docs/api/nerm/v1/get-profile', + }, + { + from: ['/nerm/api/get-profile-avatar'], + to: '/docs/api/nerm/v1/get-profile-avatar', + }, + { + from: ['/nerm/api/get-profile-type'], + to: '/docs/api/nerm/v1/get-profile-type', + }, + { + from: ['/nerm/api/get-profile-type-attributes'], + to: '/docs/api/nerm/v1/get-profile-type-attributes', + }, + { + from: ['/nerm/api/get-profile-types'], + to: '/docs/api/nerm/v1/get-profile-types', + }, + { + from: ['/nerm/api/get-profile-upload'], + to: '/docs/api/nerm/v1/get-profile-upload', + }, + { + from: ['/nerm/api/get-profiles'], + to: '/docs/api/nerm/v1/get-profiles', + }, + { + from: ['/nerm/api/get-risk-level'], + to: '/docs/api/nerm/v1/get-risk-level', + }, + { + from: ['/nerm/api/get-risk-levels'], + to: '/docs/api/nerm/v1/get-risk-levels', + }, + { + from: ['/nerm/api/get-risk-score'], + to: '/docs/api/nerm/v1/get-risk-score', + }, + { + from: ['/nerm/api/get-risk-scores'], + to: '/docs/api/nerm/v1/get-risk-scores', + }, + { + from: ['/nerm/api/get-role'], + to: '/docs/api/nerm/v1/get-role', + }, + { + from: ['/nerm/api/get-role-profile'], + to: '/docs/api/nerm/v1/get-role-profile', + }, + { + from: ['/nerm/api/get-role-profiles'], + to: '/docs/api/nerm/v1/get-role-profiles', + }, + { + from: ['/nerm/api/get-roles'], + to: '/docs/api/nerm/v1/get-roles', + }, + { + from: ['/nerm/api/get-user'], + to: '/docs/api/nerm/v1/get-user', + }, + { + from: ['/nerm/api/get-user-avatar'], + to: '/docs/api/nerm/v1/get-user-avatar', + }, + { + from: ['/nerm/api/get-user-manager'], + to: '/docs/api/nerm/v1/get-user-manager', + }, + { + from: ['/nerm/api/get-user-managers'], + to: '/docs/api/nerm/v1/get-user-managers', + }, + { + from: ['/nerm/api/get-user-profile'], + to: '/docs/api/nerm/v1/get-user-profile', + }, + { + from: ['/nerm/api/get-user-profiles'], + to: '/docs/api/nerm/v1/get-user-profiles', + }, + { + from: ['/nerm/api/get-user-role'], + to: '/docs/api/nerm/v1/get-user-role', + }, + { + from: ['/nerm/api/get-user-roles'], + to: '/docs/api/nerm/v1/get-user-roles', + }, + { + from: ['/nerm/api/get-users'], + to: '/docs/api/nerm/v1/get-users', + }, + { + from: ['/nerm/api/get-workflow-actions'], + to: '/docs/api/nerm/v1/get-workflow-actions', + }, + { + from: ['/nerm/api/get-workflow-session'], + to: '/docs/api/nerm/v1/get-workflow-session', + }, + { + from: ['/nerm/api/get-workflow-session-upload'], + to: '/docs/api/nerm/v1/get-workflow-session-upload', + }, + { + from: ['/nerm/api/get-workflow-sessions'], + to: '/docs/api/nerm/v1/get-workflow-sessions', + }, + { + from: ['/nerm/api/getting-started'], + to: '/docs/api/nerm/getting-started', + }, + { + from: ['/nerm/api/pagination-metadata-filtering'], + to: '/docs/api/nerm/pagination-metadata-filtering', + }, + { + from: ['/nerm/api/patch-advanced-search'], + to: '/docs/api/nerm/v1/patch-advanced-search', + }, + { + from: ['/nerm/api/patch-attribute-option'], + to: '/docs/api/nerm/v1/patch-attribute-option', + }, + { + from: ['/nerm/api/patch-attribute-options'], + to: '/docs/api/nerm/v1/patch-attribute-options', + }, + { + from: ['/nerm/api/patch-profile'], + to: '/docs/api/nerm/v1/patch-profile', + }, + { + from: ['/nerm/api/patch-profile-type'], + to: '/docs/api/nerm/v1/patch-profile-type', + }, + { + from: ['/nerm/api/patch-profiles'], + to: '/docs/api/nerm/v1/patch-profiles', + }, + { + from: ['/nerm/api/patch-role'], + to: '/docs/api/nerm/v1/patch-role', + }, + { + from: ['/nerm/api/patch-role-profile'], + to: '/docs/api/nerm/v1/patch-role-profile', + }, + { + from: ['/nerm/api/patch-role-profiles'], + to: '/docs/api/nerm/v1/patch-role-profiles', + }, + { + from: ['/nerm/api/patch-roles'], + to: '/docs/api/nerm/v1/patch-roles', + }, + { + from: ['/nerm/api/patch-user'], + to: '/docs/api/nerm/v1/patch-user', + }, + { + from: ['/nerm/api/patch-user-manager'], + to: '/docs/api/nerm/v1/patch-user-manager', + }, + { + from: ['/nerm/api/patch-user-managers'], + to: '/docs/api/nerm/v1/patch-user-managers', + }, + { + from: ['/nerm/api/patch-user-profile'], + to: '/docs/api/nerm/v1/patch-user-profile', + }, + { + from: ['/nerm/api/patch-user-profiles'], + to: '/docs/api/nerm/v1/patch-user-profiles', + }, + { + from: ['/nerm/api/patch-user-role'], + to: '/docs/api/nerm/v1/patch-user-role', + }, + { + from: ['/nerm/api/patch-user-roles'], + to: '/docs/api/nerm/v1/patch-user-roles', + }, + { + from: ['/nerm/api/patch-users'], + to: '/docs/api/nerm/v1/patch-users', + }, + { + from: ['/nerm/api/patch-workflow-session'], + to: '/docs/api/nerm/v1/patch-workflow-session', + }, + { + from: ['/nerm/api/post-advanced-search'], + to: '/docs/api/nerm/v1/post-advanced-search', + }, + { + from: ['/nerm/api/post-attribute-option'], + to: '/docs/api/nerm/v1/post-attribute-option', + }, + { + from: ['/nerm/api/post-attribute-options'], + to: '/docs/api/nerm/v1/post-attribute-options', + }, + { + from: ['/nerm/api/post-profile'], + to: '/docs/api/nerm/v1/post-profile', + }, + { + from: ['/nerm/api/post-profile-avatar'], + to: '/docs/api/nerm/v1/post-profile-avatar', + }, + { + from: ['/nerm/api/post-profile-type'], + to: '/docs/api/nerm/v1/post-profile-type', + }, + { + from: ['/nerm/api/post-profile-upload'], + to: '/docs/api/nerm/v1/post-profile-upload', + }, + { + from: ['/nerm/api/post-profiles'], + to: '/docs/api/nerm/v1/post-profiles', + }, + { + from: ['/nerm/api/post-role'], + to: '/docs/api/nerm/v1/post-role', + }, + { + from: ['/nerm/api/post-role-profile'], + to: '/docs/api/nerm/v1/post-role-profile', + }, + { + from: ['/nerm/api/post-role-profiles'], + to: '/docs/api/nerm/v1/post-role-profiles', + }, + { + from: ['/nerm/api/post-roles'], + to: '/docs/api/nerm/v1/post-roles', + }, + { + from: ['/nerm/api/post-user'], + to: '/docs/api/nerm/v1/post-user', + }, + { + from: ['/nerm/api/post-user-avatar'], + to: '/docs/api/nerm/v1/post-user-avatar', + }, + { + from: ['/nerm/api/post-user-manager'], + to: '/docs/api/nerm/v1/post-user-manager', + }, + { + from: ['/nerm/api/post-user-managers'], + to: '/docs/api/nerm/v1/post-user-managers', + }, + { + from: ['/nerm/api/post-user-profile'], + to: '/docs/api/nerm/v1/post-user-profile', + }, + { + from: ['/nerm/api/post-user-role'], + to: '/docs/api/nerm/v1/post-user-role', + }, + { + from: ['/nerm/api/post-user-roles'], + to: '/docs/api/nerm/v1/post-user-roles', + }, + { + from: ['/nerm/api/post-users'], + to: '/docs/api/nerm/v1/post-users', + }, + { + from: ['/nerm/api/post-workflow-session'], + to: '/docs/api/nerm/v1/post-workflow-session', + }, + { + from: ['/nerm/api/post-workflow-session-upload'], + to: '/docs/api/nerm/v1/post-workflow-session-upload', + }, + { + from: ['/nerm/api/run-advanced-search'], + to: '/docs/api/nerm/v1/run-advanced-search', + }, + { + from: ['/nerm/api/run-advanced-searchby-id'], + to: '/docs/api/nerm/v1/run-advanced-searchby-id', + }, ], - }, - ], - [ - '@docusaurus/plugin-content-docs', - { - id: 'idn', - path: 'products/idn', - routeBasePath: 'idn', - editUrl: - 'https://github.com/sailpoint-oss/developer-community-site/edit/main/', - showLastUpdateAuthor: true, - showLastUpdateTime: true, - sidebarPath: require.resolve('./products/idn/sidebar.js'), - docItemComponent: '@theme/ApiItem', - }, - ], - [ - '@docusaurus/plugin-content-docs', - { - id: 'iiq', - path: 'products/iiq', - routeBasePath: 'iiq', - editUrl: - 'https://github.com/sailpoint-oss/developer-community-site/edit/main/', - showLastUpdateAuthor: true, - showLastUpdateTime: true, - sidebarPath: require.resolve('./products/iiq/sidebar.js'), - docItemComponent: '@theme/ApiItem', - }, - ], - [ - '@docusaurus/plugin-content-docs', - { - id: 'nerm', - path: 'products/nerm', - routeBasePath: 'nerm', - editUrl: - 'https://github.com/sailpoint-oss/developer-community-site/edit/main/', - showLastUpdateAuthor: true, - showLastUpdateTime: true, - sidebarPath: require.resolve('./products/nerm/sidebar.js'), - docItemComponent: '@theme/ApiItem', + createRedirects(existingPath) { + if (existingPath.startsWith('/docs')) { + return [existingPath.replace('/docs', '/idn')]; + } + return undefined; // Return a falsy value: no redirect created + }, }, ], [ @@ -76,7 +1596,7 @@ module.exports = [ config: { idn_v3: { specPath: 'static/api-specs/idn/sailpoint-api.v3.yaml', - outputDir: 'products/idn/api/v3', + outputDir: 'docs/api/v3', downloadUrl: 'https://raw.githubusercontent.com/sailpoint-oss/api-specs/main/dereferenced/deref-sailpoint-api.v3.yaml', sidebarOptions: { @@ -87,7 +1607,7 @@ module.exports = [ }, idn_beta: { specPath: 'static/api-specs/idn/sailpoint-api.beta.yaml', - outputDir: 'products/idn/api/beta', + outputDir: 'docs/api/beta', downloadUrl: 'https://raw.githubusercontent.com/sailpoint-oss/api-specs/main/dereferenced/deref-sailpoint-api.beta.yaml', sidebarOptions: { @@ -107,7 +1627,7 @@ module.exports = [ config: { iiq: { specPath: 'static/api-specs/iiq/sailpoint-api.iiq.yaml', - outputDir: 'products/iiq/api', + outputDir: 'docs/api/iiq', downloadUrl: 'https://raw.githubusercontent.com/sailpoint-oss/api-specs/main/iiq/sailpoint-api.iiq.yaml', sidebarOptions: { @@ -127,7 +1647,7 @@ module.exports = [ config: { nerm: { specPath: 'static/api-specs/nerm/openapi.yaml', - outputDir: 'products/nerm/api', + outputDir: 'docs/api/nerm/v1', downloadUrl: 'https://raw.githubusercontent.com/sailpoint-oss/api-specs/main/dereferenced/deref-sailpoint-api.nerm.yaml', sidebarOptions: { diff --git a/products/idn/docs/identity-now/global-platform-resources/index.md b/products/idn/docs/identity-now/global-platform-resources/index.md deleted file mode 100644 index cb9bda8fb..000000000 --- a/products/idn/docs/identity-now/global-platform-resources/index.md +++ /dev/null @@ -1,21 +0,0 @@ ---- -id: global-platform-resources -title: Global Platform Resources -pagination_label: Global Platform Resources -sidebar_label: Global Platform Resources -sidebar_position: 1 -sidebar_class_name: globalResources -keywords: ['IdentityNow', 'resources', 'configuration'] -description: Our global platform resource documentation provides comprehensive insights applicable to multiple features or the entire platform, complementing our feature-specific resources. -slug: /docs/global-platform-resources -tags: ['Connectivity'] ---- - -Within other areas of our documentation, you will find resources that are tailored to specific features of our platform, providing in-depth information and guidance on each individual aspect. However, our Global Platform Resources section includes documents that are applicable to multiple features or sometimes the entire platform. These resources offer valuable insights that are relevant across different areas of the platform, ensuring you have a comprehensive understanding of our platform as a whole. - -```mdx-code-block -import DocCardList from '@theme/DocCardList'; -import {useCurrentSidebarCategory} from '@docusaurus/theme-common'; - - -``` diff --git a/products/idn/docs/identity-now/identitynow-guides/index.md b/products/idn/docs/identity-now/identitynow-guides/index.md deleted file mode 100644 index d39c9fa8e..000000000 --- a/products/idn/docs/identity-now/identitynow-guides/index.md +++ /dev/null @@ -1,23 +0,0 @@ ---- -id: identitynow-guides -title: IdentityNow Guides -pagination_label: IdentityNow Guides -sidebar_label: IdentityNow Guides -sidebar_position: 7 -sidebar_class_name: identitynowGuides -keywords: ['guides', 'tips', 'tricks'] -description: Follow these guides to improve your IdentityNow platform experience. -slug: /docs/identitynow-guides -tags: ['IdentityNowGuides', 'Guides'] -hide_table_of_contents: true ---- - -## Overview - -When you're using the IdentityNow UI, the [User Help](https://documentation.sailpoint.com/saas/user-help/) and [Admin Help](https://documentation.sailpoint.com/saas/help/) are invaluable resources. - -However, you may encounter situations that require you to use the UI, the APIs, or both to achieve your desired identity governance solution. - -This section includes guides you can follow to learn how to leverage the IdentityNow APIs and UI itself to improve your platform experience and satisfy your organization's unique identity governance requirements. - - diff --git a/products/idn/docs/identity-now/index.mdx b/products/idn/docs/identity-now/index.mdx deleted file mode 100644 index 1f5b2e4c2..000000000 --- a/products/idn/docs/identity-now/index.mdx +++ /dev/null @@ -1,146 +0,0 @@ ---- -id: docs -title: IdentityNow -pagination_label: Introduction -sidebar_label: IdentityNow -sidebar_position: 1 -sidebar_class_name: IdentityNow -hide_title: true -keywords: - [ - 'IdentityNow', - 'development', - 'developer', - 'portal', - 'getting started', - 'docs', - 'documentation', - ] -description: This is the intoduction documentation to development on the IdentityNow platform. -slug: /docs -tags: ['Introduction', 'Getting Started'] ---- - -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -🧭 There are many different ways in which you are able to extend the IdentityNow platform beyond what comes out of the box. Please, explore our documentation and see what is possible! This documentation assumes that you are a current customer or partner and already have access to the IdentityNow application. - -:::info Are you a partner? - -Looking to become a partner? If you are interested in becoming a partner, be it an ISV or Channel/Implementation partner, [click here](https://www.sailpoint.com/partners/become-partner/). - -::: - -## Before You Get Started - -Please read this introduction carefully, as it contains recommendations and need-to-know information pertaining to all features of the IdentityNow platform. - -### Authentication - -Many of the interactions you have through our various features will have you interacting with our APIs either directly or indirectly. It would be valuable to familiarize yourself with [Authentication](../../api/authentication.md) on our platform. - -### Understanding JSON - -JSON (JavaScript Object Notation) is a lightweight data-interchange format. It is easy for humans to read and write. It is easy for machines to parse and generate. JSON is at the heart of every API and development feature that SailPoint offers in IdentityNow—usually either inputs or outputs to/from a system. [Learn more about JSON here](https://www.w3schools.com/js/js_json_intro.asp). - -### Understanding Webhooks - -A webhook in web development is a method of augmenting or altering the behavior of a web page or web application with custom callbacks. These callbacks may be maintained, modified, and managed by third-party users and developers who may not necessarily be affiliated with the originating website or application. Our [Event Triggers](docs/event-triggers) are a form of webhook, for example. [Learn more about webhooks here](https://zapier.com/blog/what-are-webhooks/). - -## Recommended Technologies - -While you can use whichever development tools you are most comfortable with or find most useful, we will recommend tools here for those that are new to development. - -:::tip - -Our team, when developing documentation, example code/applications, videos, etc. will almost always use one of the tools listed below. We will soon add programming languages to this list! - -::: - -### IDEs (Integrated Development Environments) - -IDEs are great for consolidating different aspects of programming into one tool. They're great for not only writing code, but managing your code as well. While you can use any IDE you feel is best fit for you and the task, here is what we use: - - - - -| IDE | Description | -| --- | --- | -| [VS Code](https://code.visualstudio.com/) | VS Code is a lightweight IDE that we believe is perfect for development on our IdentityNow platform. We also have great plug-in support from our community, like [this one](https://marketplace.visualstudio.com/items?itemName=yannick-beot-sp.vscode-sailpoint-identitynow)! | -| [IntelliJ](https://www.jetbrains.com/idea/) | If you happen to be writing in Java or developing Rules on our platform, we typically recommend IntelliJ. While Java development can be done in VS Code, you will have an easier time using an IDE that was purpose-built for Java. | - - - - -| IDE | Description | -| --- | --- | -| [VS Code](https://code.visualstudio.com/) | VS Code is a lightweight IDE that we believe is perfect for development on our IdentityNow platform. We also have great plug-in support from our community, like [this one](https://marketplace.visualstudio.com/items?itemName=yannick-beot-sp.vscode-sailpoint-identitynow)! | -| [IntelliJ](https://www.jetbrains.com/idea/) | If you happen to be writing in Java or developing Rules on our platform, we typically recommend IntelliJ. While Java development can be done in VS Code, you will have an easier time using an IDE that was purpose-built for Java. | - - - - -| IDE | Description | -| --- | --- | -| [VS Code](https://code.visualstudio.com/) | VS Code is a lightweight IDE that we believe is perfect for development on our IdentityNow platform. We also have great plug-in support from our community, like [this one](https://marketplace.visualstudio.com/items?itemName=yannick-beot-sp.vscode-sailpoint-identitynow)! | -| [IntelliJ](https://www.jetbrains.com/idea/) | If you happen to be writing in Java or developing Rules on our platform, we typically recommend IntelliJ. While Java development can be done in VS Code, you will have an easier time using an IDE that was purpose-built for Java. | - - - - ---- - -### CLI Environments - -When interacting with our platform or writing code related to IdentityNow, we often use the CLI. While you can use any CLI that you feel is best fit for you and your job, here are the CLI environments we use and recommend: - - - - -| CLI Tool | Description | -| --- | --- | -| Windows PowerShell | Windows PowerShell is a modern terminal on windows (also available on Mac/Linux) that offers versatile CLI, task automation, and configuration management options. | -| [Windows Terminal](https://apps.microsoft.com/store/detail/windows-terminal/9N0DX20HK701?hl=en-us&gl=us) | The Windows Terminal is a modern, fast, efficient, powerful, and productive terminal application for users of command-line tools and shells like Command Prompt, PowerShell, and WSL. Its main features include multiple tabs, panes, Unicode and UTF-8 character support, a GPU accelerated text rendering engine, and custom themes, styles, and configurations. Terminal is just a more beautiful version of PowerShell 😁 | - - - - -| CLI Tool | Description | -| ---------------------- | ------------------------------------------------ | -| Mac Terminal (default) | On Mac, we recommend using the default terminal. | - - - - -| CLI Tool | Description | -| --- | --- | -| Linux Terminal (default) | On Linux, we recommend using the default terminal. | - - - - ---- - -### Version Control - -Writing code typically requires version control to adequately track changes in sets of files. While you can use any version control that you feel is best fit for you and your job, here are the version control tools that we use and recommend: - -| Version Control Tool | Description | -| --- | --- | -| [git](https://git-scm.com/) | Git is a free and open-source, distributed version control system designed to handle everything from small to very large projects. Git runs locally on your machine. | -| [GitHub](https://github.com) | GitHub is an internet hosting service for managing git in the cloud. We use GitHub on our team to collaborate amongst the other developers on our team, as well as with our community. | - ---- - -### API Clients - -API clients make it easy to call APIs without having to first write code. API clients are great for testing and getting familiar with APIs to get a better understanding of what the inputs/outputs are and how they work. - -| API Client | Description | -| --- | --- | -| [Postman](https://www.postman.com/downloads/) | Postman is an API platform for building and using APIs. Postman simplifies each step of the API lifecycle and streamlines collaboration so you can create better APIs—faster. | - -## Glossary - -Identity is a complex topic and there are many terms used, and quite often! Please [refer to our glossary](https://documentation.sailpoint.com/saas/help/common/glossary.html) whenever possible if you aren't sure what something means. diff --git a/products/idn/sidebar.js b/products/idn/sidebar.js deleted file mode 100644 index 18ec130a6..000000000 --- a/products/idn/sidebar.js +++ /dev/null @@ -1,88 +0,0 @@ -const sidebars = { - openApiSidebar: [ - { - type: 'category', - label: 'IdentityNow', - collapsible: false, - items: [ - { - type: 'doc', - id: 'api/getting-started', - }, - { - type: 'doc', - id: 'api/authentication', - }, - { - type: 'doc', - id: 'api/authorization', - }, - { - type: 'doc', - id: 'api/service-accounts', - }, - { - type: 'doc', - id: 'api/standard-collection-parameters', - }, - { - type: 'doc', - id: 'api/rate-limit', - }, - { - type: 'doc', - id: 'api/postman-collections', - }, - { - type: 'doc', - id: 'api/patch-requests' - }, - { - type: 'category', - label: 'V3 APIs', - link: { - type: 'generated-index', - title: 'V3 APIs', - description: - 'Use these APIs to interact with the IdentityNow platform to achieve repeatable, automated processes with greater scalability. We encourage you to join the SailPoint Developer Community forum at https://developer.sailpoint.com/discuss to connect with other developers using our APIs.', - slug: '/api/v3', - }, - // @ts-ignore - items: require('./api/v3/sidebar.js'), - }, - { - type: 'category', - label: 'Beta APIs', - link: { - type: 'generated-index', - title: 'Beta APIs', - description: - 'Use these APIs to interact with the IdentityNow platform to achieve repeatable, automated processes with greater scalability. These APIs are in beta and are subject to change. We encourage you to join the SailPoint Developer Community forum at https://developer.sailpoint.com/discuss to connect with other developers using our APIs.', - slug: '/api/beta', - }, - // @ts-ignore - items: require('./api/beta/sidebar.js'), - }, - ], - }, - ], - idnDocs: [ - { - type: 'autogenerated', - dirName: 'docs', - }, - ], - sdkSidebar: [ - { - type: 'category', - label: 'Tools', - items: [ - { - type: 'autogenerated', - dirName: 'tools', - } - ] - }, - ], -}; -module.exports = sidebars; diff --git a/products/idn/tools/cli/_category_.json b/products/idn/tools/cli/_category_.json deleted file mode 100644 index 9e90632aa..000000000 --- a/products/idn/tools/cli/_category_.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "collapsible": false -} \ No newline at end of file diff --git a/products/idn/tools/sdk/_category_.json b/products/idn/tools/sdk/_category_.json deleted file mode 100644 index 9e90632aa..000000000 --- a/products/idn/tools/sdk/_category_.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "collapsible": false -} \ No newline at end of file diff --git a/products/idn/tools/sdk/index.md b/products/idn/tools/sdk/index.md deleted file mode 100644 index 72a0ceeea..000000000 --- a/products/idn/tools/sdk/index.md +++ /dev/null @@ -1,23 +0,0 @@ ---- -id: sdk -title: SDKs -pagination_label: SDKs -sidebar_label: SDKs -sidebar_position: 2 -sidebar_class_name: sdk -keywords: ['sdk'] -description: A SailPoint SDK makes it easy to access the SailPoint API and extend your IDN platform. -slug: /tools/sdk -tags: ['SDK'] ---- - -## SDKs - -A SailPoint software development kit (SDK) makes it easy to access the SailPoint APIs and extend your IDN platform. - -In addition to the APIs, each SDK includes SaaS connector, IDN search, and transform functionality. Each SDK also includes prebuilt examples you can use to learn how to get started. - -Try one of these SDKs to get started: -- [Go SDK](./go/index.mdx) -- [Powershell SDK](./powershell/index.mdx) -- [TypeScript SDK](./typescript/index.mdx) \ No newline at end of file diff --git a/products/iiq/docs/identity-iq/_category_.json b/products/iiq/docs/identity-iq/_category_.json deleted file mode 100644 index 9e90632aa..000000000 --- a/products/iiq/docs/identity-iq/_category_.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "collapsible": false -} \ No newline at end of file diff --git a/products/iiq/docs/identity-iq/index.mdx b/products/iiq/docs/identity-iq/index.mdx deleted file mode 100644 index ea5000dab..000000000 --- a/products/iiq/docs/identity-iq/index.mdx +++ /dev/null @@ -1,37 +0,0 @@ ---- -id: docs -title: IdentityIQ -pagination_label: Introduction -sidebar_label: IdentityIQ -sidebar_position: 1 -sidebar_class_name: IdentityIQ -hide_title: true -keywords: - [ - 'IdentityIQ', - 'development', - 'developer', - 'portal', - 'getting started', - 'docs', - 'documentation', - ] -description: This is the intoduction documentation to development on the IdentityIQ platform. -slug: /docs -tags: ['Introduction', 'Getting Started'] ---- - -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -🧭 There are many different ways to extend the IdentityIQ platform beyond what comes out of the box. Explore our documentation and see what is possible! This documentation assumes that you are a current customer or partner and already have access to the IdentityIQ application. - -:::info Are you a partner? - -Looking to become a partner? If you are interested in becoming a partner, be it an ISV or Channel/Implementation partner, [click here](https://www.sailpoint.com/partners/become-partner/). - -::: - -## Glossary - -Identity is a complex topic, and there are many terms used, and they're used quite often! Please [refer to this glossary](https://documentation.sailpoint.com/saas/help/common/glossary.html) whenever possible if you aren't sure what something means. diff --git a/products/iiq/sidebar.js b/products/iiq/sidebar.js deleted file mode 100644 index 4d0d163a9..000000000 --- a/products/iiq/sidebar.js +++ /dev/null @@ -1,25 +0,0 @@ -const sidebars = { - iiqOpenApiSidebar: [ - { - type: 'category', - label: 'IdentityIQ API', - link: { - type: 'generated-index', - title: 'IdentityIQ API', - description: - "These are the SCIM APIs for SailPoint's on-premise service, IdentityIQ. We encourage you to join the SailPoint Developer Community forum at https://developer.sailpoint.com/discuss to connect with other developers using our APIs.", - slug: '/api', - }, - // @ts-ignore - items: require('./api/sidebar.js'), - }, - ], - idnDocs: [ - { - type: 'autogenerated', - dirName: 'docs', - }, - ] -}; - -module.exports = sidebars; diff --git a/products/nerm/sidebar.js b/products/nerm/sidebar.js deleted file mode 100644 index 9dc9e2b94..000000000 --- a/products/nerm/sidebar.js +++ /dev/null @@ -1,38 +0,0 @@ -const sidebars = { - nermOpenApiSidebar: [ - { - type: 'category', - label: 'NERM', - collapsible: false, - items: [ - { - type: 'doc', - id: 'api/getting-started' - }, - { - type: 'doc', - id: 'api/authentication' - }, - { - type: 'doc', - id: 'api/pagination-metadata-filtering' - }, - { - type: 'category', - label: 'NERM v1 API', - link: { - type: 'generated-index', - title: 'NERM v1 API', - description: - "These are the Non-employee Risk Management APIs for SailPoint. We encourage you to join the SailPoint Developer Community forum at https://developer.sailpoint.com/discuss to connect with other developers using our APIs.", - slug: '/api', - }, - // @ts-ignore - items: require('./api/sidebar.js'), - } - ] - } - ], - }; - - module.exports = sidebars; \ No newline at end of file diff --git a/sidebars.js b/sidebars.js index f053ebf79..e051b50ac 100644 --- a/sidebars.js +++ b/sidebars.js @@ -1 +1,264 @@ -module.exports = {}; +const sidebars = { + openApiSidebar: [ + { + type: 'category', + label: 'Documentation', + collapsible: false, + link: { + type: 'doc', + id: 'docs', + }, + items: [ + { + type: 'category', + label: 'API Specifications', + collapsible: true, + link: { + type: 'doc', + id: 'api/api-specifications', + }, + items: [ + { + type: 'category', + label: 'Identity Security Cloud', + collapsible: true, + link: { + type: 'doc', + id: 'api/identity-security-cloud', + }, + customProps: { + description: "ISC API specifications." + }, + items: [ + { + type: 'doc', + id: 'api/getting-started', + }, + { + type: 'doc', + id: 'api/authentication', + }, + { + type: 'doc', + id: 'api/authorization', + }, + { + type: 'doc', + id: 'api/standard-collection-parameters', + }, + { + type: 'doc', + id: 'api/rate-limit', + }, + { + type: 'doc', + id: 'api/postman-collections', + }, + { + type: 'doc', + id: 'api/patch-requests', + }, + { + type: 'category', + label: 'V3 APIs', + link: { + type: 'generated-index', + title: 'V3 APIs', + description: + 'Use these APIs to interact with the IdentityNow platform to achieve repeatable, automated processes with greater scalability. We encourage you to join the SailPoint Developer Community forum at https://developer.sailpoint.com/discuss to connect with other developers using our APIs.', + slug: '/api/v3', + }, + // @ts-ignore + items: require('./docs/api/v3/sidebar.js'), + }, + { + type: 'category', + label: 'Beta APIs', + link: { + type: 'generated-index', + title: 'Beta APIs', + description: + 'Use these APIs to interact with the IdentityNow platform to achieve repeatable, automated processes with greater scalability. These APIs are in beta and are subject to change. We encourage you to join the SailPoint Developer Community forum at https://developer.sailpoint.com/discuss to connect with other developers using our APIs.', + slug: '/api/beta', + }, + // @ts-ignore + items: require('./docs/api/beta/sidebar.js'), + }, + ], + }, + { + type: 'category', + label: 'NERM', + collapsible: true, + link: { + type: 'doc', + id: 'api/non-employee', + }, + customProps: { + description: "NERM API specifications." + }, + items: [ + { + type: 'doc', + id: 'api/nerm/getting-started', + }, + { + type: 'doc', + id: 'api/nerm/authentication', + }, + { + type: 'doc', + id: 'api/nerm/pagination-metadata-filtering', + }, + { + type: 'category', + label: 'NERM v1 API', + link: { + type: 'generated-index', + title: 'NERM v1 API', + description: + 'These are the Non-employee Risk Management APIs for SailPoint. We encourage you to join the SailPoint Developer Community forum at https://developer.sailpoint.com/discuss to connect with other developers using our APIs.', + slug: '/api/nerm/v1', + }, + // @ts-ignore + items: require('./docs/api/nerm/v1/sidebar.js'), + }, + ], + }, + ], + }, + { + type: 'category', + label: 'Extensibility', + link: { + type: 'doc', + id: 'extensibility', + }, + items: [ + { + type: 'autogenerated', + dirName: 'extensibility', + }, + ], + }, + { + type: 'category', + label: 'Connectivity', + link: { + type: 'doc', + id: 'connectivity', + }, + items: [ + { + type: 'autogenerated', + dirName: 'connectivity', + }, + ], + }, + { + type: 'category', + label: 'Tools', + link: { + type: 'doc', + id: 'tools', + }, + items: [ + { + type: 'autogenerated', + dirName: 'tools', + }, + ], + }, + { + type: 'category', + label: 'Reporting', + link: { + type: 'doc', + id: 'reporting', + }, + items: [ + { + type: 'autogenerated', + dirName: 'reporting', + }, + ], + }, + { + type: 'category', + label: 'Guides', + link: { + type: 'doc', + id: 'guides', + }, + items: [ + { + type: 'autogenerated', + dirName: 'guides', + }, + ], + }, + { + type: 'link', + label: 'Product Documentation', + href: 'https://documentation.sailpoint.com', + }, + { + type: 'link', + label: 'Certifications', + href: 'https://university.sailpoint.com/Saba/Web_spf/NA10P1PRD075/guest/categorydetail/categ000000000003041/true/xxemptyxx/', + }, + ], + }, + ], + iiqSideBar: [ + { + type: 'category', + label: 'Documentation', + collapsible: false, + link: { + type: 'doc', + id: 'iiq', + }, + items: [ + { + type: 'category', + label: 'API Specifications', + link: { + type: 'generated-index', + title: 'API Specifications', + description: + "These are the SCIM APIs for SailPoint's on-premise service, IdentityIQ. We encourage you to join the SailPoint Developer Community forum at https://developer.sailpoint.com/discuss to connect with other developers using our APIs.", + slug: '/api/iiq', + }, + // @ts-ignore + items: require('./docs/api/iiq/sidebar.js'), + }, + { + type: 'category', + label: 'Plugin Developer Guide', + link: { + type: 'doc', + id: 'plugin-developer-guide', + }, + items: [ + { + type: 'autogenerated', + dirName: 'iiq/plugin-developer-guide', + }, + ], + }, + { + type: 'link', + label: 'Product Documentation', + href: 'https://documentation.sailpoint.com/#identityiq', + }, + { + type: 'link', + label: 'Certifications', + href: 'https://university.sailpoint.com/Saba/Web_spf/NA10P1PRD075/guest/categorydetail/categ000000000003042/true/xxemptyxx/', + }, + ], + }, + ], +}; +module.exports = sidebars; diff --git a/src/components/blog/BlogSidebar/index.js b/src/components/blog/BlogSidebar/index.js index 155690f9f..3a86608ca 100644 --- a/src/components/blog/BlogSidebar/index.js +++ b/src/components/blog/BlogSidebar/index.js @@ -18,7 +18,7 @@ export default function BlogSidebar({ const tagTechnologyResultset = [] const tagProductResultset = [] for (const tagGroup of data.extras.tag_groups) { - if (tagGroup.id === 20) { + if (tagGroup.id === 45) { for (const tag of tagGroup.tags) { tagProductResultset.push(tag.text) } diff --git a/src/components/homepage/DiscussCard/styles.module.css b/src/components/homepage/DiscussCard/styles.module.css index 5e6eadd4f..03c6c8148 100644 --- a/src/components/homepage/DiscussCard/styles.module.css +++ b/src/components/homepage/DiscussCard/styles.module.css @@ -119,15 +119,14 @@ } .tags { - position: absolute; - margin: 20px; - width: 230px; + grid-gap: 3px; bottom: 50px; - left: 0; - display: grid; - grid-template-columns: max-content max-content max-content; - grid-gap: 10px; + position: absolute; + padding: -4%; + margin-top: 5%; + margin-bottom: 6%; + margin-left: 8%; } .idn { diff --git a/src/components/homepage/HomepageCard/index.js b/src/components/homepage/HomepageCard/index.js index a218b15d2..5fd6bd32f 100644 --- a/src/components/homepage/HomepageCard/index.js +++ b/src/components/homepage/HomepageCard/index.js @@ -6,7 +6,7 @@ import ThemedImage from '@theme/ThemedImage'; import {addDarkToFileName} from '../../../util/util'; export default function HomepageCard({link, title, image, product}) { - const productStyles = product === 'idn' ? styles.idn : styles.iiq; + const productStyles = product === 'isc' ? styles.idn : styles.iiq; return ( diff --git a/src/components/homepage/HomepageGettingStarted/index.js b/src/components/homepage/HomepageGettingStarted/index.js index f9fc989ff..527b310b6 100644 --- a/src/components/homepage/HomepageGettingStarted/index.js +++ b/src/components/homepage/HomepageGettingStarted/index.js @@ -23,8 +23,8 @@ export default function HomepageGettingStarted() {
- -
- -
+
+ +
-
+ {children} + + ); +} +function CardLayout({href, icon, title, description}) { + return ( + +

+ {icon}{title} +

+ {description && ( +

+ {description} +

+ )} +
+ ); +} +function CardCategory({item}) { + const href = findFirstCategoryLink(item); + const {colorMode} = useColorMode(); + //const icon = colorMode === 'dark' ? : ; + //const icon = ; + //console.log(item) + // Unexpected: categories that don't have a link have been filtered upfront + if (!href) { + return null; + } + return ( + } + //icon={icon} + title={item.label} + description={ + item.customProps?.description ?? + translate( + { + message: '{count} items', + id: 'theme.docs.DocCard.categoryDescription', + description: + 'The default description for a category card in the generated index about how many items this category includes', + }, + {count: item.items.length}, + ) + } + /> + ); +} +function CardLink({item}) { + const {colorMode} = useColorMode(); + const icon = isInternalUrl(item.href) ? : ; + const doc = useDocById(item.docId ?? undefined); + return ( + + ); +} +export default function DocCard({item}) { + switch (item.type) { + case 'link': + return ; + case 'category': + return ; + default: + throw new Error(`unknown item type ${JSON.stringify(item)}`); + } +} diff --git a/src/theme/DocCard/styles.module.css b/src/theme/DocCard/styles.module.css new file mode 100644 index 000000000..e53779bd4 --- /dev/null +++ b/src/theme/DocCard/styles.module.css @@ -0,0 +1,28 @@ +.cardContainer { + --ifm-link-color: var(--ifm-color-emphasis-800); + --ifm-link-hover-color: var(--ifm-color-emphasis-700); + --ifm-link-hover-decoration: none; + + box-shadow: 0 1.5px 3px 0 rgb(0 0 0 / 15%); + border: 1px solid var(--ifm-color-emphasis-200); + transition: all var(--ifm-transition-fast) ease; + transition-property: border, box-shadow; + height: 9.5em; +} + +.cardContainer:hover { + border-color: var(--ifm-color-primary); + box-shadow: 0 3px 6px 0 rgb(0 0 0 / 20%); +} + +.cardContainer *:last-child { + margin-bottom: 0; +} + +.cardTitle { + font-size: 1.2rem; +} + +.cardDescription { + font-size: 0.9rem; +} diff --git a/src/util/util.js b/src/util/util.js index 208c2ed06..0e7a3181b 100644 --- a/src/util/util.js +++ b/src/util/util.js @@ -17,7 +17,7 @@ export function discourseProductTag() { if (discourseBaseURL().includes('soon')) { return 11 } else { - return 20 + return 45 } } diff --git a/static/api-specs/idn/beta/paths/auth-profile.yaml b/static/api-specs/idn/beta/paths/auth-profile.yaml new file mode 100644 index 000000000..7d395e978 --- /dev/null +++ b/static/api-specs/idn/beta/paths/auth-profile.yaml @@ -0,0 +1,134 @@ +get: + operationId: getProfileConfig + tags: + - Auth Profile + summary: Get Auth Profile. + description: >- + This API returns auth profile information. + security: + - UserContextAuth: [sp:auth-profile:read] + responses: + '200': + description: Auth Profile + content: + application/json: + schema: + $ref: '../schemas/AuthProfile.yaml' + '400': + $ref: '../../v3/responses/400.yaml' + '401': + $ref: '../../v3/responses/401.yaml' + '403': + $ref: '../../v3/responses/403.yaml' + '404': + $ref: '../../v3/responses/404.yaml' + '429': + $ref: '../../v3/responses/429.yaml' + '500': + $ref: '../../v3/responses/500.yaml' +post: + operationId: createProfileConfig + tags: + - Auth Profile + summary: Create Auth Profile. + description: >- + This API creates an auth profile. + security: + - UserContextAuth: [sp:auth-profile:create] + requestBody: + required: true + content: + application/json: + schema: + $ref: "../schemas/AuthProfileRequest.yaml" + responses: + '202': + description: Auth Profile details + content: + application/json: + schema: + $ref: '../schemas/AuthProfile.yaml' + '400': + $ref: '../../v3/responses/400.yaml' + '401': + $ref: '../../v3/responses/401.yaml' + '403': + $ref: '../../v3/responses/403.yaml' + '429': + $ref: '../../v3/responses/429.yaml' + '500': + $ref: '../../v3/responses/500.yaml' +patch: + operationId: patchProfileConfig + tags: + - Auth Profile + summary: Patch a specified Auth Profile + description: >- + This API updates an existing Auth Profile. The following fields are patchable: + + **offNetwork**, **untrustedGeography**, **applicationId**, **applicationName**, **type** + parameters: + - name: id + in: path + description: ID of the Auth Profile to patch + required: true + schema: + type: string + example: 2c91808a7813090a017814121919ecca + requestBody: + content: + application/json-patch+json: + schema: + type: array + items: + $ref: '../schemas/JsonPatchOperation.yaml' + required: true + responses: + '200': + description: Responds with the Access Profile as updated. + content: + application/json: + schema: + $ref: '../schemas/AuthProfile.yaml' + '400': + $ref: '../../v3/responses/400.yaml' + '401': + $ref: '../../v3/responses/401.yaml' + '403': + $ref: '../../v3/responses/403.yaml' + '429': + $ref: '../../v3/responses/429.yaml' + '500': + $ref: '../../v3/responses/500.yaml' + security: + - UserContextAuth: [sp:auth-profile:update] +delete: + operationId: deleteProfileConfig + tags: + - Auth Profile + summary: Delete the specified Auth Profile + description: >- + This API deletes an existing Auth Profile. + parameters: + - name: id + in: path + description: ID of the Access Profile to delete + required: true + schema: + type: string + example: 2c91808a7813090a017814121919ecca + responses: + '204': + $ref: "../../v3/responses/204.yaml" + '400': + $ref: '../../v3/responses/400.yaml' + '401': + $ref: '../../v3/responses/401.yaml' + '403': + $ref: '../../v3/responses/403.yaml' + '429': + $ref: '../../v3/responses/429.yaml' + '500': + $ref: '../../v3/responses/500.yaml' + security: + - UserContextAuth: [sp:auth-profile:delete] diff --git a/static/api-specs/idn/beta/paths/auth-profiles.yaml b/static/api-specs/idn/beta/paths/auth-profiles.yaml new file mode 100644 index 000000000..fdb592bf8 --- /dev/null +++ b/static/api-specs/idn/beta/paths/auth-profiles.yaml @@ -0,0 +1,26 @@ +get: + operationId: getProfileConfigList + tags: + - Auth Profile + summary: Get list of Auth Profiles. + description: >- + This API returns a list of auth profiles. + security: + - UserContextAuth: [sp:auth-profile:read] + responses: + '200': + description: List of Auth Profiles + content: + application/json: + schema: + $ref: '../schemas/AuthProfileSummary.yaml' + '400': + $ref: '../../v3/responses/400.yaml' + '401': + $ref: '../../v3/responses/401.yaml' + '403': + $ref: '../../v3/responses/403.yaml' + '429': + $ref: '../../v3/responses/429.yaml' + '500': + $ref: '../../v3/responses/500.yaml' diff --git a/static/api-specs/idn/beta/paths/tenant.yaml b/static/api-specs/idn/beta/paths/tenant.yaml new file mode 100644 index 000000000..3d182c82a --- /dev/null +++ b/static/api-specs/idn/beta/paths/tenant.yaml @@ -0,0 +1,28 @@ +get: + operationId: getTenant + tags: + - Tenant + summary: Get Tenant Information. + description: >- + This rest endpoint can be used to retrieve tenant details. + security: + - UserContextAuth: [sp:tenant:read] + responses: + '200': + description: Tenant Info + content: + application/json: + schema: + $ref: '../schemas/Tenant.yaml' + '400': + $ref: '../../v3/responses/400.yaml' + '401': + $ref: '../../v3/responses/401.yaml' + '403': + $ref: '../../v3/responses/403.yaml' + '404': + $ref: '../../v3/responses/404.yaml' + '429': + $ref: '../../v3/responses/429.yaml' + '500': + $ref: '../../v3/responses/500.yaml' diff --git a/static/api-specs/idn/beta/schemas/AuthProfile.yaml b/static/api-specs/idn/beta/schemas/AuthProfile.yaml new file mode 100644 index 000000000..d308667cd --- /dev/null +++ b/static/api-specs/idn/beta/schemas/AuthProfile.yaml @@ -0,0 +1,38 @@ +type: object +properties: + name: + type: string + description: Authentication Profile name. + example: EndToEnd-Profile + offNetwork: + type: boolean + description: Use it to block access from off network. + default: false + example: true + untrustedGeography: + type: boolean + description: Use it to block access from untrusted geoographies. + default: false + example: true + applicationId: + type: string + description: Application ID. + example: 2c91808458ae7a4f0158b1bbf8af0628 + applicationName: + type: string + description: Application name. + example: EndToEnd-Source + type: + type: string + enum: + - BLOCK + - MFA + - NON_PTA + - PTA + description: Type of the Authentication Profile. + example: PTA + strongAuthLogin: + type: boolean + description: Use it to enable strong authentication. + default: false + example: true diff --git a/static/api-specs/idn/beta/schemas/AuthProfileRequest.yaml b/static/api-specs/idn/beta/schemas/AuthProfileRequest.yaml new file mode 100644 index 000000000..d308667cd --- /dev/null +++ b/static/api-specs/idn/beta/schemas/AuthProfileRequest.yaml @@ -0,0 +1,38 @@ +type: object +properties: + name: + type: string + description: Authentication Profile name. + example: EndToEnd-Profile + offNetwork: + type: boolean + description: Use it to block access from off network. + default: false + example: true + untrustedGeography: + type: boolean + description: Use it to block access from untrusted geoographies. + default: false + example: true + applicationId: + type: string + description: Application ID. + example: 2c91808458ae7a4f0158b1bbf8af0628 + applicationName: + type: string + description: Application name. + example: EndToEnd-Source + type: + type: string + enum: + - BLOCK + - MFA + - NON_PTA + - PTA + description: Type of the Authentication Profile. + example: PTA + strongAuthLogin: + type: boolean + description: Use it to enable strong authentication. + default: false + example: true diff --git a/static/api-specs/idn/beta/schemas/AuthProfileSummary.yaml b/static/api-specs/idn/beta/schemas/AuthProfileSummary.yaml new file mode 100644 index 000000000..b180db3b2 --- /dev/null +++ b/static/api-specs/idn/beta/schemas/AuthProfileSummary.yaml @@ -0,0 +1,11 @@ +type: object +properties: + tenant: + type: string + description: Tenant name. + example: "test-tenant" + id: + type: string + description: Identity ID. + example: 2c91808458ae7a4f0158b1bbf8af0628 + diff --git a/static/api-specs/idn/beta/schemas/License.yaml b/static/api-specs/idn/beta/schemas/License.yaml new file mode 100644 index 000000000..608be5bf0 --- /dev/null +++ b/static/api-specs/idn/beta/schemas/License.yaml @@ -0,0 +1,10 @@ +type: object +properties: + licenseId: + type: string + description: Name of the license + example: 'idn:access-request' + legacyFeatureName: + type: string + description: Legacy name of the license + example: ACCESS_REQUEST diff --git a/static/api-specs/idn/beta/schemas/Product.yaml b/static/api-specs/idn/beta/schemas/Product.yaml new file mode 100644 index 000000000..60072cb98 --- /dev/null +++ b/static/api-specs/idn/beta/schemas/Product.yaml @@ -0,0 +1,88 @@ +type: object +properties: + productName: + type: string + description: Name of the Product + example: idn + url: + type: string + description: URL of the Product + example: 'https://tenant-name.identitynow.com' + productTenantId: + type: string + description: An identifier for a specific product-tenant combination + example: tenant#product + productRegion: + type: string + description: Product region + example: us-east-1 + productRight: + type: string + description: Right needed for the Product + example: 'idn:ui:view' + apiUrl: + nullable: true + type: string + description: API URL of the Product + example: 'https://tenant-name.api.identitynow.com' + licenses: + type: array + items: + $ref: './License.yaml' + attributes: + type: object + additionalProperties: true + description: Additional attributes for a product + example: { + domain: 'https://tenant-name.identitynow.com', + maxRegisteredUsers: 250 + } + zone: + type: string + description: Zone + example: Deployment zone for the Product + status: + type: string + description: Status of the product + example: active + statusDateTime: + type: string + format: date-time + description: Status datetime + example: '2020-05-19T13:49:37.385Z' + reason: + type: string + description: If there's a tenant provisioning failure then reason will have the description of error + example: Reason + notes: + type: string + description: Product could have additional notes added during tenant provisioning. + example: Example notes + dateCreated: + nullable: true + type: string + format: date-time + description: Date when the product was created + example: '2020-05-19T13:49:37.385Z' + lastUpdated: + nullable: true + type: string + format: date-time + description: Date when the product was last updated + example: '2020-05-19T13:49:37.385Z' + orgType: + nullable: true + type: string + enum: + - development + - staging + - production + - test + - partner + - training + - demonstration + - sandbox + - null + description: Type of org + example: test + diff --git a/static/api-specs/idn/beta/schemas/Tenant.yaml b/static/api-specs/idn/beta/schemas/Tenant.yaml new file mode 100644 index 000000000..ea939ca0b --- /dev/null +++ b/static/api-specs/idn/beta/schemas/Tenant.yaml @@ -0,0 +1,31 @@ +type: object +properties: + id: + type: string + readOnly: true + description: The unique identifier for the Tenant + example: "2c91808568c529c60168cca6f90c1324" + name: + type: string + description: Abbreviated name of the Tenant + example: acme + fullName: + type: string + description: Human-readable name of the Tenant + example: Acme, Inc + pod: + type: string + description: Deployment pod for the Tenant + example: example-pod + region: + type: string + description: Deployment region for the Tenant + example: us-east-1 + description: + type: string + description: Description of the Tenant + example: Description of the Tenant + products: + type: array + items: + $ref: './Product.yaml' diff --git a/static/api-specs/idn/beta/schemas/forms/CreateFormInstanceRequest.yaml b/static/api-specs/idn/beta/schemas/forms/CreateFormInstanceRequest.yaml index 6ae8835d2..4832e2dc4 100644 --- a/static/api-specs/idn/beta/schemas/forms/CreateFormInstanceRequest.yaml +++ b/static/api-specs/idn/beta/schemas/forms/CreateFormInstanceRequest.yaml @@ -12,7 +12,7 @@ properties: type: string x-go-name: FormDefinitionID formInput: - additionalProperties: { } + additionalProperties: true description: FormInput is an object of form input labels to value example: input1: Sales diff --git a/static/api-specs/idn/sailpoint-api.beta.yaml b/static/api-specs/idn/sailpoint-api.beta.yaml index 9c682fa88..661f3f381 100644 --- a/static/api-specs/idn/sailpoint-api.beta.yaml +++ b/static/api-specs/idn/sailpoint-api.beta.yaml @@ -892,6 +892,8 @@ tags: Refer to [Tagging Items in Search](https://documentation.sailpoint.com/saas/help/search/index.html?h=tags#tagging-items-in-search) for more information about tagging objects in IdentityNow. - name: Task Management + - name: Tenant + description: API for reading tenant details. - name: Transforms description: Operations for creating, managing, and deleting transforms - name: Triggers @@ -1137,6 +1139,10 @@ paths: $ref: './beta/paths/account-activity.yaml' /account-aggregations/{id}/status: $ref: './beta/paths/account-aggregation-status.yaml' + /auth-profiles: + $ref: './beta/paths/auth-profiles.yaml' + /auth-profiles/{id}: + $ref: './beta/paths/auth-profile.yaml' /campaigns: $ref: './beta/paths/campaigns.yaml' /campaigns/delete: @@ -1559,6 +1565,8 @@ paths: $ref: './beta/paths/bulk-add-tagged-objects.yaml' /tagged-objects/bulk-remove: $ref: './beta/paths/bulk-remove-tagged-objects.yaml' + /tenant: + $ref: './beta/paths/tenant.yaml' /transforms: $ref: './beta/paths/transforms.yaml' /transforms/{id}: @@ -1706,4 +1714,4 @@ paths: /account-usages/{accountId}/summaries: $ref: "./beta/paths/account-usages.yaml" /access-request-identity-metrics/{identityId}/requested-objects/{requestedObjectId}/type/{type}: - $ref: "./beta/paths/access-request-identity-metrics.yaml" \ No newline at end of file + $ref: "./beta/paths/access-request-identity-metrics.yaml" diff --git a/static/api-specs/idn/sailpoint-api.v3.yaml b/static/api-specs/idn/sailpoint-api.v3.yaml index 5959ac55b..d8e01510d 100644 --- a/static/api-specs/idn/sailpoint-api.v3.yaml +++ b/static/api-specs/idn/sailpoint-api.v3.yaml @@ -926,6 +926,9 @@ tags: When they complete the work item, they can select 'Mark Complete' to add it to their list of completed work items. Refer to [Task Manager](https://documentation.sailpoint.com/saas/user-help/task_manager.html) for more information about work items, including the different types of work items users may need to complete. + - name: Workflows + description: | + Workflows allow administrators to create custom automation scripts directly within IdentityNow. These automation scripts respond to [event triggers](https://developer.sailpoint.com/idn/docs/event-triggers#how-to-get-started-with-event-triggers) and perform a series of actions to perform tasks that are either too cumbersome or not available in the IdentityNow UI. Workflows can be configured via a graphical user interface within IdentityNow, or by creating and uploading a JSON formatted script to the Workflow service. The Workflows API collection provides the necessary functionality to create, manage, and test your workflows via REST. paths: /access-profiles: $ref: './v3/paths/access-profiles.yaml' @@ -1045,8 +1048,6 @@ paths: $ref: "./v3/paths/certification-task.yaml" /certification-tasks: $ref: "./v3/paths/certification-tasks.yaml" - /connectors: - $ref: './v3/paths/connectors-create-custom-connector.yaml' /connectors/{scriptName}: $ref: './v3/paths/connectors.yaml' /connectors/{scriptName}/source-config: @@ -1057,6 +1058,8 @@ paths: $ref: './v3/paths/connectors-source-template.yaml' /connectors/{scriptName}/correlation-config: $ref: './v3/paths/connectors-correlation-config.yaml' + /connectors: + $ref: './v3/paths/connectors-create-custom-connector.yaml' /identities/{identity-id}/set-lifecycle-state: $ref: "./v3/paths/identity-set-lifecycle-state.yaml" /identity-profiles/{identity-profile-id}/lifecycle-states: @@ -1277,6 +1280,34 @@ paths: $ref: "./v3/paths/work-items-bulk-reject-approval-item.yaml" /work-items/{id}/submit-account-selection: $ref: "./v3/paths/work-items-account-selection.yaml" + /workflows: + $ref: './v3/paths/workflows/workflows.yaml' + /workflows/{id}: + $ref: './v3/paths/workflows/workflow.yaml' + /workflows/{id}/test: + $ref: './v3/paths/workflows/workflow-test.yaml' + /workflows/{id}/executions: + $ref: './v3/paths/workflows/workflow-executions.yaml' + /workflow-executions/{id}: + $ref: './v3/paths/workflows/workflow-execution.yaml' + /workflow-executions/{id}/history: + $ref: './v3/paths/workflows/workflow-execution-history.yaml' + /workflow-executions/{id}/cancel: + $ref: './v3/paths/workflows/workflow-execution-cancel.yaml' + /workflow-library: + $ref: './v3/paths/workflows/workflow-library.yaml' + /workflow-library/actions: + $ref: './v3/paths/workflows/workflow-library-actions.yaml' + /workflow-library/triggers: + $ref: './v3/paths/workflows/workflow-library-triggers.yaml' + /workflow-library/operators: + $ref: './v3/paths/workflows/workflow-library-operators.yaml' + /workflows/{id}/external/oauth-clients: + $ref: './v3/paths/workflows/workflow-external-oauth-client.yaml' + /workflows/execute/external/{id}: + $ref: './v3/paths/workflows/workflow-external-execute.yaml' + /workflows/execute/external/{id}/test: + $ref: './v3/paths/workflows/workflow-external-execute-test.yaml' /source-usages/{sourceId}/status: $ref: "./v3/paths/source-usage-status.yaml" /source-usages/{sourceId}/summaries: diff --git a/static/api-specs/idn/v3/paths/workflows/workflow-execution-cancel.yaml b/static/api-specs/idn/v3/paths/workflows/workflow-execution-cancel.yaml new file mode 100644 index 000000000..62deffe0c --- /dev/null +++ b/static/api-specs/idn/v3/paths/workflows/workflow-execution-cancel.yaml @@ -0,0 +1,34 @@ +post: + operationId: cancelWorkflowExecution + tags: + - Workflows + summary: Cancel Workflow Execution by ID + description: >- + Use this API to cancel a running workflow execution. + security: + - UserContextAuth: [sp:workflow-execute:external] + parameters: + - name: id + in: path + description: The workflow execution ID + required: true + style: simple + explode: false + schema: + type: string + example: c17bea3a-574d-453c-9e04-4365fbf5af0b + responses: + '204': + $ref: '../../../v3/responses/204.yaml' + '400': + $ref: '../../../v3/responses/400.yaml' + '401': + $ref: '../../../v3/responses/401.yaml' + '403': + $ref: '../../../v3/responses/403.yaml' + '404': + $ref: '../../../v3/responses/404.yaml' + '429': + $ref: '../../../v3/responses/429.yaml' + '500': + $ref: '../../../v3/responses/500.yaml' diff --git a/static/api-specs/idn/v3/paths/workflows/workflow-execution-history.yaml b/static/api-specs/idn/v3/paths/workflows/workflow-execution-history.yaml new file mode 100644 index 000000000..42897c9c2 --- /dev/null +++ b/static/api-specs/idn/v3/paths/workflows/workflow-execution-history.yaml @@ -0,0 +1,41 @@ +get: + operationId: getWorkflowExecutionHistory + tags: + - Workflows + summary: Get Workflow Execution History + description: >- + Get a detailed history of a single workflow execution. Workflow executions are available for up to 90 days before being archived. If you attempt to access a workflow execution that has been archived, you will receive a 404 Not Found. + security: + - UserContextAuth: [sp:workflow:read] + parameters: + - name: id + in: path + description: Id of the workflow execution + required: true + style: simple + explode: false + schema: + type: string + example: c17bea3a-574d-453c-9e04-4365fbf5af0b + responses: + '200': + description: >- + List of workflow execution events for the given workflow execution + content: + application/json: + schema: + type: array + items: + $ref: '../../schemas/workflows/WorkflowExecutionEvent.yaml' + '400': + $ref: '../../../v3/responses/400.yaml' + '401': + $ref: '../../../v3/responses/401.yaml' + '403': + $ref: '../../../v3/responses/403.yaml' + '404': + $ref: '../../../v3/responses/404.yaml' + '429': + $ref: '../../../v3/responses/429.yaml' + '500': + $ref: '../../../v3/responses/500.yaml' diff --git a/static/api-specs/idn/v3/paths/workflows/workflow-execution.yaml b/static/api-specs/idn/v3/paths/workflows/workflow-execution.yaml new file mode 100644 index 000000000..95f41fd99 --- /dev/null +++ b/static/api-specs/idn/v3/paths/workflows/workflow-execution.yaml @@ -0,0 +1,40 @@ +get: + operationId: getWorkflowExecution + tags: + - Workflows + summary: Get a Workflow Execution + description: >- + Get a single workflow execution. Workflow executions are available for up to 90 days before being archived. If you attempt to access a workflow execution that has been archived, you will receive a 404 Not Found. + security: + - UserContextAuth: [sp:workflow:read] + parameters: + - name: id + in: path + description: Id of the workflow execution + required: true + style: simple + explode: false + schema: + type: string + example: c17bea3a-574d-453c-9e04-4365fbf5af0b + responses: + '200': + description: >- + The workflow execution + content: + application/json: + schema: + items: + $ref: '../../schemas/workflows/WorkflowExecution.yaml' + '400': + $ref: '../../../v3/responses/400.yaml' + '401': + $ref: '../../../v3/responses/401.yaml' + '403': + $ref: '../../../v3/responses/403.yaml' + '404': + $ref: '../../../v3/responses/404.yaml' + '429': + $ref: '../../../v3/responses/429.yaml' + '500': + $ref: '../../../v3/responses/500.yaml' diff --git a/static/api-specs/idn/v3/paths/workflows/workflow-executions.yaml b/static/api-specs/idn/v3/paths/workflows/workflow-executions.yaml new file mode 100644 index 000000000..1a5faeb7d --- /dev/null +++ b/static/api-specs/idn/v3/paths/workflows/workflow-executions.yaml @@ -0,0 +1,76 @@ +get: + operationId: listWorkflowExecutions + tags: + - Workflows + summary: List Workflow Executions + description: >- + This lists the executions for a given workflow. Workflow executions are available for up to 90 days before being archived. + By default, you can get a maximum of 250 executions. + To get executions past the first 250 records, you can do the following: + + 1. Use the [Get Workflows](https://developer.sailpoint.com/idn/api/beta/list-workflows) endpoint to get your workflows. + + 2. Get your workflow ID from the response. + + 3. You can then do either of the following: + + - Filter to find relevant workflow executions. + For example, you can filter for failed workflow executions: `GET /workflows/:workflowID/executions?filters=status eq "Failed"` + + - You can paginate through results with the `offset` parameter. + For example, you can page through 50 executions per page and use that as a way to get to the records past the first 250. + Refer to [Paginating Results](https://developer.sailpoint.com/idn/api/standard-collection-parameters#paginating-results) for more information about the query parameters you can use to achieve pagination. + security: + - UserContextAuth: [sp:workflow:read] + parameters: + - name: id + in: path + description: Id of the workflow + required: true + style: simple + explode: false + schema: + type: string + example: c17bea3a-574d-453c-9e04-4365fbf5af0b + - $ref: "../../../v3/parameters/limit.yaml" + - $ref: "../../../v3/parameters/offset.yaml" + - $ref: "../../../v3/parameters/count.yaml" + - in: query + name: filters + schema: + type: string + example: status eq "Failed" + description: >- + Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) + + + Filtering is supported for the following fields and operators: + + + **startTime**: *eq, lt, le, gt, ge* + + + **status**: *eq* + required: false + responses: + '200': + description: >- + List of workflow executions for the given workflow + content: + application/json: + schema: + type: array + items: + $ref: '../../schemas/workflows/WorkflowExecution.yaml' + '400': + $ref: '../../../v3/responses/400.yaml' + '401': + $ref: '../../../v3/responses/401.yaml' + '403': + $ref: '../../../v3/responses/403.yaml' + '404': + $ref: '../../../v3/responses/404.yaml' + '429': + $ref: '../../../v3/responses/429.yaml' + '500': + $ref: '../../../v3/responses/500.yaml' diff --git a/static/api-specs/idn/v3/paths/workflows/workflow-external-execute-test.yaml b/static/api-specs/idn/v3/paths/workflows/workflow-external-execute-test.yaml new file mode 100644 index 000000000..240ad0011 --- /dev/null +++ b/static/api-specs/idn/v3/paths/workflows/workflow-external-execute-test.yaml @@ -0,0 +1,56 @@ +post: + operationId: testExternalExecuteWorkflow + tags: + - Workflows + summary: Test Workflow via External Trigger + description: >- + Validate a workflow with an "External Trigger" can receive input. The response includes the input that the workflow received, which can be used to validate that the input is intact when it reaches the workflow. + security: + - UserContextAuth: [sp:workflow-execute:external] + parameters: + - name: id + in: path + description: Id of the workflow + required: true + style: simple + explode: false + schema: + type: string + example: c17bea3a-574d-453c-9e04-4365fbf5af0b + requestBody: + required: false + content: + application/json: + schema: + type: object + properties: + input: + type: object + description: The test input for the workflow + example: { + "test": "hello world" + } + responses: + '200': + description: Responds with the test input + content: + application/json: + schema: + type: object + properties: + payload: + type: object + description: The input that was received + example: { + "test": "hello world" + } + '400': + $ref: '../../../v3/responses/400.yaml' + '401': + $ref: '../../../v3/responses/401.yaml' + '403': + $ref: '../../../v3/responses/403.yaml' + '429': + $ref: '../../../v3/responses/429.yaml' + '500': + $ref: '../../../v3/responses/500.yaml' diff --git a/static/api-specs/idn/v3/paths/workflows/workflow-external-execute.yaml b/static/api-specs/idn/v3/paths/workflows/workflow-external-execute.yaml new file mode 100644 index 000000000..26381b799 --- /dev/null +++ b/static/api-specs/idn/v3/paths/workflows/workflow-external-execute.yaml @@ -0,0 +1,60 @@ +post: + operationId: createExternalExecuteWorkflow + tags: + - Workflows + summary: Execute Workflow via External Trigger + description: >- + This endpoint allows a service outside of IdentityNow to initiate a workflow that uses the "External Trigger" step. The external service will invoke this endpoint with the input data it wants to send to the workflow in the body. + security: + - UserContextAuth: [sp:workflow-execute:external] + parameters: + - name: id + in: path + description: Id of the workflow + required: true + style: simple + explode: false + schema: + type: string + example: c17bea3a-574d-453c-9e04-4365fbf5af0b + requestBody: + required: false + content: + application/json: + schema: + type: object + properties: + input: + type: object + description: The input for the workflow + example: { + "customAttribute1": "value1", + "customAttribute2": "value2" + } + responses: + '200': + description: The Workflow object + content: + application/json: + schema: + type: object + properties: + workflowExecutionId: + type: string + description: The workflow execution id + example: 0e11cefa-96e7-4b67-90d0-065bc1da5753 + message: + type: string + description: An error message if any errors occurred + example: Workflow was not executed externally. Check enabled flag on workflow definition + + '400': + $ref: '../../../v3/responses/400.yaml' + '401': + $ref: '../../../v3/responses/401.yaml' + '403': + $ref: '../../../v3/responses/403.yaml' + '429': + $ref: '../../../v3/responses/429.yaml' + '500': + $ref: '../../../v3/responses/500.yaml' diff --git a/static/api-specs/idn/v3/paths/workflows/workflow-external-oauth-client.yaml b/static/api-specs/idn/v3/paths/workflows/workflow-external-oauth-client.yaml new file mode 100644 index 000000000..06eca1b83 --- /dev/null +++ b/static/api-specs/idn/v3/paths/workflows/workflow-external-oauth-client.yaml @@ -0,0 +1,36 @@ +post: + operationId: createWorkflowExternalTrigger + tags: + - Workflows + summary: Generate External Trigger OAuth Client + description: >- + Create OAuth client ID, client secret, and callback URL for use in an external trigger. External triggers will need this information to generate an access token to authenticate to the callback URL and submit a trigger payload that will initiate the workflow. + security: + - UserContextAuth: [sp:workflow:manage] + parameters: + - name: id + in: path + description: Id of the workflow + required: true + style: simple + explode: false + schema: + type: string + example: c17bea3a-574d-453c-9e04-4365fbf5af0b + responses: + '200': + description: The OAuth Client object + content: + application/json: + schema: + $ref: '../../schemas/workflows/WorkflowOAuthClient.yaml' + '400': + $ref: '../../../v3/responses/400.yaml' + '401': + $ref: '../../../v3/responses/401.yaml' + '403': + $ref: '../../../v3/responses/403.yaml' + '429': + $ref: '../../../v3/responses/429.yaml' + '500': + $ref: '../../../v3/responses/500.yaml' diff --git a/static/api-specs/idn/v3/paths/workflows/workflow-library-actions.yaml b/static/api-specs/idn/v3/paths/workflows/workflow-library-actions.yaml new file mode 100644 index 000000000..5616308d6 --- /dev/null +++ b/static/api-specs/idn/v3/paths/workflows/workflow-library-actions.yaml @@ -0,0 +1,49 @@ +get: + operationId: listWorkflowLibraryActions + tags: + - Workflows + summary: List Workflow Library Actions + description: >- + This lists the workflow actions available to you. + externalDocs: + description: Additional documentation for each action + url: https://documentation.sailpoint.com/saas/help/workflows/workflow-steps.html#actions + parameters: + - $ref: '../../../v3/parameters/limit.yaml' + - $ref: '../../../v3/parameters/offset.yaml' + - in: query + name: filters + required: false + schema: + type: string + description: >- + Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) + + + Filtering is supported for the following fields and operators: + + + **id**: *eq* + example: id eq "sp:create-campaign" + security: + - UserContextAuth: [sp:workflow:read] + responses: + '200': + description: >- + List of workflow actions + content: + application/json: + schema: + type: array + items: + $ref: '../../schemas/workflows/WorkflowLibraryAction.yaml' + '400': + $ref: '../../../v3/responses/400.yaml' + '401': + $ref: '../../../v3/responses/401.yaml' + '403': + $ref: '../../../v3/responses/403.yaml' + '429': + $ref: '../../../v3/responses/429.yaml' + '500': + $ref: '../../../v3/responses/500.yaml' diff --git a/static/api-specs/idn/v3/paths/workflows/workflow-library-operators.yaml b/static/api-specs/idn/v3/paths/workflows/workflow-library-operators.yaml new file mode 100644 index 000000000..58ca30806 --- /dev/null +++ b/static/api-specs/idn/v3/paths/workflows/workflow-library-operators.yaml @@ -0,0 +1,29 @@ +get: + operationId: listWorkflowLibraryOperators + tags: + - Workflows + summary: List Workflow Library Operators + description: >- + This lists the workflow operators available to you + security: + - UserContextAuth: [sp:workflow:read] + responses: + '200': + description: >- + List of workflow operators + content: + application/json: + schema: + type: array + items: + $ref: '../../schemas/workflows/WorkflowLibraryOperator.yaml' + '400': + $ref: '../../../v3/responses/400.yaml' + '401': + $ref: '../../../v3/responses/401.yaml' + '403': + $ref: '../../../v3/responses/403.yaml' + '429': + $ref: '../../../v3/responses/429.yaml' + '500': + $ref: '../../../v3/responses/500.yaml' diff --git a/static/api-specs/idn/v3/paths/workflows/workflow-library-triggers.yaml b/static/api-specs/idn/v3/paths/workflows/workflow-library-triggers.yaml new file mode 100644 index 000000000..402e97071 --- /dev/null +++ b/static/api-specs/idn/v3/paths/workflows/workflow-library-triggers.yaml @@ -0,0 +1,49 @@ +get: + operationId: listWorkflowLibraryTriggers + tags: + - Workflows + summary: List Workflow Library Triggers + description: >- + This lists the workflow triggers available to you + externalDocs: + description: Additional documentation for each trigger + url: https://documentation.sailpoint.com/saas/help/workflows/workflow-steps.html#triggers + parameters: + - $ref: '../../../v3/parameters/limit.yaml' + - $ref: '../../../v3/parameters/offset.yaml' + - in: query + name: filters + required: false + schema: + type: string + description: >- + Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) + + + Filtering is supported for the following fields and operators: + + + **id**: *eq* + example: id eq "idn:identity-attributes-changed" + security: + - UserContextAuth: [sp:workflow:read] + responses: + '200': + description: >- + List of workflow triggers + content: + application/json: + schema: + type: array + items: + $ref: '../../schemas/workflows/WorkflowLibraryTrigger.yaml' + '400': + $ref: '../../../v3/responses/400.yaml' + '401': + $ref: '../../../v3/responses/401.yaml' + '403': + $ref: '../../../v3/responses/403.yaml' + '429': + $ref: '../../../v3/responses/429.yaml' + '500': + $ref: '../../../v3/responses/500.yaml' diff --git a/static/api-specs/idn/v3/paths/workflows/workflow-library.yaml b/static/api-specs/idn/v3/paths/workflows/workflow-library.yaml new file mode 100644 index 000000000..47dd4afb1 --- /dev/null +++ b/static/api-specs/idn/v3/paths/workflows/workflow-library.yaml @@ -0,0 +1,38 @@ +get: + operationId: listCompleteWorkflowLibrary + tags: + - Workflows + summary: List Complete Workflow Library + description: >- + This lists all triggers, actions, and operators in the library + externalDocs: + description: Additional documentation for workflows + url: https://documentation.sailpoint.com/saas/help/workflows/workflow-steps.html + parameters: + - $ref: '../../../v3/parameters/limit.yaml' + - $ref: '../../../v3/parameters/offset.yaml' + security: + - UserContextAuth: [sp:workflow:read] + responses: + '200': + description: >- + List of workflow steps + content: + application/json: + schema: + type: array + items: + anyOf: + - $ref: '../../schemas/workflows/WorkflowLibraryAction.yaml' + - $ref: '../../schemas/workflows/WorkflowLibraryTrigger.yaml' + - $ref: '../../schemas/workflows/WorkflowLibraryOperator.yaml' + '400': + $ref: '../../../v3/responses/400.yaml' + '401': + $ref: '../../../v3/responses/401.yaml' + '403': + $ref: '../../../v3/responses/403.yaml' + '429': + $ref: '../../../v3/responses/429.yaml' + '500': + $ref: '../../../v3/responses/500.yaml' diff --git a/static/api-specs/idn/v3/paths/workflows/workflow-test.yaml b/static/api-specs/idn/v3/paths/workflows/workflow-test.yaml new file mode 100644 index 000000000..d5948d6cb --- /dev/null +++ b/static/api-specs/idn/v3/paths/workflows/workflow-test.yaml @@ -0,0 +1,96 @@ +post: + operationId: testWorkflow + tags: + - Workflows + summary: Test Workflow By Id + description: >- + Test a workflow with the provided input data. The input data should resemble the input that the trigger will send the workflow. See the [event trigger documentation](https://developer.sailpoint.com/idn/docs/event-triggers/available) for an example input for the trigger that initiates this workflow. + + This endpoint will return an execution ID, which can be used to lookup more information about the execution using the `Get a Workflow Execution` endpoint. + + **This will cause a live run of the workflow, which could result in unintended modifications to your IDN tenant.** + security: + - UserContextAuth: [sp:workflow-execute:external] + parameters: + - name: id + in: path + description: Id of the workflow + required: true + style: simple + explode: false + schema: + type: string + example: c17bea3a-574d-453c-9e04-4365fbf5af0b + requestBody: + required: true + content: + application/json: + schema: + type: object + required: + - input + properties: + input: + type: object + description: The test input for the workflow. + examples: + Identity Attributes Changed: + description: Identity Attributes Changed Trigger Input + value: + { + "input": { + "identity": { + "id": "ee769173319b41d19ccec6cea52f237b", + "name": "john.doe", + "type": "IDENTITY" + }, + "changes": [ + { + "attribute": "department", + "oldValue": "sales", + "newValue": "marketing" + }, + { + "attribute": "manager", + "oldValue": { + "id": "ee769173319b41d19ccec6c235423237b", + "name": "nice.guy", + "type": "IDENTITY" + }, + "newValue": { + "id": "ee769173319b41d19ccec6c235423236c", + "name": "mean.guy", + "type": "IDENTITY" + } + }, + { + "attribute": "email", + "oldValue": "john.doe@hotmail.com", + "newValue": "john.doe@gmail.com" + } + ] + } + } + + responses: + '200': + description: The Workflow object + content: + application/json: + schema: + type: object + properties: + workflowExecutionId: + type: string + description: The workflow execution id + example: "0e11cefa-96e7-4b67-90d0-065bc1da5753" + '400': + $ref: '../../../v3/responses/400.yaml' + '401': + $ref: '../../../v3/responses/401.yaml' + '403': + $ref: '../../../v3/responses/403.yaml' + '429': + $ref: '../../../v3/responses/429.yaml' + '500': + $ref: '../../../v3/responses/500.yaml' diff --git a/static/api-specs/idn/v3/paths/workflows/workflow.yaml b/static/api-specs/idn/v3/paths/workflows/workflow.yaml new file mode 100644 index 000000000..7adb82a7b --- /dev/null +++ b/static/api-specs/idn/v3/paths/workflows/workflow.yaml @@ -0,0 +1,346 @@ +get: + operationId: getWorkflow + tags: + - Workflows + summary: Get Workflow By Id + description: >- + Get a single workflow by id. + security: + - UserContextAuth: [sp:workflow:read] + parameters: + - name: id + in: path + description: Id of the workflow + required: true + style: simple + explode: false + schema: + type: string + example: c17bea3a-574d-453c-9e04-4365fbf5af0b + responses: + '200': + description: >- + The workflow object + content: + application/json: + schema: + $ref: '../../schemas/workflows/Workflow.yaml' + '400': + $ref: '../../../v3/responses/400.yaml' + '401': + $ref: '../../../v3/responses/401.yaml' + '403': + $ref: '../../../v3/responses/403.yaml' + '429': + $ref: '../../../v3/responses/429.yaml' + '500': + $ref: '../../../v3/responses/500.yaml' +put: + operationId: putWorkflow + tags: + - Workflows + summary: Update Workflow + description: >- + Perform a full update of a workflow. The updated workflow object is returned in the response. + security: + - UserContextAuth: [sp:workflow:manage] + parameters: + - name: id + in: path + description: Id of the Workflow + required: true + style: simple + explode: false + schema: + type: string + example: c17bea3a-574d-453c-9e04-4365fbf5af0b + requestBody: + required: true + content: + application/json: + schema: + $ref: '../../schemas/workflows/WorkflowBody.yaml' + responses: + '200': + description: The Workflow object + content: + application/json: + schema: + $ref: '../../schemas/workflows/Workflow.yaml' + '400': + $ref: '../../../v3/responses/400.yaml' + '401': + $ref: '../../../v3/responses/401.yaml' + '403': + $ref: '../../../v3/responses/403.yaml' + '429': + $ref: '../../../v3/responses/429.yaml' + '500': + $ref: '../../../v3/responses/500.yaml' +patch: + operationId: patchWorkflow + tags: + - Workflows + summary: Patch Workflow + description: >- + Partially update an existing Workflow using [JSON Patch](https://tools.ietf.org/html/rfc6902) syntax. + security: + - UserContextAuth: [sp:workflow:manage] + parameters: + - name: id + in: path + description: Id of the Workflow + required: true + style: simple + explode: false + schema: + type: string + example: c17bea3a-574d-453c-9e04-4365fbf5af0b + requestBody: + required: true + content: + application/json-patch+json: + schema: + type: array + items: + $ref: '../../schemas/JsonPatchOperation.yaml' + examples: + Update all patchable fields: + description: Demonstrate how to update each patchable field in one PATCH request. + value: + [ + { + "op": "replace", + "path": "/name", + "value": "Send Email" + }, + { + "op": "replace", + "path": "/owner", + "value": { + "type": "IDENTITY", + "id": "2c91808568c529c60168cca6f90c1313", + "name": "William Wilson" + + } + }, + { + "op": "replace", + "path": "/description", + "value": "Send an email to the identity who's attributes changed." + }, + { + "op": "replace", + "path": "/enabled", + "value": false + }, + { + "op": "replace", + "path": "/definition", + "value": { + "start": "Send Email Test", + "steps": { + "Send Email": { + "actionId": "sp:send-email", + "attributes": { + "body": "This is a test", + "from": "sailpoint@sailpoint.com", + "recipientId.$": "$.identity.id", + "subject": "test" + }, + "nextStep": "success", + "selectResult": null, + "type": "action" + }, + "success": { + "type": "success" + } + } + } + }, + { + "op": "replace", + "path": "/trigger", + "value": { + "type": "EVENT", + "attributes": { + "id": "idn:identity-attributes-changed" + } + } + } + ] + responses: + '200': + description: The Workflow object + content: + application/json: + schema: + $ref: '../../schemas/workflows/Workflow.yaml' + '400': + $ref: '../../../v3/responses/400.yaml' + '401': + $ref: '../../../v3/responses/401.yaml' + '403': + $ref: '../../../v3/responses/403.yaml' + '429': + $ref: '../../../v3/responses/429.yaml' + '500': + $ref: '../../../v3/responses/500.yaml' +delete: + operationId: deleteWorkflow + tags: + - Workflows + summary: Delete Workflow By Id + description: >- + Delete a workflow. **Enabled workflows cannot be deleted**. They must first be disabled. + security: + - UserContextAuth: [sp:workflow:manage] + parameters: + - name: id + in: path + description: Id of the Workflow + required: true + style: simple + explode: false + schema: + type: string + example: c17bea3a-574d-453c-9e04-4365fbf5af0b + responses: + '204': + $ref: '../../../v3/responses/204.yaml' + '400': + $ref: '../../../v3/responses/400.yaml' + '401': + $ref: '../../../v3/responses/401.yaml' + '403': + $ref: '../../../v3/responses/403.yaml' + '429': + $ref: '../../../v3/responses/429.yaml' + '500': + $ref: '../../../v3/responses/500.yaml' +post: + operationId: createWorkflow + tags: + - Workflows + summary: Create Workflow + description: >- + Create a new workflow with the desired trigger and steps specified in the request body. + security: + - UserContextAuth: [sp:workflow:manage] + requestBody: + required: true + content: + application/json: + schema: + allOf: + - required: + - name + - owner + - $ref: '../../schemas/workflows/WorkflowBody.yaml' + examples: + Event Trigger: + description: Workflow initiated by an event trigger + value: + name: Send Email + owner: + type: IDENTITY + id: 2c91808568c529c60168cca6f90c1313 + name: William Wilson + description: Send an email to the identity who's attributes changed. + definition: + start: Send Email Test + steps: + Send Email: + actionId: sp:send-email + attributes: + body: This is a test + from: sailpoint@sailpoint.com + recipientId.$: "$.identity.id" + subject: test + nextStep: success + selectResult: + type: action + success: + type: success + enabled: false + trigger: + type: EVENT + attributes: + id: idn:identity-attributes-changed + filter: "$.changes[?(@.attribute == 'manager')]" + Scheduled Trigger: + description: Workflow initiated by a scheduled trigger + value: + name: Send Email + owner: + type: IDENTITY + id: 2c91808568c529c60168cca6f90c1313 + name: William Wilson + description: Send an email to the identity who's attributes changed. + definition: + start: Send Email Test + steps: + Send Email: + actionId: sp:send-email + attributes: + body: This is a test + from: sailpoint@sailpoint.com + recipientId.$: "$.identity.id" + subject: test + nextStep: success + selectResult: + type: action + success: + type: success + enabled: false + trigger: + type: SCHEDULED + attributes: + cronString: 0 * */3 */5 * + External Trigger: + description: Workflow initiated by an external trigger + value: + name: Send Email + owner: + type: IDENTITY + id: 2c91808568c529c60168cca6f90c1313 + name: William Wilson + description: Send an email to the identity whose attributes changed. + definition: + start: Send Email Test + steps: + Send Email: + actionId: sp:send-email + attributes: + body: This is a test + from: sailpoint@sailpoint.com + recipientId.$: "$.identity.id" + subject: test + nextStep: success + selectResult: + type: action + success: + type: success + enabled: false + trigger: + type: EXTERNAL + attributes: + name: search-and-notify + description: Run a search and notify the results + responses: + '200': + description: The Workflow object + content: + application/json: + schema: + $ref: '../../schemas/workflows/Workflow.yaml' + '400': + $ref: '../../../v3/responses/400.yaml' + '401': + $ref: '../../../v3/responses/401.yaml' + '403': + $ref: '../../../v3/responses/403.yaml' + '429': + $ref: '../../../v3/responses/429.yaml' + '500': + $ref: '../../../v3/responses/500.yaml' \ No newline at end of file diff --git a/static/api-specs/idn/v3/paths/workflows/workflows.yaml b/static/api-specs/idn/v3/paths/workflows/workflows.yaml new file mode 100644 index 000000000..5a96c2b79 --- /dev/null +++ b/static/api-specs/idn/v3/paths/workflows/workflows.yaml @@ -0,0 +1,29 @@ +get: + operationId: listWorkflows + tags: + - Workflows + summary: List Workflows + description: >- + List all workflows in the tenant. + security: + - UserContextAuth: [sp:workflow:read] + responses: + '200': + description: >- + List of workflows + content: + application/json: + schema: + type: array + items: + $ref: '../../schemas/workflows/Workflow.yaml' + '400': + $ref: '../../../v3/responses/400.yaml' + '401': + $ref: '../../../v3/responses/401.yaml' + '403': + $ref: '../../../v3/responses/403.yaml' + '429': + $ref: '../../../v3/responses/429.yaml' + '500': + $ref: '../../../v3/responses/500.yaml' diff --git a/static/api-specs/idn/v3/schemas/workflows/Workflow.yaml b/static/api-specs/idn/v3/schemas/workflows/Workflow.yaml new file mode 100644 index 000000000..f52a22a04 --- /dev/null +++ b/static/api-specs/idn/v3/schemas/workflows/Workflow.yaml @@ -0,0 +1,41 @@ +allOf: +- type: object + properties: + id: + type: string + description: Workflow ID. This is a UUID generated upon creation. + example: d201c5e9-d37b-4aff-af14-66414f39d569 + executionCount: + type: integer + format: int32 + description: The number of times this workflow has been executed. + example: 2 + failureCount: + type: integer + format: int32 + description: The number of times this workflow has failed during execution. + example: 0 + created: + type: string + format: date-time + description: The date and time the workflow was created. + example: "2022-01-10T16:06:16.636381447Z" + creator: + type: object + description: Workflow creator's identity. + properties: + type: + type: string + description: Workflow creator's DTO type. + enum: + - IDENTITY + example: IDENTITY + id: + type: string + description: Workflow creator's identity ID. + example: 2c7180a46faadee4016fb4e018c20642 + name: + type: string + description: Workflow creator's display name. + example: Michael Michaels +- $ref: './WorkflowBody.yaml' \ No newline at end of file diff --git a/static/api-specs/idn/v3/schemas/workflows/WorkflowBody.yaml b/static/api-specs/idn/v3/schemas/workflows/WorkflowBody.yaml new file mode 100644 index 000000000..81205e635 --- /dev/null +++ b/static/api-specs/idn/v3/schemas/workflows/WorkflowBody.yaml @@ -0,0 +1,36 @@ +type: object +properties: + name: + type: string + description: The name of the workflow + example: "Send Email" + owner: + description: The identity that owns the workflow. The owner's permissions in IDN will determine what actions the workflow is allowed to perform. Ownership can be changed by updating the owner in a PUT or PATCH request. + properties: + type: + type: string + enum: + - "IDENTITY" + example: "IDENTITY" + description: The type of object that is referenced + id: + type: string + description: The unique ID of the object + example: "2c91808568c529c60168cca6f90c1313" + name: + type: string + description: The name of the object + example: "William Wilson" + description: + type: string + description: Description of what the workflow accomplishes + example: "Send an email to the identity who's attributes changed." + definition: + $ref: './WorkflowDefinition.yaml' + enabled: + type: boolean + description: Enable or disable the workflow. Workflows cannot be created in an enabled state. + default: false + example: false + trigger: + $ref: './WorkflowTrigger.yaml' diff --git a/static/api-specs/idn/v3/schemas/workflows/WorkflowDefinition.yaml b/static/api-specs/idn/v3/schemas/workflows/WorkflowDefinition.yaml new file mode 100644 index 000000000..322bc1e88 --- /dev/null +++ b/static/api-specs/idn/v3/schemas/workflows/WorkflowDefinition.yaml @@ -0,0 +1,28 @@ +type: object +description: The map of steps that the workflow will execute. +properties: + start: + type: string + description: The name of the starting step. + example: "Send Email Test" + steps: + type: object + description: One or more step objects that comprise this workflow. Please see the Workflow documentation to see the JSON schema for each step type. + additionalProperties: true + example: { + "Send Email": { + "actionId": "sp:send-email", + "attributes": { + "body": "This is a test", + "from": "sailpoint@sailpoint.com", + "recipientId.$": "$.identity.id", + "subject": "test" + }, + "nextStep": "success", + "selectResult": null, + "type": "ACTION" + }, + "success": { + "type": "success" + } + } \ No newline at end of file diff --git a/static/api-specs/idn/v3/schemas/workflows/WorkflowExecution.yaml b/static/api-specs/idn/v3/schemas/workflows/WorkflowExecution.yaml new file mode 100644 index 000000000..bdcf21787 --- /dev/null +++ b/static/api-specs/idn/v3/schemas/workflows/WorkflowExecution.yaml @@ -0,0 +1,33 @@ +type: object +properties: + id: + type: string + description: The workflow execution ID + example: b393f4e2-4785-4d7f-ab27-3a6b8ded4c81 + workflowId: + type: string + description: The workflow ID + example: d201c5d9-d37b-4a2f-af14-66414f39d568 + requestId: + type: string + description: This backend ID tracks a workflow request in the system. You can provide this ID in a customer support ticket for debugging purposes. + example: 41e12a74fa7b4a6a98ae47887b64acdb + startTime: + type: string + format: date-time + description: The date/time the workflow started + example: "2022-02-07T20:13:29.356648026Z" + closeTime: + type: string + format: date-time + description: The date/time the workflow ended + example: "2022-02-07T20:13:31.682410165Z" + status: + description: The workflow execution status + type: string + enum: + - "Completed" + - "Failed" + - "Canceled" + - "Running" + example: "Completed" diff --git a/static/api-specs/idn/v3/schemas/workflows/WorkflowExecutionEvent.yaml b/static/api-specs/idn/v3/schemas/workflows/WorkflowExecutionEvent.yaml new file mode 100644 index 000000000..371522633 --- /dev/null +++ b/static/api-specs/idn/v3/schemas/workflows/WorkflowExecutionEvent.yaml @@ -0,0 +1,27 @@ +type: object +properties: + type: + description: The type of event + enum: + - WorkflowExecutionScheduled + - WorkflowExecutionStarted + - WorkflowExecutionCompleted + - WorkflowExecutionFailed + - WorkflowTaskScheduled + - WorkflowTaskStarted + - WorkflowTaskCompleted + - WorkflowTaskFailed + - ActivityTaskScheduled + - ActivityTaskStarted + - ActivityTaskCompleted + - ActivityTaskFailed + example: WorkflowTaskScheduled + timestamp: + type: string + format: date-time + description: The date-time when the event occurred + example: "2022-02-07T20:13:31.640618296Z" + attributes: + type: object + description: Additional attributes associated with the event + example: {} diff --git a/static/api-specs/idn/v3/schemas/workflows/WorkflowLibraryAction.yaml b/static/api-specs/idn/v3/schemas/workflows/WorkflowLibraryAction.yaml new file mode 100644 index 000000000..f60c85e8c --- /dev/null +++ b/static/api-specs/idn/v3/schemas/workflows/WorkflowLibraryAction.yaml @@ -0,0 +1,145 @@ +title: Workflow Action +type: object +properties: + id: + type: string + description: Action ID. This is a static namespaced ID for the action + example: "sp:create-campaign" + name: + type: string + description: Action Name + example: "Create Certification Campaign" + type: + type: string + description: Action type + example: "ACTION" + description: + type: string + description: Action Description + example: "Generates a certification campaign." + formFields: + type: array + description: One or more inputs that the action accepts + items: + $ref: './WorkflowLibraryFormFields.yaml' + isDynamicSchema: + type: boolean + description: Determines whether the dynamic output schema is returned in place of the action's output schema. The dynamic schema lists non-static properties, like properties of a workflow form where each form has different fields. These will be provided dynamically based on available form fields. + example: false + default: false + outputSchema: + type: object + description: Defines the output schema, if any, that this action produces. + example: + { + "definitions": {}, + "properties": { + "autoRevokeAllowed": { + "$id": "#sp:create-campaign/autoRevokeAllowed", + "default": true, + "examples": [ + false + ], + "title": "autoRevokeAllowed", + "type": "boolean" + }, + "deadline": { + "$id": "#sp:create-campaign/deadline", + "default": "", + "examples": [ + "2020-12-25T06:00:00.468Z" + ], + "format": "date-time", + "pattern": "^.*$", + "title": "deadline", + "type": "string" + }, + "description": { + "$id": "#sp:create-campaign/description", + "default": "", + "examples": [ + "A review of everyone's access by their manager." + ], + "pattern": "^.*$", + "title": "description", + "type": "string" + }, + "emailNotificationEnabled": { + "$id": "#sp:create-campaign/emailNotificationEnabled", + "default": true, + "examples": [ + false + ], + "title": "emailNotificationEnabled", + "type": "boolean" + }, + "filter": { + "$id": "#sp:create-campaign/filter", + "properties": { + "id": { + "$id": "#sp:create-campaign/filter/id", + "default": "", + "examples": [ + "e0adaae69852e8fe8b8a3d48e5ce757c" + ], + "pattern": "^.*$", + "title": "id", + "type": "string" + }, + "type": { + "$id": "#sp:create-campaign/filter/type", + "default": "", + "examples": [ + "CAMPAIGN_FILTER" + ], + "pattern": "^.*$", + "title": "type", + "type": "string" + } + }, + "title": "filter", + "type": "object" + }, + "id": { + "$id": "#sp:create-campaign/id", + "default": "", + "examples": [ + "2c918086719eec070171a7e3355a360a" + ], + "pattern": "^.*$", + "title": "id", + "type": "string" + }, + "name": { + "$id": "#sp:create-campaign/name", + "default": "", + "examples": [ + "Manager Review" + ], + "pattern": "^.*$", + "title": "name", + "type": "string" + }, + "recommendationsEnabled": { + "$id": "#sp:create-campaign/recommendationsEnabled", + "default": true, + "examples": [ + false + ], + "title": "recommendationEnabled", + "type": "boolean" + }, + "type": { + "$id": "#sp:create-campaign/type", + "default": "", + "examples": [ + "MANAGER" + ], + "pattern": "^.*$", + "title": "type", + "type": "string" + } + }, + "title": "sp:create-campaign", + "type": "object" + } diff --git a/static/api-specs/idn/v3/schemas/workflows/WorkflowLibraryFormFields.yaml b/static/api-specs/idn/v3/schemas/workflows/WorkflowLibraryFormFields.yaml new file mode 100644 index 000000000..40cee6dfb --- /dev/null +++ b/static/api-specs/idn/v3/schemas/workflows/WorkflowLibraryFormFields.yaml @@ -0,0 +1,46 @@ +type: object +properties: + helpText: + type: string + description: Describes the form field in the UI + example: The name to give to this certification campaign. + label: + type: string + description: A human readable name for this form field in the UI + example: Campaign Name + name: + type: string + description: The name of the input attribute + example: name + required: + type: boolean + description: Denotes if this field is a required attribute + example: false + default: false + type: + description: The type of the form field + nullable: true + enum: + - text + - textarea + - boolean + - email + - url + - number + - json + - checkbox + - jsonpath + - select + - multiType + - duration + - toggle + - identityPicker + - governanceGroupPicker + - string + - object + - array + - secret + - keyValuePairs + - emailPicker + - advancedToggle + example: text diff --git a/static/api-specs/idn/v3/schemas/workflows/WorkflowLibraryOperator.yaml b/static/api-specs/idn/v3/schemas/workflows/WorkflowLibraryOperator.yaml new file mode 100644 index 000000000..b8538b686 --- /dev/null +++ b/static/api-specs/idn/v3/schemas/workflows/WorkflowLibraryOperator.yaml @@ -0,0 +1,64 @@ +title: Workflow Operator +type: object +properties: + id: + type: string + description: Operator ID. + example: "sp:compare-boolean" + name: + type: string + description: Operator friendly name + example: Compare Boolean Values + type: + description: Operator type + type: string + example: "OPERATOR" + description: + type: string + description: Description of the operator + example: Compare two boolean values and decide what happens based on the result. + formFields: + type: array + description: One or more inputs that the operator accepts + items: + $ref: './WorkflowLibraryFormFields.yaml' + example: + [ + { + "description": "Enter the JSONPath to a value from the input to compare to Variable B.", + "helpText": "", + "label": "Variable A", + "name": "variableA.$", + "required": true, + "type": "text" + }, + { + "helpText": "Select an operation.", + "label": "Operation", + "name": "operator", + "options": [ + { + "label": "Equals", + "value": "BooleanEquals" + } + ], + "required": true, + "type": "select" + }, + { + "description": "Enter the JSONPath to a value from the input to compare to Variable A.", + "helpText": "", + "label": "Variable B", + "name": "variableB.$", + "required": false, + "type": "text" + }, + { + "description": "Enter True or False.", + "helpText": "", + "label": "Variable B", + "name": "variableB", + "required": false, + "type": "text" + } + ] \ No newline at end of file diff --git a/static/api-specs/idn/v3/schemas/workflows/WorkflowLibraryTrigger.yaml b/static/api-specs/idn/v3/schemas/workflows/WorkflowLibraryTrigger.yaml new file mode 100644 index 000000000..2efb28b12 --- /dev/null +++ b/static/api-specs/idn/v3/schemas/workflows/WorkflowLibraryTrigger.yaml @@ -0,0 +1,74 @@ +title: Workflow Trigger +type: object +properties: + id: + type: string + description: Trigger ID. This is a static namespaced ID for the trigger. + example: "idn:identity-attributes-changed" + type: + description: Trigger type + enum: + - EVENT + - SCHEDULED + - EXTERNAL + example: EVENT + name: + type: string + description: Trigger Name + example: Identity Attributes Changed + description: + type: string + description: Trigger Description + example: One or more identity attributes changed. + isDynamicSchema: + type: boolean + description: Determines whether the dynamic output schema is returned in place of the action's output schema. The dynamic schema lists non-static properties, like properties of a workflow form where each form has different fields. These will be provided dynamically based on available form fields. + example: false + default: false + inputExample: + type: object + description: Example trigger payload if applicable + nullable: true + externalDocs: + description: List of triggers and their input schemas + url: https://developer.sailpoint.com/idn/docs/event-triggers/available + example: + { + "changes": [ + { + "attribute": "department", + "newValue": "marketing", + "oldValue": "sales" + }, + { + "attribute": "manager", + "newValue": { + "id": "ee769173319b41d19ccec6c235423236c", + "name": "mean.guy", + "type": "IDENTITY" + }, + "oldValue": { + "id": "ee769173319b41d19ccec6c235423237b", + "name": "nice.guy", + "type": "IDENTITY" + } + }, + { + "attribute": "email", + "newValue": "john.doe@gmail.com", + "oldValue": "john.doe@hotmail.com" + } + ], + "identity": { + "id": "ee769173319b41d19ccec6cea52f237b", + "name": "john.doe", + "type": "IDENTITY" + } + } + formFields: + type: array + nullable: true + description: One or more inputs that the trigger accepts + example: [] + items: + $ref: './WorkflowLibraryFormFields.yaml' diff --git a/static/api-specs/idn/v3/schemas/workflows/WorkflowOAuthClient.yaml b/static/api-specs/idn/v3/schemas/workflows/WorkflowOAuthClient.yaml new file mode 100644 index 000000000..b440a2dd9 --- /dev/null +++ b/static/api-specs/idn/v3/schemas/workflows/WorkflowOAuthClient.yaml @@ -0,0 +1,14 @@ +type: object +properties: + id: + type: string + description: OAuth client ID for the trigger. This is a UUID generated upon creation. + example: 1a58c03a6bf64dc2876f6988c6e2c7b7 + secret: + type: string + description: OAuthClient secret. + example: 00cc24a7fe810fe06a7cb38bc168ae104d703c7abb296f9944dc68e69ddb578b + url: + type: string + description: URL for the external trigger to invoke + example: https://tenant.api.identitynow.com/beta/workflows/execute/external/c17bea3a-574d-453c-9e04-4365fbf5af0b diff --git a/static/api-specs/idn/v3/schemas/workflows/WorkflowTrigger.yaml b/static/api-specs/idn/v3/schemas/workflows/WorkflowTrigger.yaml new file mode 100644 index 000000000..b0aac6309 --- /dev/null +++ b/static/api-specs/idn/v3/schemas/workflows/WorkflowTrigger.yaml @@ -0,0 +1,20 @@ +type: object +description: The trigger that starts the workflow +required: + - type + - attributes +properties: + type: + type: string + enum: + - EVENT + - EXTERNAL + - SCHEDULED + example: EVENT + description: The trigger type + attributes: + oneOf: + - $ref: './trigger-attributes/EventAttributes.yaml' + - $ref: './trigger-attributes/ExternalAttributes.yaml' + - $ref: './trigger-attributes/ScheduledAttributes.yaml' + description: Workflow Trigger Attributes. diff --git a/static/api-specs/idn/v3/schemas/workflows/trigger-attributes/EventAttributes.yaml b/static/api-specs/idn/v3/schemas/workflows/trigger-attributes/EventAttributes.yaml new file mode 100644 index 000000000..70c663712 --- /dev/null +++ b/static/api-specs/idn/v3/schemas/workflows/trigger-attributes/EventAttributes.yaml @@ -0,0 +1,14 @@ +title: Event Trigger Attributes +type: object +description: Attributes related to an IdentityNow ETS event +required: +- id +properties: + id: + type: string + description: The unique ID of the trigger + example: "idn:identity-attributes-changed" + filter.$: + type: string + description: JSON path expression that will limit which events the trigger will fire on + example: "$.changes[?(@.attribute == 'manager')]" diff --git a/static/api-specs/idn/v3/schemas/workflows/trigger-attributes/ExternalAttributes.yaml b/static/api-specs/idn/v3/schemas/workflows/trigger-attributes/ExternalAttributes.yaml new file mode 100644 index 000000000..c66be6c7e --- /dev/null +++ b/static/api-specs/idn/v3/schemas/workflows/trigger-attributes/ExternalAttributes.yaml @@ -0,0 +1,14 @@ +title: External Trigger Attributes +type: object +description: Attributes related to an external trigger +required: +- name +properties: + name: + type: string + description: A unique name for the external trigger + example: "search-and-notify" + description: + type: string + description: Additonal context about the external trigger + example: Run a search and notify the results \ No newline at end of file diff --git a/static/api-specs/idn/v3/schemas/workflows/trigger-attributes/ScheduledAttributes.yaml b/static/api-specs/idn/v3/schemas/workflows/trigger-attributes/ScheduledAttributes.yaml new file mode 100644 index 000000000..990de7f4f --- /dev/null +++ b/static/api-specs/idn/v3/schemas/workflows/trigger-attributes/ScheduledAttributes.yaml @@ -0,0 +1,13 @@ +title: Scheduled Trigger Attributes +type: object +description: Attributes related to a scheduled trigger +required: +- cronString +properties: + cronString: + type: string + description: A valid CRON expression + externalDocs: + description: CRON expression editor + url: https://crontab.guru/ + example: "0 * */3 */5 *" \ No newline at end of file