Add a guide for using ISC APIs with AI coding assistants - #1184
Open
kbennett2000 wants to merge 1 commit into
Open
Add a guide for using ISC APIs with AI coding assistants#1184kbennett2000 wants to merge 1 commit into
kbennett2000 wants to merge 1 commit into
Conversation
Adds docs/api/using-isc-apis-with-ai-coding-assistants.md and registers it in sidebars.ts under isc_api_sidebar, after Patch Requests. The guide covers which artifact to point an assistant at (the OpenAPI specs rather than the rendered reference), how per-service versioning and the X-SailPoint-Experimental header work, where an operation's required scopes live, how the client-credentials flow works given that /oauth/token is not an operation in any specification, and how to check a generated endpoint path against the spec before running it. refs sailpoint-oss#1180 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Adds a guide for developers building ISC integrations with an AI coding assistant, as proposed in #1180.
What it covers
docs/api/using-isc-apis-with-ai-coding-assistants.md, registered insidebars.tsunderisc_api_sidebarafter Patch Requests, so it sits with its siblings (Getting Started, Authentication, Authorization, Versioning). Sections:X-SailPoint-Experimentalon the operations that declare it, and what it means when an assistant emits a/v3/or/beta/path.securityblock andx-sailpoint-userLevels./oauth/tokenactually appears, and the real client-credentials request shape.serversprefix trap, and a script that resolves an operationId to its path, scopes, user levels and parameters.It points at the MCP Server docs up front for readers who want conversational access rather than generated code, so the two do not compete.
Two corrections to what I originally proposed
I checked my own claims from #1180 against the spec files before writing, and two did not hold. Flagging both, since the issue text is wrong on them:
deref-sailpoint-api.v3.yaml, none declareX-SailPoint-Experimental; of the 559 inderef-sailpoint-api.beta.yaml, one does (listAdministratorsAccessRequestStatus). It is declared on 207 of the 880 operations inderef-sailpoint-api.yaml, per operation rather than per version. The page says that instead.I also led with per-service versioning rather than framing the page as a V3-vs-Beta choice, since
api-versioning-strategy.mdnow marks Beta, V3 and v202X legacy (supported to Q2 2028, end-of-life Q1 2029). V3 and Beta are covered as what an assistant tends to emit from stale training data, with the operationId mapping for finding the current equivalent.Happy to adjust any of this if the DevRel team would rather frame it differently.
AI disclosure and validation
Per the AI Usage Policy: this page was drafted with AI assistance. Every factual claim was verified before it went in, and none of it was taken on the assistant's word. What was checked, and how:
Checked against
sailpoint-oss/api-specs(parsed, not grepped — counts are over thedereferenced/bundles):pathsinidn/sailpoint-api.yamlX-SailPoint-Experimental,required: trueparametersderef-sailpoint-api.v3.yamland.beta.yaml— the thin roots must be dereferenced first, which is why an earlier grep of the roots returned 0 for bothsecurity/userAuthblock besidex-sailpoint-userLevelsidn/apis/access-profiles/paths/access-profiles-v1.yamlsecurityblock and inheritsp:scopes:allsecuritykey against the root default/oauth/tokenis absent frompathsin all three specs, and present only assecuritySchemes.*.flows.*.tokenUrlpathsandcomponents.securitySchemesserversprefix differs per spec ("",/v3,/beta)servers[].urlin each rootV1/V2twin in the current spec$refs remain in the bundled current spec$ref: '#/...'occurrencesidn/sailpoint-api.yamlis byte-identical (sha256) todereferenced/deref-sailpoint-api.yaml; the legacy roots hold 280 and 437 external$refsChecked by fetching the live pages (
robots.txtisAllow: /):/docs/api/authentication— ~31 KB of extractable text/docs/api/list-access-profiles-v-1—GET /access-profiles/v1and the summary are present;idn:access-profile:read,sp:scopes,oauth2andsecuritySchemesappear nowhere in the HTML, including inline scripts/docs/api/v3/list-access-profiles— a ~700 byte redirect to/redoc/sailpoint-api-v3-light.html#tag/..., and that target is a single ~9 MB page for the whole APIreleases/latest/download/deref-sailpoint-api.yamlreturns 200Both code samples were executed against the real specs before being pasted in. The listing snippet returns exactly 207 operationIds. The verification script was corrected after its first version silently dropped
limit,offsetandcount— it did not follow the internal$refs — which is the failure the page now warns about.Checks
npm run gen-api-docs-all && npm run buildagainst specs synced fromsailpoint-oss/api-specs; the page renders and appears in the sidebar.npx prettier --checkpasses on the new markdown file.sidebars.tsreports pre-existing formatting differences unrelated to this change (it is unformatted onmaintoday); the 4 added lines match the surrounding style, and I have deliberately not reformatted the rest of the file to keep the diff reviewable.{tenant}andexample-tenant, which.slinkignorealready excludes.Refs #1180
🤖 Generated with Claude Code