[FEATURE] Implement tag assignment values
- Dominant language
- Java
- Stars
- 3.2k
- Forks
- 935
- Avg merge
- 1d 17h
- Merged PRs (30d)
- 339
Description
### Describe the feature
Implement assignment-level values for tags so one metadata object can assign multiple values to the same tag.
### Motivation
Current tag assignment is boolean. Users need searchable tag values such as `data_domain=finance` without creating one tag per value.
### Describe the solution
- Add `allowedValues` to tag creation and tag DTOs.
- Change `tagsToAdd` and `tagsToRemove` to tag-value pair arrays.
- Store one value per `tag_relation_meta` row with `tag_value` and `value_order`.
- Make repeated assignment idempotent and use exact value lookup through `GET /tags/{tag}/objects?value=...`.
### Additional context
Initial implementation does not support modifying `allowedValues` after tag creation.
Contributor guide
Research direction
Trace the tag creation and tag DTOs, the tagsToAdd/tagsToRemove request paths, and the GET /tags/{tag}/objects?value=... endpoint. Read how tag_relation_meta rows are stored and queried, then verify that allowedValues, tag-value pairs, ordering, exact lookup, and repeated-assignment idempotence are covered; modifying allowedValues is out of scope.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java
- Domain
- backend-api-design, databases
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 48/100