Merge pull request #12 from sailpoint-oss/feature/new-docs-structure
Feature/new docs structure
1
.github/workflows/test-build.yml
vendored
@@ -31,4 +31,5 @@ jobs:
|
||||
- name: Build Developer Community site
|
||||
run: |
|
||||
npm install
|
||||
npm run docusaurus gen-api-docs all
|
||||
npm run build
|
||||
6
.gitignore
vendored
@@ -19,6 +19,6 @@ npm-debug.log*
|
||||
yarn-debug.log*
|
||||
yarn-error.log*
|
||||
|
||||
/docs/arm
|
||||
/docs/idn
|
||||
/docs/iiq
|
||||
/products/arm/api
|
||||
/products/idn/api
|
||||
/products/iiq/api
|
||||
1
docs/README.md
Normal file
@@ -0,0 +1 @@
|
||||
# Developer Relations main
|
||||
@@ -1,47 +0,0 @@
|
||||
---
|
||||
sidebar_position: 1
|
||||
---
|
||||
|
||||
# Tutorial Intro
|
||||
|
||||
Let's discover **Docusaurus in less than 5 minutes**.
|
||||
|
||||
## Getting Started
|
||||
|
||||
Get started by **creating a new site**.
|
||||
|
||||
Or **try Docusaurus immediately** with **[docusaurus.new](https://docusaurus.new)**.
|
||||
|
||||
### What you'll need
|
||||
|
||||
- [Node.js](https://nodejs.org/en/download/) version 16.14 or above:
|
||||
- When installing Node.js, you are recommended to check all checkboxes related to dependencies.
|
||||
|
||||
## Generate a new site
|
||||
|
||||
Generate a new Docusaurus site using the **classic template**.
|
||||
|
||||
The classic template will automatically be added to your project after you run the command:
|
||||
|
||||
```bash
|
||||
npm init docusaurus@latest my-website classic
|
||||
```
|
||||
|
||||
You can type this command into Command Prompt, Powershell, Terminal, or any other integrated terminal of your code editor.
|
||||
|
||||
The command also installs all necessary dependencies you need to run Docusaurus.
|
||||
|
||||
## Start your site
|
||||
|
||||
Run the development server:
|
||||
|
||||
```bash
|
||||
cd my-website
|
||||
npm run start
|
||||
```
|
||||
|
||||
The `cd` command changes the directory you're working with. In order to work with your newly created Docusaurus site, you'll need to navigate the terminal there.
|
||||
|
||||
The `npm run start` command builds your website locally and serves it through a development server, ready for you to view at http://localhost:3000/.
|
||||
|
||||
Open `docs/intro.md` (this page) and edit some lines: the site **reloads automatically** and displays your changes.
|
||||
@@ -1 +0,0 @@
|
||||
Do not remove this folder. It is necessary for the theme to run smoothly.
|
||||
@@ -6,21 +6,13 @@ const darkCodeTheme = require('prism-react-renderer/themes/dracula');
|
||||
|
||||
/** @type {import('@docusaurus/types').Config} */
|
||||
const config = {
|
||||
title: 'Developer Community',
|
||||
tagline: 'Developers are cool',
|
||||
title: 'SailPoint Developer Community',
|
||||
url: 'https://developer.sailpoint.com',
|
||||
baseUrl: '/',
|
||||
favicon: 'img/SailPoint-Logo-Icon.ico',
|
||||
onBrokenLinks: 'warn',
|
||||
onBrokenMarkdownLinks: 'warn',
|
||||
favicon: 'img/favicon.ico',
|
||||
// GitHub pages deployment config.
|
||||
// If you aren't using GitHub pages, you don't need these.
|
||||
organizationName: 'SailPoint', // Usually your GitHub org/user name.
|
||||
projectName: 'SailPoint Developer Community', // Usually your repo name.
|
||||
|
||||
// Even if you don't use internalization, you can use this field to set useful
|
||||
// metadata like html lang. For example, if your site is Chinese, you may want
|
||||
// to replace "en" with "zh-Hans".
|
||||
onDuplicateRoutes: 'warn',
|
||||
i18n: {
|
||||
defaultLocale: 'en',
|
||||
locales: ['en'],
|
||||
@@ -53,8 +45,12 @@ const config = {
|
||||
docs: {
|
||||
sidebar: {
|
||||
hideable: true,
|
||||
autoCollapseCategories: true,
|
||||
}
|
||||
autoCollapseCategories: false,
|
||||
},
|
||||
},
|
||||
colorMode: {
|
||||
defaultMode: "light",
|
||||
respectPrefersColorScheme: true
|
||||
},
|
||||
navbar: {
|
||||
title: '',
|
||||
@@ -64,144 +60,159 @@ const config = {
|
||||
srcDark: 'img/SailPoint-Developer-Community-Inverse-Lockup.png'
|
||||
},
|
||||
items: [
|
||||
{
|
||||
type: 'dropdown',
|
||||
label: 'Learn',
|
||||
position: 'right',
|
||||
items: [
|
||||
{
|
||||
href: 'https://medium.com/sailpointtechblog',
|
||||
label: 'Engineering Blog',
|
||||
},
|
||||
{
|
||||
href: 'https://community.sailpoint.com/t5/Professional-Certification/ct-p/product-certification-program',
|
||||
label: 'Certifications',
|
||||
},
|
||||
// ... more items
|
||||
],
|
||||
},
|
||||
{
|
||||
type: 'dropdown',
|
||||
label: 'IdentityNow',
|
||||
position: 'right',
|
||||
position: 'left',
|
||||
items: [
|
||||
{to: '/docs/category/identity-now-api-v3', label: 'V3 APIs'},
|
||||
{to: '/docs/category/identity-now-api-beta', label: 'Beta APIs'},
|
||||
{
|
||||
type: 'doc',
|
||||
docId: 'idn_docs/intro',
|
||||
label: 'Documentation',
|
||||
},
|
||||
// ... more items
|
||||
{to: "#", label: "API Specifications", className: "section__docs",},
|
||||
{to: '/idn/api/v3', label: 'V3 APIs', className: "indent"},
|
||||
{to: '/idn/api/beta', label: 'Beta APIs', className: "indent"},
|
||||
{to: "#", label: "Documentation", className: "section__docs",},
|
||||
{to: '/idn/docs/getting-started', label: 'IDN Documentation', className: "indent"}
|
||||
],
|
||||
},
|
||||
{
|
||||
type: 'dropdown',
|
||||
label: 'IdentityIQ',
|
||||
position: 'right',
|
||||
position: 'left',
|
||||
items: [
|
||||
{to: '/docs/category/iiq-api', label: 'APIs'},
|
||||
{
|
||||
type: 'doc',
|
||||
docId: 'idn_docs/intro',
|
||||
label: 'Documentation',
|
||||
},
|
||||
// ... more items
|
||||
{to: "#", label: "API Specifications", className: "section__docs",},
|
||||
{to: '/iiq/api', label: 'IIQ APIs', className: "indent"}
|
||||
],
|
||||
},
|
||||
{
|
||||
type: 'dropdown',
|
||||
label: 'ARM',
|
||||
position: 'right',
|
||||
items: [
|
||||
{to: '/docs/category/arm-agent-management', label: 'ARM APIs'}
|
||||
],
|
||||
position: "left",
|
||||
label: "Ideas",
|
||||
to: "https://developer-sailpoint.ideas.aha.io/"
|
||||
},
|
||||
{
|
||||
type: 'dropdown',
|
||||
label: 'Tools',
|
||||
position: 'right',
|
||||
items: [
|
||||
{
|
||||
href: 'https://github.com/sailpoint-oss',
|
||||
label: 'GitHub',
|
||||
},
|
||||
// ... more items
|
||||
],
|
||||
position: "left",
|
||||
label: "Discuss",
|
||||
to: "https://developer.sailpoint.com/discuss"
|
||||
},
|
||||
{
|
||||
type: 'dropdown',
|
||||
label: 'Community',
|
||||
position: 'right',
|
||||
type: "dropdown",
|
||||
label: "Support",
|
||||
position: "right",
|
||||
items: [
|
||||
{
|
||||
href: 'https://developer.sailpoint.com/discuss',
|
||||
label: 'Discuss',
|
||||
},
|
||||
{
|
||||
href: 'https://developer-sailpoint.ideas.aha.io/',
|
||||
label: 'Ideas',
|
||||
},
|
||||
{
|
||||
href: 'https://community.sailpoint.com/',
|
||||
label: 'Compass',
|
||||
},
|
||||
// ... more items
|
||||
],
|
||||
{label: "Compass", href: "https://community.sailpoint.com"},
|
||||
{label: "Submit Support Ticket", href: "https://support.sailpoint.com"}
|
||||
]
|
||||
},
|
||||
{
|
||||
type: 'dropdown',
|
||||
label: 'Support',
|
||||
position: 'right',
|
||||
items: [
|
||||
{
|
||||
href: 'https://support.sailpoint.com/hc/en-us',
|
||||
label: 'Customer Support',
|
||||
},
|
||||
// ... more items
|
||||
],
|
||||
position: "right",
|
||||
to: "https://github.com/sailpoint-oss",
|
||||
className: "header-github-link",
|
||||
"aria-label": "SailPoint Open-source GitHub"
|
||||
},
|
||||
],
|
||||
{
|
||||
href: "https://medium.com/sailpointtechblog",
|
||||
className: "header-blog-link",
|
||||
position: "right",
|
||||
"aria-label": "SailPoint Engineering Blog",
|
||||
},
|
||||
]
|
||||
},
|
||||
footer: {
|
||||
style: 'dark',
|
||||
style: "light",
|
||||
links: [
|
||||
{
|
||||
title: 'Docs',
|
||||
title: "IdentityNow",
|
||||
items: [
|
||||
{
|
||||
label: 'Tutorial',
|
||||
to: '/docs/intro',
|
||||
label: "Make Your First API Call",
|
||||
to: "idn/docs/getting-started"
|
||||
},
|
||||
],
|
||||
{
|
||||
label: "Build A Transform",
|
||||
to: "idn/docs/transforms"
|
||||
},
|
||||
{
|
||||
label: "Build A SaaS Connector",
|
||||
to: "idn/docs/saas-connectors"
|
||||
},
|
||||
]
|
||||
},
|
||||
{
|
||||
title: 'Community',
|
||||
title: "IdentityIQ",
|
||||
items: [
|
||||
{
|
||||
label: 'Stack Overflow',
|
||||
href: 'https://stackoverflow.com/questions/tagged/docusaurus',
|
||||
},
|
||||
{
|
||||
label: 'Discord',
|
||||
href: 'https://discordapp.com/invite/docusaurus',
|
||||
},
|
||||
{
|
||||
label: 'Twitter',
|
||||
href: 'https://twitter.com/docusaurus',
|
||||
},
|
||||
],
|
||||
label: "Build An IdentityIQ Plugin",
|
||||
to: "https://documentation.sailpoint.com/"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
title: 'More',
|
||||
title: "Community",
|
||||
items: [
|
||||
{
|
||||
label: 'GitHub',
|
||||
href: 'https://github.com/facebook/docusaurus',
|
||||
label: "Discuss",
|
||||
to: "https://developer.sailpoint.com/discuss"
|
||||
},
|
||||
],
|
||||
{
|
||||
label: "Submit an Idea",
|
||||
to: "https://developer-sailpoint.ideas.aha.io/"
|
||||
},
|
||||
{
|
||||
label: "Contact the DevRel Team",
|
||||
to: "mailto:developers@sailpoint.com"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
title: "More",
|
||||
items: [
|
||||
{
|
||||
label: "Engineering Blog",
|
||||
href: "https://medium.com/sailpointtechblog"
|
||||
},
|
||||
{
|
||||
label: "GitHub",
|
||||
href: "https://github.com/sailpoint-oss"
|
||||
},
|
||||
{
|
||||
label: "Twitter",
|
||||
href: "https://twitter.com/sailpoint"
|
||||
},
|
||||
]
|
||||
},
|
||||
{
|
||||
title: "Company",
|
||||
items: [
|
||||
{
|
||||
label: "The SailPoint Story",
|
||||
to: "https://www.sailpoint.com/company/"
|
||||
},
|
||||
{
|
||||
label: "The SailPoint Way",
|
||||
to: "https://www.sailpoint.com/company/diversity-inclusion-and-belonging/"
|
||||
},
|
||||
{
|
||||
label: "Leadership Team",
|
||||
to: "https://www.sailpoint.com/company/#h-our-leadership"
|
||||
},
|
||||
{
|
||||
label: "Become A Partner",
|
||||
to: "https://www.sailpoint.com/partners/become-partner/"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
title: "Legal",
|
||||
items: [
|
||||
{
|
||||
label: "Terms & Conditions",
|
||||
to: "https://developet.sailpoint.com"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
logo: {
|
||||
alt: 'SailPoint Developer Community Logo',
|
||||
src: '/img/SailPoint-Developer-Community-Lockup.png',
|
||||
href: 'https://developer.sailpoint.com',
|
||||
},
|
||||
copyright: `Copyright © ${new Date().getFullYear()} SailPoint Technologies Holdings, Inc. All Rights Reserved.`,
|
||||
},
|
||||
prism: {
|
||||
@@ -211,15 +222,34 @@ const config = {
|
||||
}),
|
||||
|
||||
plugins: [
|
||||
[
|
||||
"@docusaurus/plugin-content-docs",
|
||||
{
|
||||
id: "idn",
|
||||
path: "products/idn",
|
||||
routeBasePath: "idn",
|
||||
sidebarPath: require.resolve("./products/idn/sidebar.js"),
|
||||
},
|
||||
],
|
||||
[
|
||||
"@docusaurus/plugin-content-docs",
|
||||
{
|
||||
id: "iiq",
|
||||
path: "products/iiq",
|
||||
routeBasePath: "iiq",
|
||||
sidebarPath: require.resolve("./products/iiq/sidebar.js"),
|
||||
},
|
||||
],
|
||||
|
||||
[
|
||||
"docusaurus-plugin-openapi-docs",
|
||||
{
|
||||
id: "openapi",
|
||||
docsPluginId: "classic",
|
||||
id: "idn",
|
||||
docsPluginId: "idn",
|
||||
config: {
|
||||
idn_v3: {
|
||||
specPath: "static/idn-api/sailpoint-api.v3.yaml",
|
||||
outputDir: "docs/idn/sailpoint-api-v3",
|
||||
outputDir: "products/idn/api/v3",
|
||||
sidebarOptions: {
|
||||
groupPathsBy: "tag",
|
||||
categoryLinkSource: "tag"
|
||||
@@ -227,124 +257,29 @@ const config = {
|
||||
},
|
||||
idn_beta: {
|
||||
specPath: "static/idn-api/sailpoint-api.beta.yaml",
|
||||
outputDir: "docs/idn/sailpoint-api-beta",
|
||||
outputDir: "products/idn/api/beta",
|
||||
sidebarOptions: {
|
||||
groupPathsBy: "tag",
|
||||
categoryLinkSource: "tag"
|
||||
}
|
||||
},
|
||||
}
|
||||
}
|
||||
],
|
||||
[
|
||||
"docusaurus-plugin-openapi-docs",
|
||||
{
|
||||
id: "iiq",
|
||||
docsPluginId: "iiq",
|
||||
config: {
|
||||
iiq: {
|
||||
specPath: "static/iiq-api/swagger.json",
|
||||
outputDir: "docs/iiq/iiq-api",
|
||||
outputDir: "products/iiq/api",
|
||||
sidebarOptions: {
|
||||
groupPathsBy: "tag",
|
||||
categoryLinkSource: "tag"
|
||||
}
|
||||
},
|
||||
arm_agent_management: {
|
||||
specPath: "static/arm-api/swagger-agent-management.json",
|
||||
outputDir: "docs/arm/swagger-agent-management",
|
||||
sidebarOptions: {
|
||||
groupPathsBy: "tag",
|
||||
categoryLinkSource: "tag"
|
||||
}
|
||||
},
|
||||
arm_analysis: {
|
||||
specPath: "static/arm-api/swagger-analysis.json",
|
||||
outputDir: "docs/arm/swagger-analysis",
|
||||
sidebarOptions: {
|
||||
groupPathsBy: "tag",
|
||||
categoryLinkSource: "tag"
|
||||
}
|
||||
},
|
||||
arm_arm: {
|
||||
specPath: "static/arm-api/swagger-arm.json",
|
||||
outputDir: "docs/arm/swagger-arm",
|
||||
sidebarOptions: {
|
||||
groupPathsBy: "tag",
|
||||
categoryLinkSource: "tag"
|
||||
}
|
||||
},
|
||||
arm_arm2: {
|
||||
specPath: "static/arm-api/swagger-arm2.json",
|
||||
outputDir: "docs/arm/swagger-arm2",
|
||||
sidebarOptions: {
|
||||
groupPathsBy: "tag",
|
||||
categoryLinkSource: "tag"
|
||||
}
|
||||
},
|
||||
arm_authentication: {
|
||||
specPath: "static/arm-api/swagger-authentication.json",
|
||||
outputDir: "docs/arm/swagger-authentication",
|
||||
sidebarOptions: {
|
||||
groupPathsBy: "tag",
|
||||
categoryLinkSource: "tag"
|
||||
}
|
||||
},
|
||||
arm_cloud_agent: {
|
||||
specPath: "static/arm-api/swagger-cloud-agent.json",
|
||||
outputDir: "docs/arm/swagger-cloud-agent",
|
||||
sidebarOptions: {
|
||||
groupPathsBy: "tag",
|
||||
categoryLinkSource: "tag"
|
||||
}
|
||||
},
|
||||
arm_jobs: {
|
||||
specPath: "static/arm-api/swagger-jobs.json",
|
||||
outputDir: "docs/arm/swagger-jobs",
|
||||
sidebarOptions: {
|
||||
groupPathsBy: "tag",
|
||||
categoryLinkSource: "tag"
|
||||
}
|
||||
},
|
||||
arm_logging: {
|
||||
specPath: "static/arm-api/swagger-logging.json",
|
||||
outputDir: "docs/arm/swagger-logging",
|
||||
sidebarOptions: {
|
||||
groupPathsBy: "tag",
|
||||
categoryLinkSource: "tag"
|
||||
}
|
||||
},
|
||||
arm_provisioning: {
|
||||
specPath: "static/arm-api/swagger-provisioning.json",
|
||||
outputDir: "docs/arm/swagger-provisioning",
|
||||
sidebarOptions: {
|
||||
groupPathsBy: "tag",
|
||||
categoryLinkSource: "tag"
|
||||
}
|
||||
},
|
||||
arm_public: {
|
||||
specPath: "static/arm-api/swagger-public.json",
|
||||
outputDir: "docs/arm/swagger-public",
|
||||
sidebarOptions: {
|
||||
groupPathsBy: "tag",
|
||||
categoryLinkSource: "tag"
|
||||
}
|
||||
},
|
||||
arm_rulebook: {
|
||||
specPath: "static/arm-api/swagger-rulebook.json",
|
||||
outputDir: "docs/arm/swagger-rulebook",
|
||||
sidebarOptions: {
|
||||
groupPathsBy: "tag",
|
||||
categoryLinkSource: "tag"
|
||||
}
|
||||
},
|
||||
arm_scheduling: {
|
||||
specPath: "static/arm-api/swagger-scheduling.json",
|
||||
outputDir: "docs/arm/swagger-scheduling",
|
||||
sidebarOptions: {
|
||||
groupPathsBy: "tag",
|
||||
categoryLinkSource: "tag"
|
||||
}
|
||||
},
|
||||
arm_utilization_tracking: {
|
||||
specPath: "static/arm-api/swagger-utilization-tracking.json",
|
||||
outputDir: "docs/arm/swagger-utilization-tracking",
|
||||
sidebarOptions: {
|
||||
groupPathsBy: "tag",
|
||||
categoryLinkSource: "tag"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
|
||||
61
package-lock.json
generated
@@ -12,7 +12,7 @@
|
||||
"@docusaurus/preset-classic": "2.0.1",
|
||||
"@mdx-js/react": "^1.6.22",
|
||||
"clsx": "^1.1.1",
|
||||
"docusaurus-plugin-openapi-docs": "^1.1.6",
|
||||
"docusaurus-plugin-openapi-docs": "github:philip-ellis-sp/docusaurus-plugin-openapi-docs",
|
||||
"docusaurus-theme-openapi-docs": "^1.1.6",
|
||||
"prism-react-renderer": "^1.3.1",
|
||||
"react": "^17.0.2",
|
||||
@@ -2956,9 +2956,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@redocly/openapi-core": {
|
||||
"version": "1.0.0-beta.107",
|
||||
"resolved": "https://registry.npmjs.org/@redocly/openapi-core/-/openapi-core-1.0.0-beta.107.tgz",
|
||||
"integrity": "sha512-Hj/DQkPZiaa0L5s4Wu4mKYVkzjKccFudI350scUQ0wykNoXXaYf4Ny82UJdAH4JGfe7Uf5xRoNrpRmeMekj5Uw==",
|
||||
"version": "1.0.0-beta.108",
|
||||
"resolved": "https://registry.npmjs.org/@redocly/openapi-core/-/openapi-core-1.0.0-beta.108.tgz",
|
||||
"integrity": "sha512-4Lq7KB+XiBvVzpaY/M0a8qog/Zr8kGrvJbRW2z7Sk2Zpc/m+8LTuZbRh15eMoneVc13M9qbHFIRh3PG18g3Tng==",
|
||||
"dependencies": {
|
||||
"@redocly/ajv": "^8.6.5",
|
||||
"@types/node": "^14.11.8",
|
||||
@@ -5749,8 +5749,8 @@
|
||||
},
|
||||
"node_modules/docusaurus-plugin-openapi-docs": {
|
||||
"version": "1.1.8",
|
||||
"resolved": "https://registry.npmjs.org/docusaurus-plugin-openapi-docs/-/docusaurus-plugin-openapi-docs-1.1.8.tgz",
|
||||
"integrity": "sha512-A4xEN0dy9WCZavAvAoucEhlklWp8wI57bTlSytvWJWjsYa1qsxgpzOx9fLyUhzodI8XJmGJVHmrQgTi/TdMPiw==",
|
||||
"resolved": "git+ssh://git@github.com/philip-ellis-sp/docusaurus-plugin-openapi-docs.git#97f436d7433891365e758b92f274b03ca1e2738b",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@apidevtools/json-schema-ref-parser": "^9.0.9",
|
||||
"@docusaurus/mdx-loader": "2.0.1",
|
||||
@@ -5772,7 +5772,8 @@
|
||||
"slugify": "^1.6.5",
|
||||
"swagger2openapi": "^7.0.8",
|
||||
"url-template": "^3.0.0",
|
||||
"webpack": "^5.61.0"
|
||||
"webpack": "^5.61.0",
|
||||
"xml-formatter": "^2.6.1"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=14"
|
||||
@@ -14857,6 +14858,17 @@
|
||||
"node": ">=8"
|
||||
}
|
||||
},
|
||||
"node_modules/xml-formatter": {
|
||||
"version": "2.6.1",
|
||||
"resolved": "https://registry.npmjs.org/xml-formatter/-/xml-formatter-2.6.1.tgz",
|
||||
"integrity": "sha512-dOiGwoqm8y22QdTNI7A+N03tyVfBlQ0/oehAzxIZtwnFAHGeSlrfjF73YQvzSsa/Kt6+YZasKsrdu6OIpuBggw==",
|
||||
"dependencies": {
|
||||
"xml-parser-xo": "^3.2.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 10"
|
||||
}
|
||||
},
|
||||
"node_modules/xml-js": {
|
||||
"version": "1.6.11",
|
||||
"resolved": "https://registry.npmjs.org/xml-js/-/xml-js-1.6.11.tgz",
|
||||
@@ -14868,6 +14880,14 @@
|
||||
"xml-js": "bin/cli.js"
|
||||
}
|
||||
},
|
||||
"node_modules/xml-parser-xo": {
|
||||
"version": "3.2.0",
|
||||
"resolved": "https://registry.npmjs.org/xml-parser-xo/-/xml-parser-xo-3.2.0.tgz",
|
||||
"integrity": "sha512-8LRU6cq+d7mVsoDaMhnkkt3CTtAs4153p49fRo+HIB3I1FD1o5CeXRjRH29sQevIfVJIcPjKSsPU/+Ujhq09Rg==",
|
||||
"engines": {
|
||||
"node": ">= 10"
|
||||
}
|
||||
},
|
||||
"node_modules/xtend": {
|
||||
"version": "4.0.2",
|
||||
"resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz",
|
||||
@@ -17097,9 +17117,9 @@
|
||||
}
|
||||
},
|
||||
"@redocly/openapi-core": {
|
||||
"version": "1.0.0-beta.107",
|
||||
"resolved": "https://registry.npmjs.org/@redocly/openapi-core/-/openapi-core-1.0.0-beta.107.tgz",
|
||||
"integrity": "sha512-Hj/DQkPZiaa0L5s4Wu4mKYVkzjKccFudI350scUQ0wykNoXXaYf4Ny82UJdAH4JGfe7Uf5xRoNrpRmeMekj5Uw==",
|
||||
"version": "1.0.0-beta.108",
|
||||
"resolved": "https://registry.npmjs.org/@redocly/openapi-core/-/openapi-core-1.0.0-beta.108.tgz",
|
||||
"integrity": "sha512-4Lq7KB+XiBvVzpaY/M0a8qog/Zr8kGrvJbRW2z7Sk2Zpc/m+8LTuZbRh15eMoneVc13M9qbHFIRh3PG18g3Tng==",
|
||||
"requires": {
|
||||
"@redocly/ajv": "^8.6.5",
|
||||
"@types/node": "^14.11.8",
|
||||
@@ -19154,9 +19174,8 @@
|
||||
}
|
||||
},
|
||||
"docusaurus-plugin-openapi-docs": {
|
||||
"version": "1.1.8",
|
||||
"resolved": "https://registry.npmjs.org/docusaurus-plugin-openapi-docs/-/docusaurus-plugin-openapi-docs-1.1.8.tgz",
|
||||
"integrity": "sha512-A4xEN0dy9WCZavAvAoucEhlklWp8wI57bTlSytvWJWjsYa1qsxgpzOx9fLyUhzodI8XJmGJVHmrQgTi/TdMPiw==",
|
||||
"version": "git+ssh://git@github.com/philip-ellis-sp/docusaurus-plugin-openapi-docs.git#97f436d7433891365e758b92f274b03ca1e2738b",
|
||||
"from": "docusaurus-plugin-openapi-docs@github:philip-ellis-sp/docusaurus-plugin-openapi-docs",
|
||||
"requires": {
|
||||
"@apidevtools/json-schema-ref-parser": "^9.0.9",
|
||||
"@docusaurus/mdx-loader": "2.0.1",
|
||||
@@ -19178,7 +19197,8 @@
|
||||
"slugify": "^1.6.5",
|
||||
"swagger2openapi": "^7.0.8",
|
||||
"url-template": "^3.0.0",
|
||||
"webpack": "^5.61.0"
|
||||
"webpack": "^5.61.0",
|
||||
"xml-formatter": "^2.6.1"
|
||||
},
|
||||
"dependencies": {
|
||||
"fs-extra": {
|
||||
@@ -25627,6 +25647,14 @@
|
||||
"resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz",
|
||||
"integrity": "sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q=="
|
||||
},
|
||||
"xml-formatter": {
|
||||
"version": "2.6.1",
|
||||
"resolved": "https://registry.npmjs.org/xml-formatter/-/xml-formatter-2.6.1.tgz",
|
||||
"integrity": "sha512-dOiGwoqm8y22QdTNI7A+N03tyVfBlQ0/oehAzxIZtwnFAHGeSlrfjF73YQvzSsa/Kt6+YZasKsrdu6OIpuBggw==",
|
||||
"requires": {
|
||||
"xml-parser-xo": "^3.2.0"
|
||||
}
|
||||
},
|
||||
"xml-js": {
|
||||
"version": "1.6.11",
|
||||
"resolved": "https://registry.npmjs.org/xml-js/-/xml-js-1.6.11.tgz",
|
||||
@@ -25635,6 +25663,11 @@
|
||||
"sax": "^1.2.4"
|
||||
}
|
||||
},
|
||||
"xml-parser-xo": {
|
||||
"version": "3.2.0",
|
||||
"resolved": "https://registry.npmjs.org/xml-parser-xo/-/xml-parser-xo-3.2.0.tgz",
|
||||
"integrity": "sha512-8LRU6cq+d7mVsoDaMhnkkt3CTtAs4153p49fRo+HIB3I1FD1o5CeXRjRH29sQevIfVJIcPjKSsPU/+Ujhq09Rg=="
|
||||
},
|
||||
"xtend": {
|
||||
"version": "4.0.2",
|
||||
"resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz",
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
"@docusaurus/preset-classic": "2.0.1",
|
||||
"@mdx-js/react": "^1.6.22",
|
||||
"clsx": "^1.1.1",
|
||||
"docusaurus-plugin-openapi-docs": "^1.1.6",
|
||||
"docusaurus-plugin-openapi-docs": "github:philip-ellis-sp/docusaurus-plugin-openapi-docs",
|
||||
"docusaurus-theme-openapi-docs": "^1.1.6",
|
||||
"prism-react-renderer": "^1.3.1",
|
||||
"react": "^17.0.2",
|
||||
|
||||
@@ -1,3 +1,7 @@
|
||||
---
|
||||
id: authentication
|
||||
slug: /docs/getting-started/authentication
|
||||
---
|
||||
# Authentication
|
||||
|
||||
## Quick Start
|
||||
|
Before Width: | Height: | Size: 70 KiB After Width: | Height: | Size: 70 KiB |
|
Before Width: | Height: | Size: 92 KiB After Width: | Height: | Size: 92 KiB |
@@ -1,3 +1,9 @@
|
||||
---
|
||||
id: 01-getting-started
|
||||
slug: /docs/getting-started
|
||||
title: Getting Started
|
||||
---
|
||||
|
||||
# Getting Started with SailPoint APIs
|
||||
|
||||
## Finding your Org/Tenant Name
|
||||
@@ -1,3 +1,7 @@
|
||||
---
|
||||
id: standard-collection-parameters
|
||||
slug: /docs/getting-started/standard-collection-parameters
|
||||
---
|
||||
# Standard Collection Parameters
|
||||
|
||||
Many collection endpoints in the IdentityNow APIs support a generic syntax for paginating, filtering
|
||||
@@ -1,11 +1,9 @@
|
||||
---
|
||||
id: access-request-dynamic-approval-event-trigger
|
||||
title: Access Request Dynamic Approval Event Trigger
|
||||
sidebar_label: Access Request Dynamic Approval Event Trigger
|
||||
sidebar-position: 2
|
||||
id: access-request-dynamic-approval
|
||||
slug: /docs/event-triggers/access-request-dynamic-approval
|
||||
---
|
||||
|
||||
# Access Request Dynamic Approval Event Trigger
|
||||
# Access Request Dynamic Approval
|
||||
|
||||
## Event context
|
||||
|
||||
@@ -29,9 +27,9 @@ This trigger can be used to develop logic outside of IdentityNow’s out-of-the-
|
||||
|
||||
## Configuration
|
||||
|
||||
This is a `REQUEST_RESPONSE` type trigger. For general information on how to respond to a `REQUEST_RESPONSE` type trigger, see [responding to a request response type trigger](../event-triggers-responding-to-a-request-response-trigger.md). This trigger intercepts newly submitted access requests and allows the subscribing service to add one additional identity or governance group as the last step in the approver list for the access request.
|
||||
This is a `REQUEST_RESPONSE` type trigger . For general information on how to respond to a `REQUEST_RESPONSE` type trigger, see [responding to a request response type trigger](./getting-started/responding-to-a-request-response-trigger.md) . This trigger intercepts newly submitted access requests and allows the subscribing service to add one additional identity or governance group as the last step in the approver list for the access request.
|
||||
|
||||
The subscribing service will receive the following input from the trigger service. The input schema can be found in the [API specification](https://developer.sailpoint.com/apis/beta/#section/Access-Request-Dynamic-Approver-Event-Trigger-Input):
|
||||
The subscribing service will receive the following input from the trigger service . The input schema can be found in the [API specification](https://developer.sailpoint.com/apis/beta/#section/Access-Request-Dynamic-Approver-Event-Trigger-Input):
|
||||
|
||||
```json
|
||||
{
|
||||
@@ -59,7 +57,7 @@ The subscribing service will receive the following input from the trigger servic
|
||||
}
|
||||
```
|
||||
|
||||
The subscribing service can use this information to make a decision on whether to add additional approvers to the access request. The output schema can be found in the [API specification](https://developer.sailpoint.com/apis/beta/#section/Access-Request-Dynamic-Approver-Event-Trigger-Output). To add an identity to the approver list, the subscribing service should respond to the event trigger with the following payload:
|
||||
The subscribing service can use this information to make a decision on whether to add additional approvers to the access request . The output schema can be found in the [API specification](https://developer.sailpoint.com/apis/beta/#section/Access-Request-Dynamic-Approver-Event-Trigger-Output) . To add an identity to the approver list, the subscribing service should respond to the event trigger with the following payload:
|
||||
|
||||
```json
|
||||
{
|
||||
@@ -1,11 +1,9 @@
|
||||
---
|
||||
id: access-request-postapproval-trigger
|
||||
title: Access Request Postapproval Trigger
|
||||
sidebar_label: Access Request Postapproval Trigger
|
||||
sidebar-position: 3
|
||||
id: access-request-postapproval
|
||||
slug: /docs/event-triggers/access-request-postapproval
|
||||
---
|
||||
|
||||
# Access Request Postapproval Trigger
|
||||
# Access Request Postapproval
|
||||
|
||||
## Event context
|
||||
|
||||
@@ -1,11 +1,9 @@
|
||||
---
|
||||
id: access-request-preapproval-event-trigger
|
||||
title: Access Request Preapproval Event Trigger
|
||||
sidebar_label: Access Request Preapproval Event Trigger
|
||||
sidebar-position: 4
|
||||
id: access-request-preapproval
|
||||
slug: /docs/event-triggers/access-request-preapproval
|
||||
---
|
||||
|
||||
# Access Request Preapproval Event Trigger
|
||||
# Access Request Preapproval
|
||||
|
||||
## Event context
|
||||
|
||||
@@ -1,8 +1,6 @@
|
||||
---
|
||||
id: account-aggregation-completed
|
||||
title: Account Aggregation Completed
|
||||
sidebar_label: Account Aggregation Completed
|
||||
sidebar-position: 5
|
||||
slug: /docs/event-triggers/account-aggregation-completed
|
||||
---
|
||||
|
||||
# Account Aggregation Completed
|
||||
@@ -1,11 +1,9 @@
|
||||
---
|
||||
id: identity-attribute-changed-event-trigger
|
||||
title: Identity Attribute Changed Event Trigger
|
||||
sidebar_label: Identity Attribute Changed Event Trigger
|
||||
sidebar-position: 6
|
||||
id: identity-attribute-changed
|
||||
slug: /docs/event-triggers/identity-attribute-changed
|
||||
---
|
||||
|
||||
# Identity Attribute Changed Event Trigger
|
||||
# Identity Attribute Changed
|
||||
|
||||
## Event context
|
||||
|
||||
@@ -1,11 +1,9 @@
|
||||
---
|
||||
id: identity-created-event-trigger
|
||||
title: Identity Created Event Trigger
|
||||
sidebar_label: Identity Created Event Trigger
|
||||
sidebar-position: 7
|
||||
id: identity-created
|
||||
slug: /docs/event-triggers/identity-created
|
||||
---
|
||||
|
||||
# Identity Created Event Trigger
|
||||
# Identity Created
|
||||
|
||||
## Event context
|
||||
|
||||
|
Before Width: | Height: | Size: 31 KiB After Width: | Height: | Size: 31 KiB |
|
Before Width: | Height: | Size: 38 KiB After Width: | Height: | Size: 38 KiB |
|
Before Width: | Height: | Size: 61 KiB After Width: | Height: | Size: 61 KiB |
|
Before Width: | Height: | Size: 135 KiB After Width: | Height: | Size: 135 KiB |
|
Before Width: | Height: | Size: 100 KiB After Width: | Height: | Size: 100 KiB |
|
Before Width: | Height: | Size: 107 KiB After Width: | Height: | Size: 107 KiB |
|
Before Width: | Height: | Size: 123 KiB After Width: | Height: | Size: 123 KiB |
|
Before Width: | Height: | Size: 123 KiB After Width: | Height: | Size: 123 KiB |
|
Before Width: | Height: | Size: 97 KiB After Width: | Height: | Size: 97 KiB |
|
Before Width: | Height: | Size: 73 KiB After Width: | Height: | Size: 73 KiB |
|
Before Width: | Height: | Size: 87 KiB After Width: | Height: | Size: 87 KiB |
|
Before Width: | Height: | Size: 90 KiB After Width: | Height: | Size: 90 KiB |
|
Before Width: | Height: | Size: 56 KiB After Width: | Height: | Size: 56 KiB |
|
Before Width: | Height: | Size: 70 KiB After Width: | Height: | Size: 70 KiB |
|
Before Width: | Height: | Size: 71 KiB After Width: | Height: | Size: 71 KiB |
|
Before Width: | Height: | Size: 82 KiB After Width: | Height: | Size: 82 KiB |
|
Before Width: | Height: | Size: 114 KiB After Width: | Height: | Size: 114 KiB |
|
Before Width: | Height: | Size: 32 KiB After Width: | Height: | Size: 32 KiB |
|
Before Width: | Height: | Size: 38 KiB After Width: | Height: | Size: 38 KiB |
|
Before Width: | Height: | Size: 40 KiB After Width: | Height: | Size: 40 KiB |
|
Before Width: | Height: | Size: 22 KiB After Width: | Height: | Size: 22 KiB |
@@ -1,11 +1,9 @@
|
||||
---
|
||||
id: provisioning-action-completed-trigger
|
||||
title: Provisioning Action Completed Trigger
|
||||
sidebar_label: Provisioning Action Completed Trigger
|
||||
sidebar-position: 8
|
||||
id: provisioning-action-completed
|
||||
slug: /docs/event-triggers/provisioning-action-completed
|
||||
---
|
||||
|
||||
# Provisioning Action Completed Trigger
|
||||
# Provisioning Action Completed
|
||||
|
||||
## Event context
|
||||
|
||||
@@ -1,8 +1,6 @@
|
||||
---
|
||||
id: saved-search-completed
|
||||
title: Saved Search Completed
|
||||
sidebar_label: Saved Search Completed
|
||||
sidebar-position: 9
|
||||
slug: /docs/event-triggers/saved-search-completed
|
||||
---
|
||||
|
||||
# Saved Search Completed
|
||||
@@ -1,10 +1,9 @@
|
||||
---
|
||||
id: source-created-trigger
|
||||
title: Source Created Trigger
|
||||
sidebar_label: Source Created Trigger
|
||||
id: source-created
|
||||
slug: /docs/event-triggers/source-created
|
||||
---
|
||||
|
||||
# Source Created Trigger
|
||||
# Source Created
|
||||
|
||||
## Event context
|
||||
|
||||
@@ -1,10 +1,9 @@
|
||||
---
|
||||
id: source-deleted-trigger
|
||||
title: Source Deleted Trigger
|
||||
sidebar_label: Source Deleted Trigger
|
||||
id: source-deleted
|
||||
slug: /docs/event-triggers/source-deleted
|
||||
---
|
||||
|
||||
# Source Deleted Trigger
|
||||
# Source Deleted
|
||||
|
||||
## Event context
|
||||
|
||||
@@ -1,10 +1,9 @@
|
||||
---
|
||||
id: source-updated-trigger
|
||||
title: Source Updated Trigger
|
||||
sidebar_label: Source Updated Trigger
|
||||
id: source-updated
|
||||
slug: /docs/event-triggers/source-updated
|
||||
---
|
||||
|
||||
# Source Updated Trigger
|
||||
# Source Updated
|
||||
|
||||
## Event context
|
||||
|
||||
@@ -1,11 +1,9 @@
|
||||
---
|
||||
id: va-cluster-status-change-event-trigger
|
||||
title: VA Cluster Status Change Event
|
||||
sidebar_label: VA Cluster Status Change Event
|
||||
sidebar-position: 10
|
||||
id: va-cluster-status-change
|
||||
slug: /docs/event-triggers/va-cluster-status-change
|
||||
---
|
||||
|
||||
# VA Cluster Status Change Event
|
||||
# VA Cluster Status Change
|
||||
|
||||
## Event context
|
||||
|
||||
@@ -1,10 +1,9 @@
|
||||
---
|
||||
id: identity-deleted-event-trigger
|
||||
title: Identity Deleted Event Trigger
|
||||
sidebar_label: Identity Deleted Event Trigger
|
||||
id: identity-deleted
|
||||
slug: /docs/event-triggers/early-access/va-cluster-status-change
|
||||
---
|
||||
|
||||
# Identity Deleted Event Trigger
|
||||
# Identity Deleted
|
||||
|
||||
## Event context
|
||||
|
||||
|
Before Width: | Height: | Size: 94 KiB After Width: | Height: | Size: 94 KiB |
@@ -1,10 +1,9 @@
|
||||
---
|
||||
id: source-account-created-trigger
|
||||
title: Source Account Created Trigger
|
||||
sidebar_label: Source Account Created Trigger
|
||||
id: source-account-created
|
||||
slug: /docs/event-triggers/early-access/source-account-created
|
||||
---
|
||||
|
||||
# Source Account Created Trigger
|
||||
# Source Account Created
|
||||
|
||||
## Event context
|
||||
|
||||
@@ -1,10 +1,9 @@
|
||||
---
|
||||
id: source-account-deleted-trigger
|
||||
title: Source Account Deleted Trigger
|
||||
sidebar_label: Source Account Deleted Trigger
|
||||
id: source-account-deleted
|
||||
slug: /docs/event-triggers/early-access/source-account-deleted
|
||||
---
|
||||
|
||||
# Source Account Deleted Trigger
|
||||
# Source Account Deleted
|
||||
|
||||
## Event context
|
||||
|
||||
@@ -1,10 +1,9 @@
|
||||
---
|
||||
id: source-account-updated-trigger
|
||||
title: Source Account Updated Trigger
|
||||
sidebar_label: Source Account Updated Trigger
|
||||
id: source-account-updated
|
||||
slug: /docs/event-triggers/early-access/source-account-updated
|
||||
---
|
||||
|
||||
# Source Account Updated Trigger
|
||||
# Source Account Updated
|
||||
|
||||
## Event context
|
||||
|
||||
@@ -1,11 +1,10 @@
|
||||
---
|
||||
id: event-triggers-overview
|
||||
title: Overview
|
||||
sidebar_label: Overview
|
||||
sidebar_position: 1
|
||||
id: event-triggers
|
||||
slug: /docs/event-triggers/getting-started
|
||||
title: Event Triggers
|
||||
---
|
||||
|
||||
# Overview
|
||||
# Getting Started
|
||||
|
||||
## What are triggers
|
||||
|
||||
@@ -1,8 +1,6 @@
|
||||
---
|
||||
id: event-triggers-filtering-events
|
||||
title: Filtering Events
|
||||
sidebar_label: Filtering Events
|
||||
sidebar_position: 5
|
||||
id: filtering-events
|
||||
slug: /docs/event-triggers/getting-started/filtering-events
|
||||
---
|
||||
|
||||
# Filtering Events
|
||||
|
Before Width: | Height: | Size: 78 KiB After Width: | Height: | Size: 78 KiB |
|
Before Width: | Height: | Size: 365 KiB After Width: | Height: | Size: 365 KiB |
|
Before Width: | Height: | Size: 410 KiB After Width: | Height: | Size: 410 KiB |
|
Before Width: | Height: | Size: 114 KiB After Width: | Height: | Size: 114 KiB |
|
Before Width: | Height: | Size: 83 KiB After Width: | Height: | Size: 83 KiB |
|
Before Width: | Height: | Size: 75 KiB After Width: | Height: | Size: 75 KiB |
|
Before Width: | Height: | Size: 86 KiB After Width: | Height: | Size: 86 KiB |
|
Before Width: | Height: | Size: 192 KiB After Width: | Height: | Size: 192 KiB |
|
Before Width: | Height: | Size: 103 KiB After Width: | Height: | Size: 103 KiB |
|
Before Width: | Height: | Size: 128 KiB After Width: | Height: | Size: 128 KiB |
@@ -1,8 +1,6 @@
|
||||
---
|
||||
id: event-triggers-preparing-a-subscriber-service
|
||||
title: Preparing a Subscriber Service
|
||||
sidebar_label: Preparing a Subscriber Service
|
||||
sidebar_position: 3
|
||||
id: preparing-a-subscriber-service
|
||||
slug: /docs/event-triggers/getting-started/preparing-a-subscriber-service
|
||||
---
|
||||
|
||||
# Preparing a Subscriber Service
|
||||
@@ -1,8 +1,6 @@
|
||||
---
|
||||
id: event-triggers-responding-to-request-response
|
||||
title: Responding to a Request Response Trigger
|
||||
sidebar_label: Responding to a Request Response Trigger
|
||||
sidebar_position: 8
|
||||
id: responding-to-request-response
|
||||
slug: /docs/event-triggers/getting-started/responding-to-request-response
|
||||
---
|
||||
|
||||
# Responding to a Request Response Trigger
|
||||
@@ -1,8 +1,6 @@
|
||||
---
|
||||
id: event-triggers-subscribing-to-a-trigger
|
||||
title: Subscribing to a Trigger
|
||||
sidebar_label: Subscribing to a Trigger
|
||||
sidebar_position: 4
|
||||
id: subscribing-to-a-trigger
|
||||
slug: /docs/event-triggers/getting-started/subscribing-to-a-trigger
|
||||
---
|
||||
|
||||
# Subscribing to a Trigger
|
||||
@@ -1,8 +1,6 @@
|
||||
---
|
||||
id: event-triggers-testing-triggers
|
||||
title: Testing Triggers
|
||||
sidebar_label: Testing Triggers
|
||||
sidebar_position: 6
|
||||
id: testing-triggers
|
||||
slug: /docs/event-triggers/getting-started/testing-triggers
|
||||
---
|
||||
|
||||
# Testing Triggers
|
||||
@@ -1,8 +1,6 @@
|
||||
---
|
||||
id: event-triggers-trigger-types
|
||||
title: Trigger Types
|
||||
sidebar_label: Trigger Types
|
||||
sidebar_position: 2
|
||||
id: trigger-types
|
||||
slug: /docs/event-triggers/getting-started/trigger-types
|
||||
---
|
||||
|
||||
# Trigger Types
|
||||
|
Before Width: | Height: | Size: 238 KiB After Width: | Height: | Size: 238 KiB |
|
Before Width: | Height: | Size: 223 KiB After Width: | Height: | Size: 223 KiB |
@@ -1,3 +1,4 @@
|
||||
|
||||
# Overview
|
||||
|
||||
This is a guide on using the SailPoint SaaS Configuration APIs in order to import and export configurations from the SailPoint SaaS system. This is intended to be used to get configurations in bulk in support of environmental promotion, go-live, or tenant-to-tenant configuration management processes and pipelines.
|
||||
@@ -0,0 +1,6 @@
|
||||
|
||||
# SaaS Configuration
|
||||
|
||||
This is a guide on using the SailPoint SaaS Configuration APIs in order to import and export configurations from the SailPoint SaaS system. This is intended to be used to get configurations in bulk in support of environmental promotion, go-live, or tenant-to-tenant configuration management processes and pipelines.
|
||||
|
||||
For more details around how to manage configurations, refer to [SailPoint SaaS Change Management and Deployment Best Practices](https://community.sailpoint.com/t5/IdentityNow-Articles/SailPoint-SaaS-Change-Management-and-Deployment-Best-Practices/ta-p/189871).
|
||||
@@ -1,3 +1,8 @@
|
||||
---
|
||||
id: cli-common-commands
|
||||
slug: /docs/saas-connectivity/getting-started/cli-common-commands
|
||||
sidebar_position: 3
|
||||
---
|
||||
# Common CLI/SDK Commands
|
||||
|
||||
- **Development**
|
||||
@@ -1,3 +1,8 @@
|
||||
---
|
||||
id: cli
|
||||
slug: /docs/saas-connectivity/getting-started/cli
|
||||
sidebar_position: 1
|
||||
---
|
||||
# Getting Started with the CLI
|
||||
|
||||
> 📘 **Currently in Beta**
|
||||
@@ -1,4 +1,9 @@
|
||||
# Test, Build and Deploy Using the CLI
|
||||
---
|
||||
id: cli-test-build-deploy
|
||||
slug: /docs/saas-connectivity/getting-started/cli-test-build-deploy
|
||||
sidebar_position: 2
|
||||
---
|
||||
# Test, Build, and Deploy Using the CLI
|
||||
## Testing Your Connector
|
||||
|
||||
You can use the following Postman Collection file to locally run tests for each of the commands.
|
||||
@@ -1,3 +1,7 @@
|
||||
---
|
||||
id: account-create
|
||||
slug: /docs/saas-connectivity/commands/account-create
|
||||
---
|
||||
# Account Create
|
||||
|
||||
| Input/Output | Data Type |
|
||||
@@ -50,7 +54,7 @@ The account create command accepts a provisioning plan from IDN and creates the
|
||||
|
||||
You can create the provisioning plan through the ```accountCreateTemplate``` in the ```connector-spec.json``` file, and you can also modify its behavior in IDN using the create profile screen:
|
||||
|
||||

|
||||

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

|
||||

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

|
||||

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

|
||||

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

|
||||

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

|
||||

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

|
||||

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

|
||||

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

|
||||

|
||||
@@ -1,3 +1,7 @@
|
||||
---
|
||||
id: account-enable
|
||||
slug: /docs/saas-connectivity/commands/account-enable
|
||||
---
|
||||
# Account Enable/Disable
|
||||
|
||||
| Input/Output | Data Type |
|
||||
@@ -1,3 +1,7 @@
|
||||
---
|
||||
id: account-list
|
||||
slug: /docs/saas-connectivity/commands/account-list
|
||||
---
|
||||
# Account List
|
||||
|
||||
| Input/Output | Data Type |
|
||||
@@ -30,7 +34,7 @@
|
||||
## 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.
|
||||
|
||||

|
||||

|
||||
|
||||
## Implementation
|
||||
For you to be able to implement this endpoint, the web service must expose an API for listing user accounts and entitlements (i.e. roles or groups). Sometimes, a target source’s API has a single endpoint providing all the attributes and entitlements a source account contains. However, some APIs may break these attributes and entitlements into separate API endpoints, requiring you to make multiple calls to gather all an account's necessary data. The following code from [airtable.ts](https://github.com/sailpoint-oss/airtable-example-connector/blob/main/src/airtable.ts) shows the necessary steps to create a complete account from the various endpoints the API offers:
|
||||
@@ -1,3 +1,7 @@
|
||||
---
|
||||
id: account-read
|
||||
slug: /docs/saas-connectivity/commands/account-read
|
||||
---
|
||||
# Account Read
|
||||
|
||||
| Input/Output | Data Type |
|
||||
@@ -37,7 +41,7 @@
|
||||
## 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.
|
||||
|
||||

|
||||

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

|
||||

|
||||
|
||||
## Defining the Schema
|
||||
The entitlement schema is defined in the [connector-spec.json](https://github.com/sailpoint-oss/airtable-example-connector/blob/main/connector-spec.json) file. Currently, only the multi-valued “group” type is supported. The following values are the minimum requirements, but you can add more attributes.
|
||||
@@ -1,3 +1,7 @@
|
||||
---
|
||||
id: entitlement-read
|
||||
slug: /docs/saas-connectivity/commands/entitlement-read
|
||||
---
|
||||
# Entitlement Read
|
||||
|
||||
>📘 At this time Entitlement Read is not triggered from IDN for any specific workflow and as such it is not necessary to implement this in order to have a fully functional connector.
|
||||
|
Before Width: | Height: | Size: 39 KiB After Width: | Height: | Size: 39 KiB |
|
Before Width: | Height: | Size: 129 KiB After Width: | Height: | Size: 129 KiB |
|
Before Width: | Height: | Size: 131 KiB After Width: | Height: | Size: 131 KiB |
|
Before Width: | Height: | Size: 42 KiB After Width: | Height: | Size: 42 KiB |
|
Before Width: | Height: | Size: 94 KiB After Width: | Height: | Size: 94 KiB |
|
Before Width: | Height: | Size: 80 KiB After Width: | Height: | Size: 80 KiB |
|
Before Width: | Height: | Size: 37 KiB After Width: | Height: | Size: 37 KiB |
|
Before Width: | Height: | Size: 121 KiB After Width: | Height: | Size: 121 KiB |
|
Before Width: | Height: | Size: 484 KiB After Width: | Height: | Size: 484 KiB |
|
Before Width: | Height: | Size: 132 KiB After Width: | Height: | Size: 132 KiB |
|
Before Width: | Height: | Size: 133 KiB After Width: | Height: | Size: 133 KiB |
|
Before Width: | Height: | Size: 108 KiB After Width: | Height: | Size: 108 KiB |
|
Before Width: | Height: | Size: 94 KiB After Width: | Height: | Size: 94 KiB |
@@ -1,3 +1,7 @@
|
||||
---
|
||||
id: test-connection
|
||||
slug: /docs/saas-connectivity/commands/test-connection
|
||||
---
|
||||
# Test Connection
|
||||
|
||||
| Input/Output | Data Type |
|
||||
@@ -15,7 +19,7 @@ The test connection command ensures the connector can communicate with the targe
|
||||
|
||||
Use ‘Test Connection’ in the IDN UI after an admin has finished entering configuration information for a new instance of the connector.
|
||||
|
||||

|
||||

|
||||
|
||||
## Implementation
|
||||
In [index.ts](https://github.com/sailpoint-oss/airtable-example-connector/blob/main/src/index.ts), add the test connection function handler to your connector. Within this function, send a simple request to your web service to ensure the connection works. The web service this connector targets has a JavaScript SDK, so define your own function like the following example to test the connection:
|
||||