Summary
The TMI server is replacing the ?format= query-parameter content-negotiation pattern with standard Accept-header content negotiation, and modernizing the media types. tmi-ux currently passes ?format= for the diagram-model fetch and the system-audit export; both must switch to setting the Accept request header.
This is a coordinated breaking change (no backwards compatibility); land it in sync with the server change on tmi dev/1.4.0.
Affected call sites
src/app/pages/admin/audit/admin-audit.service.ts — exportSystem(filter, format) builds ?format=csv|ndjson. Switch to sending Accept: text/csv or Accept: application/x-ndjson (and drop format from the query params).
src/app/pages/tm/services/tm-diagram-crud.service.ts / threat-model.service.ts — getDiagramModel(..., format: 'json'|'yaml'|'graphml') sends ?format=. Switch to Accept:
json → application/json (default)
yaml → application/yaml
graphml → application/graphml+xml
What to do
Notes
Media types modernized server-side: application/x-yaml → application/yaml (RFC 9512), application/xml → application/graphml+xml. The legacy synonym media types are no longer accepted — send the canonical types above. The server change lands on tmi dev/1.4.0; the OpenAPI spec is the source of truth.
Summary
The TMI server is replacing the
?format=query-parameter content-negotiation pattern with standard Accept-header content negotiation, and modernizing the media types. tmi-ux currently passes?format=for the diagram-model fetch and the system-audit export; both must switch to setting theAcceptrequest header.This is a coordinated breaking change (no backwards compatibility); land it in sync with the server change on
tmidev/1.4.0.Affected call sites
src/app/pages/admin/audit/admin-audit.service.ts—exportSystem(filter, format)builds?format=csv|ndjson. Switch to sendingAccept: text/csvorAccept: application/x-ndjson(and dropformatfrom the query params).src/app/pages/tm/services/tm-diagram-crud.service.ts/threat-model.service.ts—getDiagramModel(..., format: 'json'|'yaml'|'graphml')sends?format=. Switch toAccept:json→application/json(default)yaml→application/yamlgraphml→application/graphml+xmlWhat to do
exportSystemto set theAcceptheader instead of theformatquery param.getDiagramModelto map the requested representation to theAcceptheader (modern media types above).src/app/generated/api-types.d.tsfrom the updatedtmi-openapi.json(theformatquery param is gone).admin-audit.service.spec.ts,tm-diagram-crud.service.spec.ts,system-audit-view.component.spec.ts) to assert theAcceptheader rather than theformatquery param.406 Not Acceptable(now documented) for an unsupportedAccept.Notes
Media types modernized server-side:
application/x-yaml→application/yaml(RFC 9512),application/xml→application/graphml+xml. The legacy synonym media types are no longer accepted — send the canonical types above. The server change lands ontmidev/1.4.0; the OpenAPI spec is the source of truth.