elsa-workflows / elsa-workflows/elsa-foundation

Add normalized free-text tags and bounded suggestions

Open
#800 1 comment 0 reactions 0 assignees View on GitHub
ready-for-agent
Dominant language
C#
Stars
5
Forks
1
Avg merge
3h 52m
Merged PRs (30d)
212

Description

## Parent

#792

## What to build

Extend the tagging tracer bullet with single-valued free-text tag definitions. Workflow authors can enter a value directly or choose a bounded existing-value suggestion; Elsa Server preserves display text, compares an application-produced normalized exact key, and supports exact filtering without substring/fuzzy semantics. Carry the behavior end to end through catalog management, assignment, workflow-definition list queries, Studio input and suggestions, audit/events, and Groundwork provider conformance.

Covers parent user stories 3, 6–7, 11, 31, 36, 50, and 75–76.

## Acceptance criteria

- [ ] A free-text tag definition declares `FreeText` plus `Single` semantics and uses the finalized maximum display length and normalization contract from the parent PRD.
- [ ] The application trims surrounding whitespace, applies the specified Unicode normalization and case-insensitive comparison transformation, persists the normalized key, and preserves a readable display value.
- [ ] Equivalent normalized values compare and filter as one semantic value across every supported provider.
- [ ] Studio exposes a free-text editor that accepts a new value while offering bounded existing-value suggestions.
- [ ] Suggestion requests are tenant-scoped, prefix-bounded, deterministically ordered, paged/limited, and never enumerate an unbounded distinct-value set.
- [ ] The workflow-definition query supports normalized exact `AnyOf` and `NoneOf` semantics for free-text values; substring, fuzzy, and full-text matching are rejected or absent.
- [ ] Workflow-definition rows render the preserved free-text display value without using it as durable identity.
- [ ] Cross-tenant values and suggestions cannot leak through results, counts, errors, audit data, or events.
- [ ] Audit facts and post-commit events carry the semantic normalized value plus safe display information needed by consumers.
- [ ] API acceptance, Studio browser, normalization matrix, and provider-conformance tests extend the shared seams and prove equivalent comparison plus bounded suggestion work on every supported provider.

## Blocked by

- #797

Contributor guide

No contributing guide indexed for this repository

Research direction

Start by reading parent issue #792 and the blocking issue #797, then map the required behavior across catalog management, assignment, workflow-definition queries, Studio, audit/events, and Groundwork provider conformance. Use the listed API acceptance, Studio browser, normalization matrix, and provider-conformance tests as the validation seams; done means all acceptance criteria pass without cross-tenant leakage or unbounded suggestions.

Written by the indexing model from the issue text.

Assessment

Tech stack
csharp
Domain
api, backend, database, frontend, testing
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.