Support for providing custom Tags when starting workflows
- Dominant language
- Go
- Stars
- 661
- Forks
- 63
- PR merge metrics
- No merged PRs in 30d
Description
## Support for providing custom Tags when starting workflows
### Description
It would be beneficial to support custom tagging of workflows when starting in iwf. This enhancement would enable better categorization and search-ability of workflows.
### Proposed Solution
1. **Add New Field in WorkflowStartOptions:**
- Introduce a new field `tags` as a list of strings in the `WorkflowOptions`.
- Example update in the Java SDK:
```java
public abstract List getTags();
```
A new field in `WorkflowOptions` [here](https://github.com/indeedeng/iwf-java-sdk/blob/56ef8d0c11b94b070ceb2bd02a53ea0d8ff0c661/src/main/java/io/iworkflow/core/WorkflowOptions.java#L22) will be available for clients to set custom tags.
2. **Update IWF Namespaces:**
- Ensure all provisioned `iwf` namespaces include a new search attribute ex: `iwfCustomTag` of type `Keyword Array` that these tags can be mapped to where provisioning occurs(ex: iwf integration tests).
### Impact
- Enhances the flexibility and manageability of workflows.
- Facilitates easier and more efficient searching and categorizing of workflows.
- This idea is derived from a request to be able to tag workflows created during testing of a iwf use-case that can easily be searched and cleaned up within a namespace when all tests have finished.
### Expected Changes
1. **API Changes:**
- Update the `start` [API](https://github.com/indeedeng/iwf-idl/blob/f3d0dba7a380d0a459a1b6549bd2ee8df5f66c0f/iwf-sdk.yaml#L14) to accept tags as part of the `WorkflowStartOptions`.
2. **SDK Updates:**
- Update all relevant SDKs to support the new `tags` field.
Contributor guide
Research direction
Begin with WorkflowOptions.java and the start API definition in iwf-sdk.yaml, then trace namespace provisioning and the integration tests that create iWF namespaces. The work is complete when WorkflowStartOptions accepts tags, the tags map to the iwfCustomTag Keyword Array search attribute, and all relevant SDKs and provisioned namespaces support the behavior.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- go, java, openapi, python
- Domain
- api, distributed-systems
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100