id: TEDY.03.2 template: resource-create module: tedy state: Proposed traces-from: [] source-refs:
- reference-editor/app/src/app/resources/map-set/containers/edit/map-set-edit.component.ts
- reference-editor/app/src/app/resources/map-set/services/map-set-service.ts # POST /ts/map-sets/transaction
- helex-tx/modules/tedy/frontend/src/pages/value-set/ValueSetFormFields.tsx # reference pattern author: TEDY bootstrap created: 2026-08-08 updated: 2026-08-08
TEDY.03.2 – Add Map Set
Feature grouping
Child of TEDY.03 – Map Set (Common Spec). Siblings: TEDY.03.1 List, TEDY.03.3 View.
Description
Create a new Map Set. Reached from the list’s Add map set action (map-sets/new). Reuses the shared ResourceForm + field pattern, writing via POST /ts/map-sets/transaction (MapSetTransactionRequest {mapSet, version?, properties?, associations?}); on success navigate into the new record’s shell.
Import is a second create entry point (CSV →
POST /file-importer/map-set/process), owned by Exo — out of scope here.
Form fields (General)
| Field | Widget | Required | Maps to |
|---|---|---|---|
| ID | AppInput (create-only) | ✓ | mapSet.id |
| URI | AppInput | ✓ | mapSet.uri |
| Name | AppInput | mapSet.name | |
| Publisher | TxConceptSelect (publisher VS) | mapSet.publisher | |
| Experimental | AppSwitch | mapSet.experimental | |
| Title | AppLocalizedName | ✓ | mapSet.title |
| Description | AppLocalizedName | mapSet.description | |
| Purpose | AppLocalizedName | mapSet.purpose | |
| Identifiers | TxIdentifier | mapSet.identifiers |
Scope (source/target systems) is set per-version (not on the map set root) — configured in the view once a version exists. Required NOT-NULL fields are enforced server-side on
transaction; validateid,uri,titleclient-side.
Write
POST /ts/map-sets/transaction → { mapSet: { id, uri, name, title, publisher, description, purpose, experimental, identifiers } } (strip decorated versions). On success → /tedy/map-sets/{id}/summary. Then create a first version (with its scope) and add associations (or automap).
Business Tests
- Add opens the create form with ID/URI/Title required.
- Save posts
MapSetTransactionRequestand navigates to the new map set’s summary. - Requires
MapSet.write.