Wizard Step: Create New Stream
- Shows a form to create a new stream with:
- Title
- Description (optional)
- Index Set (select of existing index sets), refreshes regularly
- Checkbox: Remove matches from Default Stream
- Checkbox: Create a new Pipeline for this Stream
- Select of all existing pipelines (only one can be selected)
- Shows a button "Create a New Index Set", on click
- Opens the existing index set creation form in a new tab
- Shows a button "All Done - Start Input" which leads to https://github.com/Graylog2/graylog2-server/issues/20567
@tellistone If the user chooses to "Create a new Pipeline for this Stream" what exactly is the content of the pipeline? Is it just an "empty" one with a name?
APIs:
- http://localhost:8080/api/api-browser/global/index.html#!/Streams/create_post_1 to create a new stream
- http://localhost:8080/api/api-browser/global/index.html#!/System/IndexSets/list_get_0 to list all index sets
@tellistone If the user chooses to "Create a new Pipeline for this Stream" what exactly is the content of the pipeline? Is it just an "empty" one with a name?
Yes - empty pipeline with name that corresponds to the new stream, attached to the new stream
Added backend label as we need to routes the messages to the new stream
@tellistone Do I understand correctly that we want to ask the user if they want to create another custom stream?
Yeah, their options are
- no routing, same as today
- pick an existing stream, we create routing to it
- create a new stream, optionally attach an existing pipeline to it, create routing to it
In ui design, we should push the "Create a New Index Set" action as highly recommended.
For the contextual warning in the mockup there is no API. At least I couldn't find one that returns a list of streams connected to a specific index set. @patrickmann correct me if I'm wrong. I'd suggest to continue with this issue without that and if we want to have it, create a seperate one.
The stream APIs do include information about index sets. To find all streams for a specific index set, you currently have to call GET /streams and then filter by the desired index set.
The BE already has a method indexSetIdsByIds to return all stream IDs for a given set of index IDs, but it is not exposed as an API.
I think it would be a better solution if we can either can integrate the streams in the index sets list call or add a new call to get all streams for one index set (id). I don't think it makes a lot of sense to get the whole stream list only for that use case.