forcedotcom / forcedotcom/d360-mcp-server

d360_transform_update uses PATCH but data transform update endpoint allows PUT, not PATCH

Open
#12 3 comments 0 reactions 0 assignees View on GitHub
Dominant language
Java
Stars
16
Forks
12
PR merge metrics
No merged PRs in 30d

Description

## Summary

`d360_transform_update` currently calls `PATCH /ssot/data-transforms/{id}` and the family catalog also describes the update operation as `PATCH`. In a Data 360 org on API version `66.0`, that endpoint rejected PATCH and reported that PUT is the allowed update method.

## Observed behavior

Calling the MCP facade workflow:

1. `search` for data transform update tools
2. `payload_examples` for `d360_transform_update`
3. `execute` with `toolName: "d360_transform_update"`

returned this API error:

```json
{
"error": "Data 360 API error 405 on /ssot/data-transforms/1dt...: [{\"errorCode\":\"METHOD_NOT_ALLOWED\",\"message\":\"HTTP Method 'PATCH' not allowed. Allowed are DELETE,GET,HEAD,PUT\"}]",
"statusCode": 405,
"path": "/ssot/data-transforms/1dt..."
}
```

## Current implementation

At commit `fc7ad1f9c1e01f41f93ec2588419d52ac45ad41b`:

- `DataTransformTools.updateDataTransform(...)` calls `client.patch(...)`
- `FamilyCatalog` registers `d360_transform_update` as method `PATCH` for `/ssot/data-transforms/{id}`

## Expected behavior

`d360_transform_update` should use the HTTP method accepted by the Data 360 API for editing an existing data transform. Based on the live API response above, this appears to be `PUT`, not `PATCH`.

A compatible fix could be:

- change `d360_transform_update` and the catalog metadata from PATCH to PUT

## Additional note

After locally switching the method to PUT for testing, the update reached normal request validation instead of failing at method validation. The PUT request required the transform-level `type` field in the editable request envelope, so the payload requirements may also differ from a PATCH-style partial update.

Contributor guide

Open the contributing guide

Research direction

Start by reading DataTransformTools.updateDataTransform(...) and the FamilyCatalog entry for d360_transform_update. Verify the PUT behavior against the Data 360 API, including the required transform-level type field, then confirm that the tool and catalog use PUT and that a valid update reaches normal request validation without the 405 error.

Written by the indexing model from the issue text.

Assessment

Tech stack
java
Domain
api, backend
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
67/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.