From b6df70740c9e277245e073624468f184eb1bcdad Mon Sep 17 00:00:00 2001 From: Tyler Mairose Date: Sun, 21 Jul 2024 19:07:37 -0400 Subject: [PATCH 1/5] API Versioning Changes --- .gitignore | 1 + createApiPageMD.ts | 105 ++++++++++++++ navbar.js | 11 +- package.json | 5 +- plugins.js | 52 ++++++- sidebars.js | 336 +++++++++++++++++++++++++++++---------------- src/css/custom.css | 36 ++++- 7 files changed, 422 insertions(+), 124 deletions(-) create mode 100644 createApiPageMD.ts diff --git a/.gitignore b/.gitignore index 12dfb57af..2eea48391 100644 --- a/.gitignore +++ b/.gitignore @@ -33,6 +33,7 @@ yarn.lock /docs/api/beta /docs/api/iiq /docs/api/nerm/* +/docs/api/v2024/* !/docs/api/nerm/authentication.md !/docs/api/nerm/pagination-metadata-filtering.md !/docs/api/nerm/getting-started.md diff --git a/createApiPageMD.ts b/createApiPageMD.ts new file mode 100644 index 000000000..3e053b7dc --- /dev/null +++ b/createApiPageMD.ts @@ -0,0 +1,105 @@ +import { createAuthentication } from "docusaurus-plugin-openapi-docs/src/markdown/createAuthentication"; +import { createAuthorization } from "docusaurus-plugin-openapi-docs/src/markdown/createAuthorization"; +import { createCallbacks } from "docusaurus-plugin-openapi-docs/src/markdown/createCallbacks"; +import { createContactInfo } from "docusaurus-plugin-openapi-docs/src/markdown/createContactInfo"; +import { createDeprecationNotice } from "docusaurus-plugin-openapi-docs/src/markdown/createDeprecationNotice"; +import { createDescription } from "docusaurus-plugin-openapi-docs/src/markdown/createDescription"; +import { createDownload } from "docusaurus-plugin-openapi-docs/src/markdown/createDownload"; +import { createHeading } from "docusaurus-plugin-openapi-docs/src/markdown/createHeading"; +import { createLicense } from "docusaurus-plugin-openapi-docs/src/markdown/createLicense"; +import { createLogo } from "docusaurus-plugin-openapi-docs/src/markdown/createLogo"; +import { createMethodEndpoint } from "docusaurus-plugin-openapi-docs/src/markdown/createMethodEndpoint"; +import { createParamsDetails } from "docusaurus-plugin-openapi-docs/src/markdown/createParamsDetails"; +import { createRequestBodyDetails } from "docusaurus-plugin-openapi-docs/src/markdown/createRequestBodyDetails"; +import { createRequestHeader } from "docusaurus-plugin-openapi-docs/src/markdown/createRequestHeader"; +import { createNodes } from "docusaurus-plugin-openapi-docs/src/markdown/createSchema"; +import { createStatusCodes } from "docusaurus-plugin-openapi-docs/src/markdown/createStatusCodes"; +import { createTermsOfService } from "docusaurus-plugin-openapi-docs/src/markdown/createTermsOfService"; +import { createVendorExtensions } from "docusaurus-plugin-openapi-docs/src/markdown/createVendorExtensions"; +import { createVersionBadge } from "docusaurus-plugin-openapi-docs/src/markdown/createVersionBadge"; +import { create, greaterThan, lessThan, render } from "docusaurus-plugin-openapi-docs/src/markdown/utils"; +import { + ContactObject, + LicenseObject, + MediaTypeObject, + SecuritySchemeObject, +} from "docusaurus-plugin-openapi-docs/src/openapi/types"; +import { + ApiPageMetadata, + InfoPageMetadata, + SchemaPageMetadata, + TagPageMetadata, +} from "docusaurus-plugin-openapi-docs/src/types"; + +interface RequestBodyProps { + title: string; + body: { + content?: { + [key: string]: MediaTypeObject; + }; + description?: string; + required?: boolean; + }; +} + +export function createApiPageMD({ + title, + api: { + deprecated, + "x-deprecated-description": deprecatedDescription, + description, + method, + path, + extensions, + parameters, + requestBody, + responses, + callbacks, + }, + infoPath, + frontMatter, +}: ApiPageMetadata) { + return render([ + `import ApiTabs from "@theme/ApiTabs";\n`, + `import DiscriminatorTabs from "@theme/DiscriminatorTabs";\n`, + `import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint";\n`, + `import SecuritySchemes from "@theme/ApiExplorer/SecuritySchemes";\n`, + `import MimeTabs from "@theme/MimeTabs";\n`, + `import ParamsItem from "@theme/ParamsItem";\n`, + `import ResponseSamples from "@theme/ResponseSamples";\n`, + `import SchemaItem from "@theme/SchemaItem";\n`, + `import SchemaTabs from "@theme/SchemaTabs";\n`, + `import Markdown from "@theme/Markdown";\n`, + `import Heading from "@theme/Heading";\n`, + `import OperationTabs from "@theme/OperationTabs";\n`, + `import TabItem from "@theme/TabItem";\n\n`, + createHeading(title), + createMethodEndpoint(method, path), + infoPath && createAuthorization(infoPath), + frontMatter.show_extensions + ? createVendorExtensions(extensions) + : undefined, + createDeprecationNotice({ deprecated, description: deprecatedDescription }), + createExperimentalNotice(parameters), + createDescription(description), + requestBody || parameters ? createRequestHeader("Request") : undefined, + createParamsDetails({ parameters, type: "path" }), + createParamsDetails({ parameters, type: "query" }), + createParamsDetails({ parameters, type: "header" }), + createParamsDetails({ parameters, type: "cookie" }), + createRequestBodyDetails({ + title: "Body", + body: requestBody, + } as RequestBodyProps), + createStatusCodes({ responses }), + createCallbacks({ callbacks }), + ]); +} + +function createExperimentalNotice(parameters){ + if (parameters && parameters.some(element => element.in === 'header' && element.name === 'X-SailPoint-Experimental')) { + return ":::warning experimental\n\nThis API is currently in an experimental state. The API is subject to change based on feedback and further testing. You must include the X-SailPoint-Experimental header and set it to `true` to use this endpoint.\n\n:::\n\n"; + } + // Return an empty string if the condition is not met + return ""; +} \ No newline at end of file diff --git a/navbar.js b/navbar.js index 09b10c65b..6d7803f3d 100644 --- a/navbar.js +++ b/navbar.js @@ -15,7 +15,16 @@ module.exports = { {label: 'IdentityIQ', to: '/docs/iiq'}, ], }, - + { + type: 'dropdown', + label: 'API Specifications', + position: 'left', + items: [ + {label: 'Identity Security Cloud', to: '/docs/api/v2024'}, + {label: 'IdentityIQ', to: '/docs/api/iiq'}, + {label: 'NERM', to: '/docs/api/nerm/v1'}, + ], + }, { type: 'dropdown', label: 'Community', diff --git a/package.json b/package.json index 5c52d9dfe..a818369f2 100644 --- a/package.json +++ b/package.json @@ -18,7 +18,10 @@ "clean-api-docs:version": "docusaurus clean-api-docs:version", "gen-api-docs-all": "docusaurus gen-api-docs idn_v3 --plugin-id idn-api && docusaurus gen-api-docs idn_beta --plugin-id idn-api && docusaurus gen-api-docs iiq --plugin-id iiq-api && docusaurus gen-api-docs nerm --plugin-id nerm-api", "clean-api-docs-all": "docusaurus clean-api-docs idn_v3 --plugin-id idn-api && docusaurus clean-api-docs idn_beta --plugin-id idn-api && docusaurus clean-api-docs iiq --plugin-id iiq-api && docusaurus clean-api-docs nerm --plugin-id nerm-api", - "rebuild-docs": "npm run clean-api-docs-all && npm run gen-api-docs-all" + "rebuild-docs": "npm run clean-api-docs-all && npm run gen-api-docs-all", + "gen-versioned": "docusaurus gen-api-docs:version isc_versioned:all --plugin-id isc-api && docusaurus gen-api-docs iiq --plugin-id iiq-api && docusaurus gen-api-docs nerm --plugin-id nerm-api", + "clean-versioned": "docusaurus clean-api-docs isc_versioned --plugin-id isc-api && docusaurus clean-api-docs:version isc_versioned:all --plugin-id isc-api && docusaurus clean-api-docs iiq --plugin-id iiq-api && docusaurus clean-api-docs nerm --plugin-id nerm-api", + "rebuild-versioned": "npm run clean-versioned && npm run gen-versioned" }, "dependencies": { "@docusaurus/plugin-client-redirects": "3.4.0", diff --git a/plugins.js b/plugins.js index 88d1f4709..9d9711ed5 100644 --- a/plugins.js +++ b/plugins.js @@ -1,3 +1,5 @@ +const {createApiPageMD} = require('./createApiPageMD'); + module.exports = [ [ 'docusaurus2-dotenv', @@ -1619,6 +1621,52 @@ module.exports = [ }, }, ], + [ + 'docusaurus-plugin-openapi-docs', + { + id: 'isc-api', + docsPluginId: 'isc', + config: { + isc_versioned: { + specPath: 'static/api-specs/idn/sailpoint-api.v2024.yaml', + outputDir: 'docs/api/v2024', + sidebarOptions: { + groupPathsBy: 'tag', + categoryLinkSource: 'tag', + }, + version: 'v2024', + label: 'v2024', + baseUrl: '/docs/api/v2024', + template: 'api.mustache', + markdownGenerators: { + createApiPageMD, + }, + versions: { + // v2025: { + // specPath: 'static/api-specs/idn/sailpoint-api.v2025.yaml', + // outputDir: 'docs/api/v2025', + // label: 'v2025', + // baseUrl: '/docs/api/v2025', + // }, + v3: { + specPath: 'static/api-specs/idn/sailpoint-api.v3.yaml', + outputDir: 'docs/api/v3', + downloadUrl: 'https://raw.githubusercontent.com/sailpoint-oss/api-specs/main/dereferenced/deref-sailpoint-api.v3.yaml', + label: 'v3', + baseUrl: '/docs/api/v3', + }, + beta: { + specPath: 'static/api-specs/idn/sailpoint-api.beta.yaml', + outputDir: 'docs/api/beta', + downloadUrl: 'https://raw.githubusercontent.com/sailpoint-oss/api-specs/main/dereferenced/deref-sailpoint-api.beta.yaml', + label: 'Beta', + baseUrl: '/docs/api/beta', + }, + }, + }, + }, + }, + ], [ 'docusaurus-plugin-openapi-docs', { @@ -1660,7 +1708,7 @@ module.exports = [ }, ], [ - "@gracefullight/docusaurus-plugin-microsoft-clarity", - { projectId: "naher5vlxx" }, + '@gracefullight/docusaurus-plugin-microsoft-clarity', + {projectId: 'naher5vlxx'}, ], ]; diff --git a/sidebars.js b/sidebars.js index e54bad64c..0f5e70793 100644 --- a/sidebars.js +++ b/sidebars.js @@ -1,3 +1,9 @@ +const versions = require("./docs/api/v2024/versions.json"); +const { + versionSelector, + versionCrumb, +} = require("docusaurus-plugin-openapi-docs/lib/sidebars/utils"); + const sidebars = { openApiSidebar: [ { @@ -9,124 +15,6 @@ const sidebars = { id: 'docs', }, items: [ - { - type: 'category', - label: 'API Specifications', - collapsible: false, - 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.ts'), - }, - { - 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.ts'), - }, - ], - }, - { - 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.ts'), - }, - ], - }, - ], - }, { type: 'category', label: 'Extensibility', @@ -251,5 +139,217 @@ const sidebars = { ], }, ], + nermSideBar: [ + { + 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.ts'), + }, + ], + }, + ], + isc_2024_sidebar: [ + { + type: "html", + defaultStyle: true, + value: versionSelector(versions), + className: "version-button", + }, + { + type: "html", + defaultStyle: true, + value: versionCrumb(`v2024`), + }, + // { + // type: "html", + // defaultStyle: true, + // value: ` `, + // }, + { + 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: 'V2024 APIs', + link: { + type: 'generated-index', + title: 'v2024 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/v2024', + }, + // @ts-ignore + items: require('./docs/api/v2024/sidebar.ts'), + } + ], + isc_beta_sidebar: [ + { + type: "html", + defaultStyle: true, + value: versionSelector(versions), + className: "version-button", + }, + { + type: "html", + defaultStyle: true, + value: versionCrumb(`beta`), + }, + { + 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: '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. 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.ts'), + } + ], + isc_v3_sidebar: [ + { + type: "html", + defaultStyle: true, + value: versionSelector(versions), + className: "version-button", + }, + { + type: "html", + defaultStyle: true, + value: versionCrumb(`v3`), + }, + { + 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.ts'), + } + ], }; module.exports = sidebars; diff --git a/src/css/custom.css b/src/css/custom.css index 85d5baf9a..c90b6f09e 100644 --- a/src/css/custom.css +++ b/src/css/custom.css @@ -6,6 +6,8 @@ /* You can override the default Infima variables here. */ +@import url('https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0-beta3/css/all.min.css'); + .ReactModal__Overlay { z-index: 9999; } @@ -285,6 +287,9 @@ --dev-sailpoint-small-logo: url('../../static/img/SailPoint-Logo-RGB-Color.png'); --ifm-font-family-base: 'Poppins'; + + --dev-icon-experimental: #cc27b0; + --dev-icon-deprecated: rgb(230, 167, 0); } /* For readability concerns, you should choose a lighter palette in dark mode. */ @@ -355,10 +360,15 @@ font-weight: 400; } +.menu__link { + padding-left: 13%; +} + /* Sidebar Method labels */ .api-method > .menu__link { align-items: center; justify-content: start; + width: fit-content; } .api-method > .menu__link::before { @@ -476,8 +486,6 @@ html[data-theme='dark'] .theme-admonition-note { background-color: #474748; } -ul { -} .button.button--secondary { color: white; @@ -550,4 +558,28 @@ div[id^='discourse-comments'] { .openapi-security__summary-container { background: var(--ifm-pre-background); +} + +.menu__list-item--experimental > .menu__link::after { + font-size: 20px; + font-family: 'Font Awesome 6 Free'; + font-weight: 900; + color: var(--dev-icon-experimental); + text-rendering: auto; + -webkit-font-smoothing: antialiased; + content: '\f0c3'; + position: relative; + right: 103%; +} + +.menu__list-item--deprecated > .menu__link::after { + font-size: 20px; + font-family: 'Font Awesome 6 Free'; + font-weight: 900; + color: var(--dev-icon-deprecated); + text-rendering: auto; + -webkit-font-smoothing: antialiased; + content: '\f071'; + position: relative; + right: 103%; } \ No newline at end of file From 9cfcff5742161d1c330a1077c8bdc40d3d9df365 Mon Sep 17 00:00:00 2001 From: Tyler Mairose Date: Tue, 23 Jul 2024 14:09:21 -0400 Subject: [PATCH 2/5] Add command in package.json to generate new versioned api docs --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index a818369f2..7b3ab847d 100644 --- a/package.json +++ b/package.json @@ -19,7 +19,7 @@ "gen-api-docs-all": "docusaurus gen-api-docs idn_v3 --plugin-id idn-api && docusaurus gen-api-docs idn_beta --plugin-id idn-api && docusaurus gen-api-docs iiq --plugin-id iiq-api && docusaurus gen-api-docs nerm --plugin-id nerm-api", "clean-api-docs-all": "docusaurus clean-api-docs idn_v3 --plugin-id idn-api && docusaurus clean-api-docs idn_beta --plugin-id idn-api && docusaurus clean-api-docs iiq --plugin-id iiq-api && docusaurus clean-api-docs nerm --plugin-id nerm-api", "rebuild-docs": "npm run clean-api-docs-all && npm run gen-api-docs-all", - "gen-versioned": "docusaurus gen-api-docs:version isc_versioned:all --plugin-id isc-api && docusaurus gen-api-docs iiq --plugin-id iiq-api && docusaurus gen-api-docs nerm --plugin-id nerm-api", + "gen-versioned": "docusaurus gen-api-docs:version isc_versioned:all --plugin-id isc-api && docusaurus gen-api-docs isc_versioned --plugin-id isc-api && docusaurus gen-api-docs iiq --plugin-id iiq-api && docusaurus gen-api-docs nerm --plugin-id nerm-api", "clean-versioned": "docusaurus clean-api-docs isc_versioned --plugin-id isc-api && docusaurus clean-api-docs:version isc_versioned:all --plugin-id isc-api && docusaurus clean-api-docs iiq --plugin-id iiq-api && docusaurus clean-api-docs nerm --plugin-id nerm-api", "rebuild-versioned": "npm run clean-versioned && npm run gen-versioned" }, From 89c3e683f2b0f889828944715f009b5b24c22ce8 Mon Sep 17 00:00:00 2001 From: Tyler Mairose Date: Mon, 5 Aug 2024 10:38:09 -0400 Subject: [PATCH 3/5] Fix deprecation notice --- createApiPageMD.ts | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/createApiPageMD.ts b/createApiPageMD.ts index 3e053b7dc..6a76590a4 100644 --- a/createApiPageMD.ts +++ b/createApiPageMD.ts @@ -79,7 +79,7 @@ export function createApiPageMD({ frontMatter.show_extensions ? createVendorExtensions(extensions) : undefined, - createDeprecationNotice({ deprecated, description: deprecatedDescription }), + createDeprecation({ deprecated, description: deprecatedDescription }), createExperimentalNotice(parameters), createDescription(description), requestBody || parameters ? createRequestHeader("Request") : undefined, @@ -96,6 +96,17 @@ export function createApiPageMD({ ]); } + +function createDeprecation({ deprecated, description }: { deprecated?: boolean; description?: string }) { + if (deprecated == true) { + if (description !== undefined) { + return `:::caution deprecated\n\n${description}\n\n:::`; + } else { + return `:::caution deprecated\n\nThis endpoint has been deprecated and may be replaced or removed in future versions of the API.\n\n:::`; + } + } +} + function createExperimentalNotice(parameters){ if (parameters && parameters.some(element => element.in === 'header' && element.name === 'X-SailPoint-Experimental')) { return ":::warning experimental\n\nThis API is currently in an experimental state. The API is subject to change based on feedback and further testing. You must include the X-SailPoint-Experimental header and set it to `true` to use this endpoint.\n\n:::\n\n"; From fa748ce526125e12729972d462154ef7150494b1 Mon Sep 17 00:00:00 2001 From: Tyler Mairose Date: Mon, 5 Aug 2024 11:13:40 -0400 Subject: [PATCH 4/5] Comment out un-used landing pages --- docs/api/api-specifications.md | 4 ++-- docs/api/identity-security-cloud.md | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/api/api-specifications.md b/docs/api/api-specifications.md index 1a14f0b76..f3759c98c 100644 --- a/docs/api/api-specifications.md +++ b/docs/api/api-specifications.md @@ -1,4 +1,4 @@ ---- + diff --git a/docs/api/identity-security-cloud.md b/docs/api/identity-security-cloud.md index bc7dd1ea1..0824eaecd 100644 --- a/docs/api/identity-security-cloud.md +++ b/docs/api/identity-security-cloud.md @@ -1,4 +1,4 @@ ---- + From c35f0d45cda06d6e0c93a01ab8b6de05412a1323 Mon Sep 17 00:00:00 2001 From: Tyler Mairose Date: Tue, 6 Aug 2024 09:59:06 -0400 Subject: [PATCH 5/5] Fix IIQ Sidebars --- sidebars.js | 76 +++++++++++++++++++++++++++-------------------------- 1 file changed, 39 insertions(+), 37 deletions(-) diff --git a/sidebars.js b/sidebars.js index 0f5e70793..f25eac722 100644 --- a/sidebars.js +++ b/sidebars.js @@ -1,8 +1,8 @@ -const versions = require("./docs/api/v2024/versions.json"); +const versions = require('./docs/api/v2024/versions.json'); const { versionSelector, versionCrumb, -} = require("docusaurus-plugin-openapi-docs/lib/sidebars/utils"); +} = require('docusaurus-plugin-openapi-docs/lib/sidebars/utils'); const sidebars = { openApiSidebar: [ @@ -103,20 +103,6 @@ const sidebars = { id: 'iiq', }, items: [ - { - type: 'category', - label: 'API Specifications', - collapsible: false, - 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.ts'), - }, { type: 'category', label: 'Plugin Developer Guide', @@ -139,6 +125,22 @@ const sidebars = { ], }, ], + iiqApiSideBar: [ + { + type: 'category', + label: 'API Specifications', + collapsible: false, + 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.ts'), + }, + ], nermSideBar: [ { type: 'category', @@ -182,25 +184,25 @@ const sidebars = { ], isc_2024_sidebar: [ { - type: "html", + type: 'html', defaultStyle: true, value: versionSelector(versions), - className: "version-button", + className: 'version-button', }, { - type: "html", + type: 'html', defaultStyle: true, value: versionCrumb(`v2024`), }, - // { - // type: "html", - // defaultStyle: true, - // value: ` `, - // }, + // { + // type: "html", + // defaultStyle: true, + // value: ` `, + // }, { type: 'doc', id: 'api/getting-started', @@ -241,17 +243,17 @@ const sidebars = { }, // @ts-ignore items: require('./docs/api/v2024/sidebar.ts'), - } + }, ], isc_beta_sidebar: [ { - type: "html", + type: 'html', defaultStyle: true, value: versionSelector(versions), - className: "version-button", + className: 'version-button', }, { - type: "html", + type: 'html', defaultStyle: true, value: versionCrumb(`beta`), }, @@ -295,17 +297,17 @@ const sidebars = { }, // @ts-ignore items: require('./docs/api/beta/sidebar.ts'), - } + }, ], isc_v3_sidebar: [ { - type: "html", + type: 'html', defaultStyle: true, value: versionSelector(versions), - className: "version-button", + className: 'version-button', }, { - type: "html", + type: 'html', defaultStyle: true, value: versionCrumb(`v3`), }, @@ -349,7 +351,7 @@ const sidebars = { }, // @ts-ignore items: require('./docs/api/v3/sidebar.ts'), - } + }, ], }; module.exports = sidebars;