Skip to content

feat: Add SAP Ariba Integration#5749

Open
arsalazarjr wants to merge 2 commits intoNangoHQ:masterfrom
arsalazarjr:feat/sap-ariba
Open

feat: Add SAP Ariba Integration#5749
arsalazarjr wants to merge 2 commits intoNangoHQ:masterfrom
arsalazarjr:feat/sap-ariba

Conversation

@arsalazarjr
Copy link
Copy Markdown
Contributor

@arsalazarjr arsalazarjr commented Mar 31, 2026

Description

Adds SAP Ariba as a new integration provider with OAuth2 Client Credentials (OAUTH2_CC) authentication.

What's included:

  • Provider config in providers.yaml with support for regional endpoints (US, EU, Australia)
  • Custom OAuth grant type openapi_2lo (SAP Ariba's non-standard grant type instead of client_credentials)
  • Connection config fields: region, API key (secret), and Ariba Network ID (ANID) with pattern validation
  • Proxy config with apikey and X-ARIBA-NETWORK-ID headers, plus retry-after support
  • Token URL interpolation fix in connection.service.ts. Switched from interpolateString (which stripped connectionConfig. prefix) to interpolateStringFromObject (which properly resolves nested ${connectionConfig.*} references). This is needed because SAP Ariba's token URL uses ${connectionConfig.region} with a fallback (||) pattern.
  • Documentation: integration guide, connect guide, and generated snippets

Testing

The interpolation change was verified locally by:

  1. Creating a sap-ariba-test integration via the API
  2. Triggering OAuth2 CC flows with EU and US (fallback) regions. Both correctly returned oauth2_cc_error (expected with dummy credentials)
  3. Running direct interpolation tests confirming all 3 regional token URLs, proxy base URLs, and header values resolve correctly

Also tested a successful call against the SAP Ariba API with our credentials.


It also updates the provider schema to recognize the openapi_2lo grant type and registers the new SAP Ariba documentation in the docs navigation.


This summary was automatically generated by @propel-code-bot

Copy link
Copy Markdown
Contributor

@propel-code-bot propel-code-bot bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Documentation updates are needed to correct required fields, links, and typos for SAP Ariba guides.

Status: Action Required | Risk: Medium

Issues Identified & Suggestions
  • Correct required ANID vs Realm guidance and steps: docs/integrations/all/sap-ariba/connect.mdx
  • Update Functions guide link to new path: docs/snippets/generated/sap-ariba/PreBuiltUseCases.mdx
  • Fix spelling/typos in prerequisites and type safety text: docs/integrations/all/sap-ariba.mdx, docs/snippets/generated/sap-ariba/PreBuiltTooling.mdx
Review Details

📁 8 files reviewed | 💬 4 comments

Instruction Files
└── .claude/
    ├── agents/
    │   └── nango-docs-migrator.md
    └── skills

👍 / 👎 individual comments to help improve reviews for you

2. **Client Secret** - A confidential key used to authenticate the identity of your application.
3. **Region** - Your SAP Ariba data center region (US, EU, or Australia).
4. **Application Key (API Key)** - Required for all API requests.
5. **Realm** - Your organization's identifier in SAP Ariba.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Critical

[Documentation] The Connect guide lists Realm as a required field (lines 13 and Step 3), but the integration config uses anid (Ariba Network ID) and injects it into the X-ARIBA-NETWORK-ID header. If users follow this guide, they'll enter the wrong value and API requests will fail.

Update the guide to request Ariba Network ID (ANID) instead of Realm and rename Step 3 accordingly (e.g., “Find Your ANID”). If Realm is also required, add it explicitly to the connection config and headers.

Context for Agents
The Connect guide lists **Realm** as a required field (lines 13 and Step 3), but the integration config uses `anid` (Ariba Network ID) and injects it into the `X-ARIBA-NETWORK-ID` header. If users follow this guide, they'll enter the wrong value and API requests will fail.

Update the guide to request **Ariba Network ID (ANID)** instead of Realm and rename Step 3 accordingly (e.g., “Find Your ANID”). If Realm is also required, add it explicitly to the connection config and headers.

File: docs/integrations/all/sap-ariba/connect.mdx
Line: 13

@@ -0,0 +1,3 @@
_No pre-built syncs or actions available yet._

<Tip>Not seeing the integration you need? [Build your own](https://nango.dev/docs/guides/platform/functions) independently.</Tip> No newline at end of file
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Important

[Documentation] The empty-state snippet should link to the Functions guide at /docs/guides/primitives/functions. The current link points to /docs/guides/platform/functions, which is the old path.

Suggested change
<Tip>Not seeing the integration you need? [Build your own](https://nango.dev/docs/guides/platform/functions) independently.</Tip>
<Tip>Not seeing the integration you need? [Build your own](https://nango.dev/docs/guides/primitives/functions) independently.</Tip>
Context for Agents
[FileRule: .claude/agents/nango-docs-migrator.md] The empty-state snippet should link to the Functions guide at `/docs/guides/primitives/functions`. The current link points to `/docs/guides/platform/functions`, which is the old path.

```suggestion
<Tip>Not seeing the integration you need? [Build your own](https://nango.dev/docs/guides/primitives/functions) independently.</Tip>
```

File: docs/snippets/generated/sap-ariba/PreBuiltUseCases.mdx
Line: 3

💡 Applied from Instructions File: .claude/agents/nango-docs-migrator.md

<Overview />

## Access requirements
| Pre-Requisites | Status | Comment|
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Advisory

[Documentation] Fix spelling: "Pre-Requisites" should be "Prerequisites".

Context for Agents
[**Documentation**]

Fix spelling: "Pre-Requisites" should be "Prerequisites".

File: docs/integrations/all/sap-ariba.mdx
Line: 11

| Tools | Status |
| - | - |
| HTTP request logging | ✅ |
| End-to-type type safety | ✅ |
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Advisory

[Documentation] Fix typo: "End-to-type type safety" should be "End-to-end type safety".

Context for Agents
[**Documentation**]

Fix typo: "End-to-type type safety" should be "End-to-end type safety".

File: docs/snippets/generated/sap-ariba/PreBuiltTooling.mdx
Line: 27

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant