[ResponseOps][Rules] Add OAS schema for handled 4xx errors on rule apis#192616
[ResponseOps][Rules] Add OAS schema for handled 4xx errors on rule apis#192616Zacqary merged 22 commits intoelastic:mainfrom
Conversation
|
Pinging @elastic/response-ops (Team:ResponseOps) |
🤖 GitHub commentsExpand to view the GitHub comments
Just comment with:
|
…t --include-path /api/status --include-path /api/alerting/rule/ --include-path /api/alerting/rules --include-path /api/actions --update'
|
|
||
| import { schema } from '@kbn/config-schema'; | ||
|
|
||
| export const forbiddenErrorSchema = schema.object({ |
There was a problem hiding this comment.
Not saying to do it but wdyt about having this schema in x-pack/plugins/alerting/common/routes/rule/response/schemas/v1.ts instead?
Or maybe we can move the request and response folders(in x-pack/plugins/alerting/common/routes/rule/) here. We prob should consolidate these, they feel similar.
There was a problem hiding this comment.
What do you think of x-pack/plugins/alerting/common/routes/rule/errors/schema/v1.ts?
There was a problem hiding this comment.
ah, just noticed I wrote it wrong.
I meant to say
Not saying to do it but wdyt about having this schema in
x-pack/plugins/alerting/common/routes/rule/instead?
yeah an errors folder sounds good!
What about 400s? I see a bunch of instances of |
There was a problem hiding this comment.
Some routes appear to be missing:
x-pack/plugins/alerting/server/routes/rule/apis/get/get_rule_route.tsx-pack/plugins/alerting/server/routes/rule/apis/find/find_rules_route.tsx-pack/plugins/alerting/server/routes/rule/apis/delete/delete_rule_route.ts
Also, I think we should also document 404s and 500s.
500s because errors in the code are always possible😅- 404s in case of trying to access missing SOs
I can add this, but 500 Internal Server Error means 500 Internal Server Error. That's just HTTP standard. Do we really want to repeat that documentation? |
This is internal |
…t --include-path /api/status --include-path /api/alerting/rule/ --include-path /api/alerting/rules --include-path /api/actions --update'
|
@cnasikas from the issue:
|
|
@elasticmachine merge upstream |
|
The API docs output LGTM, thanks! |
|
@elasticmachine merge upstream |
29c72f7 to
daec30b
Compare
💚 Build Succeeded
Metrics [docs]
History
To update your PR or re-run it, just comment with: |
…is (elastic#192616) ## Summary Closes elastic#188514 Adds OAS schemas for the `403 Forbidden` errors that public rule apis can return if a license is invalid, `400 Bad Request` for unregistered rule types, and `404 Not Found` for missing saved objects. ### Checklist - [x] Any text added follows [EUI's writing guidelines](https://elastic.github.io/eui/#/guidelines/writing), uses sentence case text and includes [i18n support](https://github.com/elastic/kibana/blob/main/packages/kbn-i18n/README.md) - [x] [Documentation](https://www.elastic.co/guide/en/kibana/master/development-documentation.html) was added for features that require explanation or tutorials ### Testing 1. Start ES 2. Add `server.oas.enabled: true` to `kibana.dev.yml` 3. Start Kibana `yarn start --no-base-path` 4. `curl -s -uelastic:changeme http://localhost:5601/api/oas\?pathStartsWith\=/api/alerting/rule/ | jq` (If you have `jq` installed, otherwise pipe to `pbcopy` and paste the result into a JSON prettifier) 5. Search the output for the word `Forbidden` to ensure this schema has been added to `create`, `update`, `enable`, `disable`, `mute`, `unmute`, and `update_rule_api_key` --------- Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com> Co-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com> (cherry picked from commit 18afcae)
💚 All backports created successfully
Note: Successful backport PRs will be merged automatically after passing CI. Questions ?Please refer to the Backport tool documentation |
…ule apis (#192616) (#193454) # Backport This will backport the following commits from `main` to `8.x`: - [[ResponseOps][Rules] Add OAS schema for handled 4xx errors on rule apis (#192616)](#192616) <!--- Backport version: 9.4.3 --> ### Questions ? Please refer to the [Backport tool documentation](https://github.com/sqren/backport) <!--BACKPORT [{"author":{"name":"Zacqary Adam Xeper","email":"Zacqary@users.noreply.github.com"},"sourceCommit":{"committedDate":"2024-09-19T16:52:17Z","message":"[ResponseOps][Rules] Add OAS schema for handled 4xx errors on rule apis (#192616)\n\n## Summary\r\n\r\nCloses #188514 \r\n\r\nAdds OAS schemas for the `403 Forbidden` errors that public rule apis\r\ncan return if a license is invalid, `400 Bad Request` for unregistered\r\nrule types, and `404 Not Found` for missing saved objects.\r\n\r\n### Checklist\r\n\r\n- [x] Any text added follows [EUI's writing\r\nguidelines](https://elastic.github.io/eui/#/guidelines/writing), uses\r\nsentence case text and includes [i18n\r\nsupport](https://github.com/elastic/kibana/blob/main/packages/kbn-i18n/README.md)\r\n- [x]\r\n[Documentation](https://www.elastic.co/guide/en/kibana/master/development-documentation.html)\r\nwas added for features that require explanation or tutorials\r\n\r\n### Testing\r\n\r\n1. Start ES\r\n2. Add `server.oas.enabled: true` to `kibana.dev.yml`\r\n3. Start Kibana `yarn start --no-base-path`\r\n4. `curl -s -uelastic:changeme\r\nhttp://localhost:5601/api/oas\\?pathStartsWith\\=/api/alerting/rule/ | jq`\r\n(If you have `jq` installed, otherwise pipe to `pbcopy` and paste the\r\nresult into a JSON prettifier)\r\n5. Search the output for the word `Forbidden` to ensure this schema has\r\nbeen added to `create`, `update`, `enable`, `disable`, `mute`, `unmute`,\r\nand `update_rule_api_key`\r\n\r\n---------\r\n\r\nCo-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>\r\nCo-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com>","sha":"18afcae609c9dd142ef158f6f19dd392bc9d6327","branchLabelMapping":{"^v9.0.0$":"main","^v8.16.0$":"8.x","^v(\\d+).(\\d+).\\d+$":"$1.$2"}},"sourcePullRequest":{"labels":["release_note:skip","Team:ResponseOps","v9.0.0","Feature:Alerting/RulesFramework","v8.16.0","backport:version"],"title":"[ResponseOps][Rules] Add OAS schema for handled 4xx errors on rule apis","number":192616,"url":"https://github.com/elastic/kibana/pull/192616","mergeCommit":{"message":"[ResponseOps][Rules] Add OAS schema for handled 4xx errors on rule apis (#192616)\n\n## Summary\r\n\r\nCloses #188514 \r\n\r\nAdds OAS schemas for the `403 Forbidden` errors that public rule apis\r\ncan return if a license is invalid, `400 Bad Request` for unregistered\r\nrule types, and `404 Not Found` for missing saved objects.\r\n\r\n### Checklist\r\n\r\n- [x] Any text added follows [EUI's writing\r\nguidelines](https://elastic.github.io/eui/#/guidelines/writing), uses\r\nsentence case text and includes [i18n\r\nsupport](https://github.com/elastic/kibana/blob/main/packages/kbn-i18n/README.md)\r\n- [x]\r\n[Documentation](https://www.elastic.co/guide/en/kibana/master/development-documentation.html)\r\nwas added for features that require explanation or tutorials\r\n\r\n### Testing\r\n\r\n1. Start ES\r\n2. Add `server.oas.enabled: true` to `kibana.dev.yml`\r\n3. Start Kibana `yarn start --no-base-path`\r\n4. `curl -s -uelastic:changeme\r\nhttp://localhost:5601/api/oas\\?pathStartsWith\\=/api/alerting/rule/ | jq`\r\n(If you have `jq` installed, otherwise pipe to `pbcopy` and paste the\r\nresult into a JSON prettifier)\r\n5. Search the output for the word `Forbidden` to ensure this schema has\r\nbeen added to `create`, `update`, `enable`, `disable`, `mute`, `unmute`,\r\nand `update_rule_api_key`\r\n\r\n---------\r\n\r\nCo-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>\r\nCo-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com>","sha":"18afcae609c9dd142ef158f6f19dd392bc9d6327"}},"sourceBranch":"main","suggestedTargetBranches":["8.x"],"targetPullRequestStates":[{"branch":"main","label":"v9.0.0","branchLabelMappingKey":"^v9.0.0$","isSourceBranch":true,"state":"MERGED","url":"https://github.com/elastic/kibana/pull/192616","number":192616,"mergeCommit":{"message":"[ResponseOps][Rules] Add OAS schema for handled 4xx errors on rule apis (#192616)\n\n## Summary\r\n\r\nCloses #188514 \r\n\r\nAdds OAS schemas for the `403 Forbidden` errors that public rule apis\r\ncan return if a license is invalid, `400 Bad Request` for unregistered\r\nrule types, and `404 Not Found` for missing saved objects.\r\n\r\n### Checklist\r\n\r\n- [x] Any text added follows [EUI's writing\r\nguidelines](https://elastic.github.io/eui/#/guidelines/writing), uses\r\nsentence case text and includes [i18n\r\nsupport](https://github.com/elastic/kibana/blob/main/packages/kbn-i18n/README.md)\r\n- [x]\r\n[Documentation](https://www.elastic.co/guide/en/kibana/master/development-documentation.html)\r\nwas added for features that require explanation or tutorials\r\n\r\n### Testing\r\n\r\n1. Start ES\r\n2. Add `server.oas.enabled: true` to `kibana.dev.yml`\r\n3. Start Kibana `yarn start --no-base-path`\r\n4. `curl -s -uelastic:changeme\r\nhttp://localhost:5601/api/oas\\?pathStartsWith\\=/api/alerting/rule/ | jq`\r\n(If you have `jq` installed, otherwise pipe to `pbcopy` and paste the\r\nresult into a JSON prettifier)\r\n5. Search the output for the word `Forbidden` to ensure this schema has\r\nbeen added to `create`, `update`, `enable`, `disable`, `mute`, `unmute`,\r\nand `update_rule_api_key`\r\n\r\n---------\r\n\r\nCo-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>\r\nCo-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com>","sha":"18afcae609c9dd142ef158f6f19dd392bc9d6327"}},{"branch":"8.x","label":"v8.16.0","branchLabelMappingKey":"^v8.16.0$","isSourceBranch":false,"state":"NOT_CREATED"}]}] BACKPORT--> Co-authored-by: Zacqary Adam Xeper <Zacqary@users.noreply.github.com>
Summary
Closes #188514
Adds OAS schemas for the
403 Forbiddenerrors that public rule apis can return if a license is invalid,400 Bad Requestfor unregistered rule types, and404 Not Foundfor missing saved objects.Checklist
Testing
server.oas.enabled: truetokibana.dev.ymlyarn start --no-base-pathcurl -s -uelastic:changeme http://localhost:5601/api/oas\?pathStartsWith\=/api/alerting/rule/ | jq(If you havejqinstalled, otherwise pipe topbcopyand paste the result into a JSON prettifier)Forbiddento ensure this schema has been added tocreate,update,enable,disable,mute,unmute, andupdate_rule_api_key