postWorkItemAttachments
Upload one or more files as new attachments to a Polarion work item. Send base64-encoded file bytes with metadata in a single multipart request, and use dry_run to preview before creating.
Instructions
Uploads one or more new files as attachments of a Work Item in a single multipart request: requestBody.resource.data holds one metadata entry (fileName, optional title) per file, and requestBody.files holds the base64-encoded file bytes in the same order (or match them via each entry's lid). Returns the created attachment IDs. Use this to add files; to change an existing attachment use patchWorkItemAttachment, and to list what is already attached use getWorkItemAttachments. Effect: creates a new resource on each call — calling it again with the same input creates a duplicate; it is not idempotent. Tip: set dry_run: true first to preview the exact request Polarion would receive, without changing anything. On tools with a typed output schema, this preview is returned as an error-flagged result since it is not real tool output -- read the text content regardless of that flag.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| dry_run | No | If true, validates the request and returns the exact request that would be sent to Polarion — with the Authorization header redacted and any binary payload summarized by byte length — without actually sending it. | |
| projectId | Yes | The Polarion project ID (its URL segment, e.g. `myproject`), case-sensitive. Required to scope the request to one project; call getProjects to list valid IDs. | |
| workItemId | Yes | The Work Item's ID within its project (e.g. `WI-123`), not the combined `project/id` path used in some link payloads. | |
| requestBody | Yes | Attachment metadata and file data. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| data | No |