fix(sap-concur): rename misleading exchange-rate tool, drop unusable refresh_token grant, validate geolocation host

- Rename sap_concur_get_exchange_rate to sap_concur_upload_exchange_rates (POST bulk upload, not GET)
- Remove refresh_token from SapConcurGrantType / Zod enum / block dropdown / docs (no implementation)
- Validate Concur geolocation hostname against SAP_CONCUR_ALLOWED_DATACENTERS

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
Waleed Latif
2026-05-06 18:17:27 -07:00
co-authored by Claude Opus 4.7
parent d767d76dd2
commit e10ab76e80
76 changed files with 165 additions and 158 deletions
+71 -71
View File
@@ -49,7 +49,7 @@ Approve an expense report as a manager (PATCH /expensereports/v4/reports/{report
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `datacenter` | string | No | Concur datacenter base URL \(defaults to us.api.concursolutions.com\) |
| `grantType` | string | No | OAuth grant type: client_credentials \(default\), password, refresh_token |
| `grantType` | string | No | OAuth grant type: client_credentials \(default\) or password |
| `clientId` | string | Yes | Concur OAuth client ID |
| `clientSecret` | string | Yes | Concur OAuth client secret |
| `username` | string | No | Username \(only for password grant\) |
@@ -74,7 +74,7 @@ Associate attendees with an expense (POST /expensereports/v4/users/{userId}/cont
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `datacenter` | string | No | Concur datacenter base URL \(defaults to us.api.concursolutions.com\) |
| `grantType` | string | No | OAuth grant type: client_credentials \(default\), password, refresh_token |
| `grantType` | string | No | OAuth grant type: client_credentials \(default\) or password |
| `clientId` | string | Yes | Concur OAuth client ID |
| `clientSecret` | string | Yes | Concur OAuth client secret |
| `username` | string | No | Username \(only for password grant\) |
@@ -103,7 +103,7 @@ Create a cash advance (POST /cashadvance/v4/cashadvances).
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `datacenter` | string | No | Concur datacenter base URL \(defaults to us.api.concursolutions.com\) |
| `grantType` | string | No | OAuth grant type: client_credentials \(default\), password, refresh_token |
| `grantType` | string | No | OAuth grant type: client_credentials \(default\) or password |
| `clientId` | string | Yes | Concur OAuth client ID |
| `clientSecret` | string | Yes | Concur OAuth client secret |
| `username` | string | No | Username \(only for password grant\) |
@@ -128,7 +128,7 @@ Create an expected expense on a travel request (POST /travelrequest/v4/requests/
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `datacenter` | string | No | Concur datacenter base URL \(defaults to us.api.concursolutions.com\) |
| `grantType` | string | No | OAuth grant type: client_credentials \(default\), password, refresh_token |
| `grantType` | string | No | OAuth grant type: client_credentials \(default\) or password |
| `clientId` | string | Yes | Concur OAuth client ID |
| `clientSecret` | string | Yes | Concur OAuth client secret |
| `username` | string | No | Username \(only for password grant\) |
@@ -169,7 +169,7 @@ Create an expense report (POST /expensereports/v4/users/{userId}/context/{contex
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `datacenter` | string | No | Concur datacenter base URL \(defaults to us.api.concursolutions.com\) |
| `grantType` | string | No | OAuth grant type: client_credentials \(default\), password, refresh_token |
| `grantType` | string | No | OAuth grant type: client_credentials \(default\) or password |
| `clientId` | string | Yes | Concur OAuth client ID |
| `clientSecret` | string | Yes | Concur OAuth client secret |
| `username` | string | No | Username \(only for password grant\) |
@@ -196,7 +196,7 @@ Create a list item (POST /list/v4/items).
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `datacenter` | string | No | Concur datacenter base URL \(defaults to us.api.concursolutions.com\) |
| `grantType` | string | No | OAuth grant type: client_credentials \(default\), password, refresh_token |
| `grantType` | string | No | OAuth grant type: client_credentials \(default\) or password |
| `clientId` | string | Yes | Concur OAuth client ID |
| `clientSecret` | string | Yes | Concur OAuth client secret |
| `username` | string | No | Username \(only for password grant\) |
@@ -230,7 +230,7 @@ Create a purchase request (POST /purchaserequest/v4/purchaserequests).
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `datacenter` | string | No | Concur datacenter base URL \(defaults to us.api.concursolutions.com\) |
| `grantType` | string | No | OAuth grant type: client_credentials \(default\), password, refresh_token |
| `grantType` | string | No | OAuth grant type: client_credentials \(default\) or password |
| `clientId` | string | Yes | Concur OAuth client ID |
| `clientSecret` | string | Yes | Concur OAuth client secret |
| `username` | string | No | Username \(only for password grant\) |
@@ -260,7 +260,7 @@ Create a quick expense (POST /quickexpense/v4/users/{userId}/context/TRAVELER/qu
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `datacenter` | string | No | Concur datacenter base URL \(defaults to us.api.concursolutions.com\) |
| `grantType` | string | No | OAuth grant type: client_credentials \(default\), password, refresh_token |
| `grantType` | string | No | OAuth grant type: client_credentials \(default\) or password |
| `clientId` | string | Yes | Concur OAuth client ID |
| `clientSecret` | string | Yes | Concur OAuth client secret |
| `username` | string | No | Username \(only for password grant\) |
@@ -287,7 +287,7 @@ Create a quick expense with an attached image (POST /quickexpense/v4/users/{user
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `datacenter` | string | No | Concur datacenter base URL \(defaults to us.api.concursolutions.com\) |
| `grantType` | string | No | OAuth grant type: client_credentials \(default\), password, refresh_token |
| `grantType` | string | No | OAuth grant type: client_credentials \(default\) or password |
| `clientId` | string | Yes | Concur OAuth client ID |
| `clientSecret` | string | Yes | Concur OAuth client secret |
| `username` | string | No | Username \(only for password grant\) |
@@ -315,7 +315,7 @@ Create a comment on a report (POST /expensereports/v4/users/{userId}/context/{co
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `datacenter` | string | No | Concur datacenter base URL \(defaults to us.api.concursolutions.com\) |
| `grantType` | string | No | OAuth grant type: client_credentials \(default\), password, refresh_token |
| `grantType` | string | No | OAuth grant type: client_credentials \(default\) or password |
| `clientId` | string | Yes | Concur OAuth client ID |
| `clientSecret` | string | Yes | Concur OAuth client secret |
| `username` | string | No | Username \(only for password grant\) |
@@ -343,7 +343,7 @@ Create a travel request (POST /travelrequest/v4/requests).
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `datacenter` | string | No | Concur datacenter base URL \(defaults to us.api.concursolutions.com\) |
| `grantType` | string | No | OAuth grant type: client_credentials \(default\), password, refresh_token |
| `grantType` | string | No | OAuth grant type: client_credentials \(default\) or password |
| `clientId` | string | Yes | Concur OAuth client ID |
| `clientSecret` | string | Yes | Concur OAuth client secret |
| `username` | string | No | Username \(only for password grant\) |
@@ -430,7 +430,7 @@ Create a new user identity (POST /profile/identity/v4.1/Users).
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `datacenter` | string | No | Concur datacenter base URL \(defaults to us.api.concursolutions.com\) |
| `grantType` | string | No | OAuth grant type: client_credentials \(default\), password, refresh_token |
| `grantType` | string | No | OAuth grant type: client_credentials \(default\) or password |
| `clientId` | string | Yes | Concur OAuth client ID |
| `clientSecret` | string | Yes | Concur OAuth client secret |
| `username` | string | No | Username \(only for password grant\) |
@@ -454,7 +454,7 @@ Delete an expected expense (DELETE /travelrequest/v4/expenses/{expenseUuid}).
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `datacenter` | string | No | Concur datacenter base URL \(defaults to us.api.concursolutions.com\) |
| `grantType` | string | No | OAuth grant type: client_credentials \(default\), password, refresh_token |
| `grantType` | string | No | OAuth grant type: client_credentials \(default\) or password |
| `clientId` | string | Yes | Concur OAuth client ID |
| `clientSecret` | string | Yes | Concur OAuth client secret |
| `username` | string | No | Username \(only for password grant\) |
@@ -479,7 +479,7 @@ Delete an expense (DELETE /expensereports/v4/reports/{reportId}/expenses/{expens
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `datacenter` | string | No | Concur datacenter base URL \(defaults to us.api.concursolutions.com\) |
| `grantType` | string | No | OAuth grant type: client_credentials \(default\), password, refresh_token |
| `grantType` | string | No | OAuth grant type: client_credentials \(default\) or password |
| `clientId` | string | Yes | Concur OAuth client ID |
| `clientSecret` | string | Yes | Concur OAuth client secret |
| `username` | string | No | Username \(only for password grant\) |
@@ -504,7 +504,7 @@ Delete an expense report (DELETE /expensereports/v4/reports/{reportId}).
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `datacenter` | string | No | Concur datacenter base URL \(defaults to us.api.concursolutions.com\) |
| `grantType` | string | No | OAuth grant type: client_credentials \(default\), password, refresh_token |
| `grantType` | string | No | OAuth grant type: client_credentials \(default\) or password |
| `clientId` | string | Yes | Concur OAuth client ID |
| `clientSecret` | string | Yes | Concur OAuth client secret |
| `username` | string | No | Username \(only for password grant\) |
@@ -528,7 +528,7 @@ Delete a list item (DELETE /list/v4/items/{itemId}).
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `datacenter` | string | No | Concur datacenter base URL \(defaults to us.api.concursolutions.com\) |
| `grantType` | string | No | OAuth grant type: client_credentials \(default\), password, refresh_token |
| `grantType` | string | No | OAuth grant type: client_credentials \(default\) or password |
| `clientId` | string | Yes | Concur OAuth client ID |
| `clientSecret` | string | Yes | Concur OAuth client secret |
| `username` | string | No | Username \(only for password grant\) |
@@ -552,7 +552,7 @@ Delete a travel request (DELETE /travelrequest/v4/requests/{requestUuid}).
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `datacenter` | string | No | Concur datacenter base URL \(defaults to us.api.concursolutions.com\) |
| `grantType` | string | No | OAuth grant type: client_credentials \(default\), password, refresh_token |
| `grantType` | string | No | OAuth grant type: client_credentials \(default\) or password |
| `clientId` | string | Yes | Concur OAuth client ID |
| `clientSecret` | string | Yes | Concur OAuth client secret |
| `username` | string | No | Username \(only for password grant\) |
@@ -577,7 +577,7 @@ Delete a user identity (DELETE /profile/identity/v4.1/Users/{id}).
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `datacenter` | string | No | Concur datacenter base URL \(defaults to us.api.concursolutions.com\) |
| `grantType` | string | No | OAuth grant type: client_credentials \(default\), password, refresh_token |
| `grantType` | string | No | OAuth grant type: client_credentials \(default\) or password |
| `clientId` | string | Yes | Concur OAuth client ID |
| `clientSecret` | string | Yes | Concur OAuth client secret |
| `username` | string | No | Username \(only for password grant\) |
@@ -601,7 +601,7 @@ Get a single allocation (GET /expensereports/v4/users/{userId}/context/{contextT
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `datacenter` | string | No | Concur datacenter base URL \(defaults to us.api.concursolutions.com\) |
| `grantType` | string | No | OAuth grant type: client_credentials \(default\), password, refresh_token |
| `grantType` | string | No | OAuth grant type: client_credentials \(default\) or password |
| `clientId` | string | Yes | Concur OAuth client ID |
| `clientSecret` | string | Yes | Concur OAuth client secret |
| `username` | string | No | Username \(only for password grant\) |
@@ -645,7 +645,7 @@ Get a budget item header by ID (GET /budget/v4/budgetItemHeader/{id}).
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `datacenter` | string | No | Concur datacenter base URL \(defaults to us.api.concursolutions.com\) |
| `grantType` | string | No | OAuth grant type: client_credentials \(default\), password, refresh_token |
| `grantType` | string | No | OAuth grant type: client_credentials \(default\) or password |
| `clientId` | string | Yes | Concur OAuth client ID |
| `clientSecret` | string | Yes | Concur OAuth client secret |
| `username` | string | No | Username \(only for password grant\) |
@@ -693,7 +693,7 @@ Get a cash advance (GET /cashadvance/v4/cashadvances/{cashadvanceId}).
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `datacenter` | string | No | Concur datacenter base URL \(defaults to us.api.concursolutions.com\) |
| `grantType` | string | No | OAuth grant type: client_credentials \(default\), password, refresh_token |
| `grantType` | string | No | OAuth grant type: client_credentials \(default\) or password |
| `clientId` | string | Yes | Concur OAuth client ID |
| `clientSecret` | string | Yes | Concur OAuth client secret |
| `username` | string | No | Username \(only for password grant\) |
@@ -733,7 +733,7 @@ Get a cash advance (GET /cashadvance/v4/cashadvances/{cashadvanceId}).
| ↳ `paymentCode` | string | Payment type code |
| ↳ `description` | string | Payment method description |
### `sap_concur_get_exchange_rate`
### `sap_concur_upload_exchange_rates`
Bulk upload up to 100 custom exchange rates (POST /exchangerate/v4/rates). Body: { currency_sets: [{ from_crn_code, to_crn_code, start_date:
@@ -742,7 +742,7 @@ Bulk upload up to 100 custom exchange rates (POST /exchangerate/v4/rates). Body:
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `datacenter` | string | No | Concur datacenter base URL \(defaults to us.api.concursolutions.com\) |
| `grantType` | string | No | OAuth grant type: client_credentials \(default\), password, refresh_token |
| `grantType` | string | No | OAuth grant type: client_credentials \(default\) or password |
| `clientId` | string | Yes | Concur OAuth client ID |
| `clientSecret` | string | Yes | Concur OAuth client secret |
| `username` | string | No | Username \(only for password grant\) |
@@ -769,7 +769,7 @@ Get an expected expense (GET /travelrequest/v4/expenses/{expenseUuid}).
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `datacenter` | string | No | Concur datacenter base URL \(defaults to us.api.concursolutions.com\) |
| `grantType` | string | No | OAuth grant type: client_credentials \(default\), password, refresh_token |
| `grantType` | string | No | OAuth grant type: client_credentials \(default\) or password |
| `clientId` | string | Yes | Concur OAuth client ID |
| `clientSecret` | string | Yes | Concur OAuth client secret |
| `username` | string | No | Username \(only for password grant\) |
@@ -809,7 +809,7 @@ Get a single expense (GET /expensereports/v4/users/{userId}/context/{contextType
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `datacenter` | string | No | Concur datacenter base URL \(defaults to us.api.concursolutions.com\) |
| `grantType` | string | No | OAuth grant type: client_credentials \(default\), password, refresh_token |
| `grantType` | string | No | OAuth grant type: client_credentials \(default\) or password |
| `clientId` | string | Yes | Concur OAuth client ID |
| `clientSecret` | string | Yes | Concur OAuth client secret |
| `username` | string | No | Username \(only for password grant\) |
@@ -887,7 +887,7 @@ Retrieve a single expense report header by id via Expense Report v4 (/expenserep
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `datacenter` | string | No | Concur datacenter base URL \(defaults to us.api.concursolutions.com\) |
| `grantType` | string | No | OAuth grant type: client_credentials \(default\), password, refresh_token |
| `grantType` | string | No | OAuth grant type: client_credentials \(default\) or password |
| `clientId` | string | Yes | Concur OAuth client ID |
| `clientSecret` | string | Yes | Concur OAuth client secret |
| `username` | string | No | Username \(only for password grant\) |
@@ -981,7 +981,7 @@ Get expense itemizations (GET /expensereports/v4/users/{userId}/context/{context
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `datacenter` | string | No | Concur datacenter base URL \(defaults to us.api.concursolutions.com\) |
| `grantType` | string | No | OAuth grant type: client_credentials \(default\), password, refresh_token |
| `grantType` | string | No | OAuth grant type: client_credentials \(default\) or password |
| `clientId` | string | Yes | Concur OAuth client ID |
| `clientSecret` | string | Yes | Concur OAuth client secret |
| `username` | string | No | Username \(only for password grant\) |
@@ -1029,7 +1029,7 @@ Get a single trip/itinerary (GET /api/travel/trip/v1.1/{tripID}).
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `datacenter` | string | No | Concur datacenter base URL \(defaults to us.api.concursolutions.com\) |
| `grantType` | string | No | OAuth grant type: client_credentials \(default\), password, refresh_token |
| `grantType` | string | No | OAuth grant type: client_credentials \(default\) or password |
| `clientId` | string | Yes | Concur OAuth client ID |
| `clientSecret` | string | Yes | Concur OAuth client secret |
| `username` | string | No | Username \(only for password grant\) |
@@ -1079,7 +1079,7 @@ Get a single custom list (GET /list/v4/lists/{listId}).
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `datacenter` | string | No | Concur datacenter base URL \(defaults to us.api.concursolutions.com\) |
| `grantType` | string | No | OAuth grant type: client_credentials \(default\), password, refresh_token |
| `grantType` | string | No | OAuth grant type: client_credentials \(default\) or password |
| `clientId` | string | Yes | Concur OAuth client ID |
| `clientSecret` | string | Yes | Concur OAuth client secret |
| `username` | string | No | Username \(only for password grant\) |
@@ -1115,7 +1115,7 @@ Get a single list item (GET /list/v4/items/{itemId}).
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `datacenter` | string | No | Concur datacenter base URL \(defaults to us.api.concursolutions.com\) |
| `grantType` | string | No | OAuth grant type: client_credentials \(default\), password, refresh_token |
| `grantType` | string | No | OAuth grant type: client_credentials \(default\) or password |
| `clientId` | string | Yes | Concur OAuth client ID |
| `clientSecret` | string | Yes | Concur OAuth client secret |
| `username` | string | No | Username \(only for password grant\) |
@@ -1149,7 +1149,7 @@ Get a purchase request by ID (GET /purchaserequest/v4/purchaserequests/{id}).
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `datacenter` | string | No | Concur datacenter base URL \(defaults to us.api.concursolutions.com\) |
| `grantType` | string | No | OAuth grant type: client_credentials \(default\), password, refresh_token |
| `grantType` | string | No | OAuth grant type: client_credentials \(default\) or password |
| `clientId` | string | Yes | Concur OAuth client ID |
| `clientSecret` | string | Yes | Concur OAuth client secret |
| `username` | string | No | Username \(only for password grant\) |
@@ -1185,7 +1185,7 @@ Get a single receipt by ID (GET /receipts/v4/{receiptId}).
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `datacenter` | string | No | Concur datacenter base URL \(defaults to us.api.concursolutions.com\) |
| `grantType` | string | No | OAuth grant type: client_credentials \(default\), password, refresh_token |
| `grantType` | string | No | OAuth grant type: client_credentials \(default\) or password |
| `clientId` | string | Yes | Concur OAuth client ID |
| `clientSecret` | string | Yes | Concur OAuth client secret |
| `username` | string | No | Username \(only for password grant\) |
@@ -1217,7 +1217,7 @@ Get receipt processing status (GET /receipts/v4/status/{receiptId}).
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `datacenter` | string | No | Concur datacenter base URL \(defaults to us.api.concursolutions.com\) |
| `grantType` | string | No | OAuth grant type: client_credentials \(default\), password, refresh_token |
| `grantType` | string | No | OAuth grant type: client_credentials \(default\) or password |
| `clientId` | string | Yes | Concur OAuth client ID |
| `clientSecret` | string | Yes | Concur OAuth client secret |
| `username` | string | No | Username \(only for password grant\) |
@@ -1246,7 +1246,7 @@ Get a travel profile (GET /api/travelprofile/v2.0/profile). Returns the calling
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `datacenter` | string | No | Concur datacenter base URL \(defaults to us.api.concursolutions.com\) |
| `grantType` | string | No | OAuth grant type: client_credentials \(default\), password, refresh_token |
| `grantType` | string | No | OAuth grant type: client_credentials \(default\) or password |
| `clientId` | string | Yes | Concur OAuth client ID |
| `clientSecret` | string | Yes | Concur OAuth client secret |
| `username` | string | No | Username \(only for password grant\) |
@@ -1297,7 +1297,7 @@ Get a single travel request (GET /travelrequest/v4/requests/{requestUuid}).
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `datacenter` | string | No | Concur datacenter base URL \(defaults to us.api.concursolutions.com\) |
| `grantType` | string | No | OAuth grant type: client_credentials \(default\), password, refresh_token |
| `grantType` | string | No | OAuth grant type: client_credentials \(default\) or password |
| `clientId` | string | Yes | Concur OAuth client ID |
| `clientSecret` | string | Yes | Concur OAuth client secret |
| `username` | string | No | Username \(only for password grant\) |
@@ -1407,7 +1407,7 @@ Get a single user by UUID (GET /profile/identity/v4.1/Users/{id}).
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `datacenter` | string | No | Concur datacenter base URL \(defaults to us.api.concursolutions.com\) |
| `grantType` | string | No | OAuth grant type: client_credentials \(default\), password, refresh_token |
| `grantType` | string | No | OAuth grant type: client_credentials \(default\) or password |
| `clientId` | string | Yes | Concur OAuth client ID |
| `clientSecret` | string | Yes | Concur OAuth client secret |
| `username` | string | No | Username \(only for password grant\) |
@@ -1433,7 +1433,7 @@ Issue a cash advance (POST /cashadvance/v4/cashadvances/{cashadvanceId}/issue).
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `datacenter` | string | No | Concur datacenter base URL \(defaults to us.api.concursolutions.com\) |
| `grantType` | string | No | OAuth grant type: client_credentials \(default\), password, refresh_token |
| `grantType` | string | No | OAuth grant type: client_credentials \(default\) or password |
| `clientId` | string | Yes | Concur OAuth client ID |
| `clientSecret` | string | Yes | Concur OAuth client secret |
| `username` | string | No | Username \(only for password grant\) |
@@ -1462,7 +1462,7 @@ List allocations on an expense (GET /expensereports/v4/users/{userId}/context/{c
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `datacenter` | string | No | Concur datacenter base URL \(defaults to us.api.concursolutions.com\) |
| `grantType` | string | No | OAuth grant type: client_credentials \(default\), password, refresh_token |
| `grantType` | string | No | OAuth grant type: client_credentials \(default\) or password |
| `clientId` | string | Yes | Concur OAuth client ID |
| `clientSecret` | string | Yes | Concur OAuth client secret |
| `username` | string | No | Username \(only for password grant\) |
@@ -1489,7 +1489,7 @@ List attendees associated with an expense (GET /expensereports/v4/users/{userId}
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `datacenter` | string | No | Concur datacenter base URL \(defaults to us.api.concursolutions.com\) |
| `grantType` | string | No | OAuth grant type: client_credentials \(default\), password, refresh_token |
| `grantType` | string | No | OAuth grant type: client_credentials \(default\) or password |
| `clientId` | string | Yes | Concur OAuth client ID |
| `clientSecret` | string | Yes | Concur OAuth client secret |
| `username` | string | No | Username \(only for password grant\) |
@@ -1534,7 +1534,7 @@ List budget categories (GET /budget/v4/budgetCategory).
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `datacenter` | string | No | Concur datacenter base URL \(defaults to us.api.concursolutions.com\) |
| `grantType` | string | No | OAuth grant type: client_credentials \(default\), password, refresh_token |
| `grantType` | string | No | OAuth grant type: client_credentials \(default\) or password |
| `clientId` | string | Yes | Concur OAuth client ID |
| `clientSecret` | string | Yes | Concur OAuth client secret |
| `username` | string | No | Username \(only for password grant\) |
@@ -1557,7 +1557,7 @@ List budget item headers (GET /budget/v4/budgetItemHeader).
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `datacenter` | string | No | Concur datacenter base URL \(defaults to us.api.concursolutions.com\) |
| `grantType` | string | No | OAuth grant type: client_credentials \(default\), password, refresh_token |
| `grantType` | string | No | OAuth grant type: client_credentials \(default\) or password |
| `clientId` | string | Yes | Concur OAuth client ID |
| `clientSecret` | string | Yes | Concur OAuth client secret |
| `username` | string | No | Username \(only for password grant\) |
@@ -1586,7 +1586,7 @@ List exceptions on a report (GET /expensereports/v4/users/{userId}/context/{cont
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `datacenter` | string | No | Concur datacenter base URL \(defaults to us.api.concursolutions.com\) |
| `grantType` | string | No | OAuth grant type: client_credentials \(default\), password, refresh_token |
| `grantType` | string | No | OAuth grant type: client_credentials \(default\) or password |
| `clientId` | string | Yes | Concur OAuth client ID |
| `clientSecret` | string | Yes | Concur OAuth client secret |
| `username` | string | No | Username \(only for password grant\) |
@@ -1619,7 +1619,7 @@ List expected expenses on a travel request (GET /travelrequest/v4/requests/{requ
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `datacenter` | string | No | Concur datacenter base URL \(defaults to us.api.concursolutions.com\) |
| `grantType` | string | No | OAuth grant type: client_credentials \(default\), password, refresh_token |
| `grantType` | string | No | OAuth grant type: client_credentials \(default\) or password |
| `clientId` | string | Yes | Concur OAuth client ID |
| `clientSecret` | string | Yes | Concur OAuth client secret |
| `username` | string | No | Username \(only for password grant\) |
@@ -1644,7 +1644,7 @@ List expenses on a report (GET /expensereports/v4/users/{userId}/context/{contex
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `datacenter` | string | No | Concur datacenter base URL \(defaults to us.api.concursolutions.com\) |
| `grantType` | string | No | OAuth grant type: client_credentials \(default\), password, refresh_token |
| `grantType` | string | No | OAuth grant type: client_credentials \(default\) or password |
| `clientId` | string | Yes | Concur OAuth client ID |
| `clientSecret` | string | Yes | Concur OAuth client secret |
| `username` | string | No | Username \(only for password grant\) |
@@ -1700,7 +1700,7 @@ List expense reports (GET /api/v3.0/expense/reports). Returns a v3 envelope { It
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `datacenter` | string | No | Concur datacenter base URL \(us, us2, eu, eu2, cn, emea — defaults to us.api.concursolutions.com\) |
| `grantType` | string | No | OAuth grant type: client_credentials \(default\), password, refresh_token |
| `grantType` | string | No | OAuth grant type: client_credentials \(default\) or password |
| `clientId` | string | Yes | Concur OAuth client ID |
| `clientSecret` | string | Yes | Concur OAuth client secret |
| `username` | string | No | Username \(only for password grant\) |
@@ -1762,7 +1762,7 @@ List travel trips/itineraries (GET /api/travel/trip/v1.1).
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `datacenter` | string | No | Concur datacenter base URL \(defaults to us.api.concursolutions.com\) |
| `grantType` | string | No | OAuth grant type: client_credentials \(default\), password, refresh_token |
| `grantType` | string | No | OAuth grant type: client_credentials \(default\) or password |
| `clientId` | string | Yes | Concur OAuth client ID |
| `clientSecret` | string | Yes | Concur OAuth client secret |
| `username` | string | No | Username \(only for password grant\) |
@@ -1824,7 +1824,7 @@ List custom lists (GET /list/v4/lists).
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `datacenter` | string | No | Concur datacenter base URL \(defaults to us.api.concursolutions.com\) |
| `grantType` | string | No | OAuth grant type: client_credentials \(default\), password, refresh_token |
| `grantType` | string | No | OAuth grant type: client_credentials \(default\) or password |
| `clientId` | string | Yes | Concur OAuth client ID |
| `clientSecret` | string | Yes | Concur OAuth client secret |
| `username` | string | No | Username \(only for password grant\) |
@@ -1875,7 +1875,7 @@ List the top-level items (children) for a custom list (GET /list/v4/lists/{listI
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `datacenter` | string | No | Concur datacenter base URL \(defaults to us.api.concursolutions.com\) |
| `grantType` | string | No | OAuth grant type: client_credentials \(default\), password, refresh_token |
| `grantType` | string | No | OAuth grant type: client_credentials \(default\) or password |
| `clientId` | string | Yes | Concur OAuth client ID |
| `clientSecret` | string | Yes | Concur OAuth client secret |
| `username` | string | No | Username \(only for password grant\) |
@@ -1926,7 +1926,7 @@ List receipts for a user (GET /receipts/v4/users/{userId}).
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `datacenter` | string | No | Concur datacenter base URL \(defaults to us.api.concursolutions.com\) |
| `grantType` | string | No | OAuth grant type: client_credentials \(default\), password, refresh_token |
| `grantType` | string | No | OAuth grant type: client_credentials \(default\) or password |
| `clientId` | string | Yes | Concur OAuth client ID |
| `clientSecret` | string | Yes | Concur OAuth client secret |
| `username` | string | No | Username \(only for password grant\) |
@@ -1958,7 +1958,7 @@ List comments on a report (GET /expensereports/v4/users/{userId}/context/{contex
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `datacenter` | string | No | Concur datacenter base URL \(defaults to us.api.concursolutions.com\) |
| `grantType` | string | No | OAuth grant type: client_credentials \(default\), password, refresh_token |
| `grantType` | string | No | OAuth grant type: client_credentials \(default\) or password |
| `clientId` | string | Yes | Concur OAuth client ID |
| `clientSecret` | string | Yes | Concur OAuth client secret |
| `username` | string | No | Username \(only for password grant\) |
@@ -1998,7 +1998,7 @@ List expense reports awaiting approval (GET /expensereports/v4/users/{userId}/co
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `datacenter` | string | No | Concur datacenter base URL \(defaults to us.api.concursolutions.com\) |
| `grantType` | string | No | OAuth grant type: client_credentials \(default\), password, refresh_token |
| `grantType` | string | No | OAuth grant type: client_credentials \(default\) or password |
| `clientId` | string | Yes | Concur OAuth client ID |
| `clientSecret` | string | Yes | Concur OAuth client secret |
| `username` | string | No | Username \(only for password grant\) |
@@ -2039,7 +2039,7 @@ Get a single cash advance assigned to a travel request (GET /travelrequest/v4/ca
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `datacenter` | string | No | Concur datacenter base URL \(defaults to us.api.concursolutions.com\) |
| `grantType` | string | No | OAuth grant type: client_credentials \(default\), password, refresh_token |
| `grantType` | string | No | OAuth grant type: client_credentials \(default\) or password |
| `clientId` | string | Yes | Concur OAuth client ID |
| `clientSecret` | string | Yes | Concur OAuth client secret |
| `username` | string | No | Username \(only for password grant\) |
@@ -2075,7 +2075,7 @@ List travel profile summaries (GET /api/travelprofile/v2.0/summary). LastModifie
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `datacenter` | string | No | Concur datacenter base URL \(defaults to us.api.concursolutions.com\) |
| `grantType` | string | No | OAuth grant type: client_credentials \(default\), password, refresh_token |
| `grantType` | string | No | OAuth grant type: client_credentials \(default\) or password |
| `clientId` | string | Yes | Concur OAuth client ID |
| `clientSecret` | string | Yes | Concur OAuth client secret |
| `username` | string | No | Username \(only for password grant\) |
@@ -2121,7 +2121,7 @@ List comments on a travel request (GET /travelrequest/v4/requests/{requestUuid}/
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `datacenter` | string | No | Concur datacenter base URL \(defaults to us.api.concursolutions.com\) |
| `grantType` | string | No | OAuth grant type: client_credentials \(default\), password, refresh_token |
| `grantType` | string | No | OAuth grant type: client_credentials \(default\) or password |
| `clientId` | string | Yes | Concur OAuth client ID |
| `clientSecret` | string | Yes | Concur OAuth client secret |
| `username` | string | No | Username \(only for password grant\) |
@@ -2151,7 +2151,7 @@ List travel requests (GET /travelrequest/v4/requests).
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `datacenter` | string | No | Concur datacenter base URL \(defaults to us.api.concursolutions.com\) |
| `grantType` | string | No | OAuth grant type: client_credentials \(default\), password, refresh_token |
| `grantType` | string | No | OAuth grant type: client_credentials \(default\) or password |
| `clientId` | string | Yes | Concur OAuth client ID |
| `clientSecret` | string | Yes | Concur OAuth client secret |
| `username` | string | No | Username \(only for password grant\) |
@@ -2230,7 +2230,7 @@ List Concur user identities (GET /profile/identity/v4.1/Users).
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `datacenter` | string | No | Concur datacenter base URL \(defaults to us.api.concursolutions.com\) |
| `grantType` | string | No | OAuth grant type: client_credentials \(default\), password, refresh_token |
| `grantType` | string | No | OAuth grant type: client_credentials \(default\) or password |
| `clientId` | string | Yes | Concur OAuth client ID |
| `clientSecret` | string | Yes | Concur OAuth client secret |
| `username` | string | No | Username \(only for password grant\) |
@@ -2257,7 +2257,7 @@ Move a travel request through workflow (POST /travelrequest/v4/requests/{request
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `datacenter` | string | No | Concur datacenter base URL \(defaults to us.api.concursolutions.com\) |
| `grantType` | string | No | OAuth grant type: client_credentials \(default\), password, refresh_token |
| `grantType` | string | No | OAuth grant type: client_credentials \(default\) or password |
| `clientId` | string | Yes | Concur OAuth client ID |
| `clientSecret` | string | Yes | Concur OAuth client secret |
| `username` | string | No | Username \(only for password grant\) |
@@ -2298,7 +2298,7 @@ Recall a submitted expense report (PATCH /expensereports/v4/users/{userId}/conte
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `datacenter` | string | No | Concur datacenter base URL \(defaults to us.api.concursolutions.com\) |
| `grantType` | string | No | OAuth grant type: client_credentials \(default\), password, refresh_token |
| `grantType` | string | No | OAuth grant type: client_credentials \(default\) or password |
| `clientId` | string | Yes | Concur OAuth client ID |
| `clientSecret` | string | Yes | Concur OAuth client secret |
| `username` | string | No | Username \(only for password grant\) |
@@ -2325,7 +2325,7 @@ Remove all attendees from an expense (DELETE /expensereports/v4/users/{userId}/c
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `datacenter` | string | No | Concur datacenter base URL \(defaults to us.api.concursolutions.com\) |
| `grantType` | string | No | OAuth grant type: client_credentials \(default\), password, refresh_token |
| `grantType` | string | No | OAuth grant type: client_credentials \(default\) or password |
| `clientId` | string | Yes | Concur OAuth client ID |
| `clientSecret` | string | Yes | Concur OAuth client secret |
| `username` | string | No | Username \(only for password grant\) |
@@ -2352,7 +2352,7 @@ Search Concur location reference data (GET /localities/v5/locations).
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `datacenter` | string | No | Concur datacenter base URL \(defaults to us.api.concursolutions.com\) |
| `grantType` | string | No | OAuth grant type: client_credentials \(default\), password, refresh_token |
| `grantType` | string | No | OAuth grant type: client_credentials \(default\) or password |
| `clientId` | string | Yes | Concur OAuth client ID |
| `clientSecret` | string | Yes | Concur OAuth client secret |
| `username` | string | No | Username \(only for password grant\) |
@@ -2408,7 +2408,7 @@ Search users via SCIM .search endpoint (POST /profile/identity/v4.1/Users/.searc
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `datacenter` | string | No | Concur datacenter base URL \(defaults to us.api.concursolutions.com\) |
| `grantType` | string | No | OAuth grant type: client_credentials \(default\), password, refresh_token |
| `grantType` | string | No | OAuth grant type: client_credentials \(default\) or password |
| `clientId` | string | Yes | Concur OAuth client ID |
| `clientSecret` | string | Yes | Concur OAuth client secret |
| `username` | string | No | Username \(only for password grant\) |
@@ -2432,7 +2432,7 @@ Send back an expense report to the employee (PATCH /expensereports/v4/reports/{r
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `datacenter` | string | No | Concur datacenter base URL \(defaults to us.api.concursolutions.com\) |
| `grantType` | string | No | OAuth grant type: client_credentials \(default\), password, refresh_token |
| `grantType` | string | No | OAuth grant type: client_credentials \(default\) or password |
| `clientId` | string | Yes | Concur OAuth client ID |
| `clientSecret` | string | Yes | Concur OAuth client secret |
| `username` | string | No | Username \(only for password grant\) |
@@ -2457,7 +2457,7 @@ Submit an expense report into the workflow via Expense Report v4 (PATCH /expense
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `datacenter` | string | No | Concur datacenter base URL \(defaults to us.api.concursolutions.com\) |
| `grantType` | string | No | OAuth grant type: client_credentials \(default\), password, refresh_token |
| `grantType` | string | No | OAuth grant type: client_credentials \(default\) or password |
| `clientId` | string | Yes | Concur OAuth client ID |
| `clientSecret` | string | Yes | Concur OAuth client secret |
| `username` | string | No | Username \(only for password grant\) |
@@ -2483,7 +2483,7 @@ Update an allocation (PATCH /expensereports/v4/users/{userId}/context/{contextTy
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `datacenter` | string | No | Concur datacenter base URL \(defaults to us.api.concursolutions.com\) |
| `grantType` | string | No | OAuth grant type: client_credentials \(default\), password, refresh_token |
| `grantType` | string | No | OAuth grant type: client_credentials \(default\) or password |
| `clientId` | string | Yes | Concur OAuth client ID |
| `clientSecret` | string | Yes | Concur OAuth client secret |
| `username` | string | No | Username \(only for password grant\) |
@@ -2511,7 +2511,7 @@ Update an expected expense (PUT /travelrequest/v4/expenses/{expenseUuid}).
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `datacenter` | string | No | Concur datacenter base URL \(defaults to us.api.concursolutions.com\) |
| `grantType` | string | No | OAuth grant type: client_credentials \(default\), password, refresh_token |
| `grantType` | string | No | OAuth grant type: client_credentials \(default\) or password |
| `clientId` | string | Yes | Concur OAuth client ID |
| `clientSecret` | string | Yes | Concur OAuth client secret |
| `username` | string | No | Username \(only for password grant\) |
@@ -2552,7 +2552,7 @@ Update an expense (PATCH /expensereports/v4/reports/{reportId}/expenses/{expense
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `datacenter` | string | No | Concur datacenter base URL \(defaults to us.api.concursolutions.com\) |
| `grantType` | string | No | OAuth grant type: client_credentials \(default\), password, refresh_token |
| `grantType` | string | No | OAuth grant type: client_credentials \(default\) or password |
| `clientId` | string | Yes | Concur OAuth client ID |
| `clientSecret` | string | Yes | Concur OAuth client secret |
| `username` | string | No | Username \(only for password grant\) |
@@ -2578,7 +2578,7 @@ Update an unsubmitted expense report (PATCH /expensereports/v4/users/{userId}/co
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `datacenter` | string | No | Concur datacenter base URL \(defaults to us.api.concursolutions.com\) |
| `grantType` | string | No | OAuth grant type: client_credentials \(default\), password, refresh_token |
| `grantType` | string | No | OAuth grant type: client_credentials \(default\) or password |
| `clientId` | string | Yes | Concur OAuth client ID |
| `clientSecret` | string | Yes | Concur OAuth client secret |
| `username` | string | No | Username \(only for password grant\) |
@@ -2605,7 +2605,7 @@ Update a list item (PUT /list/v4/items/{itemId}).
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `datacenter` | string | No | Concur datacenter base URL \(defaults to us.api.concursolutions.com\) |
| `grantType` | string | No | OAuth grant type: client_credentials \(default\), password, refresh_token |
| `grantType` | string | No | OAuth grant type: client_credentials \(default\) or password |
| `clientId` | string | Yes | Concur OAuth client ID |
| `clientSecret` | string | Yes | Concur OAuth client secret |
| `username` | string | No | Username \(only for password grant\) |
@@ -2640,7 +2640,7 @@ Update a travel request (PUT /travelrequest/v4/requests/{requestUuid}).
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `datacenter` | string | No | Concur datacenter base URL \(defaults to us.api.concursolutions.com\) |
| `grantType` | string | No | OAuth grant type: client_credentials \(default\), password, refresh_token |
| `grantType` | string | No | OAuth grant type: client_credentials \(default\) or password |
| `clientId` | string | Yes | Concur OAuth client ID |
| `clientSecret` | string | Yes | Concur OAuth client secret |
| `username` | string | No | Username \(only for password grant\) |
@@ -2715,7 +2715,7 @@ Patch a user identity (PATCH /profile/identity/v4.1/Users/{id}).
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `datacenter` | string | No | Concur datacenter base URL \(defaults to us.api.concursolutions.com\) |
| `grantType` | string | No | OAuth grant type: client_credentials \(default\), password, refresh_token |
| `grantType` | string | No | OAuth grant type: client_credentials \(default\) or password |
| `clientId` | string | Yes | Concur OAuth client ID |
| `clientSecret` | string | Yes | Concur OAuth client secret |
| `username` | string | No | Username \(only for password grant\) |
@@ -2740,7 +2740,7 @@ Upload an image-only receipt (POST /receipts/v4/users/{userId}/image-only-receip
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `datacenter` | string | No | Concur datacenter base URL \(defaults to us.api.concursolutions.com\) |
| `grantType` | string | No | OAuth grant type: client_credentials \(default\), password, refresh_token |
| `grantType` | string | No | OAuth grant type: client_credentials \(default\) or password |
| `clientId` | string | Yes | Concur OAuth client ID |
| `clientSecret` | string | Yes | Concur OAuth client secret |
| `username` | string | No | Username \(only for password grant\) |
+7 -2
View File
@@ -22,7 +22,7 @@ export const SapConcurDatacenterSchema = z
message: `datacenter must be one of: ${Array.from(SAP_CONCUR_ALLOWED_DATACENTERS).join(', ')}`,
})
export const SapConcurGrantTypeSchema = z.enum(['client_credentials', 'password', 'refresh_token'])
export const SapConcurGrantTypeSchema = z.enum(['client_credentials', 'password'])
export const SapConcurAuthSchema = z.object({
datacenter: SapConcurDatacenterSchema.default('us.api.concursolutions.com'),
@@ -257,7 +257,12 @@ export async function fetchSapConcurAccessToken(
}
const geolocation = normalizeGeolocation(data.geolocation, auth.datacenter)
assertSafeExternalUrl(geolocation, 'geolocation')
const geolocationUrl = assertSafeExternalUrl(geolocation, 'geolocation')
if (!SAP_CONCUR_ALLOWED_DATACENTERS.has(geolocationUrl.hostname.toLowerCase())) {
throw new Error(
`Concur geolocation host is not in the allowed datacenter list: ${geolocationUrl.hostname}`
)
}
const expiresInMs = (data.expires_in ?? 3600) * 1000
rememberToken(cacheKey, {
+5 -6
View File
@@ -152,7 +152,7 @@ const BODY_OPS = [
'sap_concur_update_user',
'sap_concur_search_users',
'sap_concur_create_purchase_request',
'sap_concur_get_exchange_rate',
'sap_concur_upload_exchange_rates',
]
export const SapConcurBlock: BlockConfig<SapConcurProxyResponse> = {
@@ -247,7 +247,7 @@ export const SapConcurBlock: BlockConfig<SapConcurProxyResponse> = {
{ label: 'List Budgets', id: 'sap_concur_list_budgets' },
{ label: 'Get Budget', id: 'sap_concur_get_budget' },
{ label: 'List Budget Categories', id: 'sap_concur_list_budget_categories' },
{ label: 'Get Exchange Rate', id: 'sap_concur_get_exchange_rate' },
{ label: 'Upload Exchange Rates', id: 'sap_concur_upload_exchange_rates' },
{ label: 'Create Purchase Request', id: 'sap_concur_create_purchase_request' },
{ label: 'Get Purchase Request', id: 'sap_concur_get_purchase_request' },
{ label: 'Get Travel Profile', id: 'sap_concur_get_travel_profile' },
@@ -284,7 +284,6 @@ export const SapConcurBlock: BlockConfig<SapConcurProxyResponse> = {
options: [
{ label: 'Client Credentials', id: 'client_credentials' },
{ label: 'Password', id: 'password' },
{ label: 'Refresh Token', id: 'refresh_token' },
],
value: () => 'client_credentials',
},
@@ -1240,7 +1239,7 @@ export const SapConcurBlock: BlockConfig<SapConcurProxyResponse> = {
'sap_concur_update_user',
'sap_concur_search_users',
'sap_concur_create_purchase_request',
'sap_concur_get_exchange_rate',
'sap_concur_upload_exchange_rates',
'sap_concur_create_list_item',
'sap_concur_update_list_item',
],
@@ -1270,7 +1269,7 @@ export const SapConcurBlock: BlockConfig<SapConcurProxyResponse> = {
'sap_concur_get_allocation',
'sap_concur_get_budget',
'sap_concur_get_cash_advance',
'sap_concur_get_exchange_rate',
'sap_concur_upload_exchange_rates',
'sap_concur_get_expected_expense',
'sap_concur_get_expense',
'sap_concur_get_expense_report',
@@ -1699,7 +1698,7 @@ export const SapConcurBlock: BlockConfig<SapConcurProxyResponse> = {
return { ...auth, budgetId: params.budgetId }
case 'sap_concur_list_budget_categories':
return { ...auth }
case 'sap_concur_get_exchange_rate':
case 'sap_concur_upload_exchange_rates':
return { ...auth, body: params.body }
case 'sap_concur_create_purchase_request':
return { ...auth, body: params.body }
+2 -2
View File
@@ -2292,7 +2292,6 @@ import {
getAllocationTool as sapConcurGetAllocationTool,
getBudgetTool as sapConcurGetBudgetTool,
getCashAdvanceTool as sapConcurGetCashAdvanceTool,
getExchangeRateTool as sapConcurGetExchangeRateTool,
getExpectedExpenseTool as sapConcurGetExpectedExpenseTool,
getExpenseReportTool as sapConcurGetExpenseReportTool,
getExpenseTool as sapConcurGetExpenseTool,
@@ -2340,6 +2339,7 @@ import {
updateListItemTool as sapConcurUpdateListItemTool,
updateTravelRequestTool as sapConcurUpdateTravelRequestTool,
updateUserTool as sapConcurUpdateUserTool,
uploadExchangeRatesTool as sapConcurUploadExchangeRatesTool,
uploadReceiptImageTool as sapConcurUploadReceiptImageTool,
} from '@/tools/sap_concur'
import {
@@ -5463,7 +5463,7 @@ export const tools: Record<string, ToolConfig> = {
sap_concur_get_allocation: sapConcurGetAllocationTool,
sap_concur_get_budget: sapConcurGetBudgetTool,
sap_concur_get_cash_advance: sapConcurGetCashAdvanceTool,
sap_concur_get_exchange_rate: sapConcurGetExchangeRateTool,
sap_concur_upload_exchange_rates: sapConcurUploadExchangeRatesTool,
sap_concur_get_expected_expense: sapConcurGetExpectedExpenseTool,
sap_concur_get_expense: sapConcurGetExpenseTool,
sap_concur_get_expense_report: sapConcurGetExpenseReportTool,
@@ -27,7 +27,7 @@ export const approveExpenseReportTool: ToolConfig<
type: 'string',
required: false,
visibility: 'user-only',
description: 'OAuth grant type: client_credentials (default), password, refresh_token',
description: 'OAuth grant type: client_credentials (default) or password',
},
clientId: {
type: 'string',
@@ -25,7 +25,7 @@ export const associateAttendeesTool: ToolConfig<AssociateAttendeesParams, SapCon
type: 'string',
required: false,
visibility: 'user-only',
description: 'OAuth grant type: client_credentials (default), password, refresh_token',
description: 'OAuth grant type: client_credentials (default) or password',
},
clientId: {
type: 'string',
@@ -22,7 +22,7 @@ export const createCashAdvanceTool: ToolConfig<CreateCashAdvanceParams, SapConcu
type: 'string',
required: false,
visibility: 'user-only',
description: 'OAuth grant type: client_credentials (default), password, refresh_token',
description: 'OAuth grant type: client_credentials (default) or password',
},
clientId: {
type: 'string',
@@ -27,7 +27,7 @@ export const createExpectedExpenseTool: ToolConfig<
type: 'string',
required: false,
visibility: 'user-only',
description: 'OAuth grant type: client_credentials (default), password, refresh_token',
description: 'OAuth grant type: client_credentials (default) or password',
},
clientId: {
type: 'string',
@@ -27,7 +27,7 @@ export const createExpenseReportTool: ToolConfig<
type: 'string',
required: false,
visibility: 'user-only',
description: 'OAuth grant type: client_credentials (default), password, refresh_token',
description: 'OAuth grant type: client_credentials (default) or password',
},
clientId: {
type: 'string',
@@ -22,7 +22,7 @@ export const createListItemTool: ToolConfig<CreateListItemParams, SapConcurProxy
type: 'string',
required: false,
visibility: 'user-only',
description: 'OAuth grant type: client_credentials (default), password, refresh_token',
description: 'OAuth grant type: client_credentials (default) or password',
},
clientId: {
type: 'string',
@@ -25,7 +25,7 @@ export const createPurchaseRequestTool: ToolConfig<
type: 'string',
required: false,
visibility: 'user-only',
description: 'OAuth grant type: client_credentials (default), password, refresh_token',
description: 'OAuth grant type: client_credentials (default) or password',
},
clientId: {
type: 'string',
@@ -25,7 +25,7 @@ export const createQuickExpenseTool: ToolConfig<CreateQuickExpenseParams, SapCon
type: 'string',
required: false,
visibility: 'user-only',
description: 'OAuth grant type: client_credentials (default), password, refresh_token',
description: 'OAuth grant type: client_credentials (default) or password',
},
clientId: {
type: 'string',
@@ -30,7 +30,7 @@ export const createQuickExpenseWithImageTool: ToolConfig<
type: 'string',
required: false,
visibility: 'user-only',
description: 'OAuth grant type: client_credentials (default), password, refresh_token',
description: 'OAuth grant type: client_credentials (default) or password',
},
clientId: {
type: 'string',
@@ -27,7 +27,7 @@ export const createReportCommentTool: ToolConfig<
type: 'string',
required: false,
visibility: 'user-only',
description: 'OAuth grant type: client_credentials (default), password, refresh_token',
description: 'OAuth grant type: client_credentials (default) or password',
},
clientId: {
type: 'string',
@@ -25,7 +25,7 @@ export const createTravelRequestTool: ToolConfig<
type: 'string',
required: false,
visibility: 'user-only',
description: 'OAuth grant type: client_credentials (default), password, refresh_token',
description: 'OAuth grant type: client_credentials (default) or password',
},
clientId: {
type: 'string',
+1 -1
View File
@@ -23,7 +23,7 @@ export const createUserTool: ToolConfig<CreateUserParams, SapConcurProxyResponse
type: 'string',
required: false,
visibility: 'user-only',
description: 'OAuth grant type: client_credentials (default), password, refresh_token',
description: 'OAuth grant type: client_credentials (default) or password',
},
clientId: {
type: 'string',
@@ -26,7 +26,7 @@ export const deleteExpectedExpenseTool: ToolConfig<
type: 'string',
required: false,
visibility: 'user-only',
description: 'OAuth grant type: client_credentials (default), password, refresh_token',
description: 'OAuth grant type: client_credentials (default) or password',
},
clientId: {
type: 'string',
+1 -1
View File
@@ -24,7 +24,7 @@ export const deleteExpenseTool: ToolConfig<DeleteExpenseParams, SapConcurProxyRe
type: 'string',
required: false,
visibility: 'user-only',
description: 'OAuth grant type: client_credentials (default), password, refresh_token',
description: 'OAuth grant type: client_credentials (default) or password',
},
clientId: {
type: 'string',
@@ -26,7 +26,7 @@ export const deleteExpenseReportTool: ToolConfig<
type: 'string',
required: false,
visibility: 'user-only',
description: 'OAuth grant type: client_credentials (default), password, refresh_token',
description: 'OAuth grant type: client_credentials (default) or password',
},
clientId: {
type: 'string',
@@ -23,7 +23,7 @@ export const deleteListItemTool: ToolConfig<DeleteListItemParams, SapConcurProxy
type: 'string',
required: false,
visibility: 'user-only',
description: 'OAuth grant type: client_credentials (default), password, refresh_token',
description: 'OAuth grant type: client_credentials (default) or password',
},
clientId: {
type: 'string',
@@ -26,7 +26,7 @@ export const deleteTravelRequestTool: ToolConfig<
type: 'string',
required: false,
visibility: 'user-only',
description: 'OAuth grant type: client_credentials (default), password, refresh_token',
description: 'OAuth grant type: client_credentials (default) or password',
},
clientId: {
type: 'string',
+1 -1
View File
@@ -23,7 +23,7 @@ export const deleteUserTool: ToolConfig<DeleteUserParams, SapConcurProxyResponse
type: 'string',
required: false,
visibility: 'user-only',
description: 'OAuth grant type: client_credentials (default), password, refresh_token',
description: 'OAuth grant type: client_credentials (default) or password',
},
clientId: {
type: 'string',
+1 -1
View File
@@ -24,7 +24,7 @@ export const getAllocationTool: ToolConfig<GetAllocationParams, SapConcurProxyRe
type: 'string',
required: false,
visibility: 'user-only',
description: 'OAuth grant type: client_credentials (default), password, refresh_token',
description: 'OAuth grant type: client_credentials (default) or password',
},
clientId: {
type: 'string',
+1 -1
View File
@@ -23,7 +23,7 @@ export const getBudgetTool: ToolConfig<GetBudgetParams, SapConcurProxyResponse>
type: 'string',
required: false,
visibility: 'user-only',
description: 'OAuth grant type: client_credentials (default), password, refresh_token',
description: 'OAuth grant type: client_credentials (default) or password',
},
clientId: {
type: 'string',
@@ -23,7 +23,7 @@ export const getCashAdvanceTool: ToolConfig<GetCashAdvanceParams, SapConcurProxy
type: 'string',
required: false,
visibility: 'user-only',
description: 'OAuth grant type: client_credentials (default), password, refresh_token',
description: 'OAuth grant type: client_credentials (default) or password',
},
clientId: {
type: 'string',
@@ -24,7 +24,7 @@ export const getExpectedExpenseTool: ToolConfig<GetExpectedExpenseParams, SapCon
type: 'string',
required: false,
visibility: 'user-only',
description: 'OAuth grant type: client_credentials (default), password, refresh_token',
description: 'OAuth grant type: client_credentials (default) or password',
},
clientId: {
type: 'string',
+1 -1
View File
@@ -24,7 +24,7 @@ export const getExpenseTool: ToolConfig<GetExpenseParams, SapConcurProxyResponse
type: 'string',
required: false,
visibility: 'user-only',
description: 'OAuth grant type: client_credentials (default), password, refresh_token',
description: 'OAuth grant type: client_credentials (default) or password',
},
clientId: {
type: 'string',
@@ -24,7 +24,7 @@ export const getExpenseReportTool: ToolConfig<GetExpenseReportParams, SapConcurP
type: 'string',
required: false,
visibility: 'user-only',
description: 'OAuth grant type: client_credentials (default), password, refresh_token',
description: 'OAuth grant type: client_credentials (default) or password',
},
clientId: {
type: 'string',
@@ -24,7 +24,7 @@ export const getItemizationsTool: ToolConfig<GetItemizationsParams, SapConcurPro
type: 'string',
required: false,
visibility: 'user-only',
description: 'OAuth grant type: client_credentials (default), password, refresh_token',
description: 'OAuth grant type: client_credentials (default) or password',
},
clientId: {
type: 'string',
+1 -1
View File
@@ -24,7 +24,7 @@ export const getItineraryTool: ToolConfig<GetItineraryParams, SapConcurProxyResp
type: 'string',
required: false,
visibility: 'user-only',
description: 'OAuth grant type: client_credentials (default), password, refresh_token',
description: 'OAuth grant type: client_credentials (default) or password',
},
clientId: {
type: 'string',
+1 -1
View File
@@ -23,7 +23,7 @@ export const getListTool: ToolConfig<GetListParams, SapConcurProxyResponse> = {
type: 'string',
required: false,
visibility: 'user-only',
description: 'OAuth grant type: client_credentials (default), password, refresh_token',
description: 'OAuth grant type: client_credentials (default) or password',
},
clientId: {
type: 'string',
+1 -1
View File
@@ -23,7 +23,7 @@ export const getListItemTool: ToolConfig<GetListItemParams, SapConcurProxyRespon
type: 'string',
required: false,
visibility: 'user-only',
description: 'OAuth grant type: client_credentials (default), password, refresh_token',
description: 'OAuth grant type: client_credentials (default) or password',
},
clientId: {
type: 'string',
@@ -24,7 +24,7 @@ export const getPurchaseRequestTool: ToolConfig<GetPurchaseRequestParams, SapCon
type: 'string',
required: false,
visibility: 'user-only',
description: 'OAuth grant type: client_credentials (default), password, refresh_token',
description: 'OAuth grant type: client_credentials (default) or password',
},
clientId: {
type: 'string',
+1 -1
View File
@@ -23,7 +23,7 @@ export const getReceiptTool: ToolConfig<GetReceiptParams, SapConcurProxyResponse
type: 'string',
required: false,
visibility: 'user-only',
description: 'OAuth grant type: client_credentials (default), password, refresh_token',
description: 'OAuth grant type: client_credentials (default) or password',
},
clientId: {
type: 'string',
@@ -23,7 +23,7 @@ export const getReceiptStatusTool: ToolConfig<GetReceiptStatusParams, SapConcurP
type: 'string',
required: false,
visibility: 'user-only',
description: 'OAuth grant type: client_credentials (default), password, refresh_token',
description: 'OAuth grant type: client_credentials (default) or password',
},
clientId: {
type: 'string',
@@ -27,7 +27,7 @@ export const getRequestCashAdvanceTool: ToolConfig<
type: 'string',
required: false,
visibility: 'user-only',
description: 'OAuth grant type: client_credentials (default), password, refresh_token',
description: 'OAuth grant type: client_credentials (default) or password',
},
clientId: {
type: 'string',
@@ -24,7 +24,7 @@ export const getTravelProfileTool: ToolConfig<GetTravelProfileParams, SapConcurP
type: 'string',
required: false,
visibility: 'user-only',
description: 'OAuth grant type: client_credentials (default), password, refresh_token',
description: 'OAuth grant type: client_credentials (default) or password',
},
clientId: {
type: 'string',
@@ -23,7 +23,7 @@ export const getTravelRequestTool: ToolConfig<GetTravelRequestParams, SapConcurP
type: 'string',
required: false,
visibility: 'user-only',
description: 'OAuth grant type: client_credentials (default), password, refresh_token',
description: 'OAuth grant type: client_credentials (default) or password',
},
clientId: {
type: 'string',
+1 -1
View File
@@ -24,7 +24,7 @@ export const getUserTool: ToolConfig<GetUserParams, SapConcurProxyResponse> = {
type: 'string',
required: false,
visibility: 'user-only',
description: 'OAuth grant type: client_credentials (default), password, refresh_token',
description: 'OAuth grant type: client_credentials (default) or password',
},
clientId: {
type: 'string',
+1 -1
View File
@@ -19,7 +19,6 @@ export { deleteUserTool } from '@/tools/sap_concur/delete_user'
export { getAllocationTool } from '@/tools/sap_concur/get_allocation'
export { getBudgetTool } from '@/tools/sap_concur/get_budget'
export { getCashAdvanceTool } from '@/tools/sap_concur/get_cash_advance'
export { getExchangeRateTool } from '@/tools/sap_concur/get_exchange_rate'
export { getExpectedExpenseTool } from '@/tools/sap_concur/get_expected_expense'
export { getExpenseTool } from '@/tools/sap_concur/get_expense'
export { getExpenseReportTool } from '@/tools/sap_concur/get_expense_report'
@@ -67,4 +66,5 @@ export { updateExpenseReportTool } from '@/tools/sap_concur/update_expense_repor
export { updateListItemTool } from '@/tools/sap_concur/update_list_item'
export { updateTravelRequestTool } from '@/tools/sap_concur/update_travel_request'
export { updateUserTool } from '@/tools/sap_concur/update_user'
export { uploadExchangeRatesTool } from '@/tools/sap_concur/upload_exchange_rates'
export { uploadReceiptImageTool } from '@/tools/sap_concur/upload_receipt_image'
@@ -23,7 +23,7 @@ export const issueCashAdvanceTool: ToolConfig<IssueCashAdvanceParams, SapConcurP
type: 'string',
required: false,
visibility: 'user-only',
description: 'OAuth grant type: client_credentials (default), password, refresh_token',
description: 'OAuth grant type: client_credentials (default) or password',
},
clientId: {
type: 'string',
@@ -24,7 +24,7 @@ export const listAllocationsTool: ToolConfig<ListAllocationsParams, SapConcurPro
type: 'string',
required: false,
visibility: 'user-only',
description: 'OAuth grant type: client_credentials (default), password, refresh_token',
description: 'OAuth grant type: client_credentials (default) or password',
},
clientId: {
type: 'string',
@@ -30,7 +30,7 @@ export const listAttendeeAssociationsTool: ToolConfig<
type: 'string',
required: false,
visibility: 'user-only',
description: 'OAuth grant type: client_credentials (default), password, refresh_token',
description: 'OAuth grant type: client_credentials (default) or password',
},
clientId: {
type: 'string',
@@ -25,7 +25,7 @@ export const listBudgetCategoriesTool: ToolConfig<
type: 'string',
required: false,
visibility: 'user-only',
description: 'OAuth grant type: client_credentials (default), password, refresh_token',
description: 'OAuth grant type: client_credentials (default) or password',
},
clientId: {
type: 'string',
+1 -1
View File
@@ -23,7 +23,7 @@ export const listBudgetsTool: ToolConfig<ListBudgetsParams, SapConcurProxyRespon
type: 'string',
required: false,
visibility: 'user-only',
description: 'OAuth grant type: client_credentials (default), password, refresh_token',
description: 'OAuth grant type: client_credentials (default) or password',
},
clientId: {
type: 'string',
+1 -1
View File
@@ -24,7 +24,7 @@ export const listExceptionsTool: ToolConfig<ListExceptionsParams, SapConcurProxy
type: 'string',
required: false,
visibility: 'user-only',
description: 'OAuth grant type: client_credentials (default), password, refresh_token',
description: 'OAuth grant type: client_credentials (default) or password',
},
clientId: {
type: 'string',
@@ -27,7 +27,7 @@ export const listExpectedExpensesTool: ToolConfig<
type: 'string',
required: false,
visibility: 'user-only',
description: 'OAuth grant type: client_credentials (default), password, refresh_token',
description: 'OAuth grant type: client_credentials (default) or password',
},
clientId: {
type: 'string',
@@ -25,7 +25,7 @@ export const listExpenseReportsTool: ToolConfig<ListExpenseReportsParams, SapCon
type: 'string',
required: false,
visibility: 'user-only',
description: 'OAuth grant type: client_credentials (default), password, refresh_token',
description: 'OAuth grant type: client_credentials (default) or password',
},
clientId: {
type: 'string',
+1 -1
View File
@@ -24,7 +24,7 @@ export const listExpensesTool: ToolConfig<ListExpensesParams, SapConcurProxyResp
type: 'string',
required: false,
visibility: 'user-only',
description: 'OAuth grant type: client_credentials (default), password, refresh_token',
description: 'OAuth grant type: client_credentials (default) or password',
},
clientId: {
type: 'string',
@@ -23,7 +23,7 @@ export const listItinerariesTool: ToolConfig<ListItinerariesParams, SapConcurPro
type: 'string',
required: false,
visibility: 'user-only',
description: 'OAuth grant type: client_credentials (default), password, refresh_token',
description: 'OAuth grant type: client_credentials (default) or password',
},
clientId: {
type: 'string',
+1 -1
View File
@@ -25,7 +25,7 @@ export const listListItemsTool: ToolConfig<ListListItemsParams, SapConcurProxyRe
type: 'string',
required: false,
visibility: 'user-only',
description: 'OAuth grant type: client_credentials (default), password, refresh_token',
description: 'OAuth grant type: client_credentials (default) or password',
},
clientId: {
type: 'string',
+1 -1
View File
@@ -23,7 +23,7 @@ export const listListsTool: ToolConfig<ListListsParams, SapConcurProxyResponse>
type: 'string',
required: false,
visibility: 'user-only',
description: 'OAuth grant type: client_credentials (default), password, refresh_token',
description: 'OAuth grant type: client_credentials (default) or password',
},
clientId: {
type: 'string',
+1 -1
View File
@@ -23,7 +23,7 @@ export const listReceiptsTool: ToolConfig<ListReceiptsParams, SapConcurProxyResp
type: 'string',
required: false,
visibility: 'user-only',
description: 'OAuth grant type: client_credentials (default), password, refresh_token',
description: 'OAuth grant type: client_credentials (default) or password',
},
clientId: {
type: 'string',
@@ -26,7 +26,7 @@ export const listReportCommentsTool: ToolConfig<ListReportCommentsParams, SapCon
type: 'string',
required: false,
visibility: 'user-only',
description: 'OAuth grant type: client_credentials (default), password, refresh_token',
description: 'OAuth grant type: client_credentials (default) or password',
},
clientId: {
type: 'string',
@@ -28,7 +28,7 @@ export const listReportsToApproveTool: ToolConfig<
type: 'string',
required: false,
visibility: 'user-only',
description: 'OAuth grant type: client_credentials (default), password, refresh_token',
description: 'OAuth grant type: client_credentials (default) or password',
},
clientId: {
type: 'string',
@@ -31,7 +31,7 @@ export const listTravelProfilesSummaryTool: ToolConfig<
type: 'string',
required: false,
visibility: 'user-only',
description: 'OAuth grant type: client_credentials (default), password, refresh_token',
description: 'OAuth grant type: client_credentials (default) or password',
},
clientId: {
type: 'string',
@@ -30,7 +30,7 @@ export const listTravelRequestCommentsTool: ToolConfig<
type: 'string',
required: false,
visibility: 'user-only',
description: 'OAuth grant type: client_credentials (default), password, refresh_token',
description: 'OAuth grant type: client_credentials (default) or password',
},
clientId: {
type: 'string',
@@ -24,7 +24,7 @@ export const listTravelRequestsTool: ToolConfig<ListTravelRequestsParams, SapCon
type: 'string',
required: false,
visibility: 'user-only',
description: 'OAuth grant type: client_credentials (default), password, refresh_token',
description: 'OAuth grant type: client_credentials (default) or password',
},
clientId: {
type: 'string',
+1 -1
View File
@@ -24,7 +24,7 @@ export const listUsersTool: ToolConfig<ListUsersParams, SapConcurProxyResponse>
type: 'string',
required: false,
visibility: 'user-only',
description: 'OAuth grant type: client_credentials (default), password, refresh_token',
description: 'OAuth grant type: client_credentials (default) or password',
},
clientId: {
type: 'string',
@@ -24,7 +24,7 @@ export const moveTravelRequestTool: ToolConfig<MoveTravelRequestParams, SapConcu
type: 'string',
required: false,
visibility: 'user-only',
description: 'OAuth grant type: client_credentials (default), password, refresh_token',
description: 'OAuth grant type: client_credentials (default) or password',
},
clientId: {
type: 'string',
@@ -27,7 +27,7 @@ export const recallExpenseReportTool: ToolConfig<
type: 'string',
required: false,
visibility: 'user-only',
description: 'OAuth grant type: client_credentials (default), password, refresh_token',
description: 'OAuth grant type: client_credentials (default) or password',
},
clientId: {
type: 'string',
@@ -25,7 +25,7 @@ export const removeAllAttendeesTool: ToolConfig<RemoveAllAttendeesParams, SapCon
type: 'string',
required: false,
visibility: 'user-only',
description: 'OAuth grant type: client_credentials (default), password, refresh_token',
description: 'OAuth grant type: client_credentials (default) or password',
},
clientId: {
type: 'string',
@@ -22,7 +22,7 @@ export const searchLocationsTool: ToolConfig<SearchLocationsParams, SapConcurPro
type: 'string',
required: false,
visibility: 'user-only',
description: 'OAuth grant type: client_credentials (default), password, refresh_token',
description: 'OAuth grant type: client_credentials (default) or password',
},
clientId: {
type: 'string',
+1 -1
View File
@@ -24,7 +24,7 @@ export const searchUsersTool: ToolConfig<SearchUsersParams, SapConcurProxyRespon
type: 'string',
required: false,
visibility: 'user-only',
description: 'OAuth grant type: client_credentials (default), password, refresh_token',
description: 'OAuth grant type: client_credentials (default) or password',
},
clientId: {
type: 'string',
@@ -27,7 +27,7 @@ export const sendBackExpenseReportTool: ToolConfig<
type: 'string',
required: false,
visibility: 'user-only',
description: 'OAuth grant type: client_credentials (default), password, refresh_token',
description: 'OAuth grant type: client_credentials (default) or password',
},
clientId: {
type: 'string',
@@ -27,7 +27,7 @@ export const submitExpenseReportTool: ToolConfig<
type: 'string',
required: false,
visibility: 'user-only',
description: 'OAuth grant type: client_credentials (default), password, refresh_token',
description: 'OAuth grant type: client_credentials (default) or password',
},
clientId: {
type: 'string',
+2 -2
View File
@@ -8,7 +8,7 @@ export type SapConcurDatacenter =
| 'cn.api.concursolutions.com'
| 'emea.api.concursolutions.com'
export type SapConcurGrantType = 'client_credentials' | 'password' | 'refresh_token'
export type SapConcurGrantType = 'client_credentials' | 'password'
export interface SapConcurBaseParams {
datacenter?: SapConcurDatacenter
@@ -520,7 +520,7 @@ export interface GetCardTransactionParams extends SapConcurBaseParams {
cardTransactionId: string
}
export interface GetExchangeRateParams extends SapConcurBaseParams {
export interface UploadExchangeRatesParams extends SapConcurBaseParams {
body: Record<string, unknown> | string
}
@@ -24,7 +24,7 @@ export const updateAllocationTool: ToolConfig<UpdateAllocationParams, SapConcurP
type: 'string',
required: false,
visibility: 'user-only',
description: 'OAuth grant type: client_credentials (default), password, refresh_token',
description: 'OAuth grant type: client_credentials (default) or password',
},
clientId: {
type: 'string',
@@ -26,7 +26,7 @@ export const updateExpectedExpenseTool: ToolConfig<
type: 'string',
required: false,
visibility: 'user-only',
description: 'OAuth grant type: client_credentials (default), password, refresh_token',
description: 'OAuth grant type: client_credentials (default) or password',
},
clientId: {
type: 'string',
+1 -1
View File
@@ -24,7 +24,7 @@ export const updateExpenseTool: ToolConfig<UpdateExpenseParams, SapConcurProxyRe
type: 'string',
required: false,
visibility: 'user-only',
description: 'OAuth grant type: client_credentials (default), password, refresh_token',
description: 'OAuth grant type: client_credentials (default) or password',
},
clientId: {
type: 'string',
@@ -27,7 +27,7 @@ export const updateExpenseReportTool: ToolConfig<
type: 'string',
required: false,
visibility: 'user-only',
description: 'OAuth grant type: client_credentials (default), password, refresh_token',
description: 'OAuth grant type: client_credentials (default) or password',
},
clientId: {
type: 'string',
@@ -23,7 +23,7 @@ export const updateListItemTool: ToolConfig<UpdateListItemParams, SapConcurProxy
type: 'string',
required: false,
visibility: 'user-only',
description: 'OAuth grant type: client_credentials (default), password, refresh_token',
description: 'OAuth grant type: client_credentials (default) or password',
},
clientId: {
type: 'string',
@@ -26,7 +26,7 @@ export const updateTravelRequestTool: ToolConfig<
type: 'string',
required: false,
visibility: 'user-only',
description: 'OAuth grant type: client_credentials (default), password, refresh_token',
description: 'OAuth grant type: client_credentials (default) or password',
},
clientId: {
type: 'string',
+1 -1
View File
@@ -24,7 +24,7 @@ export const updateUserTool: ToolConfig<UpdateUserParams, SapConcurProxyResponse
type: 'string',
required: false,
visibility: 'user-only',
description: 'OAuth grant type: client_credentials (default), password, refresh_token',
description: 'OAuth grant type: client_credentials (default) or password',
},
clientId: {
type: 'string',
@@ -1,4 +1,4 @@
import type { GetExchangeRateParams, SapConcurProxyResponse } from '@/tools/sap_concur/types'
import type { SapConcurProxyResponse, UploadExchangeRatesParams } from '@/tools/sap_concur/types'
import {
baseProxyBody,
SAP_CONCUR_PROXY_URL,
@@ -6,9 +6,12 @@ import {
} from '@/tools/sap_concur/utils'
import type { ToolConfig } from '@/tools/types'
export const getExchangeRateTool: ToolConfig<GetExchangeRateParams, SapConcurProxyResponse> = {
id: 'sap_concur_get_exchange_rate',
name: 'SAP Concur Get Exchange Rate',
export const uploadExchangeRatesTool: ToolConfig<
UploadExchangeRatesParams,
SapConcurProxyResponse
> = {
id: 'sap_concur_upload_exchange_rates',
name: 'SAP Concur Upload Exchange Rates',
description:
'Bulk upload up to 100 custom exchange rates (POST /exchangerate/v4/rates). Body: { currency_sets: [{ from_crn_code, to_crn_code, start_date: "YYYY-MM-DD", rate }] }',
version: '1.0.0',
@@ -23,7 +26,7 @@ export const getExchangeRateTool: ToolConfig<GetExchangeRateParams, SapConcurPro
type: 'string',
required: false,
visibility: 'user-only',
description: 'OAuth grant type: client_credentials (default), password, refresh_token',
description: 'OAuth grant type: client_credentials (default) or password',
},
clientId: {
type: 'string',
@@ -26,7 +26,7 @@ export const uploadReceiptImageTool: ToolConfig<UploadReceiptImageParams, SapCon
type: 'string',
required: false,
visibility: 'user-only',
description: 'OAuth grant type: client_credentials (default), password, refresh_token',
description: 'OAuth grant type: client_credentials (default) or password',
},
clientId: {
type: 'string',