29 lines
1.1 KiB
Markdown
29 lines
1.1 KiB
Markdown
# Feature detail: Ticket attachments
|
|
|
|
**Parent roadmap:** [[../features-for-redmine_tickets-sync]]
|
|
**Status:** MVP 2026-07-15
|
|
**Module:** `redmine_ticket_attachments.py`
|
|
|
|
## Commands
|
|
|
|
```bash
|
|
./bin/rtl attachments list --issue-id 39305 --refresh
|
|
./bin/rtl attachments download --issue-id 39305 --attachment-id 55917
|
|
./bin/rtl attachments download --issue-id 39305 --all
|
|
./bin/rtd attachments upload --issue-id 39305 --file ./scan.pdf # dry-run
|
|
./bin/rtd attachments upload --issue-id 39305 --file ./scan.pdf --apply --notes 'scan attached'
|
|
```
|
|
|
|
| Op | Emails customer? | Notes |
|
|
|----|------------------|--------|
|
|
| list | no | cache-first; `--refresh` pulls `include=attachments` |
|
|
| download | no | needs API key; default dir `<cache>/<project>/attachments/<issue_id>/` |
|
|
| upload | **no** | Redmine `POST /uploads.json` + issue `uploads` token; prod needs `--allow-prod-writes` |
|
|
|
|
Sync now also requests `attachments` on full issue fetch so metadata lands in cache over time.
|
|
|
|
## Still open
|
|
|
|
- OCR rename workflow (see [[../ocr-ticket-attachment-to-rewrite-update-ticket]])
|
|
- Draft-queue binary uploads (paths) if desired
|