temporalio / temporalio/temporal
Support registering search attributes as an option/config
Nobody has claimed this yet.
- Dominant language
- Go
- Stars
- 23.2k
- Forks
- 1.9k
- Avg merge
- 2d 8h
- Merged PRs (30d)
- 228
Description
Describe the solution you'd like
In CLI we foolishly used operator service to register search attributes immediately after start, but users just check whether port is available to see if started and therefore it may race against operator service.
What we'd like is the ability to set search attributes. Basically something like go.temporal.io/server/temporal.WithSearchAttributes that accepts a map[string]enums.IndexedValueType (or any other structure) and does not start the server until those are confirmed set with that value type. I think the best way is to register if attr name not there, do nothing if attr name there and the proper type, and fail startup if attr there but wrong type. It's possible this can be used for general server config too.
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 tracing the CLI's operator-service search-attribute registration and the server startup path. Determine where startup can wait for attributes to be confirmed and how existing, matching or mismatched types are handled. Done means the configuration option reliably prevents server readiness until the requested attributes have the specified types.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- go
- Domain
- backend
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100