-
Notifications
You must be signed in to change notification settings - Fork 8.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[ResponseOps][Rules] Add OAS schema for handled 4xx errors on rule apis #192616
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.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What do you think of x-pack/plugins/alerting/common/routes/rule/errors/schema/v1.ts
?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Some routes appear to be missing:
x-pack/plugins/alerting/server/routes/rule/apis/get/get_rule_route.ts
x-pack/plugins/alerting/server/routes/rule/apis/find/find_rules_route.ts
x-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 <[email protected]> Co-authored-by: Elastic Machine <[email protected]> (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":"[email protected]"},"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 <[email protected]>\r\nCo-authored-by: Elastic Machine <[email protected]>","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 <[email protected]>\r\nCo-authored-by: Elastic Machine <[email protected]>","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 <[email protected]>\r\nCo-authored-by: Elastic Machine <[email protected]>","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 <[email protected]>
Summary
Closes #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, and404 Not Found
for missing saved objects.Checklist
Testing
server.oas.enabled: true
tokibana.dev.yml
yarn start --no-base-path
curl -s -uelastic:changeme http://localhost:5601/api/oas\?pathStartsWith\=/api/alerting/rule/ | jq
(If you havejq
installed, otherwise pipe topbcopy
and paste the result into a JSON prettifier)Forbidden
to ensure this schema has been added tocreate
,update
,enable
,disable
,mute
,unmute
, andupdate_rule_api_key