Attachment
/api/v1/common/attachmentsA file uploaded against any EDM entity — ticket, deal, contract, policy, etc. Bytes live in MinIO; this record is the metadata pointer.
listgetcreateupdatedeleteSchema
| Field | Type | Notes |
|---|---|---|
| id* | uuid | Server-assigned ULID with type prefix (e.g. per_…). |
| tenant_id* | string | Tenant scope — auto-stamped from the caller's JWT. |
| app_id | string | App scope. Stamped ONLY when the caller's JWT was minted for a specific Application (integration API keys). Absent for human-user sessions. Filters reads when present. |
| created_at* | date-time | Server stamp. |
| updated_at* | date-time | Server stamp; updated on every patch. |
| created_by | uuid | FK → UserUser id from the caller's JWT (sub). |
| updated_by | uuid | FK → UserUser id from the last writer's JWT (sub). |
| source | string | Provenance tag — defaults to 'edm'. |
| source_type | enum | frontend | backend | server | system | apiWhere the write originated. Defaults to 'api'. |
| is_deleted | boolean | Soft-delete flag. Excluded from default list queries. |
| deleted_at | date-time | Stamped when soft-deleted; null otherwise. |
| deleted_by | uuid | FK → UserUser id who soft-deleted; null otherwise. |
| schema_version | number | Document schema version. Bumped on incompatible writes. |
| entity_type* | string | EDM entity type this file is attached to (ticket, deal, contract, policy, etc.). |
| entity_id* | string | ID of the source entity this file belongs to. |
| file_key* | string | MinIO object key returned by client.storage.files.put(). |
| name* | string | Original filename shown in the UI. |
| size | number | File size in bytes. |
| content_type | string | MIME content type (e.g. image/png, application/pdf). |
| uploaded_by_id | string | User who uploaded the file. |
| note | string | Optional caption or description for the file. |
API
client.common.attachments.*Loading manifest…