Add tutorial: Clade Workload Identty integration with Agent ID#6132
Add tutorial: Clade Workload Identty integration with Agent ID#6132ayshsandu wants to merge 1 commit into
Conversation
📝 WalkthroughWalkthroughThis PR adds a new tutorial documenting how agents registered in identity products can authenticate to Claude API using Anthropic Workload Identity Federation. The shared tutorial content provides setup steps, prerequisites, and two implementation examples (shell script and Python SDK), deployed across Asgardeo and Identity Server versions with product-specific configuration variables. ChangesAgent ID to Claude API Authentication Tutorial
Suggested labels
🚥 Pre-merge checks | ✅ 3 | ❌ 2❌ Failed checks (2 warnings)
✅ Passed checks (3 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Tip 💬 Introducing Slack Agent: The best way for teams to turn conversations into code.Slack Agent is built on CodeRabbit's deep understanding of your code, so your team can collaborate across the entire SDLC without losing context.
Built for teams:
One agent for your entire SDLC. Right inside Slack. Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Actionable comments posted: 6
🧹 Nitpick comments (1)
en/identity-server/7.3.0/mkdocs.yml (1)
1001-1001: ⚡ Quick winUse sentence case and a shorter nav title for readability.
This title is long and title-cased. Consider sentence case with a shorter phrasing to improve scanability in the Tutorials menu.
✏️ Suggested wording
- - Authenticate Agents with their own Agent ID to Claude API Using Workload Identity Federation: tutorials/agent-id-claude-authentication.md + - Authenticate agents with Agent ID using Claude API workload identity federation: tutorials/agent-id-claude-authentication.mdAs per coding guidelines "Use sentence case for all headings and document titles" and "Use plain language and short sentences".
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@en/identity-server/7.3.0/mkdocs.yml` at line 1001, Replace the long, title-cased nav entry "Authenticate Agents with their own Agent ID to Claude API Using Workload Identity Federation: tutorials/agent-id-claude-authentication.md" with a shorter, sentence-case label while keeping the same target path; for example use "Authenticate agents to Claude API using workload identity federation" (or even shorter "Authenticate agents to Claude API") in the mkdocs nav so it follows the sentence case and plain-language guidelines and improves scanability.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@en/asgardeo/docs/tutorials/index.md`:
- Line 16: Update the tutorial link text string "- [Authenticate Agents with
their own Agent ID to Claude API Using Workload Identity
Federation]({{base_path}}/tutorials/agent-id-claude-authentication/)" to use
sentence case to match the corrected tutorial title (e.g., "Authenticate agents
with their own agent ID to Claude API using workload identity federation") so
the visible link text follows sentence case while keeping the href unchanged.
In `@en/asgardeo/mkdocs.yml`:
- Line 742: Update the navigation entry string "Authenticate Agents with their
own Agent ID to Claude API Using Workload Identity Federation:
tutorials/agent-id-claude-authentication.md" to sentence case to match the
tutorial title (e.g., "Authenticate agents with their own agent ID to Claude API
using workload identity federation:
tutorials/agent-id-claude-authentication.md").
In `@en/identity-server/next/docs/tutorials/index.md`:
- Line 14: Update the markdown link text on the line containing "[Authenticate
Agents with their own Agent ID to Claude API Using Workload Identity
Federation]({{base_path}}/tutorials/agent-id-claude-authentication/)" to use
sentence case; replace the visible link text with "Authenticate agents with
their own agent ID to Claude API using workload identity federation" while
keeping the URL/mustache path unchanged so the target remains the same.
In `@en/identity-server/next/mkdocs.yml`:
- Line 1004: Update the navigation entry string "Authenticate Agents with their
own Agent ID to Claude API Using Workload Identity Federation:
tutorials/agent-id-claude-authentication.md" to sentence case to match the
corrected tutorial title (e.g., "Authenticate agents with their own agent ID to
Claude API using workload identity federation") so the nav entry exactly matches
the tutorial title and casing.
In `@en/includes/tutorials/agent-id-claude-authentication.md`:
- Line 1: Change the document title line "# Authenticate Agents with their own
Agent ID to Claude API Using Workload Identity Federation" to sentence case:
"Authenticate agents with their own agent ID to Claude API using workload
identity federation" so only the first word and proper nouns are capitalized;
update the heading text string at the top of the file accordingly.
- Line 139: The pip install line uses {{product_name}} which expands to display
names (with capitals/spaces) and produces invalid Python package names; update
the install command in en/includes/tutorials/agent-id-claude-authentication.md
to use proper package identifiers (match
en/includes/quick-starts/agent-auth-py.md) by replacing the current line "pip
install anthropic {{product_name}} {{product_name}}-ai" with either
product-specific lowercase package names (e.g., "pip install anthropic asgardeo
asgardeo_ai" for Asgardeo) or introduce and use new template variables like
{{python_package_name}} and {{python_ai_package_name}} that resolve to correct
values for each product.
---
Nitpick comments:
In `@en/identity-server/7.3.0/mkdocs.yml`:
- Line 1001: Replace the long, title-cased nav entry "Authenticate Agents with
their own Agent ID to Claude API Using Workload Identity Federation:
tutorials/agent-id-claude-authentication.md" with a shorter, sentence-case label
while keeping the same target path; for example use "Authenticate agents to
Claude API using workload identity federation" (or even shorter "Authenticate
agents to Claude API") in the mkdocs nav so it follows the sentence case and
plain-language guidelines and improves scanability.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yml
Review profile: CHILL
Plan: Pro
Run ID: d28edc67-153c-4201-8bff-79d16511ae4f
📒 Files selected for processing (13)
en/asgardeo/docs/tutorials/agent-id-claude-authentication.mden/asgardeo/docs/tutorials/index.mden/asgardeo/mkdocs.ymlen/identity-server/7.2.0/docs/tutorials/agent-id-claude-authentication.mden/identity-server/7.2.0/docs/tutorials/index.mden/identity-server/7.2.0/mkdocs.ymlen/identity-server/7.3.0/docs/tutorials/agent-id-claude-authentication.mden/identity-server/7.3.0/docs/tutorials/index.mden/identity-server/7.3.0/mkdocs.ymlen/identity-server/next/docs/tutorials/agent-id-claude-authentication.mden/identity-server/next/docs/tutorials/index.mden/identity-server/next/mkdocs.ymlen/includes/tutorials/agent-id-claude-authentication.md
| - [Secure Spring Boot API with Asgardeo]({{base_path}}/tutorials/secure-spring-boot-api/) | ||
| - [Integrate Asgardeo with SMART on FHIR healthcare apps]({{base_path}}/tutorials/smart-on-fhir/) | ||
| - [Secure Agentic AI Systems with Asgardeo]({{base_path}}/tutorials/secure-agentic-ai-systems/) | ||
| - [Authenticate Agents with their own Agent ID to Claude API Using Workload Identity Federation]({{base_path}}/tutorials/agent-id-claude-authentication/) |
There was a problem hiding this comment.
Use sentence case for the tutorial link text.
The link text should follow sentence case guidelines, matching the corrected tutorial title.
📝 Proposed fix
-- [Authenticate Agents with their own Agent ID to Claude API Using Workload Identity Federation]({{base_path}}/tutorials/agent-id-claude-authentication/)
+- [Authenticate agents with their own Agent ID to Claude API using Workload Identity Federation]({{base_path}}/tutorials/agent-id-claude-authentication/)🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@en/asgardeo/docs/tutorials/index.md` at line 16, Update the tutorial link
text string "- [Authenticate Agents with their own Agent ID to Claude API Using
Workload Identity
Federation]({{base_path}}/tutorials/agent-id-claude-authentication/)" to use
sentence case to match the corrected tutorial title (e.g., "Authenticate agents
with their own agent ID to Claude API using workload identity federation") so
the visible link text follows sentence case while keeping the href unchanged.
| - Secure Spring Boot API with Asgardeo: tutorials/secure-spring-boot-api.md | ||
| - Integrate Asgardeo with Smart on FHIR healthcare apps: tutorials/smart-on-fhir.md | ||
| - Secure Agentic AI Systems with Asgardeo: tutorials/secure-agentic-ai-systems.md | ||
| - Authenticate Agents with their own Agent ID to Claude API Using Workload Identity Federation: tutorials/agent-id-claude-authentication.md |
There was a problem hiding this comment.
Use sentence case for the navigation entry.
The navigation entry should follow sentence case guidelines, matching the corrected tutorial title.
📝 Proposed fix
- - Authenticate Agents with their own Agent ID to Claude API Using Workload Identity Federation: tutorials/agent-id-claude-authentication.md
+ - Authenticate agents with their own Agent ID to Claude API using Workload Identity Federation: tutorials/agent-id-claude-authentication.md📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| - Authenticate Agents with their own Agent ID to Claude API Using Workload Identity Federation: tutorials/agent-id-claude-authentication.md | |
| - Authenticate agents with their own Agent ID to Claude API using Workload Identity Federation: tutorials/agent-id-claude-authentication.md |
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@en/asgardeo/mkdocs.yml` at line 742, Update the navigation entry string
"Authenticate Agents with their own Agent ID to Claude API Using Workload
Identity Federation: tutorials/agent-id-claude-authentication.md" to sentence
case to match the tutorial title (e.g., "Authenticate agents with their own
agent ID to Claude API using workload identity federation:
tutorials/agent-id-claude-authentication.md").
| - [Integrating WSO2 Identity Server With WSO2 AI Gateway for Agent Identity-Aware Access Control]({{base_path}}/tutorials/wso2-ai-gateway-with-agent-identity-aware-access-control/) | ||
| - [Integrating WSO2 Identity Server With Kong AI Gateway for Agent Identity-Aware Access Control]({{base_path}}/tutorials/kong-ai-gateway-with-agent-identity-aware-access-control/) | ||
| - [Secure MCP servers with WSO2 Identity Server and integrate them with n8n agentic flows]({{base_path}}/tutorials/secure-mcp-servers-and-integrate-them-with-n8n-agentic-flows/) | ||
| - [Authenticate Agents with their own Agent ID to Claude API Using Workload Identity Federation]({{base_path}}/tutorials/agent-id-claude-authentication/) No newline at end of file |
There was a problem hiding this comment.
Use sentence case for the tutorial link text.
The link text should follow sentence case guidelines, matching the corrected tutorial title.
📝 Proposed fix
-- [Authenticate Agents with their own Agent ID to Claude API Using Workload Identity Federation]({{base_path}}/tutorials/agent-id-claude-authentication/)
+- [Authenticate agents with their own Agent ID to Claude API using Workload Identity Federation]({{base_path}}/tutorials/agent-id-claude-authentication/)📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| - [Authenticate Agents with their own Agent ID to Claude API Using Workload Identity Federation]({{base_path}}/tutorials/agent-id-claude-authentication/) | |
| - [Authenticate agents with their own Agent ID to Claude API using Workload Identity Federation]({{base_path}}/tutorials/agent-id-claude-authentication/) |
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@en/identity-server/next/docs/tutorials/index.md` at line 14, Update the
markdown link text on the line containing "[Authenticate Agents with their own
Agent ID to Claude API Using Workload Identity
Federation]({{base_path}}/tutorials/agent-id-claude-authentication/)" to use
sentence case; replace the visible link text with "Authenticate agents with
their own agent ID to Claude API using workload identity federation" while
keeping the URL/mustache path unchanged so the target remains the same.
| - Integrating WSO2 Identity Server With WSO2 AI Gateway for Agent Identity-Aware Access Control: tutorials/wso2-ai-gateway-with-agent-identity-aware-access-control.md | ||
| - Integrating WSO2 Identity Server With Kong AI Gateway for Agent Identity-Aware Access Control: tutorials/kong-ai-gateway-with-agent-identity-aware-access-control.md | ||
| - Secure MCP servers with WSO2 Identity Server and integrate them with n8n agentic flows: tutorials/secure-mcp-servers-and-integrate-them-with-n8n-agentic-flows.md | ||
| - Authenticate Agents with their own Agent ID to Claude API Using Workload Identity Federation: tutorials/agent-id-claude-authentication.md |
There was a problem hiding this comment.
Use sentence case for the navigation entry.
The navigation entry should follow sentence case guidelines, matching the corrected tutorial title.
📝 Proposed fix
- - Authenticate Agents with their own Agent ID to Claude API Using Workload Identity Federation: tutorials/agent-id-claude-authentication.md
+ - Authenticate agents with their own Agent ID to Claude API using Workload Identity Federation: tutorials/agent-id-claude-authentication.md📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| - Authenticate Agents with their own Agent ID to Claude API Using Workload Identity Federation: tutorials/agent-id-claude-authentication.md | |
| - Authenticate agents with their own Agent ID to Claude API using Workload Identity Federation: tutorials/agent-id-claude-authentication.md |
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@en/identity-server/next/mkdocs.yml` at line 1004, Update the navigation entry
string "Authenticate Agents with their own Agent ID to Claude API Using Workload
Identity Federation: tutorials/agent-id-claude-authentication.md" to sentence
case to match the corrected tutorial title (e.g., "Authenticate agents with
their own agent ID to Claude API using workload identity federation") so the nav
entry exactly matches the tutorial title and casing.
| @@ -0,0 +1,236 @@ | |||
| # Authenticate Agents with their own Agent ID to Claude API Using Workload Identity Federation | |||
There was a problem hiding this comment.
Use sentence case for the title.
The title capitalizes words mid-sentence that are not proper nouns. As per coding guidelines, use sentence case for all headings and document titles, capitalizing only the first word and proper nouns.
📝 Proposed fix
-# Authenticate Agents with their own Agent ID to Claude API Using Workload Identity Federation
+# Authenticate agents with their own Agent ID to Claude API using Workload Identity Federation📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| # Authenticate Agents with their own Agent ID to Claude API Using Workload Identity Federation | |
| # Authenticate agents with their own Agent ID to Claude API using Workload Identity Federation |
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@en/includes/tutorials/agent-id-claude-authentication.md` at line 1, Change
the document title line "# Authenticate Agents with their own Agent ID to Claude
API Using Workload Identity Federation" to sentence case: "Authenticate agents
with their own agent ID to Claude API using workload identity federation" so
only the first word and proper nouns are capitalized; update the heading text
string at the top of the file accordingly.
| #### Install dependencies | ||
|
|
||
| ```bash | ||
| pip install anthropic {{product_name}} {{product_name}}-ai |
There was a problem hiding this comment.
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash
# Verify if there are product-specific Python SDK package names defined
# Check if there's a variable or configuration for Python package names
rg -n "product.*package|python.*sdk|pip.*install" en/asgardeo en/identity-server --type md -C2Repository: wso2/docs-is
Length of output: 2314
🏁 Script executed:
#!/bin/bash
# First, find the target file
find . -name "agent-id-claude-authentication.md" -type f
# Then search for Python package definitions for both products
rg -n "from.*import|import.*" --type py -g "*asgardeo*" -g "*identity*server*" | head -30
# Look for pip install commands with actual package names
rg "pip install" --type md | grep -v "{{" | head -20Repository: wso2/docs-is
Length of output: 4689
🏁 Script executed:
#!/bin/bash
# Search for Python SDK or package information in README or setup files
find . -name "pyproject.toml" -o -name "setup.py" -o -name "requirements.txt" | head -20
# Look for any documentation about Python package names
rg "wso2.*identity.*python|asgardeo.*python|pip.*wso2|pip.*asgardeo" --type md -iRepository: wso2/docs-is
Length of output: 7295
🏁 Script executed:
#!/bin/bash
# Read the target file around line 139 to see the exact content
sed -n '130,150p' en/includes/tutorials/agent-id-claude-authentication.mdRepository: wso2/docs-is
Length of output: 546
🏁 Script executed:
#!/bin/bash
# Also check if this is a template file and how template variables are used elsewhere
head -20 en/includes/tutorials/agent-id-claude-authentication.md
# Check if there are any notes about template variables
rg "product_name.*package|product_name.*-ai" en/includes/tutorials/Repository: wso2/docs-is
Length of output: 3261
🏁 Script executed:
#!/bin/bash
# Check if there are WSO2 Identity Server Python packages documented or referenced
rg "wso2.*identity.*python|wso2-identity" --type md -i | head -20
# Also check the agent-auth-py.md file for both products to see if they differ
echo "=== Asgardeo version ==="
cat en/asgardeo/docs/quick-starts/agent-auth-py.md | grep -A 5 "pip install" | head -10
echo "=== WSO2 Identity Server version ==="
cat en/identity-server/next/docs/quick-starts/agent-auth-py.md | grep -A 5 "pip install" | head -10Repository: wso2/docs-is
Length of output: 5253
🏁 Script executed:
#!/bin/bash
# Read the agent-auth-py.md files to compare Asgardeo and WSO2 IS versions
echo "=== Checking Asgardeo agent-auth-py.md ==="
grep -n "pip install" en/asgardeo/docs/quick-starts/agent-auth-py.md
echo ""
echo "=== Checking WSO2 Identity Server agent-auth-py.md ==="
grep -n "pip install" en/identity-server/next/docs/quick-starts/agent-auth-py.md
# Check if the files are identical
echo ""
echo "=== File comparison ==="
diff en/asgardeo/docs/quick-starts/agent-auth-py.md en/identity-server/next/docs/quick-starts/agent-auth-py.md | head -50Repository: wso2/docs-is
Length of output: 1017
🏁 Script executed:
#!/bin/bash
# The files are including a shared template, let's check that template file
echo "=== Checking shared template file ==="
grep -n "pip install" en/includes/quick-starts/agent-auth-py.md
# Also check if the tutorial file (agent-id-claude-authentication.md) is similar
echo ""
echo "=== Checking if agent-id-claude-authentication.md is a shared template ==="
ls -la en/includes/tutorials/agent-id-claude-authentication.md
ls -la en/asgardeo/docs/tutorials/agent-id-claude-authentication.md
# Check if the Asgardeo version includes the shared template
echo ""
echo "=== Checking Asgardeo claude tutorial ==="
head -50 en/asgardeo/docs/tutorials/agent-id-claude-authentication.md | tail -20Repository: wso2/docs-is
Length of output: 984
🏁 Script executed:
#!/bin/bash
# Check the WSO2 Identity Server version of the claude tutorial
echo "=== Checking WSO2 Identity Server claude tutorial ==="
head -50 en/identity-server/next/docs/tutorials/agent-id-claude-authentication.md
# Check what product_name is set to
echo ""
echo "=== Checking product_name settings ==="
head -5 en/identity-server/next/docs/tutorials/agent-id-claude-authentication.md
head -5 en/asgardeo/docs/tutorials/agent-id-claude-authentication.mdRepository: wso2/docs-is
Length of output: 698
🏁 Script executed:
#!/bin/bash
# Verify if WSO2 Identity Server has Python SDK packages
# Search for any WSO2 IS Python package information
rg "wso2.*identity" en/includes/quick-starts/ --type md | grep -i python
# Also check PyPI or package registries referenced
rg "pypi|python.*package|wso2.*sdk" --type md | grep -v asgardeo | head -20Repository: wso2/docs-is
Length of output: 1433
Fix Python package names to work with template variable substitution.
The installation command on line 139 uses {{product_name}} for Python package names. When expanded:
- For Asgardeo: produces
pip install anthropic Asgardeo Asgardeo-ai(should be lowercaseasgardeo asgardeo_ai) - For WSO2 Identity Server: produces
pip install anthropic WSO2 Identity Server WSO2 Identity Server-ai(invalid—spaces not allowed in package names)
The en/includes/quick-starts/agent-auth-py.md template uses hardcoded lowercase package names instead. Use the same approach here: either create product-specific Python SDK installation commands, or use dedicated template variables (e.g., {{python_package_name}} and {{python_ai_package_name}}) that resolve to asgardeo and asgardeo_ai for Asgardeo, and the appropriate WSO2 Identity Server package names for WSO2 IS.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@en/includes/tutorials/agent-id-claude-authentication.md` at line 139, The pip
install line uses {{product_name}} which expands to display names (with
capitals/spaces) and produces invalid Python package names; update the install
command in en/includes/tutorials/agent-id-claude-authentication.md to use proper
package identifiers (match en/includes/quick-starts/agent-auth-py.md) by
replacing the current line "pip install anthropic {{product_name}}
{{product_name}}-ai" with either product-specific lowercase package names (e.g.,
"pip install anthropic asgardeo asgardeo_ai" for Asgardeo) or introduce and use
new template variables like {{python_package_name}} and
{{python_ai_package_name}} that resolve to correct values for each product.
Purpose
Add tutorial: Clade Workload Identty integration with Agent ID