cloudfoundry / cloudfoundry/stratos
Signal-list filter: support segmented search syntax for CF/Org/Space
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 267
- Forks
- 137
- Avg merge
- 5h 14m
- Merged PRs (30d)
- 77
Description
Proposal
Today the CF/Org/Space filter column (apps wall, other signal-list pages) renders as a single concatenated haystack — cfName / orgName / spaceName — and the text filter does a case-insensitive .includes() match.
Practical effect:
- A single token (e.g.
engineering) matches if it appears in any of the three segments (effectively OR). - A query containing slashes (e.g.
/open/pro) is treated as a literal substring against the concatenation. It does not scope the query to a specific segment, so the slash is dead weight in user input.
A user might reasonably expect /open/pro to mean "Org contains open AND Space contains pro" — but no such parser exists.
Possible directions
- Per-field syntax — parse
org:open space:prointo a structured multi-clause predicate. Most discoverable, but requires a small parser and grammar choice. - Implicit AND across whitespace-split tokens — typing
open promatches if both tokens appear somewhere in the haystack. Cheapest lift (~5 LOC over the current extractor). - Slash as segment anchor — adopt a convention where
cf/org/spacesyntactically maps to segment slots (a leading/anchors to org, two slashes to space). Lower discoverability; needs a placeholder hint.
Per-column dropdowns (CF / Org / Space) are already present on the apps wall and were just added to Routes / Services / Users / Events, so this is purely about enriching the text-filter UX. Not blocking any current workflow.
Acceptance / open questions
- Decide which direction (1/2/3, or a combination)
- Apply uniformly across signal-list filter consumers, not just one page
- Document the syntax in the filter input's
placeholderso it's discoverable
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by locating the signal-list filter consumers and the existing CF/Org/Space text-filter extractor used by the apps wall and other pages. Review the three proposed syntax directions and choose a grammar before applying it uniformly. Update the filter placeholder to document the chosen syntax and add coverage for the resulting matching behavior.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- angular, typescript
- Domain
- frontend
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Needs clarification
- Newbie friendliness
- 35/100