From 0a6ed63349eb1e87f84c9ed120c3171729a0ae5d Mon Sep 17 00:00:00 2001 From: Luke Hagar Date: Thu, 4 Jun 2026 15:29:52 -0500 Subject: [PATCH 1/4] Refactor developer site information architecture Update the developer site homepage, navigation, community, tools, and video areas so the site distinguishes broader developer resources from the forum community and routes users to clearer getting-started paths. Co-authored-by: Cursor --- docs/ai-policy.md | 2 +- docs/api/api-specifications.md | 27 ++-- docs/index.md | 4 +- docs/tools.md | 21 ++- docs/tools/cli/index.md | 2 +- docs/tools/rule-development-kit/index.md | 2 +- docs/tools/sdk/index.md | 15 +- .../ui-development-kit/getting-started.mdx | 4 +- docs/tools/ui-development-kit/index.md | 4 +- docusaurus.config.ts | 22 +-- footer.ts | 13 +- i18n/en/docusaurus-theme-classic/footer.json | 22 ++- i18n/en/docusaurus-theme-classic/navbar.json | 36 +++++ navbar.ts | 35 +++-- src/components/homepage/DiscussCard/index.tsx | 9 +- .../homepage/DiscussCard/styles.module.css | 23 ++- .../homepage/HomepageGettingStarted/index.tsx | 73 +++++---- .../HomepageGettingStarted/styles.module.css | 73 +++++---- .../video-library/VideoCard/index.tsx | 23 ++- .../video-library/VideoCards/index.tsx | 74 +++++---- .../video-library/VideoSidebar/index.tsx | 141 +++++++++++------- src/pages/ambassadors.tsx | 5 +- src/pages/blog.tsx | 4 +- src/pages/colab.tsx | 11 +- src/pages/community-policies.tsx | 59 ++++++++ src/pages/devrel-team.tsx | 22 +++ src/pages/index.tsx | 62 ++++---- src/pages/videos.tsx | 29 ++-- 28 files changed, 541 insertions(+), 276 deletions(-) create mode 100644 src/pages/community-policies.tsx create mode 100644 src/pages/devrel-team.tsx diff --git a/docs/ai-policy.md b/docs/ai-policy.md index 20458c34e78b4..89c464a5bfeb3 100644 --- a/docs/ai-policy.md +++ b/docs/ai-policy.md @@ -1,7 +1,7 @@ --- id: ai-policy title: AI Usage Policy -description: Guidelines for the responsible use of AI tools in the SailPoint Developer Community. +description: Guidelines for the responsible use of AI tools in SailPoint developer community spaces. slug: ai-policy unlisted: true custom_edit_url: null diff --git a/docs/api/api-specifications.md b/docs/api/api-specifications.md index f3759c98c28bd..2bfbd95b928eb 100644 --- a/docs/api/api-specifications.md +++ b/docs/api/api-specifications.md @@ -1,4 +1,4 @@ - +To discuss API topics, visit the [SailPoint Developer Forum](https://developer.sailpoint.com/discuss/tags/c/isc/6/apis). diff --git a/docs/index.md b/docs/index.md index ab451b6a269da..14581020c114b 100644 --- a/docs/index.md +++ b/docs/index.md @@ -44,6 +44,6 @@ 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. +The developer forum is a valuable resource for ISC developers, where users and experts 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). +To learn more about ISC and discuss it with other SailPoint developers, go to the [SailPoint Developer Forum](https://developer.sailpoint.com/discuss/c/isc/6). diff --git a/docs/tools.md b/docs/tools.md index 667f1cf44a57c..71680cf3d55cd 100644 --- a/docs/tools.md +++ b/docs/tools.md @@ -13,7 +13,22 @@ 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. +SailPoint developer tools help you install, configure, test, and extend Identity Security Cloud (ISC) solutions. Start here if you need an SDK, command-line workflow, local development kit, or browser-based utility. + +## Install and setup paths + +- [SDKs](/docs/tools/sdk): Use generated SDK references when you want to build integrations in Go, Python, PowerShell, TypeScript, or another supported language. +- [CLI](/docs/tools/cli): Install the `sail` command and configure an ISC tenant for API, connector, transform, workflow, and search tasks. +- [Rule Development Kit](/docs/tools/rule-development-kit): Clone the RDK, install Java and Maven dependencies, and test rules locally before review. +- [UI Development Kit](/docs/tools/ui-development-kit): Clone the UI Development Kit and run a local Angular/Electron app for custom ISC user interfaces. + +## Interactive utilities + +These tools are hosted directly on the developer site and do not require local installation: + +- [Escaping Tool Formatter](/tools/escaping-tool-formatter): Format and escape values for use in configuration and templates. +- [JSON Path Evaluator](/tools/json-path-evaluator): Test JSONPath expressions against sample data. +- [Velocity PlayGround](/tools/velocity-playground): Experiment with Velocity templates before using them in SailPoint configurations. ```mdx-code-block import DocCardList from '@theme/DocCardList'; @@ -24,6 +39,6 @@ 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. +The developer forum is a valuable resource for ISC developers, where users and experts 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). +To learn more about ISC tools and discuss them with other SailPoint developers, go to the [SailPoint Developer Forum](https://developer.sailpoint.com/discuss/c/isc/6). diff --git a/docs/tools/cli/index.md b/docs/tools/cli/index.md index 3717a559f45fb..db6dcd5578a70 100644 --- a/docs/tools/cli/index.md +++ b/docs/tools/cli/index.md @@ -195,4 +195,4 @@ Before you contribute, you must sign our [CLA](https://cla-assistant.io/sailpoin ## Questions -If you have questions about the CLI, don't hesitate to reach out on the SailPoint Developer Community forum at https://developer.sailpoint.com/discuss! +If you have questions about the CLI, reach out on the SailPoint Developer Forum at https://developer.sailpoint.com/discuss! diff --git a/docs/tools/rule-development-kit/index.md b/docs/tools/rule-development-kit/index.md index 68c29361f1517..58cbe66d74d4e 100644 --- a/docs/tools/rule-development-kit/index.md +++ b/docs/tools/rule-development-kit/index.md @@ -629,4 +629,4 @@ Before you contribute, you must sign our [CLA](https://cla-assistant.io/sailpoin ## Discuss -Discuss the tool and other rule-specific topics in the [SailPoint Developer Community](https://developer.sailpoint.com/discuss/). +Discuss the tool and other rule-specific topics in the [SailPoint Developer Forum](https://developer.sailpoint.com/discuss/). diff --git a/docs/tools/sdk/index.md b/docs/tools/sdk/index.md index 68d5e9f7cfae9..b0afeb11ef273 100644 --- a/docs/tools/sdk/index.md +++ b/docs/tools/sdk/index.md @@ -15,6 +15,17 @@ tags: ['SDK'] 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. +## Choose an SDK + +Use the SDK that matches your application runtime, then open the generated reference pages for the API version you need. + +- [Go SDK reference](/docs/tools/go/reference): Build Go applications against SailPoint APIs. +- [Python SDK reference](/docs/tools/python/reference): Build Python automation and integration scripts. +- [PowerShell SDK reference](/docs/tools/powershell/reference): Automate SailPoint tasks from PowerShell. +- [TypeScript SDK](/docs/tools/sdk/typescript): Build Node.js or browser-based developer workflows. + +Before you start, make sure you have your ISC tenant name and authentication details. For token setup, see [API authentication](/docs/api/authentication). + ```mdx-code-block import DocCardList from '@theme/DocCardList'; import {useCurrentSidebarCategory} from '@docusaurus/theme-common'; @@ -24,6 +35,6 @@ 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. +The developer forum is a valuable resource for ISC developers, where users and experts 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). +To learn more about the ISC SDKs and discuss them with other SailPoint developers, go to the [SailPoint Developer Forum](https://developer.sailpoint.com/discuss/c/isc/6). diff --git a/docs/tools/ui-development-kit/getting-started.mdx b/docs/tools/ui-development-kit/getting-started.mdx index 85f3abbd666a0..d983f61626cb8 100644 --- a/docs/tools/ui-development-kit/getting-started.mdx +++ b/docs/tools/ui-development-kit/getting-started.mdx @@ -69,6 +69,6 @@ To create a new component, you can use the `npm run generate:component Announcing the Developer Community CoLab! 🎉', + 'our latest announcement in the SailPoint Developer Forum: Announcing the Developer Community CoLab! 🎉', }, navbar: navbar, footer: footer, diff --git a/footer.ts b/footer.ts index e01816c22b3d5..dd2d81144de90 100644 --- a/footer.ts +++ b/footer.ts @@ -29,10 +29,16 @@ const footerConfig = { { title: 'Community', items: [ - { label: 'Discuss', to: 'https://developer.sailpoint.com/discuss' }, + { label: 'Developer forum', to: 'https://developer.sailpoint.com/discuss' }, + { label: 'Videos', to: '/videos' }, + { label: 'Community policies', to: '/community-policies' }, { label: 'Submit an idea', to: 'https://developer-sailpoint.ideas.aha.io/' }, { - label: 'Contact our team', + label: 'Developer Relations team', + to: '/devrel-team', + }, + { + label: 'Contact our team', to: 'https://developer.sailpoint.com/discuss/new-message?groupname=developer_relations' }, ], @@ -41,7 +47,6 @@ const footerConfig = { title: 'More', items: [ { label: 'GitHub', href: 'https://github.com/sailpoint-oss' }, - { label: 'Twitter', href: 'https://twitter.com/sailpoint' }, ], }, { @@ -64,7 +69,7 @@ const footerConfig = { }, ], logo: { - alt: 'SailPoint Developer Community Logo', + alt: 'SailPoint Developers Logo', src: '/img/SailPoint-Developer-Community-Lockup.png', srcDark: 'img/SailPoint-Developer-Community-Inverse-Lockup.png', href: 'https://developer.sailpoint.com', diff --git a/i18n/en/docusaurus-theme-classic/footer.json b/i18n/en/docusaurus-theme-classic/footer.json index 3b6d9745c21b0..45ab5340d29c2 100644 --- a/i18n/en/docusaurus-theme-classic/footer.json +++ b/i18n/en/docusaurus-theme-classic/footer.json @@ -43,9 +43,17 @@ "message": "Build A Plugin", "description": "The label of footer link with label=Build A Plugin linking to https://documentation.sailpoint.com/" }, - "link.item.label.Discuss": { - "message": "Discuss", - "description": "The label of footer link with label=Discuss linking to https://developer.sailpoint.com/discuss" + "link.item.label.Developer Forum": { + "message": "Developer Forum", + "description": "The label of footer link with label=Developer forum linking to https://developer.sailpoint.com/discuss" + }, + "link.item.label.Videos": { + "message": "Videos", + "description": "The label of footer link with label=Videos linking to /videos" + }, + "link.item.label.Community Policies": { + "message": "Community Policies", + "description": "The label of footer link with label=Community policies linking to /community-policies" }, "link.item.label.Submit an Idea": { "message": "Submit an Idea", @@ -55,14 +63,14 @@ "message": "Contact Our Team", "description": "The label of footer link with label=Contact Our Team linking to https://developer.sailpoint.com/discuss/new-message?groupname=developer_relations" }, + "link.item.label.Developer Relations Team": { + "message": "Developer Relations Team", + "description": "The label of footer link with label=Developer Relations team linking to /devrel-team" + }, "link.item.label.GitHub": { "message": "GitHub", "description": "The label of footer link with label=GitHub linking to https://github.com/sailpoint-oss" }, - "link.item.label.Twitter": { - "message": "Twitter", - "description": "The label of footer link with label=Twitter linking to https://twitter.com/sailpoint" - }, "link.item.label.The SailPoint Story": { "message": "The SailPoint Story", "description": "The label of footer link with label=The SailPoint Story linking to https://www.sailpoint.com/company/" diff --git a/i18n/en/docusaurus-theme-classic/navbar.json b/i18n/en/docusaurus-theme-classic/navbar.json index f093fbe12cbb8..648e23e58e054 100644 --- a/i18n/en/docusaurus-theme-classic/navbar.json +++ b/i18n/en/docusaurus-theme-classic/navbar.json @@ -7,6 +7,22 @@ "message": "IdentityIQ", "description": "Navbar item with label IdentityIQ" }, + "item.label.Identity Security Cloud developer docs": { + "message": "Identity Security Cloud developer docs", + "description": "Navbar item with label Identity Security Cloud developer docs" + }, + "item.label.IdentityIQ plugin developer guide": { + "message": "IdentityIQ plugin developer guide", + "description": "Navbar item with label IdentityIQ plugin developer guide" + }, + "item.label.IdentityIQ product documentation": { + "message": "IdentityIQ product documentation", + "description": "Navbar item with label IdentityIQ product documentation" + }, + "item.label.SailPoint product documentation": { + "message": "SailPoint product documentation", + "description": "Navbar item with label SailPoint product documentation" + }, "item.label.Ideas": { "message": "Ideas", "description": "Navbar item with label Ideas" @@ -47,6 +63,14 @@ "message": "Training", "description": "Navbar item with label Training" }, + "item.label.Getting started": { + "message": "Getting started", + "description": "Navbar item with label Getting started" + }, + "item.label.Developer tools overview": { + "message": "Developer tools overview", + "description": "Navbar item with label Developer tools overview" + }, "item.label.IdentityNow Certifications": { "message": "IdentityNow Certifications", "description": "Navbar item with label IdentityNow Certifications" @@ -66,5 +90,17 @@ "item.label.Submit Support Ticket": { "message": "Submit Support Ticket", "description": "Navbar item with label Submit Support Ticket" + }, + "item.label.Videos": { + "message": "Videos", + "description": "Navbar item with label Videos" + }, + "item.label.Community policies": { + "message": "Community policies", + "description": "Navbar item with label Community policies" + }, + "item.label.Developer Relations team": { + "message": "Developer Relations team", + "description": "Navbar item with label Developer Relations team" } } diff --git a/navbar.ts b/navbar.ts index 6db2fb3d06ca0..d229ca497dbe8 100644 --- a/navbar.ts +++ b/navbar.ts @@ -1,7 +1,7 @@ const navbarConfig = { title: '', logo: { - alt: 'SailPoint Developer Community', + alt: 'SailPoint Developers', src: 'img/SailPoint-Developer-Community-Lockup.png', srcDark: 'img/SailPoint-Developer-Community-Inverse-Lockup.png', }, @@ -9,15 +9,28 @@ const navbarConfig = { { type: 'dropdown', label: 'Documentation', + to: '/docs', position: 'left', items: [ - { label: 'Identity Security Cloud', to: '/docs' }, - { label: 'IdentityIQ', to: '/docs/iiq' }, + { label: 'Identity Security Cloud developer docs', to: '/docs' }, + { + label: 'IdentityIQ plugin developer guide', + to: '/docs/iiq/plugin-developer-guide', + }, + { + label: 'IdentityIQ product documentation', + href: 'https://documentation.sailpoint.com/identityiq/help/iiqlandingpage.html', + }, + { + label: 'SailPoint product documentation', + href: 'https://documentation.sailpoint.com', + }, ], }, { type: 'dropdown', label: 'API specifications', + to: '/docs/api', position: 'left', items: [ { label: 'Identity Security Cloud', to: '/docs/api/v2026' }, @@ -27,15 +40,16 @@ const navbarConfig = { }, { type: 'dropdown', - label: 'Tools', + label: 'Getting started', position: 'left', items: [ + { label: 'Developer tools overview', to: '/docs/tools' }, { label: 'SDKs', to: '/docs/tools/sdk' }, { label: 'CLI', to: '/docs/tools/cli' }, - { label: 'Escaping Tool Formatter', to: '/tools/escaping-tool-formatter' }, - { label: 'JSON Path Evaluator', to: '/tools/json-path-evaluator' }, { label: 'Rule Development Kit', to: '/docs/tools/rule-development-kit' }, { label: 'UI Development Kit', to: '/docs/tools/ui-development-kit' }, + { label: 'Escaping Tool Formatter', to: '/tools/escaping-tool-formatter' }, + { label: 'JSON Path Evaluator', to: '/tools/json-path-evaluator' }, { label: 'Velocity PlayGround', to: '/tools/velocity-playground' }, ], }, @@ -45,17 +59,13 @@ const navbarConfig = { position: 'left', items: [ { label: 'Developer forum', to: 'https://developer.sailpoint.com/discuss/' }, - { label: 'AI Policy', to: '/docs/ai-policy' }, { label: 'CoLab marketplace', to: '/colab' }, { label: 'Developer blog', to: '/blog' }, + { label: 'Videos', to: '/videos' }, { label: 'Ambassador program', to: '/ambassadors' }, + { label: 'Community policies', to: '/community-policies' }, ], }, - { - position: 'left', - label: 'Video library', - to: '/videos', - }, { type: 'dropdown', label: 'Support', @@ -65,6 +75,7 @@ const navbarConfig = { label: 'Submit Support Ticket', href: 'https://support.sailpoint.com/csm?id=sc_cat_item&sys_id=a78364e81bec151050bcc8866e4bcb5c&referrer=popular_items', }, + { label: 'Developer Relations team', to: '/devrel-team' }, { label: 'Compass', href: 'https://community.sailpoint.com' }, { label: 'Platform Status', href: 'https://status.sailpoint.com/' }, ], diff --git a/src/components/homepage/DiscussCard/index.tsx b/src/components/homepage/DiscussCard/index.tsx index b46e31fe8435d..b746256c324aa 100644 --- a/src/components/homepage/DiscussCard/index.tsx +++ b/src/components/homepage/DiscussCard/index.tsx @@ -1,4 +1,4 @@ -import React from 'react'; +import type {FC} from 'react'; import styles from './styles.module.css'; import Link from '@docusaurus/Link'; import useBaseUrl from '@docusaurus/useBaseUrl'; @@ -16,15 +16,17 @@ interface DiscussCardProps { solution?: boolean; } -const DiscussCard: React.FC = ({ link, title, tags, views, liked, solution }) => { +const DiscussCard: FC = ({ link, title, tags, views, liked, solution }) => { let solved = ( Discussion ); let linkText =
Join the Discussion
; + let statusText = 'Discussion'; if (solution) { solved = ; linkText =
View the Solution
; + statusText = 'Solved'; } return ( @@ -47,6 +49,9 @@ const DiscussCard: React.FC = ({ link, title, tags, views, lik Liked {solved} +
+ {statusText} +
{title}
{views}
{liked}
diff --git a/src/components/homepage/DiscussCard/styles.module.css b/src/components/homepage/DiscussCard/styles.module.css index ed3ad40541daa..56ad951521f3c 100644 --- a/src/components/homepage/DiscussCard/styles.module.css +++ b/src/components/homepage/DiscussCard/styles.module.css @@ -93,7 +93,7 @@ .cardSolved { position: absolute; margin: 0px; - right: 132px; + right: 142px; top: 18px; width: 20px; color: var(--ifm-color-primary); @@ -148,3 +148,24 @@ .iiq { color: #60b359; } + +.statusDiscussion, +.statusSolved { + position: absolute; + top: 17px; + left: 55px; + padding: 2px 8px; + border-radius: 999px; + font-size: 12px; + font-weight: 700; +} + +.statusDiscussion { + color: var(--dev-secondary-text); + border: 1px solid var(--dev-card-border); +} + +.statusSolved { + color: var(--ifm-color-primary); + border: 1px solid var(--ifm-color-primary); +} diff --git a/src/components/homepage/HomepageGettingStarted/index.tsx b/src/components/homepage/HomepageGettingStarted/index.tsx index 883b2b93cdad7..75830061ab656 100644 --- a/src/components/homepage/HomepageGettingStarted/index.tsx +++ b/src/components/homepage/HomepageGettingStarted/index.tsx @@ -1,7 +1,32 @@ -import React from 'react'; -import type {ReactNode} from 'react'; +import Link from '@docusaurus/Link'; import styles from './styles.module.css'; -import HomepageCard from '../HomepageCard'; + +const primaryLinks = [ + { + label: 'Documentation', + title: 'Build with SailPoint', + description: 'Explore guides, reference material, and product-specific developer resources.', + link: '/docs', + }, + { + label: 'API specifications', + title: 'Automate identity workflows', + description: 'Find REST API specs, authentication details, versioning, and examples.', + link: '/docs/api/v2026', + }, + { + label: 'Tools', + title: 'Install developer tools', + description: 'Set up SDKs, the CLI, development kits, and helpful utilities.', + link: '/docs/tools', + }, + { + label: 'Community', + title: 'Get answers from developers', + description: 'Join forum discussions, browse community content, and connect with programs.', + link: 'https://developer.sailpoint.com/discuss/', + }, +]; export default function HomepageGettingStarted(): JSX.Element { return ( @@ -10,42 +35,28 @@ export default function HomepageGettingStarted(): JSX.Element {
- SailPoint Developer Community + SailPoint Developers
- Don't know where to get started? + Build, extend, and automate identity security.
- Jump into our{' '} - Get started Guides for more - information. + Start with developer documentation, API specifications, tools, + and community resources for SailPoint platforms.
-
- - +
+ {primaryLinks.map((item) => ( + +
{item.label}
+
{item.title}
+
+ {item.description} +
+ + ))}
-
- -
); diff --git a/src/components/homepage/HomepageGettingStarted/styles.module.css b/src/components/homepage/HomepageGettingStarted/styles.module.css index da7045389f1f8..f766448782638 100644 --- a/src/components/homepage/HomepageGettingStarted/styles.module.css +++ b/src/components/homepage/HomepageGettingStarted/styles.module.css @@ -1,8 +1,6 @@ .mainCard { - display: grid; - grid-gap: 20px; + display: block; max-width: 1180px; - justify-content: center; } .gettingStartedText { @@ -34,25 +32,54 @@ font-weight: bold; } -/* Getting Started Card container */ -.gridContainer { +.resourceGrid { display: grid; margin-left: 50px; margin-bottom: 50px; grid-gap: 20px; - grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); - place-content: center; + grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); margin-right: 40px; } -.video { - width: 100%; - height: 300px; - max-width: 520px; +.resourceCard { + display: flex; + flex-direction: column; + gap: 8px; + min-height: 170px; + padding: 20px; + background: var(--dev-new-car-background); + border: 1px solid var(--dev-card-border); + border-radius: 0.5rem; + color: var(--ifm-primary-text-color); + box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), + var(--tw-ring-shadow, 0 0 #0000), 0 1px 3px 0 rgba(0, 0, 0, 0.1); + transition: all 0.3s; +} + +.resourceCard:hover { + color: var(--ifm-primary-text-color); + text-decoration: none; + transform: translateY(-2px); + box-shadow: var(--dev-card-selected); +} + +.resourceLabel { + color: var(--ifm-color-primary); + font-size: 12px; + font-weight: 700; + text-transform: uppercase; } -.carousel { - margin-right: 50px; +.resourceTitle { + font-size: 18px; + font-weight: 700; + line-height: 1.3; +} + +.resourceDescription { + color: var(--dev-secondary-text); + font-size: 14px; + line-height: 1.5; } .contentContainer { @@ -60,21 +87,12 @@ } @media only screen and (max-width: 1178px) { - .carousel { - margin-top: 0px; - margin-left: 50px; - margin-bottom: 50px; - } .contentContainer { - width: 600px; + width: auto; } } @media only screen and (min-width: 1179px) { - .carousel { - margin-top: 100px; - } .mainCard { - grid-template-columns: repeat(auto-fit, minmax(520px, 1fr)); /* UI Properties */ background: var(--main-hero-card-background); box-shadow: var(--dev-main-card-shadow); @@ -86,13 +104,12 @@ } } @media only screen and (max-width: 570px) { - .video { - display: none; - } .contentContainer { width: auto; } - .carousel { - margin-bottom: 0px; + .gettingStartedText, + .resourceGrid { + margin-left: 25px; + margin-right: 25px; } } diff --git a/src/components/video-library/VideoCard/index.tsx b/src/components/video-library/VideoCard/index.tsx index d0ca26278e9be..911747c20968d 100644 --- a/src/components/video-library/VideoCard/index.tsx +++ b/src/components/video-library/VideoCard/index.tsx @@ -1,4 +1,4 @@ -import React from 'react'; +import type {FC} from 'react'; import styles from './styles.module.css'; import Link from '@docusaurus/Link'; import useBaseUrl from '@docusaurus/useBaseUrl'; @@ -15,7 +15,24 @@ interface VideoCardProps { tags?: (string | { id: number; name: string; slug: string })[]; } -const VideoCard: React.FC = ({ +const displayTag = (tag: string): string => { + const textMap: Record = { + 'identity-security-cloud': 'Identity Security Cloud', + 'access-intelligence-center': 'Access Intelligence Center', + 'identityiq': 'IdentityIQ', + 'identity-iq': 'IdentityIQ', + 'iiq': 'IIQ', + 'live-stream': 'Live stream', + 'community-live-stream': 'Live stream', + 'developer-days-2023': 'Developer Days 2023', + 'developer-days-2023-iiq': 'Developer Days 2023', + 'developer-days-2024': 'Developer Days 2024', + }; + + return textMap[tag] || tag.replace(/-/g, ' '); +}; + +const VideoCard: FC = ({ featured = false, videoURL, thumbnail, @@ -44,7 +61,7 @@ const VideoCard: React.FC = ({
{tags.map((tag) => (
- {typeof tag === 'object' ? tag.name : tag} + {displayTag(typeof tag === 'object' ? tag.name : tag)}
))}
diff --git a/src/components/video-library/VideoCards/index.tsx b/src/components/video-library/VideoCards/index.tsx index 2899d2cc95047..35364e7d1fe21 100644 --- a/src/components/video-library/VideoCards/index.tsx +++ b/src/components/video-library/VideoCards/index.tsx @@ -1,8 +1,8 @@ -import React, { useState, useEffect } from 'react'; +import {useCallback, useEffect, useState} from 'react'; +import type {FC} from 'react'; import styles from './styles.module.css'; import VideoCard from '../VideoCard'; import { - videoBaseURL, discourseBaseURL, developerWebsiteDomain, } from '../../../util/util'; @@ -28,45 +28,54 @@ interface VideoPost { url: string; } -const VideoCards: React.FC = ({ filterCallback, limit, featured }) => { +interface TopicPoster { + description: string; + user_id: number; +} + +interface VideoUser { + id: number; + name: string; + avatar_template: string; +} + +const buildTopicUrl = (slug: string, id: number): string => { + return `${discourseBaseURL()}t/${slug}/${id}`; +}; + +const parseVideoDetails = (inputStr: string) => { + const parts = inputStr.split('\n\nDescription\n'); + const videoUrl = parts[0].trim(); + const description = parts.length > 1 ? parts[1].trim() : ''; + return { videoUrl, description }; +}; + +const shortenTitle = (title: string): string => { + return title.length > 63 ? title.substring(0, 62) + '...' : title; +}; + +const VideoCards: FC = ({ filterCallback, limit, featured }) => { const [cardData, setCardData] = useState(); const [loadingCards, setLoadingCards] = useState(true); - const buildTopicUrl = (slug: string, id: number): string => { - return `${discourseBaseURL()}t/${slug}/${id}`; - }; - - const parseVideoDetails = (inputStr: string) => { - const parts = inputStr.split('\n\nDescription\n'); - const videoUrl = parts[0].trim(); - const lastSegment = videoUrl.split('/').pop() || ''; - const page = lastSegment.replace('.html', ''); - const description = parts.length > 1 ? parts[1].trim() : ''; - return { videoUrl, description, page }; - }; - - const shortenTitle = (title: string): string => { - return title.length > 63 ? title.substring(0, 62) + '...' : title; - }; - - const getVideoTopics = async () => { - let tags = featured ? ['featured'] : filterCallback.tags; + const getVideoTopics = useCallback(async () => { + const tags = featured ? ['featured'] : filterCallback.tags; const data = await getVideoPosts(tags || []); const resultset: VideoPost[] = []; if (data.topic_list) { for (const topic of data.topic_list.topics) { if (topic.tags.length > 0) { - let { videoUrl, description } = parseVideoDetails(topic.excerpt); + const { videoUrl, description } = parseVideoDetails(topic.excerpt); let thumbnail = videoUrl.replace('.html', '.jpg'); let avatar = ''; let username = ''; - let ogPoster = topic.posters.find((poster: any) => + const ogPoster = topic.posters.find((poster: TopicPoster) => poster.description.includes('Original Poster') ); if (ogPoster) { - let user = data.users.find((user: any) => user.id === ogPoster.user_id); + const user = data.users.find((user: VideoUser) => user.id === ogPoster.user_id); if (user) { username = user.name; avatar = getAvatarURL(user.avatar_template); @@ -96,13 +105,13 @@ const VideoCards: React.FC = ({ filterCallback, limit, featured } setCardData(limit ? resultset.slice(0, limit) : resultset); setLoadingCards(false); - }; + }, [featured, filterCallback.tags, limit]); useEffect(() => { - getVideoTopics(); setCardData(undefined); setLoadingCards(true); - }, [filterCallback]); + getVideoTopics(); + }, [getVideoTopics]); return (
@@ -129,12 +138,11 @@ const VideoCards: React.FC = ({ filterCallback, limit, featured
{' '} - Hey there, looks like no integrations match your search criteria. - Check out our{' '} - - getting started guide + No videos match your current filters. Try removing a filter, or{' '} + + suggest a video - , and consider being the first to contribute this integration! + {' '}for the library.
)} diff --git a/src/components/video-library/VideoSidebar/index.tsx b/src/components/video-library/VideoSidebar/index.tsx index 5ad00e524c9b8..b8ec94a6f90b5 100644 --- a/src/components/video-library/VideoSidebar/index.tsx +++ b/src/components/video-library/VideoSidebar/index.tsx @@ -1,65 +1,82 @@ -import React, { useState, useEffect } from 'react'; +import {useCallback, useEffect, useState} from 'react'; +import type {ChangeEvent, FC} from 'react'; import styles from './styles.module.css'; import { getTags } from '../../../services/DiscourseService'; -import { forEach } from 'lodash'; // Define the props interface interface MarketplaceSidebarProps { + selectedCategory?: { tags: string[] }; filterCallback: (filters: { tag: string[] | string | null }) => void; } -const VideoSidebar: React.FC = ({ filterCallback }) => { +const displayText = (text: string): string => { + const textMap: Record = { + 'identity-security-cloud': 'Identity Security Cloud', + 'access-intelligence-center': 'Access Intelligence Center', + 'identityiq': 'IdentityIQ', + 'identity-iq': 'IdentityIQ', + 'iiq': 'IIQ', + 'live-stream': 'Live stream', + 'community-live-stream': 'Live stream', + 'developer-days-2023': 'Developer Days 2023', + 'developer-days-2023-iiq': 'Developer Days 2023', + 'developer-days-2024': 'Developer Days 2024', + }; + + return textMap[text] || text.replace(/-/g, ' '); +}; + +const VideoSidebar: FC = ({ filterCallback }) => { const [tagProductData, setTagProductData] = useState(null); const [videoTag, setVideoTag] = useState(null); - const [isOpen, setIsOpen] = useState(false); + const [isProductOpen, setIsProductOpen] = useState(false); + const [isVideoOpen, setIsVideoOpen] = useState(false); const [productTags, setProductTags] = useState('Filter by Product'); const [videoTags, setVideoTags] = useState('Filter by Video Type'); const [checkedItemsProduct, setCheckedItemsProduct] = useState>({}); const [checkedItemsVideo, setCheckedItemsVideo] = useState(null); - const toggleDropdown = () => setIsOpen(!isOpen); - - const handleCheckboxChangeProduct = (event: React.ChangeEvent) => { + const handleCheckboxChangeProduct = (event: ChangeEvent) => { const { name, checked } = event.target; - setCheckedItemsProduct((prevState) => ({ - ...prevState, + const nextCheckedItems = { + ...checkedItemsProduct, [name]: checked, - })); + }; - let product = checked ? name : productTags.replace(name, '').trim(); - let filters: string[] = checked ? [name] : []; + const selectedProductTags = Object.keys(nextCheckedItems).filter( + (key) => nextCheckedItems[key], + ); + const filters = checkedItemsVideo + ? [...selectedProductTags, checkedItemsVideo] + : selectedProductTags; - forEach(checkedItemsProduct, (value, key) => { - if (key !== name && value) { - filters.push(key); - if (!product.includes(key)) product += ` ${key}`; - } - }); + setCheckedItemsProduct(nextCheckedItems); + setProductTags( + selectedProductTags.length > 0 + ? selectedProductTags.map(displayText).join(', ') + : 'Filter by Product', + ); - if (checkedItemsVideo) { - filters.push(checkedItemsVideo); - } - - setProductTags(product || 'Filter by Product'); filterCallback({ tag: filters.length > 0 ? filters : null }); }; - const handleCheckboxChangeVideo = (event: React.ChangeEvent) => { + const handleCheckboxChangeVideo = (event: ChangeEvent) => { const { name, checked } = event.target; const newCheckedItem = checked ? name : null; - setCheckedItemsVideo(newCheckedItem); - setVideoTags(newCheckedItem || 'Filter by Video Type'); + const selectedProductTags = Object.keys(checkedItemsProduct).filter( + (key) => checkedItemsProduct[key], + ); + const filters = newCheckedItem + ? [...selectedProductTags, newCheckedItem] + : selectedProductTags; - let filters: string[] = newCheckedItem ? [newCheckedItem] : []; - - forEach(checkedItemsProduct, (value, key) => { - if (value) filters.push(key); - }); + setCheckedItemsVideo(newCheckedItem); + setVideoTags(newCheckedItem ? displayText(newCheckedItem) : 'Filter by Video Type'); filterCallback({ tag: filters.length > 0 ? filters : null }); }; - const getTagData = async () => { + const getTagData = useCallback(async () => { const uniqueProductTags = new Set(); const uniqueTags = new Set(); const data = await getTags(); @@ -67,10 +84,14 @@ const VideoSidebar: React.FC = ({ filterCallback }) => if (data.extras?.tag_groups) { for (const tagGroup of data.extras.tag_groups) { if (tagGroup.name === 'Products') { - tagGroup.tags.forEach((tag: { name: string }) => uniqueProductTags.add(tag.name)); + tagGroup.tags.forEach((tag: { name: string }) => { + uniqueProductTags.add(tag.name); + }); } if (tagGroup.name === 'Video Library') { - tagGroup.tags.forEach((tag: { name: string }) => uniqueTags.add(tag.name)); + tagGroup.tags.forEach((tag: { name: string }) => { + uniqueTags.add(tag.name); + }); } } } @@ -84,39 +105,42 @@ const VideoSidebar: React.FC = ({ filterCallback }) => if (yearTags.length > 0) { uniqueTags.delete('developer-days'); - yearTags.forEach((tag: string) => uniqueTags.add(tag)); + yearTags.forEach((tag: string) => { + uniqueTags.add(tag); + }); } } - setTagProductData(Array.from(uniqueProductTags)); - setVideoTag(Array.from(uniqueTags)); - }; - - const displayText = (text: string): string => { - const textMap: Record = { - 'identity-security-cloud': 'Identity Security Cloud', - 'access-intelligence-center': 'Access Intelligence Center', - 'developer-days-2023-iiq': 'Developer Days 2023 IIQ', - }; - - return textMap[text] || text; - }; + setTagProductData( + Array.from(uniqueProductTags).sort((a, b) => + displayText(a).localeCompare(displayText(b)), + ), + ); + setVideoTag( + Array.from(uniqueTags).sort((a, b) => + displayText(a).localeCompare(displayText(b)), + ), + ); + }, []); useEffect(() => { getTagData(); - }, []); + }, [getTagData]); return tagProductData ? (
- - {isOpen && ( + {isProductOpen && (
- {tagProductData.map((a, index) => ( -
+ {tagProductData.map((a) => ( +
= ({ filterCallback }) =>
- - {isOpen && ( + {isVideoOpen && (
- {videoTag?.map((a, index) => ( -
+ {videoTag?.map((a) => ( +
{ - const { siteConfig } = useDocusaurusContext(); - return ( - +
{/* */}
diff --git a/src/pages/blog.tsx b/src/pages/blog.tsx index 37af33794946d..365e0b3a8a4ab 100644 --- a/src/pages/blog.tsx +++ b/src/pages/blog.tsx @@ -24,7 +24,7 @@ const Blog: React.FC = () => { }; return ( - +
@@ -35,7 +35,7 @@ const Blog: React.FC = () => {
Our community blog is a collection of technical writings - provided by members of our community—your peers—discussing + provided by members of our community, your peers, discussing detailed walkthroughs, challenges faced (and how they were overcome), and thoughts on managing identity in a meaningful way. diff --git a/src/pages/colab.tsx b/src/pages/colab.tsx index 3a6506666daf5..093f59ef6ca3d 100644 --- a/src/pages/colab.tsx +++ b/src/pages/colab.tsx @@ -47,7 +47,7 @@ const Marketplace: React.FC = () => { }); return ( - +
@@ -58,11 +58,10 @@ const Marketplace: React.FC = () => {
What is the CoLab?
- The community CoLab is a place where members of our - community can build fully-featured solutions on our platform - and share those solutions with each other. Users collaborate - on these solutions to benefit both themselves and the - community at large. + The CoLab marketplace is where SailPoint developers share + community-built plugins, rules, connectors, transforms, + workflows, and tools. Use it to find examples, collaborate + on reusable solutions, and contribute your own work.

diff --git a/src/pages/community-policies.tsx b/src/pages/community-policies.tsx new file mode 100644 index 0000000000000..239832e0cd530 --- /dev/null +++ b/src/pages/community-policies.tsx @@ -0,0 +1,59 @@ +import Link from '@docusaurus/Link'; +import Layout from '@theme/Layout'; +import HomepageBasics from '@site/src/components/homepage/HomepageBasics'; + +export default function CommunityPolicies(): JSX.Element { + return ( + +
+ +
+
+
+
+
+

AI usage policy

+

+ Guidelines for responsible AI-assisted content in SailPoint + community spaces. +

+
+
+ + Read AI usage policy + +
+
+
+
+
+
+

Forum terms

+

+ Review the terms that apply when participating in the + SailPoint developer forum. +

+
+
+ + Review forum terms + +
+
+
+
+
+
+
+ ); +} diff --git a/src/pages/devrel-team.tsx b/src/pages/devrel-team.tsx new file mode 100644 index 0000000000000..c683f57517bff --- /dev/null +++ b/src/pages/devrel-team.tsx @@ -0,0 +1,22 @@ +import Layout from '@theme/Layout'; +import HomepageBasics from '@site/src/components/homepage/HomepageBasics'; +import HomepageTeam from '@site/src/components/homepage/HomepageTeam'; + +export default function DevRelTeam(): JSX.Element { + return ( + +
+ + +
+
+ ); +} diff --git a/src/pages/index.tsx b/src/pages/index.tsx index dbb0f01eeac30..f47612e6fc27d 100644 --- a/src/pages/index.tsx +++ b/src/pages/index.tsx @@ -1,60 +1,50 @@ -import type {ReactNode} from 'react'; -import clsx from 'clsx'; -import Link from '@docusaurus/Link'; -import useDocusaurusContext from '@docusaurus/useDocusaurusContext'; +import React from 'react'; import Layout from '@theme/Layout'; import HomepageGettingStarted from '@site/src/components/homepage/HomepageGettingStarted'; import HomepageBasics from '@site/src/components/homepage/HomepageBasics'; import HomepageTrainingGuides from '@site/src/components/homepage/HomepageTrainingGuides'; import HomepageDiscuss from '@site/src/components/homepage/HomepageDiscuss'; -import HomepageTeam from '@site/src/components/homepage/HomepageTeam'; -import HomepageDeveloperDays from '@site/src/components/homepage/HomepageDeveloperDays'; -import Heading from '@theme/Heading'; -import styles from './index.module.css'; -import React from 'react'; +const PageLayout = React.memo(Layout as unknown as (props: { + description: string; + children: React.ReactNode; +}) => JSX.Element); -export default function Home(): ReactNode { - const {siteConfig} = useDocusaurusContext(); +export default function Home(): JSX.Element { return ( - +
- {/* */} Getting Started Guides below, or see what our platform has to offer." + 'See resolved solutions and active discussions from developers building with SailPoint.' } - link={'https://www.sailpoint.com/products/identity-security-cloud'} + link={'https://developer.sailpoint.com/discuss/'} + title={'Active forum discussions'} + image={'discuss'} + buttonText={'Visit the forum'} + /> + + getting started guides below or browse developer tools and API resources." + } + link={'/docs/tools'} title={'Start with the basics'} image={'user'} - buttonText={'Explore our platform'} + buttonText={'Explore developer tools'} /> - - -
- contact our team directly." - } - title={'Meet our team'} - image={'team'} - buttonText={''} - /> - -
-
+ ); } diff --git a/src/pages/videos.tsx b/src/pages/videos.tsx index c1eedde7829c3..6ebd066ec2ceb 100644 --- a/src/pages/videos.tsx +++ b/src/pages/videos.tsx @@ -1,6 +1,6 @@ -import React, { useState } from 'react'; +import {useState} from 'react'; +import type {FC} from 'react'; import Layout from '@theme/Layout'; -import useDocusaurusContext from '@docusaurus/useDocusaurusContext'; import VideoCards from '../components/video-library/VideoCards'; import VideoSidebar from '../components/video-library/VideoSidebar'; import styles from './videos.module.css'; @@ -12,19 +12,20 @@ interface FilterState { // Define the type for the callback function interface FilterData { - tag: string[]; + tag: string[] | string | null; } -const VideoLibrary: React.FC = () => { +const VideoLibrary: FC = () => { const [filteredProduct, setFilteredProduct] = useState({ tags: [] }); - const { siteConfig } = useDocusaurusContext(); const handleClick = (data: FilterData) => { - setFilteredProduct({ tags: data.tag }); + setFilteredProduct({ + tags: Array.isArray(data.tag) ? data.tag : data.tag ? [data.tag] : [], + }); }; return ( - +
@@ -32,17 +33,19 @@ const VideoLibrary: React.FC = () => {
-
Video library
+
Videos
- Our video library is a collection of educational videos - from our Developer Relations team, live streams, - conferences, and other community members. + Watch educational videos from Developer Relations, + Developer Days, livestreams, conference sessions, and + community contributors. Videos stay hosted here so you can + watch without ads and keep discussion connected to the + developer forum.

- - Contribute to our library → + + Suggest a video →
From 29d609298c15999120ee1ffc954a22241985d2ee Mon Sep 17 00:00:00 2001 From: Luke Hagar Date: Thu, 4 Jun 2026 16:15:34 -0500 Subject: [PATCH 2/4] Clarify docs and guides taxonomy Disambiguate reference, getting started, and guide content while keeping existing documentation URLs stable. Co-authored-by: Cursor --- docs/connectivity.md | 6 ++++-- docs/extensibility.md | 12 +++++++++-- docs/extensibility/rules/guides/index.md | 2 +- docs/extensibility/transforms/guides/index.md | 11 +++++----- docs/extensibility/transforms/index.md | 9 ++++++++ .../transforms/operations/index.md | 7 ++++--- .../transforms/operations/reference.md | 6 +++--- .../out-of-the-box-operations/index.md | 3 ++- docs/guides.md | 21 ++++++++++++------- docs/index.md | 6 ++++++ docs/reporting.md | 6 ++++-- i18n/en/docusaurus-theme-classic/navbar.json | 8 +++++++ navbar.ts | 8 +++++++ sidebars.ts | 4 ++-- 14 files changed, 80 insertions(+), 29 deletions(-) diff --git a/docs/connectivity.md b/docs/connectivity.md index 0c1fdc37f5a19..c56c24be594b1 100644 --- a/docs/connectivity.md +++ b/docs/connectivity.md @@ -15,6 +15,8 @@ tags: ['connectivity'] 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. +This section is primarily guide-oriented. Use it when you need to build, configure, or extend source connectivity. For API endpoint syntax, use the [API specifications](/docs/api). + ```mdx-code-block import DocCardList from '@theme/DocCardList'; import {useCurrentSidebarCategory} from '@docusaurus/theme-common'; @@ -24,6 +26,6 @@ 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. +The developer forum is a valuable resource for ISC developers, where users and experts 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). +To learn more about ISC connectivity and discuss it with other SailPoint developers, go to the [SailPoint Developer Forum](https://developer.sailpoint.com/discuss/c/isc/6). diff --git a/docs/extensibility.md b/docs/extensibility.md index 56914f222a140..3ea9f3a814285 100644 --- a/docs/extensibility.md +++ b/docs/extensibility.md @@ -15,6 +15,14 @@ tags: ['extensibility'] 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. +## Start here + +Extensibility content includes both tutorials and reference material: + +- Use [transform guides](/docs/extensibility/transforms/guides) and [rule guides](/docs/extensibility/rules/guides) when you want a step-by-step implementation path. +- Use [transform operations](/docs/extensibility/transforms/operations), [cloud executed rules](/docs/extensibility/rules/cloud-rules), and [connector executed rules](/docs/extensibility/rules/connector-rules) when you need reference details for a specific capability. +- Use [API specifications](/docs/api) when you need endpoint syntax, authentication details, and request/response shapes. + ```mdx-code-block import DocCardList from '@theme/DocCardList'; import {useCurrentSidebarCategory} from '@docusaurus/theme-common'; @@ -24,6 +32,6 @@ 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. +The developer forum is a valuable resource for ISC developers, where users and experts 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). +To learn more about ISC extensibility and discuss the different extensibility options with other SailPoint developers, go to the [SailPoint Developer Forum](https://developer.sailpoint.com/discuss/c/isc/6). diff --git a/docs/extensibility/rules/guides/index.md b/docs/extensibility/rules/guides/index.md index 295277c66946b..983ee86f08eb3 100644 --- a/docs/extensibility/rules/guides/index.md +++ b/docs/extensibility/rules/guides/index.md @@ -2,7 +2,7 @@ id: guides title: Rule guides pagination_label: Guides -sidebar_label: Guides +sidebar_label: Rule guides sidebar_key: rules-guides sidebar_position: 1 sidebar_class_name: Rules diff --git a/docs/extensibility/transforms/guides/index.md b/docs/extensibility/transforms/guides/index.md index a71c4dd5873f3..f3bfdc606cbbd 100644 --- a/docs/extensibility/transforms/guides/index.md +++ b/docs/extensibility/transforms/guides/index.md @@ -1,18 +1,17 @@ --- id: guides -title: Guides -pagination_label: Guides -sidebar_label: Guides +title: Transform guides +pagination_label: Transform guides +sidebar_label: Transform guides +sidebar_position: 1 sidebar_key: transform-guides sidebar_class_name: transforms keywords: ['transforms', 'guides'] -description: Transform Guides +description: Transform guides. slug: /extensibility/transforms/guides tags: ['Transforms', 'Guides'] --- -# Transform guides - Not sure how to use transforms yet? Read these guides to see how you can use transforms and learn how to get started! ```mdx-code-block diff --git a/docs/extensibility/transforms/index.md b/docs/extensibility/transforms/index.md index 752f091017b52..1fb7e3603b3ac 100644 --- a/docs/extensibility/transforms/index.md +++ b/docs/extensibility/transforms/index.md @@ -15,6 +15,15 @@ customProps: 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. +## Start here + +Transforms include both tutorials and reference material: + +- Start with [Your first transform](/docs/extensibility/transforms/guides/your-first-transform) if you are new to transforms and want a guided implementation. +- Use [Transform guides](/docs/extensibility/transforms/guides) for task-focused tutorials, including provisioning policy and lifecycle state examples. +- Use [Transform operations](/docs/extensibility/transforms/operations) when you need reference details for a specific transform type. +- Use [Out of the box transforms](/docs/extensibility/transforms/ootb) to review preset transform behavior. + ## What are transforms Transforms are configurable objects that define easy ways to manipulate attribute data without requiring you to write code. Transforms are configurable building blocks with sets of inputs and outputs: diff --git a/docs/extensibility/transforms/operations/index.md b/docs/extensibility/transforms/operations/index.md index 6d77b3cee75a2..d47cbf8aa6ba9 100644 --- a/docs/extensibility/transforms/operations/index.md +++ b/docs/extensibility/transforms/operations/index.md @@ -1,8 +1,9 @@ --- id: operations -title: Operations -pagination_label: Operations -sidebar_label: Operations +title: Transform operations +pagination_label: Transform operations +sidebar_label: Transform operations +sidebar_position: 2 sidebar_class_name: operations keywords: ['transforms', 'operations'] description: A list of transform operations. diff --git a/docs/extensibility/transforms/operations/reference.md b/docs/extensibility/transforms/operations/reference.md index 9e730681c6d0e..699767757be8c 100644 --- a/docs/extensibility/transforms/operations/reference.md +++ b/docs/extensibility/transforms/operations/reference.md @@ -1,8 +1,8 @@ --- id: reference -title: Reference -pagination_label: Reference -sidebar_label: Reference +title: Reference transform +pagination_label: Reference transform +sidebar_label: Reference transform sidebar_class_name: reference sidebar_key: transforms-reference keywords: ['transforms', 'operations', 'reference'] diff --git a/docs/extensibility/transforms/out-of-the-box-operations/index.md b/docs/extensibility/transforms/out-of-the-box-operations/index.md index 180b386b529db..0b1a72d49abda 100644 --- a/docs/extensibility/transforms/out-of-the-box-operations/index.md +++ b/docs/extensibility/transforms/out-of-the-box-operations/index.md @@ -2,7 +2,8 @@ id: ootb-transforms title: Out of the box transforms pagination_label: Out of the Box Transforms -sidebar_label: OOTB Transforms +sidebar_label: Out of the box transforms +sidebar_position: 3 sidebar_class_name: operations keywords: ['transforms', 'operations'] description: A list of out of the box transforms. diff --git a/docs/guides.md b/docs/guides.md index 96d41e1ca7f0a..ae84d3b32493c 100644 --- a/docs/guides.md +++ b/docs/guides.md @@ -1,20 +1,27 @@ --- id: guides -title: Guides -pagination_label: Guides -sidebar_label: Guides +title: Solution guides +pagination_label: Solution guides +sidebar_label: Solution guides sidebar_key: isc-guides sidebar_position: 1 sidebar_class_name: guides keywords: ['guides'] -description: ISC guides. +description: Cross-cutting ISC solution 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. +Identity Security Cloud (ISC) has all sorts of specific solutions you can implement as long as you know how. This section is for cross-cutting solution guides: tasks that span multiple areas of the platform or do not fit cleanly under Extensibility, Connectivity, Tools, or Reporting. + +If you are looking for a domain-specific tutorial, start in that domain instead: + +- [Transform guides](/docs/extensibility/transforms/guides) for transform tutorials. +- [Rule guides](/docs/extensibility/rules/guides) for rule tutorials. +- [Developer tools](/docs/tools) for installation, setup, and local development workflows. +- [API specifications](/docs/api) for endpoint reference documentation. ```mdx-code-block import DocCardList from '@theme/DocCardList'; @@ -25,6 +32,6 @@ 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. +The developer forum is a valuable resource for ISC developers, where users and experts 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). +To learn more about these ISC topics and discuss them with other SailPoint developers, go to the [SailPoint Developer Forum](https://developer.sailpoint.com/discuss/c/isc/6). diff --git a/docs/index.md b/docs/index.md index 14581020c114b..fa3cdb88accd7 100644 --- a/docs/index.md +++ b/docs/index.md @@ -27,6 +27,12 @@ The SailPoint Developer Documentation provides developers with all the informati Check out the developer documentation and see what's possible! +## Choose the right type of content + +- **Reference documentation** explains the available APIs, transform operations, rule types, SDK methods, and product behaviors. Use it when you already know what you need to build and need exact syntax or capabilities. +- **Getting started content** helps you install tools, configure authentication, and make your first working request or local project. +- **Guides and tutorials** walk through opinionated implementation paths. Domain-specific guides live with their domain, such as [transform guides](/docs/extensibility/transforms/guides) and [rule guides](/docs/extensibility/rules/guides). The [solution guides](/docs/guides) section is reserved for tasks that span multiple domains or do not fit one product area cleanly. + :::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/). diff --git a/docs/reporting.md b/docs/reporting.md index 68bcd3512d1ce..86853abddc2d9 100644 --- a/docs/reporting.md +++ b/docs/reporting.md @@ -15,6 +15,8 @@ tags: ['reporting'] 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. +This section is primarily guide-oriented. Use it when you need to configure reporting workflows or understand reporting options. For API endpoint syntax, use the [API specifications](/docs/api). + ```mdx-code-block import DocCardList from '@theme/DocCardList'; import {useCurrentSidebarCategory} from '@docusaurus/theme-common'; @@ -24,6 +26,6 @@ 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. +The developer forum is a valuable resource for ISC developers, where users and experts 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). +To learn more about ISC data reporting and discuss the different options with other SailPoint developers, go to the [SailPoint Developer Forum](https://developer.sailpoint.com/discuss/c/isc/6). diff --git a/i18n/en/docusaurus-theme-classic/navbar.json b/i18n/en/docusaurus-theme-classic/navbar.json index 648e23e58e054..56f7dc3f356a6 100644 --- a/i18n/en/docusaurus-theme-classic/navbar.json +++ b/i18n/en/docusaurus-theme-classic/navbar.json @@ -71,6 +71,14 @@ "message": "Developer tools overview", "description": "Navbar item with label Developer tools overview" }, + "item.label.Build a transform": { + "message": "Build a transform", + "description": "Navbar item with label Build a transform" + }, + "item.label.Build a rule": { + "message": "Build a rule", + "description": "Navbar item with label Build a rule" + }, "item.label.IdentityNow Certifications": { "message": "IdentityNow Certifications", "description": "Navbar item with label IdentityNow Certifications" diff --git a/navbar.ts b/navbar.ts index d229ca497dbe8..7435fa42d813d 100644 --- a/navbar.ts +++ b/navbar.ts @@ -46,6 +46,14 @@ const navbarConfig = { { label: 'Developer tools overview', to: '/docs/tools' }, { label: 'SDKs', to: '/docs/tools/sdk' }, { label: 'CLI', to: '/docs/tools/cli' }, + { + label: 'Build a transform', + to: '/docs/extensibility/transforms/guides/your-first-transform', + }, + { + label: 'Build a rule', + to: '/docs/extensibility/rules/guides/your-first-rule', + }, { label: 'Rule Development Kit', to: '/docs/tools/rule-development-kit' }, { label: 'UI Development Kit', to: '/docs/tools/ui-development-kit' }, { label: 'Escaping Tool Formatter', to: '/tools/escaping-tool-formatter' }, diff --git a/sidebars.ts b/sidebars.ts index 65a5efc37f02b..2a16f23747e98 100644 --- a/sidebars.ts +++ b/sidebars.ts @@ -23,7 +23,7 @@ const sidebars: SidebarsConfig = { openApiSidebar: [ { type: 'category', - label: 'Documentation', + label: 'Identity Security Cloud docs', collapsible: false, link: {type: 'doc', id: 'docs'}, items: [ @@ -53,7 +53,7 @@ const sidebars: SidebarsConfig = { }, { type: 'category', - label: 'Guides', + label: 'Solution guides', link: {type: 'doc', id: 'guides'}, items: [{type: 'autogenerated', dirName: 'guides'}], }, From 5594c5ffd622aa64a7a3760cc97bc4755e16aae8 Mon Sep 17 00:00:00 2001 From: Luke Hagar Date: Thu, 4 Jun 2026 16:16:45 -0500 Subject: [PATCH 3/4] Center Developer Relations team cards Keep the meet-the-team card grid centered across responsive widths. Co-authored-by: Cursor --- .../homepage/HomepageTeam/styles.module.css | 30 ++++++------------- 1 file changed, 9 insertions(+), 21 deletions(-) diff --git a/src/components/homepage/HomepageTeam/styles.module.css b/src/components/homepage/HomepageTeam/styles.module.css index d974a66120253..f3c0143eafd65 100644 --- a/src/components/homepage/HomepageTeam/styles.module.css +++ b/src/components/homepage/HomepageTeam/styles.module.css @@ -1,45 +1,33 @@ .gridContainer { display: flex; - grid-template-columns: 1fr 1fr 1fr 1fr; flex-wrap: wrap; - grid-gap: 40px; - width: 1100px; - margin-left: 20px; + gap: 40px; + justify-content: center; + margin: 0 auto; + width: 100%; } .center { - width: 1100px; margin: auto; + max-width: 1100px; padding-bottom: 5%; + width: calc(100% - 40px); } @media only screen and (max-width: 1150px) { - .gridContainer { - width: 820px; - } - .center { - width: 820px; + max-width: 820px; } } @media only screen and (max-width: 920px) { - .gridContainer { - width: 560px; - } - .center { - width: 560px; + max-width: 560px; } } @media only screen and (max-width: 660px) { - .gridContainer { - width: 220px; - margin-left: 0px; - } - .center { - width: 220px; + max-width: 220px; } } From 75a293cea7761ad62d37ff1cb8bd11279562aeee Mon Sep 17 00:00:00 2001 From: Luke Hagar Date: Fri, 5 Jun 2026 11:43:59 -0500 Subject: [PATCH 4/4] Update Docusaurus configuration and documentation for improved clarity and consistency - Changed the title and tagline from "SailPoint Developer Community" to "SailPoint Developers" across multiple configuration files. - Updated descriptions in metadata and announcements to reflect the new branding. - Enhanced sidebar labels for better navigation, including renaming categories and guides for clarity. - Adjusted footer links and navbar items for consistency in naming conventions. - Improved documentation references to the SailPoint Developer Forum for better user engagement. Co-authored-by: Cursor --- .../rules/connector-rules/index.md | 2 +- docs/extensibility/rules/guides/index.md | 6 +- docs/extensibility/transforms/guides/index.md | 6 +- docs/extensibility/transforms/index.md | 2 +- .../transforms/operations/index.md | 6 +- .../transforms/operations/reference.md | 6 +- .../out-of-the-box-operations/index.md | 6 +- .../plugin-developer-guide/chapter-1/index.md | 2 +- docs/index.md | 4 +- docs/plugin-developer-guide.md | 8 +- docs/sidebar.js | 2 +- docs/tools.md | 6 +- docs/tools/sdk/go/index.mdx | 2 +- docs/tools/sdk/powershell/index.mdx | 2 +- docs/tools/sdk/python/index.mdx | 2 +- docs/tools/sdk/typescript/index.mdx | 2 +- docusaurus.config.extensibility.ts | 22 +-- docusaurus.config.minified.ts | 12 +- docusaurus.config.ts | 2 +- footer.ts | 14 +- .../current.json | 4 +- .../current.json | 2 +- i18n/en/docusaurus-theme-classic/footer.json | 106 +++++++------- i18n/en/docusaurus-theme-classic/navbar.json | 132 ++++++++++-------- navbar.ts | 14 +- sidebars.extensibility.ts | 12 +- sidebars.minified.ts | 30 ++-- sidebars.ts | 48 +++---- .../video-library/VideoCardDetails/index.tsx | 6 +- .../video-library/VideoComments/index.tsx | 8 +- src/pages/ambassadors.tsx | 6 +- src/pages/colab.tsx | 6 +- src/pages/colab/communitytools.tsx | 6 +- src/pages/colab/plugins.tsx | 6 +- src/pages/colab/rules.tsx | 6 +- src/pages/colab/saasconnectorcustomizers.tsx | 6 +- src/pages/colab/saasconnectors.tsx | 6 +- src/pages/colab/transforms.tsx | 6 +- src/pages/colab/workflows.tsx | 6 +- src/pages/community-policies.tsx | 2 +- src/pages/devrel-team.tsx | 4 +- src/pages/tools/escaping-tool-formatter.tsx | 6 +- src/pages/tools/json-path-evaluator.tsx | 6 +- src/pages/tools/velocity-playground.tsx | 13 +- 44 files changed, 290 insertions(+), 271 deletions(-) diff --git a/docs/extensibility/rules/connector-rules/index.md b/docs/extensibility/rules/connector-rules/index.md index 17d989c243ac8..011a2d8e50420 100644 --- a/docs/extensibility/rules/connector-rules/index.md +++ b/docs/extensibility/rules/connector-rules/index.md @@ -86,7 +86,7 @@ requestEndPoint.getBody().put(\"jsonBody\",requestXML); \n }\n - `sourceVersion` - String indicating the rule's version. Typically, this is the same as `version`. - `sourceCode` - Object housing the actual source code that makes the rule work. - `version` - String indicating the rule's version. Typically, this is the same as `sourceVersion`. - - `script` - Rule’s code the connector runs. This must be an escaped string. For help with formatting, use an escaping tool like [Escaping Tool Formatter.](/tools/escaping-tool-formatter) + - `script` - Rule’s code the connector runs. This must be an escaped string. For help with formatting, use an escaping tool like [Java/.NET string escaper.](/tools/escaping-tool-formatter) ## Attaching connector-related Rules to sources diff --git a/docs/extensibility/rules/guides/index.md b/docs/extensibility/rules/guides/index.md index 983ee86f08eb3..222e86f71645d 100644 --- a/docs/extensibility/rules/guides/index.md +++ b/docs/extensibility/rules/guides/index.md @@ -1,8 +1,8 @@ --- id: guides -title: Rule guides -pagination_label: Guides -sidebar_label: Rule guides +title: Rule Guides +pagination_label: Rule Guides +sidebar_label: Rule Guides sidebar_key: rules-guides sidebar_position: 1 sidebar_class_name: Rules diff --git a/docs/extensibility/transforms/guides/index.md b/docs/extensibility/transforms/guides/index.md index f3bfdc606cbbd..0abf78cee827f 100644 --- a/docs/extensibility/transforms/guides/index.md +++ b/docs/extensibility/transforms/guides/index.md @@ -1,8 +1,8 @@ --- id: guides -title: Transform guides -pagination_label: Transform guides -sidebar_label: Transform guides +title: Transform Guides +pagination_label: Transform Guides +sidebar_label: Transform Guides sidebar_position: 1 sidebar_key: transform-guides sidebar_class_name: transforms diff --git a/docs/extensibility/transforms/index.md b/docs/extensibility/transforms/index.md index 1fb7e3603b3ac..a2b0ff1215d61 100644 --- a/docs/extensibility/transforms/index.md +++ b/docs/extensibility/transforms/index.md @@ -290,7 +290,7 @@ To test a transform for account data, you must provision a new account on that s - **JSON Editor** - Because transforms are JSON objects, it is recommended that you use a good JSON editor. Atom, Sublime Text, and Microsoft Code work well because they have JSON formatting and plugins that can do JSON validation, completion, formatting, and folding. This is very useful for large complex JSON objects. -- **Leverage Examples** - Many implementations use similar sets of transforms, and a lot of common solutions can be found in examples. Feel free to share your own transform examples on the [Developer Community forum](https://developer.sailpoint.com/discuss)! +- **Leverage Examples** - Many implementations use similar sets of transforms, and a lot of common solutions can be found in examples. Feel free to share your own transform examples on the [SailPoint Developer Forum](https://developer.sailpoint.com/discuss)! - **Same Problem, Multiple Solutions** - There can be multiple ways to solve the same problem, but use the solution that makes the most sense to your implementation and is easiest to administer and understand. diff --git a/docs/extensibility/transforms/operations/index.md b/docs/extensibility/transforms/operations/index.md index d47cbf8aa6ba9..58126005143ac 100644 --- a/docs/extensibility/transforms/operations/index.md +++ b/docs/extensibility/transforms/operations/index.md @@ -1,8 +1,8 @@ --- id: operations -title: Transform operations -pagination_label: Transform operations -sidebar_label: Transform operations +title: Transform Operations +pagination_label: Transform Operations +sidebar_label: Transform Operations sidebar_position: 2 sidebar_class_name: operations keywords: ['transforms', 'operations'] diff --git a/docs/extensibility/transforms/operations/reference.md b/docs/extensibility/transforms/operations/reference.md index 699767757be8c..349ac1d9fbd23 100644 --- a/docs/extensibility/transforms/operations/reference.md +++ b/docs/extensibility/transforms/operations/reference.md @@ -1,8 +1,8 @@ --- id: reference -title: Reference transform -pagination_label: Reference transform -sidebar_label: Reference transform +title: Reference Transform +pagination_label: Reference Transform +sidebar_label: Reference Transform sidebar_class_name: reference sidebar_key: transforms-reference keywords: ['transforms', 'operations', 'reference'] diff --git a/docs/extensibility/transforms/out-of-the-box-operations/index.md b/docs/extensibility/transforms/out-of-the-box-operations/index.md index 0b1a72d49abda..1eaa314c62122 100644 --- a/docs/extensibility/transforms/out-of-the-box-operations/index.md +++ b/docs/extensibility/transforms/out-of-the-box-operations/index.md @@ -1,8 +1,8 @@ --- id: ootb-transforms -title: Out of the box transforms -pagination_label: Out of the Box Transforms -sidebar_label: Out of the box transforms +title: Out-of-the-box transforms +pagination_label: Out-of-the-box transforms +sidebar_label: Out-of-the-box transforms sidebar_position: 3 sidebar_class_name: operations keywords: ['transforms', 'operations'] diff --git a/docs/iiq/plugin-developer-guide/chapter-1/index.md b/docs/iiq/plugin-developer-guide/chapter-1/index.md index e533c6e837d89..0a6d72d72da25 100644 --- a/docs/iiq/plugin-developer-guide/chapter-1/index.md +++ b/docs/iiq/plugin-developer-guide/chapter-1/index.md @@ -6,7 +6,7 @@ sidebar_label: Overview sidebar_position: 1 sidebar_class_name: plugin_developer_guide_overview keywords: ['plugin'] -description: IdentityIQ Plugin Developer Guide Overview +description: IdentityIQ plugin developer guide overview slug: /iiq/plugin-developer-guide/overview tags: ['plugin', 'guide', 'identityiq'] --- diff --git a/docs/index.md b/docs/index.md index fa3cdb88accd7..8e2a112ab21b2 100644 --- a/docs/index.md +++ b/docs/index.md @@ -1,8 +1,8 @@ --- id: docs title: Identity Security Cloud -pagination_label: Docs -sidebar_label: Docs +pagination_label: Identity Security Cloud +sidebar_label: Identity Security Cloud sidebar_position: 1 sidebar_class_name: docs keywords: ['docs'] diff --git a/docs/plugin-developer-guide.md b/docs/plugin-developer-guide.md index a65c8f602606e..9799628aca5e8 100644 --- a/docs/plugin-developer-guide.md +++ b/docs/plugin-developer-guide.md @@ -1,12 +1,12 @@ --- id: plugin-developer-guide -title: Plugin Developer Guide -pagination_label: Plugin Developer Guide -sidebar_label: Plugin Developer Guide +title: IdentityIQ plugin developer guide +pagination_label: IdentityIQ plugin developer guide +sidebar_label: IdentityIQ plugin developer guide sidebar_position: 1 sidebar_class_name: plugin_developer_guide keywords: ['plugin'] -description: IdentityIQ Plugin Developer Guide. +description: IdentityIQ plugin developer guide. slug: /iiq/plugin-developer-guide tags: ['plugin', 'guide', 'identityiq'] --- diff --git a/docs/sidebar.js b/docs/sidebar.js index c4fd5107a50a3..4185b14eba851 100644 --- a/docs/sidebar.js +++ b/docs/sidebar.js @@ -108,7 +108,7 @@ const sidebars = { 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.", + "These are the SCIM APIs for SailPoint's on-premise service, IdentityIQ. We encourage you to join the SailPoint Developer Forum at https://developer.sailpoint.com/discuss to connect with other developers using our APIs.", slug: '/api/iiq', }, // @ts-ignore diff --git a/docs/tools.md b/docs/tools.md index 71680cf3d55cd..fd35c6d211ee2 100644 --- a/docs/tools.md +++ b/docs/tools.md @@ -26,9 +26,9 @@ SailPoint developer tools help you install, configure, test, and extend Identity These tools are hosted directly on the developer site and do not require local installation: -- [Escaping Tool Formatter](/tools/escaping-tool-formatter): Format and escape values for use in configuration and templates. -- [JSON Path Evaluator](/tools/json-path-evaluator): Test JSONPath expressions against sample data. -- [Velocity PlayGround](/tools/velocity-playground): Experiment with Velocity templates before using them in SailPoint configurations. +- [Java/.NET string escaper](/tools/escaping-tool-formatter): Format and escape values for use in configuration and templates. +- [JSON path evaluator](/tools/json-path-evaluator): Test JSONPath expressions against sample data. +- [Velocity playground](/tools/velocity-playground): Experiment with Velocity templates before using them in SailPoint configurations. ```mdx-code-block import DocCardList from '@theme/DocCardList'; diff --git a/docs/tools/sdk/go/index.mdx b/docs/tools/sdk/go/index.mdx index e38675c8a6491..82b78c69cdcf8 100644 --- a/docs/tools/sdk/go/index.mdx +++ b/docs/tools/sdk/go/index.mdx @@ -203,7 +203,7 @@ Before you contribute, you must sign our [CLA](https://cla-assistant.io/sailpoin ## 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! +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 Forum at https://developer.sailpoint.com/discuss! ## Getting started diff --git a/docs/tools/sdk/powershell/index.mdx b/docs/tools/sdk/powershell/index.mdx index 3b98a03226949..11d7ddf93bd54 100644 --- a/docs/tools/sdk/powershell/index.mdx +++ b/docs/tools/sdk/powershell/index.mdx @@ -213,7 +213,7 @@ Before you contribute, you must sign our [CLA](https://cla-assistant.io/sailpoin ## 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! +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 Forum at https://developer.sailpoint.com/discuss! ## Getting started diff --git a/docs/tools/sdk/python/index.mdx b/docs/tools/sdk/python/index.mdx index ffba0a7dde2f3..30b32f9a0a013 100644 --- a/docs/tools/sdk/python/index.mdx +++ b/docs/tools/sdk/python/index.mdx @@ -200,7 +200,7 @@ Before you contribute, you must sign our [CLA](https://cla-assistant.io/sailpoin ## Discuss -You can use this SDK to build new tools that extend your Identity Security Cloud 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 Identity Security Cloud 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 Forum at https://developer.sailpoint.com/discuss! ## Getting started diff --git a/docs/tools/sdk/typescript/index.mdx b/docs/tools/sdk/typescript/index.mdx index 9b283545d0842..ded385a8c9857 100644 --- a/docs/tools/sdk/typescript/index.mdx +++ b/docs/tools/sdk/typescript/index.mdx @@ -243,7 +243,7 @@ Before you contribute, you must sign our [CLA](https://cla-assistant.io/sailpoin ## 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! +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 Forum at https://developer.sailpoint.com/discuss! ## Getting started diff --git a/docusaurus.config.extensibility.ts b/docusaurus.config.extensibility.ts index c8366700f5733..8e9e1e58d5a4c 100644 --- a/docusaurus.config.extensibility.ts +++ b/docusaurus.config.extensibility.ts @@ -9,8 +9,8 @@ // - All docusaurus-plugin-openapi-docs plugins filtered out (no API doc generation) // - Navbar omits the API specifications dropdown -import { ThemeConfig } from '@docusaurus/preset-classic'; -import { Config } from '@docusaurus/types'; +import type { ThemeConfig } from '@docusaurus/preset-classic'; +import type { Config } from '@docusaurus/types'; import 'dotenv/config'; import { themes } from 'prism-react-renderer'; import allPlugins from './plugins'; @@ -44,9 +44,9 @@ const config: Config = { v4: true, experimental_faster: true, }, - title: 'SailPoint Developer Community', + title: 'SailPoint Developers', tagline: - 'The SailPoint Developer Community has everything you need to build, extend, and automate scalable identity solutions.', + 'SailPoint Developers gives you everything you need to build, extend, and automate scalable identity solutions.', url: 'https://developer.sailpoint.com', baseUrl, favicon: 'img/SailPoint-Logo-Icon.ico', @@ -100,17 +100,17 @@ const config: Config = { themeConfig: { image: 'img/SailPoint-Developer-Community-Lockup.png', metadata: [ - { name: 'description', content: 'The SailPoint Developer Community has everything you need to build, extend, and automate scalable identity solutions.' }, + { name: 'description', content: 'SailPoint Developers gives you everything you need to build, extend, and automate scalable identity solutions.' }, { property: 'og:url', content: 'https://developer.sailpoint.com' }, { property: 'og:type', content: 'website' }, - { property: 'og:title', content: 'SailPoint Developer Community' }, - { property: 'og:description', content: 'The SailPoint Developer Community has everything you need to build, extend, and automate scalable identity solutions.' }, + { property: 'og:title', content: 'SailPoint Developers' }, + { property: 'og:description', content: 'SailPoint Developers gives you everything you need to build, extend, and automate scalable identity solutions.' }, { property: 'og:image', content: 'https://developer.sailpoint.com/img/SailPoint-Logo-OG.png' }, { name: 'twitter:card', content: 'summary_large_image' }, { name: 'twitter:domain', content: 'developer.sailpoint.com' }, { name: 'twitter:url', content: 'https://developer.sailpoint.com' }, - { name: 'twitter:title', content: 'SailPoint Developer Community' }, - { name: 'twitter:description', content: 'The SailPoint Developer Community has everything you need to build, extend, and automate scalable identity solutions.' }, + { name: 'twitter:title', content: 'SailPoint Developers' }, + { name: 'twitter:description', content: 'SailPoint Developers gives you everything you need to build, extend, and automate scalable identity solutions.' }, { name: 'twitter:image', content: 'https://developer.sailpoint.com/img/SailPoint-Logo-OG.png' }, ], algolia: { @@ -118,7 +118,7 @@ const config: Config = { apiKey: process.env.ALGOLIA_SEARCH_KEY || 'dummy-key', indexName: 'crawler_Developer_Documentation', searchPagePath: false, - placeholder: 'Search the Developer Community', + placeholder: 'Search SailPoint Developers', contextualSearch: false, }, docs: { @@ -135,7 +135,7 @@ const config: Config = { id: 'newAnnouncement3', isCloseable: true, content: - 'our latest announcement in the SailPoint Developer Community Forum: Announcing the Developer Community CoLab! 🎉', + 'See our latest announcement in the SailPoint Developer Forum: Announcing the Developer Community CoLab! 🎉', }, navbar: extensibilityNavbar, footer: footer, diff --git a/docusaurus.config.minified.ts b/docusaurus.config.minified.ts index ee5c1bc553b07..eac256e0253cc 100644 --- a/docusaurus.config.minified.ts +++ b/docusaurus.config.minified.ts @@ -8,8 +8,8 @@ // - Plugins imported from plugins.ts with iiq-api, nerm-api, GTM, and redirects filtered out // - Simplified navbar with only ISC API-spec link -import { ThemeConfig } from '@docusaurus/preset-classic'; -import { Config } from '@docusaurus/types'; +import type { ThemeConfig } from '@docusaurus/preset-classic'; +import type { Config } from '@docusaurus/types'; import 'dotenv/config'; import { themes } from 'prism-react-renderer'; import allPlugins from './plugins'; @@ -39,9 +39,9 @@ const config: Config = { v4: true, experimental_faster: true, }, - title: 'SailPoint Developer Community', + title: 'SailPoint Developers', tagline: - 'The SailPoint Developer Community has everything you need to build, extend, and automate scalable identity solutions.', + 'SailPoint Developers gives you everything you need to build, extend, and automate scalable identity solutions.', url: 'https://developer.sailpoint.com', baseUrl, favicon: 'img/SailPoint-Logo-Icon.ico', @@ -123,12 +123,12 @@ const config: Config = { id: 'newAnnouncement3', isCloseable: true, content: - 'our latest announcement in the SailPoint Developer Community Forum: Announcing the Developer Community CoLab! 🎉', + 'See our latest announcement in the SailPoint Developer Forum: Announcing the Developer Community CoLab! 🎉', }, navbar: { title: '', logo: { - alt: 'SailPoint Developer Community', + alt: 'SailPoint Developers', src: 'img/SailPoint-Developer-Community-Lockup.png', srcDark: 'img/SailPoint-Developer-Community-Inverse-Lockup.png', }, diff --git a/docusaurus.config.ts b/docusaurus.config.ts index 3d9f04221b1e5..72e730f39adaa 100644 --- a/docusaurus.config.ts +++ b/docusaurus.config.ts @@ -110,7 +110,7 @@ const config: Config = { id: 'newAnnouncement3', isCloseable: true, content: - 'our latest announcement in the SailPoint Developer Forum: Announcing the Developer Community CoLab! 🎉', + 'See our latest announcement in the SailPoint Developer Forum: Announcing the Developer Community CoLab! 🎉', }, navbar: navbar, footer: footer, diff --git a/footer.ts b/footer.ts index dd2d81144de90..71f45052aae80 100644 --- a/footer.ts +++ b/footer.ts @@ -8,7 +8,7 @@ const footerConfig = { { label: 'Build a transform', to: 'docs/extensibility/transforms/guides/your-first-transform' }, { label: 'Build a SaaS connector', to: 'docs/connectivity/saas-connectivity' }, { - label: 'Get certified', + label: 'SailPoint certifications', href: 'https://university.sailpoint.com/page/professional-certifications-and-knowledge-credentials' }, ], @@ -17,11 +17,11 @@ const footerConfig = { title: 'IdentityIQ', items: [ { - label: 'Build a plugin', + label: 'Build an IdentityIQ plugin', to: 'https://documentation.sailpoint.com/identityiq/help/plugins/develop_plugins/index.html' }, { - label: 'Get certified', + label: 'SailPoint certifications', href: 'https://university.sailpoint.com/page/professional-certifications-and-knowledge-credentials' }, ], @@ -34,17 +34,17 @@ const footerConfig = { { label: 'Community policies', to: '/community-policies' }, { label: 'Submit an idea', to: 'https://developer-sailpoint.ideas.aha.io/' }, { - label: 'Developer Relations team', + label: 'Meet the Developer Relations team', to: '/devrel-team', }, { - label: 'Contact our team', + label: 'Contact Developer Relations', to: 'https://developer.sailpoint.com/discuss/new-message?groupname=developer_relations' }, ], }, { - title: 'More', + title: 'Open source', items: [ { label: 'GitHub', href: 'https://github.com/sailpoint-oss' }, ], @@ -69,7 +69,7 @@ const footerConfig = { }, ], logo: { - alt: 'SailPoint Developers Logo', + alt: 'SailPoint Developers', src: '/img/SailPoint-Developer-Community-Lockup.png', srcDark: 'img/SailPoint-Developer-Community-Inverse-Lockup.png', href: 'https://developer.sailpoint.com', diff --git a/i18n/en/docusaurus-plugin-content-docs-idn/current.json b/i18n/en/docusaurus-plugin-content-docs-idn/current.json index 7c4acdac2d987..3aac128deecb2 100644 --- a/i18n/en/docusaurus-plugin-content-docs-idn/current.json +++ b/i18n/en/docusaurus-plugin-content-docs-idn/current.json @@ -12,7 +12,7 @@ "description": "The generated-index page title for category IDN V3 in sidebar openApiSidebar" }, "sidebar.openApiSidebar.category.IDN V3.link.generated-index.description": { - "message": "These are the public APIs for SailPoint's SaaS services. We encourage you to join the SailPoint Developer Community forum at https://developer.sailpoint.com/discuss to connect with other developers using our APIs.", + "message": "These are the public APIs for SailPoint's SaaS services. We encourage you to join the SailPoint Developer Forum at https://developer.sailpoint.com/discuss to connect with other developers using our APIs.", "description": "The generated-index page description for category IDN V3 in sidebar openApiSidebar" }, "sidebar.openApiSidebar.category.Access Request Approvals": { @@ -112,7 +112,7 @@ "description": "The generated-index page title for category IDN Beta in sidebar openApiSidebar" }, "sidebar.openApiSidebar.category.IDN Beta.link.generated-index.description": { - "message": "These are the public APIs for SailPoint's SaaS services. We encourage you to join the SailPoint Developer Community forum at https://developer.sailpoint.com/discuss to connect with other developers using our APIs.", + "message": "These are the public APIs for SailPoint's SaaS services. We encourage you to join the SailPoint Developer Forum at https://developer.sailpoint.com/discuss to connect with other developers using our APIs.", "description": "The generated-index page description for category IDN Beta in sidebar openApiSidebar" }, "sidebar.openApiSidebar.category.Access Profiles": { diff --git a/i18n/en/docusaurus-plugin-content-docs-iiq/current.json b/i18n/en/docusaurus-plugin-content-docs-iiq/current.json index 343a9194f6b66..662a6f223fea6 100644 --- a/i18n/en/docusaurus-plugin-content-docs-iiq/current.json +++ b/i18n/en/docusaurus-plugin-content-docs-iiq/current.json @@ -12,7 +12,7 @@ "description": "The generated-index page title for category IIQ Api in sidebar iiqOpenApiSidebar" }, "sidebar.iiqOpenApiSidebar.category.IIQ Api.link.generated-index.description": { - "message": "These are the public APIs for SailPoint's SaaS services. We encourage you to join the SailPoint Developer Community forum at https://developer.sailpoint.com/discuss to connect with other developers using our APIs.", + "message": "These are the public APIs for SailPoint's SaaS services. We encourage you to join the SailPoint Developer Forum at https://developer.sailpoint.com/discuss to connect with other developers using our APIs.", "description": "The generated-index page description for category IIQ Api in sidebar iiqOpenApiSidebar" }, "sidebar.iiqOpenApiSidebar.category.Accounts": { diff --git a/i18n/en/docusaurus-theme-classic/footer.json b/i18n/en/docusaurus-theme-classic/footer.json index 45ab5340d29c2..e4c16901eef7e 100644 --- a/i18n/en/docusaurus-theme-classic/footer.json +++ b/i18n/en/docusaurus-theme-classic/footer.json @@ -1,7 +1,7 @@ { - "link.title.IdentityNow": { - "message": "IdentityNow", - "description": "The title of the footer links column with title=IdentityNow in the footer" + "link.title.Identity Security Cloud": { + "message": "Identity Security Cloud", + "description": "The title of the footer links column with title=Identity Security Cloud in the footer" }, "link.title.IdentityIQ": { "message": "IdentityIQ", @@ -11,9 +11,9 @@ "message": "Community", "description": "The title of the footer links column with title=Community in the footer" }, - "link.title.More": { - "message": "More", - "description": "The title of the footer links column with title=More in the footer" + "link.title.Open source": { + "message": "Open source", + "description": "The title of the footer links column with title=Open source in the footer" }, "link.title.Company": { "message": "Company", @@ -23,73 +23,73 @@ "message": "Legal", "description": "The title of the footer links column with title=Legal in the footer" }, - "link.item.label.Your First API Call": { - "message": "Your First API Call", - "description": "The label of footer link with label=Your First API Call linking to idn/docs/getting-started" + "link.item.label.Your first API call": { + "message": "Your first API call", + "description": "The label of footer link with label=Your first API call" }, - "link.item.label.Build A Transform": { - "message": "Build A Transform", - "description": "The label of footer link with label=Build A Transform linking to idn/docs/transforms" + "link.item.label.Build a transform": { + "message": "Build a transform", + "description": "The label of footer link with label=Build a transform" }, - "link.item.label.Build A SaaS Connector": { - "message": "Build A SaaS Connector", - "description": "The label of footer link with label=Build A SaaS Connector linking to idn/docs/saas-connectors" + "link.item.label.Build a SaaS connector": { + "message": "Build a SaaS connector", + "description": "The label of footer link with label=Build a SaaS connector" }, - "link.item.label.Get Certified": { - "message": "Get Certified", - "description": "The label of footer link with label=Get Certified linking to https://university.sailpoint.com/page/professional-certifications-and-knowledge-credentials" + "link.item.label.SailPoint certifications": { + "message": "SailPoint certifications", + "description": "The label of footer link with label=SailPoint certifications" }, - "link.item.label.Build A Plugin": { - "message": "Build A Plugin", - "description": "The label of footer link with label=Build A Plugin linking to https://documentation.sailpoint.com/" + "link.item.label.Build an IdentityIQ plugin": { + "message": "Build an IdentityIQ plugin", + "description": "The label of footer link with label=Build an IdentityIQ plugin" }, - "link.item.label.Developer Forum": { - "message": "Developer Forum", - "description": "The label of footer link with label=Developer forum linking to https://developer.sailpoint.com/discuss" + "link.item.label.Developer forum": { + "message": "Developer forum", + "description": "The label of footer link with label=Developer forum" }, "link.item.label.Videos": { "message": "Videos", - "description": "The label of footer link with label=Videos linking to /videos" + "description": "The label of footer link with label=Videos" }, - "link.item.label.Community Policies": { - "message": "Community Policies", - "description": "The label of footer link with label=Community policies linking to /community-policies" + "link.item.label.Community policies": { + "message": "Community policies", + "description": "The label of footer link with label=Community policies" }, - "link.item.label.Submit an Idea": { - "message": "Submit an Idea", - "description": "The label of footer link with label=Submit an Idea linking to https://ideas.sailpoint.com/" + "link.item.label.Submit an idea": { + "message": "Submit an idea", + "description": "The label of footer link with label=Submit an idea" }, - "link.item.label.Contact Our Team": { - "message": "Contact Our Team", - "description": "The label of footer link with label=Contact Our Team linking to https://developer.sailpoint.com/discuss/new-message?groupname=developer_relations" + "link.item.label.Meet the Developer Relations team": { + "message": "Meet the Developer Relations team", + "description": "The label of footer link with label=Meet the Developer Relations team" }, - "link.item.label.Developer Relations Team": { - "message": "Developer Relations Team", - "description": "The label of footer link with label=Developer Relations team linking to /devrel-team" + "link.item.label.Contact Developer Relations": { + "message": "Contact Developer Relations", + "description": "The label of footer link with label=Contact Developer Relations" }, "link.item.label.GitHub": { "message": "GitHub", - "description": "The label of footer link with label=GitHub linking to https://github.com/sailpoint-oss" + "description": "The label of footer link with label=GitHub" }, - "link.item.label.The SailPoint Story": { - "message": "The SailPoint Story", - "description": "The label of footer link with label=The SailPoint Story linking to https://www.sailpoint.com/company/" + "link.item.label.The SailPoint story": { + "message": "The SailPoint story", + "description": "The label of footer link with label=The SailPoint story" }, - "link.item.label.The SailPoint Way": { - "message": "The SailPoint Way", - "description": "The label of footer link with label=The SailPoint Way linking to https://www.sailpoint.com/company/diversity-inclusion-and-belonging/" + "link.item.label.The SailPoint way": { + "message": "The SailPoint way", + "description": "The label of footer link with label=The SailPoint way" }, - "link.item.label.Leadership Team": { - "message": "Leadership Team", - "description": "The label of footer link with label=Leadership Team linking to https://www.sailpoint.com/company/#h-our-leadership" + "link.item.label.Leadership team": { + "message": "Leadership team", + "description": "The label of footer link with label=Leadership team" }, - "link.item.label.Become A Partner": { - "message": "Become A Partner", - "description": "The label of footer link with label=Become A Partner linking to https://www.sailpoint.com/partners/become-partner/" + "link.item.label.Become a partner": { + "message": "Become a partner", + "description": "The label of footer link with label=Become a partner" }, - "link.item.label.Terms & Conditions": { - "message": "Terms & Conditions", - "description": "The label of footer link with label=Terms & Conditions linking to https://developer.sailpoint.com" + "link.item.label.Terms & conditions": { + "message": "Terms & conditions", + "description": "The label of footer link with label=Terms & conditions" }, "copyright": { "message": "Copyright © 2026 SailPoint Technologies, Inc. All Rights Reserved.", diff --git a/i18n/en/docusaurus-theme-classic/navbar.json b/i18n/en/docusaurus-theme-classic/navbar.json index 56f7dc3f356a6..d1876c53dab66 100644 --- a/i18n/en/docusaurus-theme-classic/navbar.json +++ b/i18n/en/docusaurus-theme-classic/navbar.json @@ -1,11 +1,7 @@ { - "item.label.IdentityNow": { - "message": "IdentityNow", - "description": "Navbar item with label IdentityNow" - }, - "item.label.IdentityIQ": { - "message": "IdentityIQ", - "description": "Navbar item with label IdentityIQ" + "item.label.Documentation": { + "message": "Documentation", + "description": "Navbar item with label Documentation" }, "item.label.Identity Security Cloud developer docs": { "message": "Identity Security Cloud developer docs", @@ -23,45 +19,21 @@ "message": "SailPoint product documentation", "description": "Navbar item with label SailPoint product documentation" }, - "item.label.Ideas": { - "message": "Ideas", - "description": "Navbar item with label Ideas" - }, - "item.label.Discuss": { - "message": "Discuss", - "description": "Navbar item with label Discuss" - }, - "item.label.Support": { - "message": "Support", - "description": "Navbar item with label Support" - }, - "item.label.Status": { - "message": "Status", - "description": "Navbar item with label Status" - }, - "item.label.API Specifications": { - "message": "API Specifications", - "description": "Navbar item with label API Specifications" + "item.label.API specifications": { + "message": "API specifications", + "description": "Navbar item with label API specifications" }, - "item.label.V3 APIs": { - "message": "V3 APIs", - "description": "Navbar item with label V3 APIs" - }, - "item.label.Beta APIs": { - "message": "Beta APIs", - "description": "Navbar item with label Beta APIs" - }, - "item.label.Documentation": { - "message": "Documentation", - "description": "Navbar item with label Documentation" + "item.label.Identity Security Cloud": { + "message": "Identity Security Cloud", + "description": "Navbar item with label Identity Security Cloud" }, - "item.label.IDN Documentation": { - "message": "IDN Documentation", - "description": "Navbar item with label IDN Documentation" + "item.label.IdentityIQ": { + "message": "IdentityIQ", + "description": "Navbar item with label IdentityIQ" }, - "item.label.Training": { - "message": "Training", - "description": "Navbar item with label Training" + "item.label.NERM APIs": { + "message": "NERM APIs", + "description": "Navbar item with label NERM APIs" }, "item.label.Getting started": { "message": "Getting started", @@ -71,6 +43,14 @@ "message": "Developer tools overview", "description": "Navbar item with label Developer tools overview" }, + "item.label.SDKs": { + "message": "SDKs", + "description": "Navbar item with label SDKs" + }, + "item.label.CLI": { + "message": "CLI", + "description": "Navbar item with label CLI" + }, "item.label.Build a transform": { "message": "Build a transform", "description": "Navbar item with label Build a transform" @@ -79,36 +59,72 @@ "message": "Build a rule", "description": "Navbar item with label Build a rule" }, - "item.label.IdentityNow Certifications": { - "message": "IdentityNow Certifications", - "description": "Navbar item with label IdentityNow Certifications" + "item.label.Rule Development Kit": { + "message": "Rule Development Kit", + "description": "Navbar item with label Rule Development Kit" + }, + "item.label.UI Development Kit": { + "message": "UI Development Kit", + "description": "Navbar item with label UI Development Kit" + }, + "item.label.Java/.NET string escaper": { + "message": "Java/.NET string escaper", + "description": "Navbar item with label Java/.NET string escaper" + }, + "item.label.JSON path evaluator": { + "message": "JSON path evaluator", + "description": "Navbar item with label JSON path evaluator" }, - "item.label.IIQ APIs": { - "message": "IIQ APIs", - "description": "Navbar item with label IIQ APIs" + "item.label.Velocity playground": { + "message": "Velocity playground", + "description": "Navbar item with label Velocity playground" }, - "item.label.IdentityIQ Certifications": { - "message": "IdentityIQ Certifications", - "description": "Navbar item with label IdentityIQ Certifications" + "item.label.Community": { + "message": "Community", + "description": "Navbar item with label Community" }, - "item.label.Compass": { - "message": "Compass", - "description": "Navbar item with label Compass" + "item.label.Developer forum": { + "message": "Developer forum", + "description": "Navbar item with label Developer forum" }, - "item.label.Submit Support Ticket": { - "message": "Submit Support Ticket", - "description": "Navbar item with label Submit Support Ticket" + "item.label.CoLab marketplace": { + "message": "CoLab marketplace", + "description": "Navbar item with label CoLab marketplace" + }, + "item.label.Developer blog": { + "message": "Developer blog", + "description": "Navbar item with label Developer blog" }, "item.label.Videos": { "message": "Videos", "description": "Navbar item with label Videos" }, + "item.label.Ambassador program": { + "message": "Ambassador program", + "description": "Navbar item with label Ambassador program" + }, "item.label.Community policies": { "message": "Community policies", "description": "Navbar item with label Community policies" }, + "item.label.Support": { + "message": "Support", + "description": "Navbar item with label Support" + }, + "item.label.Submit a support ticket": { + "message": "Submit a support ticket", + "description": "Navbar item with label Submit a support ticket" + }, "item.label.Developer Relations team": { "message": "Developer Relations team", "description": "Navbar item with label Developer Relations team" + }, + "item.label.SailPoint Compass": { + "message": "SailPoint Compass", + "description": "Navbar item with label SailPoint Compass" + }, + "item.label.Platform status": { + "message": "Platform status", + "description": "Navbar item with label Platform status" } } diff --git a/navbar.ts b/navbar.ts index 7435fa42d813d..6ba74a46fee18 100644 --- a/navbar.ts +++ b/navbar.ts @@ -35,7 +35,7 @@ const navbarConfig = { items: [ { label: 'Identity Security Cloud', to: '/docs/api/v2026' }, { label: 'IdentityIQ', to: '/docs/api/iiq' }, - { label: 'NERM', to: '/docs/api/nerm/v1' }, + { label: 'NERM APIs', to: '/docs/api/nerm/v1' }, ], }, { @@ -56,9 +56,9 @@ const navbarConfig = { }, { label: 'Rule Development Kit', to: '/docs/tools/rule-development-kit' }, { label: 'UI Development Kit', to: '/docs/tools/ui-development-kit' }, - { label: 'Escaping Tool Formatter', to: '/tools/escaping-tool-formatter' }, - { label: 'JSON Path Evaluator', to: '/tools/json-path-evaluator' }, - { label: 'Velocity PlayGround', to: '/tools/velocity-playground' }, + { label: 'Java/.NET string escaper', to: '/tools/escaping-tool-formatter' }, + { label: 'JSON path evaluator', to: '/tools/json-path-evaluator' }, + { label: 'Velocity playground', to: '/tools/velocity-playground' }, ], }, { @@ -80,12 +80,12 @@ const navbarConfig = { position: 'right', items: [ { - label: 'Submit Support Ticket', + label: 'Submit a support ticket', href: 'https://support.sailpoint.com/csm?id=sc_cat_item&sys_id=a78364e81bec151050bcc8866e4bcb5c&referrer=popular_items', }, { label: 'Developer Relations team', to: '/devrel-team' }, - { label: 'Compass', href: 'https://community.sailpoint.com' }, - { label: 'Platform Status', href: 'https://status.sailpoint.com/' }, + { label: 'SailPoint Compass', href: 'https://community.sailpoint.com' }, + { label: 'Platform status', href: 'https://status.sailpoint.com/' }, ], }, { diff --git a/sidebars.extensibility.ts b/sidebars.extensibility.ts index 1ce07adb1ff82..395013bff0508 100644 --- a/sidebars.extensibility.ts +++ b/sidebars.extensibility.ts @@ -7,7 +7,7 @@ const sidebars: SidebarsConfig = { openApiSidebar: [ { type: 'category', - label: 'Documentation', + label: 'Identity Security Cloud documentation', collapsible: false, link: {type: 'doc', id: 'docs'}, items: [ @@ -37,13 +37,13 @@ const sidebars: SidebarsConfig = { }, { type: 'category', - label: 'Guides', + label: 'Solution guides', link: {type: 'doc', id: 'guides'}, items: [{type: 'autogenerated', dirName: 'guides'}], }, { type: 'link', - label: 'Product Documentation', + label: 'SailPoint product documentation', href: 'https://documentation.sailpoint.com', }, ], @@ -52,13 +52,13 @@ const sidebars: SidebarsConfig = { iiqSideBar: [ { type: 'category', - label: 'Documentation', + label: 'IdentityIQ documentation', collapsible: false, link: {type: 'doc', id: 'iiq'}, items: [ { type: 'category', - label: 'Plugin Developer Guide', + label: 'IdentityIQ plugin developer guide', link: {type: 'doc', id: 'plugin-developer-guide'}, items: [ {type: 'autogenerated', dirName: 'iiq/plugin-developer-guide'}, @@ -66,7 +66,7 @@ const sidebars: SidebarsConfig = { }, { type: 'link', - label: 'Product Documentation', + label: 'SailPoint product documentation', href: 'https://documentation.sailpoint.com/#identityiq', }, ], diff --git a/sidebars.minified.ts b/sidebars.minified.ts index 6c58c59324d53..f99e74a70f95d 100644 --- a/sidebars.minified.ts +++ b/sidebars.minified.ts @@ -56,12 +56,12 @@ const sidebars: SidebarsConfig = { }, { type: 'category', - label: 'V2026 APIs', + label: 'Identity Security Cloud v2026 APIs', link: { type: 'generated-index', - title: 'v2026 APIs', + title: 'Identity Security Cloud v2026 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.', + 'Use these APIs to interact with the Identity Security Cloud platform to achieve repeatable, automated processes with greater scalability. We encourage you to join the SailPoint Developer Forum at https://developer.sailpoint.com/discuss to connect with other developers using our APIs.', slug: '/api/v2026', }, items: require('./docs/api/v2026/sidebar.ts'), @@ -113,12 +113,12 @@ const sidebars: SidebarsConfig = { }, { type: 'category', - label: 'V2025 APIs', + label: 'Identity Security Cloud v2025 APIs', link: { type: 'generated-index', - title: 'v2025 APIs', + title: 'Identity Security Cloud v2025 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.', + 'Use these APIs to interact with the Identity Security Cloud platform to achieve repeatable, automated processes with greater scalability. We encourage you to join the SailPoint Developer Forum at https://developer.sailpoint.com/discuss to connect with other developers using our APIs.', slug: '/api/v2025', }, items: require('./docs/api/v2025/sidebar.ts'), @@ -170,12 +170,12 @@ const sidebars: SidebarsConfig = { }, { type: 'category', - label: 'V2024 APIs', + label: 'Identity Security Cloud v2024 APIs', link: { type: 'generated-index', - title: 'v2024 APIs', + title: 'Identity Security Cloud 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.', + 'Use these APIs to interact with the Identity Security Cloud platform to achieve repeatable, automated processes with greater scalability. We encourage you to join the SailPoint Developer Forum at https://developer.sailpoint.com/discuss to connect with other developers using our APIs.', slug: '/api/v2024', }, items: require('./docs/api/v2024/sidebar.ts'), @@ -227,12 +227,12 @@ const sidebars: SidebarsConfig = { }, { type: 'category', - label: 'Beta APIs', + label: 'Identity Security Cloud beta APIs', link: { type: 'generated-index', - title: 'Beta APIs', + title: 'Identity Security Cloud 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.', + 'Use these APIs to interact with the Identity Security Cloud platform to achieve repeatable, automated processes with greater scalability. We encourage you to join the SailPoint Developer Forum at https://developer.sailpoint.com/discuss to connect with other developers using our APIs.', slug: '/api/beta', }, items: require('./docs/api/beta/sidebar.ts'), @@ -284,12 +284,12 @@ const sidebars: SidebarsConfig = { }, { type: 'category', - label: 'V3 APIs', + label: 'Identity Security Cloud v3 APIs', link: { type: 'generated-index', - title: 'V3 APIs', + title: 'Identity Security Cloud 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.', + 'Use these APIs to interact with the Identity Security Cloud platform to achieve repeatable, automated processes with greater scalability. We encourage you to join the SailPoint Developer Forum at https://developer.sailpoint.com/discuss to connect with other developers using our APIs.', slug: '/api/v3', }, items: require('./docs/api/v3/sidebar.ts'), diff --git a/sidebars.ts b/sidebars.ts index 2a16f23747e98..ae9e2c17535ab 100644 --- a/sidebars.ts +++ b/sidebars.ts @@ -23,7 +23,7 @@ const sidebars: SidebarsConfig = { openApiSidebar: [ { type: 'category', - label: 'Identity Security Cloud docs', + label: 'Identity Security Cloud documentation', collapsible: false, link: {type: 'doc', id: 'docs'}, items: [ @@ -59,7 +59,7 @@ const sidebars: SidebarsConfig = { }, { type: 'link', - label: 'Product Documentation', + label: 'SailPoint product documentation', href: 'https://documentation.sailpoint.com', }, ], @@ -68,13 +68,13 @@ const sidebars: SidebarsConfig = { iiqSideBar: [ { type: 'category', - label: 'Documentation', + label: 'IdentityIQ documentation', collapsible: false, link: {type: 'doc', id: 'iiq'}, items: [ { type: 'category', - label: 'Plugin Developer Guide', + label: 'IdentityIQ plugin developer guide', link: {type: 'doc', id: 'plugin-developer-guide'}, items: [ {type: 'autogenerated', dirName: 'iiq/plugin-developer-guide'}, @@ -82,7 +82,7 @@ const sidebars: SidebarsConfig = { }, { type: 'link', - label: 'Product Documentation', + label: 'SailPoint product documentation', href: 'https://documentation.sailpoint.com/#identityiq', }, ], @@ -97,7 +97,7 @@ const sidebars: SidebarsConfig = { 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.", + "These are the SCIM APIs for SailPoint's on-premise service, IdentityIQ. We encourage you to join the SailPoint Developer Forum at https://developer.sailpoint.com/discuss to connect with other developers using our APIs.", slug: '/api/iiq', }, items: require('./docs/api/iiq/sidebar.ts'), @@ -166,12 +166,12 @@ const sidebars: SidebarsConfig = { }, { type: 'category', - label: 'NERM v1 API', + label: 'NERM v1 APIs', link: { type: 'generated-index', - title: 'NERM v1 API', + title: 'NERM v1 APIs', 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.', + 'These are the Non-employee Risk Management APIs for SailPoint. We encourage you to join the SailPoint Developer Forum at https://developer.sailpoint.com/discuss to connect with other developers using our APIs.', slug: '/api/nerm/v1', }, items: require('./docs/api/nerm/v1/sidebar.ts'), @@ -223,12 +223,12 @@ const sidebars: SidebarsConfig = { }, { type: 'category', - label: 'V2026 APIs', + label: 'Identity Security Cloud v2026 APIs', link: { type: 'generated-index', - title: 'v2026 APIs', + title: 'Identity Security Cloud v2026 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.', + 'Use these APIs to interact with the Identity Security Cloud platform to achieve repeatable, automated processes with greater scalability. We encourage you to join the SailPoint Developer Forum at https://developer.sailpoint.com/discuss to connect with other developers using our APIs.', slug: '/api/v2026', }, items: require('./docs/api/v2026/sidebar.ts'), @@ -280,12 +280,12 @@ const sidebars: SidebarsConfig = { }, { type: 'category', - label: 'V2025 APIs', + label: 'Identity Security Cloud v2025 APIs', link: { type: 'generated-index', - title: 'v2025 APIs', + title: 'Identity Security Cloud v2025 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.', + 'Use these APIs to interact with the Identity Security Cloud platform to achieve repeatable, automated processes with greater scalability. We encourage you to join the SailPoint Developer Forum at https://developer.sailpoint.com/discuss to connect with other developers using our APIs.', slug: '/api/v2025', }, items: require('./docs/api/v2025/sidebar.ts'), @@ -337,12 +337,12 @@ const sidebars: SidebarsConfig = { }, { type: 'category', - label: 'V2024 APIs', + label: 'Identity Security Cloud v2024 APIs', link: { type: 'generated-index', - title: 'v2024 APIs', + title: 'Identity Security Cloud 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.', + 'Use these APIs to interact with the Identity Security Cloud platform to achieve repeatable, automated processes with greater scalability. We encourage you to join the SailPoint Developer Forum at https://developer.sailpoint.com/discuss to connect with other developers using our APIs.', slug: '/api/v2024', }, items: require('./docs/api/v2024/sidebar.ts'), @@ -394,12 +394,12 @@ const sidebars: SidebarsConfig = { }, { type: 'category', - label: 'Beta APIs', + label: 'Identity Security Cloud beta APIs', link: { type: 'generated-index', - title: 'Beta APIs', + title: 'Identity Security Cloud 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.', + 'Use these APIs to interact with the Identity Security Cloud platform to achieve repeatable, automated processes with greater scalability. We encourage you to join the SailPoint Developer Forum at https://developer.sailpoint.com/discuss to connect with other developers using our APIs.', slug: '/api/beta', }, items: require('./docs/api/beta/sidebar.ts'), @@ -451,12 +451,12 @@ const sidebars: SidebarsConfig = { }, { type: 'category', - label: 'V3 APIs', + label: 'Identity Security Cloud v3 APIs', link: { type: 'generated-index', - title: 'V3 APIs', + title: 'Identity Security Cloud 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.', + 'Use these APIs to interact with the Identity Security Cloud platform to achieve repeatable, automated processes with greater scalability. We encourage you to join the SailPoint Developer Forum at https://developer.sailpoint.com/discuss to connect with other developers using our APIs.', slug: '/api/v3', }, items: require('./docs/api/v3/sidebar.ts'), diff --git a/src/components/video-library/VideoCardDetails/index.tsx b/src/components/video-library/VideoCardDetails/index.tsx index bffe32916c625..d6dff9dbd5314 100644 --- a/src/components/video-library/VideoCardDetails/index.tsx +++ b/src/components/video-library/VideoCardDetails/index.tsx @@ -1,4 +1,4 @@ -import React, { useEffect } from 'react'; +import { useEffect, type FC } from 'react'; import Video from '../../Video'; import styles from './styles.module.css'; import Layout from '@theme/Layout'; @@ -16,7 +16,7 @@ interface VideoCardDetailProps { }; } -const VideoCardDetail: React.FC = ({ route }) => { +const VideoCardDetail: FC = ({ route }) => { const base = 'https://play.vidyard.com/'; useEffect(() => { @@ -35,7 +35,7 @@ const VideoCardDetail: React.FC = ({ route }) => { }, []); return ( - +