[Streams 🌊] Introduce GroupStreams#208126
Conversation
x-pack/solutions/observability/packages/kbn-streams-schema/src/models/ingest/api.ts
Outdated
Show resolved
Hide resolved
x-pack/solutions/observability/packages/utils_server/es/storage/types.ts
Show resolved
Hide resolved
rmyz
left a comment
There was a problem hiding this comment.
x-pack/solutions/observability/packages/utils_server/es/storage/types.ts changes LGTM!
flash1293
left a comment
There was a problem hiding this comment.
This looks mostly good to me, biggest question to me is the semantics of what should and shouldn't be allowed:
- Can you reference a non-existing stream in a group (but one you would have access to)?
- Can you reference a stream you don't have access to in a group?
- Can you delete group streams which contain streams you don't have access to?
- Can you see group streams which contain streams you don't have access to?
Right now, the answers are:
- No
- No
- Yes
- Yes
For dashboard links (we are kind of similar), the answers are:
- Yes
- Yes
- Yes (if you have access to the stream you are deleting)
- Yes (if you have access to the stream you are deleting)
Not sure about the correct behavior. As this is a bit of a product question, wdyt @LucaWintergerst ?
x-pack/solutions/observability/packages/kbn-streams-schema/src/models/api.ts
Outdated
Show resolved
Hide resolved
x-pack/solutions/observability/packages/kbn-streams-schema/src/models/api.ts
Show resolved
Hide resolved
x-pack/solutions/observability/plugins/streams/server/lib/streams/assets/asset_client.ts
Outdated
Show resolved
Hide resolved
x-pack/solutions/observability/plugins/streams/server/lib/streams/client.ts
Show resolved
Hide resolved
x-pack/solutions/observability/plugins/streams/server/lib/streams/client.ts
Outdated
Show resolved
Hide resolved
x-pack/solutions/observability/plugins/streams/server/lib/streams/client.ts
Outdated
Show resolved
Hide resolved
x-pack/solutions/observability/plugins/streams/server/lib/streams/client.ts
Show resolved
Hide resolved
x-pack/solutions/observability/plugins/streams/server/lib/streams/client.ts
Outdated
Show resolved
Hide resolved
x-pack/solutions/observability/plugins/streams/server/lib/streams/client.ts
Show resolved
Hide resolved
x-pack/solutions/observability/plugins/streams/server/routes/streams/crud/read_stream.ts
Outdated
Show resolved
Hide resolved
|
Another thing - to stay consistent with the ingest streams, could we introduce another route |
|
Starting backport for target branches: 9.0 https://github.com/elastic/kibana/actions/runs/13133118391 |
💔 All backports failed
Manual backportTo create the backport manually run: Questions ?Please refer to the Backport tool documentation |
|
Friendly reminder: Looks like this PR hasn’t been backported yet. |
|
Starting backport for target branches: 8.x, 9.0 https://github.com/elastic/kibana/actions/runs/13156800497 |
💔 All backports failed
Manual backportTo create the backport manually run: Questions ?Please refer to the Backport tool documentation |
## 🍒 Summary
This PR adds support to `/api/streams` endpoints for the
`GroupStreamDefinition` type. Group streams are simply a list of member
streams along with dashboards. An example of the definition looks like:
```JSON
{
"name": "nginx-logs",
"stream": {
"grouped": {
"description": "A collection of streams for Nginx",
"members": [
"logs",
"logs.nginx"
]
}
},
"dashboards": []
}
```
The following APIs support `GroupStreamDefinition`:
- `GET /api/streams`
- `GET /api/streams/{id}`
- `PUT /api/streams/{id}`
- `DELETE /api/streams/{id}`
- `GET /api/streams/{id}/_details`
This PR only includes the support to the APIs, I will submit a follow PR
for the UI.
---------
Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
Co-authored-by: Joe Reuter <johannes.reuter@elastic.co>
(cherry picked from commit 2092c3d)
# Conflicts:
# x-pack/solutions/observability/plugins/streams_app/public/components/stream_detail_overview/index.tsx
# x-pack/solutions/observability/plugins/streams_app/public/components/stream_detail_view/index.tsx
# x-pack/test/api_integration/deployment_agnostic/apis/observability/streams/lifecycle.ts
💔 Some backports could not be created
Note: Successful backport PRs will be merged automatically after passing CI. Manual backportTo create the backport manually run: Questions ?Please refer to the Backport tool documentation |
# Backport This will backport the following commits from `main` to `9.0`: - [[Streams 🌊] Introduce GroupStreams (#208126)](#208126) <!--- Backport version: 9.6.4 --> ### Questions ? Please refer to the [Backport tool documentation](https://github.com/sorenlouv/backport) <!--BACKPORT [{"author":{"name":"Chris Cowan","email":"chris@elastic.co"},"sourceCommit":{"committedDate":"2025-02-04T10:12:35Z","message":"[Streams 🌊] Introduce GroupStreams (#208126)\n\n## 🍒 Summary\r\n \r\nThis PR adds support to `/api/streams` endpoints for the\r\n`GroupStreamDefinition` type. Group streams are simply a list of member\r\nstreams along with dashboards. An example of the definition looks like:\r\n\r\n```JSON\r\n{\r\n \"name\": \"nginx-logs\",\r\n \"stream\": {\r\n \"grouped\": {\r\n \"description\": \"A collection of streams for Nginx\",\r\n \"members\": [\r\n \"logs\",\r\n \"logs.nginx\"\r\n ]\r\n }\r\n },\r\n \"dashboards\": []\r\n}\r\n```\r\nThe following APIs support `GroupStreamDefinition`:\r\n\r\n- `GET /api/streams`\r\n- `GET /api/streams/{id}`\r\n- `PUT /api/streams/{id}`\r\n- `DELETE /api/streams/{id}`\r\n- `GET /api/streams/{id}/_details`\r\n\r\nThis PR only includes the support to the APIs, I will submit a follow PR\r\nfor the UI.\r\n\r\n---------\r\n\r\nCo-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>\r\nCo-authored-by: Joe Reuter <johannes.reuter@elastic.co>","sha":"2092c3d4ca2ae917420f992686fc7a704b393ea4","branchLabelMapping":{"^v9.1.0$":"main","^v8.19.0$":"8.x","^v(\\d+).(\\d+).\\d+$":"$1.$2"}},"sourcePullRequest":{"labels":["v9.0.0","release_note:feature","backport:version","Feature:Streams","v9.1.0","v8.19.0"],"title":"[Streams 🌊] Introduce GroupStreams","number":208126,"url":"https://github.com/elastic/kibana/pull/208126","mergeCommit":{"message":"[Streams 🌊] Introduce GroupStreams (#208126)\n\n## 🍒 Summary\r\n \r\nThis PR adds support to `/api/streams` endpoints for the\r\n`GroupStreamDefinition` type. Group streams are simply a list of member\r\nstreams along with dashboards. An example of the definition looks like:\r\n\r\n```JSON\r\n{\r\n \"name\": \"nginx-logs\",\r\n \"stream\": {\r\n \"grouped\": {\r\n \"description\": \"A collection of streams for Nginx\",\r\n \"members\": [\r\n \"logs\",\r\n \"logs.nginx\"\r\n ]\r\n }\r\n },\r\n \"dashboards\": []\r\n}\r\n```\r\nThe following APIs support `GroupStreamDefinition`:\r\n\r\n- `GET /api/streams`\r\n- `GET /api/streams/{id}`\r\n- `PUT /api/streams/{id}`\r\n- `DELETE /api/streams/{id}`\r\n- `GET /api/streams/{id}/_details`\r\n\r\nThis PR only includes the support to the APIs, I will submit a follow PR\r\nfor the UI.\r\n\r\n---------\r\n\r\nCo-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>\r\nCo-authored-by: Joe Reuter <johannes.reuter@elastic.co>","sha":"2092c3d4ca2ae917420f992686fc7a704b393ea4"}},"sourceBranch":"main","suggestedTargetBranches":["9.0","8.x"],"targetPullRequestStates":[{"branch":"9.0","label":"v9.0.0","branchLabelMappingKey":"^v(\\d+).(\\d+).\\d+$","isSourceBranch":false,"state":"NOT_CREATED"},{"branch":"main","label":"v9.1.0","branchLabelMappingKey":"^v9.1.0$","isSourceBranch":true,"state":"MERGED","url":"https://github.com/elastic/kibana/pull/208126","number":208126,"mergeCommit":{"message":"[Streams 🌊] Introduce GroupStreams (#208126)\n\n## 🍒 Summary\r\n \r\nThis PR adds support to `/api/streams` endpoints for the\r\n`GroupStreamDefinition` type. Group streams are simply a list of member\r\nstreams along with dashboards. An example of the definition looks like:\r\n\r\n```JSON\r\n{\r\n \"name\": \"nginx-logs\",\r\n \"stream\": {\r\n \"grouped\": {\r\n \"description\": \"A collection of streams for Nginx\",\r\n \"members\": [\r\n \"logs\",\r\n \"logs.nginx\"\r\n ]\r\n }\r\n },\r\n \"dashboards\": []\r\n}\r\n```\r\nThe following APIs support `GroupStreamDefinition`:\r\n\r\n- `GET /api/streams`\r\n- `GET /api/streams/{id}`\r\n- `PUT /api/streams/{id}`\r\n- `DELETE /api/streams/{id}`\r\n- `GET /api/streams/{id}/_details`\r\n\r\nThis PR only includes the support to the APIs, I will submit a follow PR\r\nfor the UI.\r\n\r\n---------\r\n\r\nCo-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>\r\nCo-authored-by: Joe Reuter <johannes.reuter@elastic.co>","sha":"2092c3d4ca2ae917420f992686fc7a704b393ea4"}},{"branch":"8.x","label":"v8.19.0","branchLabelMappingKey":"^v8.19.0$","isSourceBranch":false,"state":"NOT_CREATED"}]}] BACKPORT-->
💚 All backports created successfully
Note: Successful backport PRs will be merged automatically after passing CI. Questions ?Please refer to the Backport tool documentation |
## 🍒 Summary
This PR adds support to `/api/streams` endpoints for the
`GroupStreamDefinition` type. Group streams are simply a list of member
streams along with dashboards. An example of the definition looks like:
```JSON
{
"name": "nginx-logs",
"stream": {
"grouped": {
"description": "A collection of streams for Nginx",
"members": [
"logs",
"logs.nginx"
]
}
},
"dashboards": []
}
```
The following APIs support `GroupStreamDefinition`:
- `GET /api/streams`
- `GET /api/streams/{id}`
- `PUT /api/streams/{id}`
- `DELETE /api/streams/{id}`
- `GET /api/streams/{id}/_details`
This PR only includes the support to the APIs, I will submit a follow PR
for the UI.
---------
Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
Co-authored-by: Joe Reuter <johannes.reuter@elastic.co>
(cherry picked from commit 2092c3d)
# Conflicts:
# api_docs/kbn_streams_schema.devdocs.json
# Backport This will backport the following commits from `main` to `8.x`: - [[Streams 🌊] Introduce GroupStreams (#208126)](#208126) <!--- Backport version: 9.6.4 --> ### Questions ? Please refer to the [Backport tool documentation](https://github.com/sorenlouv/backport) <!--BACKPORT [{"author":{"name":"Chris Cowan","email":"chris@elastic.co"},"sourceCommit":{"committedDate":"2025-02-04T10:12:35Z","message":"[Streams 🌊] Introduce GroupStreams (#208126)\n\n## 🍒 Summary\r\n \r\nThis PR adds support to `/api/streams` endpoints for the\r\n`GroupStreamDefinition` type. Group streams are simply a list of member\r\nstreams along with dashboards. An example of the definition looks like:\r\n\r\n```JSON\r\n{\r\n \"name\": \"nginx-logs\",\r\n \"stream\": {\r\n \"grouped\": {\r\n \"description\": \"A collection of streams for Nginx\",\r\n \"members\": [\r\n \"logs\",\r\n \"logs.nginx\"\r\n ]\r\n }\r\n },\r\n \"dashboards\": []\r\n}\r\n```\r\nThe following APIs support `GroupStreamDefinition`:\r\n\r\n- `GET /api/streams`\r\n- `GET /api/streams/{id}`\r\n- `PUT /api/streams/{id}`\r\n- `DELETE /api/streams/{id}`\r\n- `GET /api/streams/{id}/_details`\r\n\r\nThis PR only includes the support to the APIs, I will submit a follow PR\r\nfor the UI.\r\n\r\n---------\r\n\r\nCo-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>\r\nCo-authored-by: Joe Reuter <johannes.reuter@elastic.co>","sha":"2092c3d4ca2ae917420f992686fc7a704b393ea4","branchLabelMapping":{"^v9.1.0$":"main","^v8.19.0$":"8.x","^v(\\d+).(\\d+).\\d+$":"$1.$2"}},"sourcePullRequest":{"labels":["v9.0.0","release_note:feature","backport:version","Feature:Streams","v9.1.0","v8.19.0"],"title":"[Streams 🌊] Introduce GroupStreams","number":208126,"url":"https://github.com/elastic/kibana/pull/208126","mergeCommit":{"message":"[Streams 🌊] Introduce GroupStreams (#208126)\n\n## 🍒 Summary\r\n \r\nThis PR adds support to `/api/streams` endpoints for the\r\n`GroupStreamDefinition` type. Group streams are simply a list of member\r\nstreams along with dashboards. An example of the definition looks like:\r\n\r\n```JSON\r\n{\r\n \"name\": \"nginx-logs\",\r\n \"stream\": {\r\n \"grouped\": {\r\n \"description\": \"A collection of streams for Nginx\",\r\n \"members\": [\r\n \"logs\",\r\n \"logs.nginx\"\r\n ]\r\n }\r\n },\r\n \"dashboards\": []\r\n}\r\n```\r\nThe following APIs support `GroupStreamDefinition`:\r\n\r\n- `GET /api/streams`\r\n- `GET /api/streams/{id}`\r\n- `PUT /api/streams/{id}`\r\n- `DELETE /api/streams/{id}`\r\n- `GET /api/streams/{id}/_details`\r\n\r\nThis PR only includes the support to the APIs, I will submit a follow PR\r\nfor the UI.\r\n\r\n---------\r\n\r\nCo-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>\r\nCo-authored-by: Joe Reuter <johannes.reuter@elastic.co>","sha":"2092c3d4ca2ae917420f992686fc7a704b393ea4"}},"sourceBranch":"main","suggestedTargetBranches":["8.x"],"targetPullRequestStates":[{"branch":"9.0","label":"v9.0.0","branchLabelMappingKey":"^v(\\d+).(\\d+).\\d+$","isSourceBranch":false,"url":"https://github.com/elastic/kibana/pull/209776","number":209776,"state":"MERGED","mergeCommit":{"sha":"56e51b892b6fa6b21954afd61dd828cf80e1c262","message":"[9.0] [Streams 🌊] Introduce GroupStreams (#208126) (#209776)\n\n# Backport\n\nThis will backport the following commits from `main` to `9.0`:\n- [[Streams 🌊] Introduce GroupStreams\n(#208126)](https://github.com/elastic/kibana/pull/208126)\n\n<!--- Backport version: 9.6.4 -->\n\n### Questions ?\nPlease refer to the [Backport tool\ndocumentation](https://github.com/sorenlouv/backport)\n\n<!--BACKPORT [{\"author\":{\"name\":\"Chris\nCowan\",\"email\":\"chris@elastic.co\"},\"sourceCommit\":{\"committedDate\":\"2025-02-04T10:12:35Z\",\"message\":\"[Streams\n🌊] Introduce GroupStreams (#208126)\\n\\n## 🍒 Summary\\r\\n \\r\\nThis PR adds\nsupport to `/api/streams` endpoints for the\\r\\n`GroupStreamDefinition`\ntype. Group streams are simply a list of member\\r\\nstreams along with\ndashboards. An example of the definition looks\nlike:\\r\\n\\r\\n```JSON\\r\\n{\\r\\n \\\"name\\\": \\\"nginx-logs\\\",\\r\\n \\\"stream\\\":\n{\\r\\n \\\"grouped\\\": {\\r\\n \\\"description\\\": \\\"A collection of streams for\nNginx\\\",\\r\\n \\\"members\\\": [\\r\\n \\\"logs\\\",\\r\\n \\\"logs.nginx\\\"\\r\\n ]\\r\\n\n}\\r\\n },\\r\\n \\\"dashboards\\\": []\\r\\n}\\r\\n```\\r\\nThe following APIs\nsupport `GroupStreamDefinition`:\\r\\n\\r\\n- `GET /api/streams`\\r\\n- `GET\n/api/streams/{id}`\\r\\n- `PUT /api/streams/{id}`\\r\\n- `DELETE\n/api/streams/{id}`\\r\\n- `GET /api/streams/{id}/_details`\\r\\n\\r\\nThis PR\nonly includes the support to the APIs, I will submit a follow PR\\r\\nfor\nthe UI.\\r\\n\\r\\n---------\\r\\n\\r\\nCo-authored-by: kibanamachine\n<42973632+kibanamachine@users.noreply.github.com>\\r\\nCo-authored-by: Joe\nReuter\n<johannes.reuter@elastic.co>\",\"sha\":\"2092c3d4ca2ae917420f992686fc7a704b393ea4\",\"branchLabelMapping\":{\"^v9.1.0$\":\"main\",\"^v8.19.0$\":\"8.x\",\"^v(\\\\d+).(\\\\d+).\\\\d+$\":\"$1.$2\"}},\"sourcePullRequest\":{\"labels\":[\"v9.0.0\",\"release_note:feature\",\"backport:version\",\"Feature:Streams\",\"v9.1.0\",\"v8.19.0\"],\"title\":\"[Streams\n🌊] Introduce\nGroupStreams\",\"number\":208126,\"url\":\"https://github.com/elastic/kibana/pull/208126\",\"mergeCommit\":{\"message\":\"[Streams\n🌊] Introduce GroupStreams (#208126)\\n\\n## 🍒 Summary\\r\\n \\r\\nThis PR adds\nsupport to `/api/streams` endpoints for the\\r\\n`GroupStreamDefinition`\ntype. Group streams are simply a list of member\\r\\nstreams along with\ndashboards. An example of the definition looks\nlike:\\r\\n\\r\\n```JSON\\r\\n{\\r\\n \\\"name\\\": \\\"nginx-logs\\\",\\r\\n \\\"stream\\\":\n{\\r\\n \\\"grouped\\\": {\\r\\n \\\"description\\\": \\\"A collection of streams for\nNginx\\\",\\r\\n \\\"members\\\": [\\r\\n \\\"logs\\\",\\r\\n \\\"logs.nginx\\\"\\r\\n ]\\r\\n\n}\\r\\n },\\r\\n \\\"dashboards\\\": []\\r\\n}\\r\\n```\\r\\nThe following APIs\nsupport `GroupStreamDefinition`:\\r\\n\\r\\n- `GET /api/streams`\\r\\n- `GET\n/api/streams/{id}`\\r\\n- `PUT /api/streams/{id}`\\r\\n- `DELETE\n/api/streams/{id}`\\r\\n- `GET /api/streams/{id}/_details`\\r\\n\\r\\nThis PR\nonly includes the support to the APIs, I will submit a follow PR\\r\\nfor\nthe UI.\\r\\n\\r\\n---------\\r\\n\\r\\nCo-authored-by: kibanamachine\n<42973632+kibanamachine@users.noreply.github.com>\\r\\nCo-authored-by: Joe\nReuter\n<johannes.reuter@elastic.co>\",\"sha\":\"2092c3d4ca2ae917420f992686fc7a704b393ea4\"}},\"sourceBranch\":\"main\",\"suggestedTargetBranches\":[\"9.0\",\"8.x\"],\"targetPullRequestStates\":[{\"branch\":\"9.0\",\"label\":\"v9.0.0\",\"branchLabelMappingKey\":\"^v(\\\\d+).(\\\\d+).\\\\d+$\",\"isSourceBranch\":false,\"state\":\"NOT_CREATED\"},{\"branch\":\"main\",\"label\":\"v9.1.0\",\"branchLabelMappingKey\":\"^v9.1.0$\",\"isSourceBranch\":true,\"state\":\"MERGED\",\"url\":\"https://github.com/elastic/kibana/pull/208126\",\"number\":208126,\"mergeCommit\":{\"message\":\"[Streams\n🌊] Introduce GroupStreams (#208126)\\n\\n## 🍒 Summary\\r\\n \\r\\nThis PR adds\nsupport to `/api/streams` endpoints for the\\r\\n`GroupStreamDefinition`\ntype. Group streams are simply a list of member\\r\\nstreams along with\ndashboards. An example of the definition looks\nlike:\\r\\n\\r\\n```JSON\\r\\n{\\r\\n \\\"name\\\": \\\"nginx-logs\\\",\\r\\n \\\"stream\\\":\n{\\r\\n \\\"grouped\\\": {\\r\\n \\\"description\\\": \\\"A collection of streams for\nNginx\\\",\\r\\n \\\"members\\\": [\\r\\n \\\"logs\\\",\\r\\n \\\"logs.nginx\\\"\\r\\n ]\\r\\n\n}\\r\\n },\\r\\n \\\"dashboards\\\": []\\r\\n}\\r\\n```\\r\\nThe following APIs\nsupport `GroupStreamDefinition`:\\r\\n\\r\\n- `GET /api/streams`\\r\\n- `GET\n/api/streams/{id}`\\r\\n- `PUT /api/streams/{id}`\\r\\n- `DELETE\n/api/streams/{id}`\\r\\n- `GET /api/streams/{id}/_details`\\r\\n\\r\\nThis PR\nonly includes the support to the APIs, I will submit a follow PR\\r\\nfor\nthe UI.\\r\\n\\r\\n---------\\r\\n\\r\\nCo-authored-by: kibanamachine\n<42973632+kibanamachine@users.noreply.github.com>\\r\\nCo-authored-by: Joe\nReuter\n<johannes.reuter@elastic.co>\",\"sha\":\"2092c3d4ca2ae917420f992686fc7a704b393ea4\"}},{\"branch\":\"8.x\",\"label\":\"v8.19.0\",\"branchLabelMappingKey\":\"^v8.19.0$\",\"isSourceBranch\":false,\"state\":\"NOT_CREATED\"}]}]\nBACKPORT-->"}},{"branch":"main","label":"v9.1.0","branchLabelMappingKey":"^v9.1.0$","isSourceBranch":true,"state":"MERGED","url":"https://github.com/elastic/kibana/pull/208126","number":208126,"mergeCommit":{"message":"[Streams 🌊] Introduce GroupStreams (#208126)\n\n## 🍒 Summary\r\n \r\nThis PR adds support to `/api/streams` endpoints for the\r\n`GroupStreamDefinition` type. Group streams are simply a list of member\r\nstreams along with dashboards. An example of the definition looks like:\r\n\r\n```JSON\r\n{\r\n \"name\": \"nginx-logs\",\r\n \"stream\": {\r\n \"grouped\": {\r\n \"description\": \"A collection of streams for Nginx\",\r\n \"members\": [\r\n \"logs\",\r\n \"logs.nginx\"\r\n ]\r\n }\r\n },\r\n \"dashboards\": []\r\n}\r\n```\r\nThe following APIs support `GroupStreamDefinition`:\r\n\r\n- `GET /api/streams`\r\n- `GET /api/streams/{id}`\r\n- `PUT /api/streams/{id}`\r\n- `DELETE /api/streams/{id}`\r\n- `GET /api/streams/{id}/_details`\r\n\r\nThis PR only includes the support to the APIs, I will submit a follow PR\r\nfor the UI.\r\n\r\n---------\r\n\r\nCo-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>\r\nCo-authored-by: Joe Reuter <johannes.reuter@elastic.co>","sha":"2092c3d4ca2ae917420f992686fc7a704b393ea4"}},{"branch":"8.x","label":"v8.19.0","branchLabelMappingKey":"^v8.19.0$","isSourceBranch":false,"state":"NOT_CREATED"}]}] BACKPORT--> --------- Co-authored-by: Milton Hultgren <milton.hultgren@elastic.co> Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
## 🍒 Summary
This PR adds support to `/api/streams` endpoints for the
`GroupStreamDefinition` type. Group streams are simply a list of member
streams along with dashboards. An example of the definition looks like:
```JSON
{
"name": "nginx-logs",
"stream": {
"grouped": {
"description": "A collection of streams for Nginx",
"members": [
"logs",
"logs.nginx"
]
}
},
"dashboards": []
}
```
The following APIs support `GroupStreamDefinition`:
- `GET /api/streams`
- `GET /api/streams/{id}`
- `PUT /api/streams/{id}`
- `DELETE /api/streams/{id}`
- `GET /api/streams/{id}/_details`
This PR only includes the support to the APIs, I will submit a follow PR
for the UI.
---------
Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
Co-authored-by: Joe Reuter <johannes.reuter@elastic.co>
…ams (elastic#210114) ## Summary This PR implements 2 endpoints as a follow up to elastic#208126 for working directly with the `group` object for `GroupStreamDefinition`: - `PUT /api/streams/{id}/_group` - `GET /api/streams/{id}/_group` --------- Co-authored-by: Joe Reuter <johannes.reuter@elastic.co> (cherry picked from commit 8c90076)
…upStreams (#210114) (#212114) # Backport This will backport the following commits from `main` to `8.x`: - [[Streams 🌊] Enable `/api/streams/{id}/_group` endpoints for GroupStreams (#210114)](#210114) <!--- Backport version: 9.6.6 --> ### Questions ? Please refer to the [Backport tool documentation](https://github.com/sorenlouv/backport) <!--BACKPORT [{"author":{"name":"Chris Cowan","email":"chris@elastic.co"},"sourceCommit":{"committedDate":"2025-02-20T16:03:06Z","message":"[Streams 🌊] Enable `/api/streams/{id}/_group` endpoints for GroupStreams (#210114)\n\n## Summary\n\nThis PR implements 2 endpoints as a follow up to\nhttps://github.com//pull/208126 for working directly with\nthe `group` object for `GroupStreamDefinition`:\n\n- `PUT /api/streams/{id}/_group`\n- `GET /api/streams/{id}/_group`\n\n---------\n\nCo-authored-by: Joe Reuter <johannes.reuter@elastic.co>","sha":"8c90076d803177b0c1a9d17d00e78b242d5758ef","branchLabelMapping":{"^v9.1.0$":"main","^v8.19.0$":"8.x","^v(\\d+).(\\d+).\\d+$":"$1.$2"}},"sourcePullRequest":{"labels":["release_note:enhancement","backport:version","Feature:Streams","v9.1.0","v8.19.0"],"title":"[Streams 🌊] Enable `/api/streams/{id}/_group` endpoints for GroupStreams","number":210114,"url":"https://github.com/elastic/kibana/pull/210114","mergeCommit":{"message":"[Streams 🌊] Enable `/api/streams/{id}/_group` endpoints for GroupStreams (#210114)\n\n## Summary\n\nThis PR implements 2 endpoints as a follow up to\nhttps://github.com//pull/208126 for working directly with\nthe `group` object for `GroupStreamDefinition`:\n\n- `PUT /api/streams/{id}/_group`\n- `GET /api/streams/{id}/_group`\n\n---------\n\nCo-authored-by: Joe Reuter <johannes.reuter@elastic.co>","sha":"8c90076d803177b0c1a9d17d00e78b242d5758ef"}},"sourceBranch":"main","suggestedTargetBranches":["8.x"],"targetPullRequestStates":[{"branch":"main","label":"v9.1.0","branchLabelMappingKey":"^v9.1.0$","isSourceBranch":true,"state":"MERGED","url":"https://github.com/elastic/kibana/pull/210114","number":210114,"mergeCommit":{"message":"[Streams 🌊] Enable `/api/streams/{id}/_group` endpoints for GroupStreams (#210114)\n\n## Summary\n\nThis PR implements 2 endpoints as a follow up to\nhttps://github.com//pull/208126 for working directly with\nthe `group` object for `GroupStreamDefinition`:\n\n- `PUT /api/streams/{id}/_group`\n- `GET /api/streams/{id}/_group`\n\n---------\n\nCo-authored-by: Joe Reuter <johannes.reuter@elastic.co>","sha":"8c90076d803177b0c1a9d17d00e78b242d5758ef"}},{"branch":"8.x","label":"v8.19.0","branchLabelMappingKey":"^v8.19.0$","isSourceBranch":false,"state":"NOT_CREATED"}]}] BACKPORT-->
…upStreams (elastic#210114) (elastic#212114) # Backport This will backport the following commits from `main` to `8.x`: - [[Streams 🌊] Enable `/api/streams/{id}/_group` endpoints for GroupStreams (elastic#210114)](elastic#210114) <!--- Backport version: 9.6.6 --> ### Questions ? Please refer to the [Backport tool documentation](https://github.com/sorenlouv/backport) <!--BACKPORT [{"author":{"name":"Chris Cowan","email":"chris@elastic.co"},"sourceCommit":{"committedDate":"2025-02-20T16:03:06Z","message":"[Streams 🌊] Enable `/api/streams/{id}/_group` endpoints for GroupStreams (elastic#210114)\n\n## Summary\n\nThis PR implements 2 endpoints as a follow up to\nhttps://github.com/elastic/pull/208126 for working directly with\nthe `group` object for `GroupStreamDefinition`:\n\n- `PUT /api/streams/{id}/_group`\n- `GET /api/streams/{id}/_group`\n\n---------\n\nCo-authored-by: Joe Reuter <johannes.reuter@elastic.co>","sha":"8c90076d803177b0c1a9d17d00e78b242d5758ef","branchLabelMapping":{"^v9.1.0$":"main","^v8.19.0$":"8.x","^v(\\d+).(\\d+).\\d+$":"$1.$2"}},"sourcePullRequest":{"labels":["release_note:enhancement","backport:version","Feature:Streams","v9.1.0","v8.19.0"],"title":"[Streams 🌊] Enable `/api/streams/{id}/_group` endpoints for GroupStreams","number":210114,"url":"https://github.com/elastic/kibana/pull/210114","mergeCommit":{"message":"[Streams 🌊] Enable `/api/streams/{id}/_group` endpoints for GroupStreams (elastic#210114)\n\n## Summary\n\nThis PR implements 2 endpoints as a follow up to\nhttps://github.com/elastic/pull/208126 for working directly with\nthe `group` object for `GroupStreamDefinition`:\n\n- `PUT /api/streams/{id}/_group`\n- `GET /api/streams/{id}/_group`\n\n---------\n\nCo-authored-by: Joe Reuter <johannes.reuter@elastic.co>","sha":"8c90076d803177b0c1a9d17d00e78b242d5758ef"}},"sourceBranch":"main","suggestedTargetBranches":["8.x"],"targetPullRequestStates":[{"branch":"main","label":"v9.1.0","branchLabelMappingKey":"^v9.1.0$","isSourceBranch":true,"state":"MERGED","url":"https://github.com/elastic/kibana/pull/210114","number":210114,"mergeCommit":{"message":"[Streams 🌊] Enable `/api/streams/{id}/_group` endpoints for GroupStreams (elastic#210114)\n\n## Summary\n\nThis PR implements 2 endpoints as a follow up to\nhttps://github.com/elastic/pull/208126 for working directly with\nthe `group` object for `GroupStreamDefinition`:\n\n- `PUT /api/streams/{id}/_group`\n- `GET /api/streams/{id}/_group`\n\n---------\n\nCo-authored-by: Joe Reuter <johannes.reuter@elastic.co>","sha":"8c90076d803177b0c1a9d17d00e78b242d5758ef"}},{"branch":"8.x","label":"v8.19.0","branchLabelMappingKey":"^v8.19.0$","isSourceBranch":false,"state":"NOT_CREATED"}]}] BACKPORT-->
…ams (elastic#210114) ## Summary This PR implements 2 endpoints as a follow up to elastic#208126 for working directly with the `group` object for `GroupStreamDefinition`: - `PUT /api/streams/{id}/_group` - `GET /api/streams/{id}/_group` --------- Co-authored-by: Joe Reuter <johannes.reuter@elastic.co>
🍒 Summary
This PR adds support to
/api/streamsendpoints for theGroupStreamDefinitiontype. Group streams are simply a list of member streams along with dashboards. An example of the definition looks like:{ "name": "nginx-logs", "stream": { "grouped": { "description": "A collection of streams for Nginx", "members": [ "logs", "logs.nginx" ] } }, "dashboards": [] }The following APIs support
GroupStreamDefinition:GET /api/streamsGET /api/streams/{id}PUT /api/streams/{id}DELETE /api/streams/{id}GET /api/streams/{id}/_detailsThis PR only includes the support to the APIs, I will submit a follow PR for the UI.