-
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
[Authz] Fix description generation for Open API spec for an API #198054
[Authz] Fix description generation for Open API spec for an API #198054
Conversation
Pinging @elastic/kibana-security (Team:Security) |
@elasticmachine merge upstream |
…t --include-path /api/status --include-path /api/alerting/rule/ --include-path /api/alerting/rules --include-path /api/actions --include-path /api/security/role --include-path /api/spaces --include-path /api/fleet --update'
…t --include-path /api/status --include-path /api/alerting/rule/ --include-path /api/alerting/rules --include-path /api/actions --include-path /api/security/role --include-path /api/spaces --include-path /api/fleet --update'
if (route.security) { | ||
const authzDescription = extractAuthzDescription(route.security); | ||
|
||
description = `${route.options.description ?? ''}${authzDescription ?? ''}`; | ||
description += `${route.options.description && authzDescription ? `<br/><br/>` : ''}${ |
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.
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.
LGTM! Just a couple of nits and an observation.
I noticed that some of our route descriptions contain a line break, which end up as \n
in the output json.
cc @elastic/kibana-core - should these get converted to <br/>
, or maybe just removed?
Related: swagger-api/swagger-ui#7641
@@ -157,7 +157,7 @@ describe('processVersionedRouter', () => { | |||
expect(results.paths['/foo']!.get).toBeDefined(); | |||
|
|||
expect(results.paths['/foo']!.get!.description).toBe( | |||
'[Authz] Route required privileges: ALL of [manage_spaces].' | |||
'[Required authorization] Route required privileges: ALL of [manage_spaces].' |
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.
Nit: would it make sense to have the same set of test cases as process_router.test
- covering when there is and is not a base description?
@@ -56,5 +56,5 @@ export const extractAuthzDescription = (routeSecurity: InternalRouteSecurity | u | |||
return `Route required privileges: ${getPrivilegesDescription(allRequired, anyRequired)}.`; | |||
}; | |||
|
|||
return `[Authz] ${getDescriptionForRoute()}`; | |||
return `[Required authorization] ${getDescriptionForRoute()}`; |
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.
Nit: I wonder if "Authorization" is enough, given that we always follow it with "Route required privileges:"
return `[Required authorization] ${getDescriptionForRoute()}`; | |
return `[Authorization] ${getDescriptionForRoute()}`; |
💚 Build Succeeded
Metrics [docs]
History
|
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.
🚀
Update: Disregard. The visible /n's in the json become line breaks in the yaml and do not render. |
@elasticmachine merge upstream |
…t --include-path /api/status --include-path /api/alerting/rule/ --include-path /api/alerting/rules --include-path /api/actions --include-path /api/security/role --include-path /api/spaces --include-path /api/fleet --update'
Starting backport for target branches: 8.15, 8.16, 8.x |
…tic#198054) Closes elastic#198058. Adds a fix for elastic#197001 ## Summary There was an error in how descriptions were added to the Open API spec for a given route - for the specific case when both a route description and security authz required privileges were present. The code with the error is: https://github.com/elastic/kibana/pull/197001/files#diff-5942307fac5a7b321e7f317bacd2837a7f766f3e79d5aad285513b1f82951b46R79-R80 This PR fixes that error. Also updated: Description field for required privileges now includes a more intuitive descriptor: `Required authorization` as well as a line break. <img width="838" alt="image" src="https://github.com/user-attachments/assets/e6af0459-28e8-40e5-873d-924d1a49b01b"> --------- Co-authored-by: Elastic Machine <[email protected]> Co-authored-by: kibanamachine <[email protected]> (cherry picked from commit b12e7d0)
💔 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 |
…#198054) (#198814) # Backport This will backport the following commits from `main` to `8.x`: - [[Authz] Fix description generation for Open API spec for an API (#198054)](#198054) <!--- Backport version: 9.4.3 --> ### Questions ? Please refer to the [Backport tool documentation](https://github.com/sqren/backport) <!--BACKPORT [{"author":{"name":"Sid","email":"[email protected]"},"sourceCommit":{"committedDate":"2024-11-04T15:57:45Z","message":"[Authz] Fix description generation for Open API spec for an API (#198054)\n\nCloses #198058. \r\n\r\nAdds a fix for https://github.com/elastic/kibana/pull/197001\r\n\r\n## Summary\r\nThere was an error in how descriptions were added to the Open API spec\r\nfor a given route - for the specific case when both a route description\r\nand security authz required privileges were present. The code with the\r\nerror is:\r\nhttps://github.com//pull/197001/files#diff-5942307fac5a7b321e7f317bacd2837a7f766f3e79d5aad285513b1f82951b46R79-R80\r\n\r\nThis PR fixes that error. \r\n\r\n\r\nAlso updated: Description field for required privileges now includes a\r\nmore intuitive descriptor: `Required authorization` as well as a line\r\nbreak.\r\n\r\n<img width=\"838\" alt=\"image\"\r\nsrc=\"https://github.com/user-attachments/assets/e6af0459-28e8-40e5-873d-924d1a49b01b\">\r\n\r\n---------\r\n\r\nCo-authored-by: Elastic Machine <[email protected]>\r\nCo-authored-by: kibanamachine <[email protected]>","sha":"b12e7d0e79af8150ea9f2b5940a6ad1d428cff72","branchLabelMapping":{"^v9.0.0$":"main","^v8.17.0$":"8.x","^v(\\d+).(\\d+).\\d+$":"$1.$2"}},"sourcePullRequest":{"labels":["bug","Team:Security","release_note:skip","Feature:Security/Authorization","v9.0.0","backport:prev-major","v8.16.0","v8.17.0"],"title":"[Authz] Fix description generation for Open API spec for an API","number":198054,"url":"https://github.com/elastic/kibana/pull/198054","mergeCommit":{"message":"[Authz] Fix description generation for Open API spec for an API (#198054)\n\nCloses #198058. \r\n\r\nAdds a fix for https://github.com/elastic/kibana/pull/197001\r\n\r\n## Summary\r\nThere was an error in how descriptions were added to the Open API spec\r\nfor a given route - for the specific case when both a route description\r\nand security authz required privileges were present. The code with the\r\nerror is:\r\nhttps://github.com//pull/197001/files#diff-5942307fac5a7b321e7f317bacd2837a7f766f3e79d5aad285513b1f82951b46R79-R80\r\n\r\nThis PR fixes that error. \r\n\r\n\r\nAlso updated: Description field for required privileges now includes a\r\nmore intuitive descriptor: `Required authorization` as well as a line\r\nbreak.\r\n\r\n<img width=\"838\" alt=\"image\"\r\nsrc=\"https://github.com/user-attachments/assets/e6af0459-28e8-40e5-873d-924d1a49b01b\">\r\n\r\n---------\r\n\r\nCo-authored-by: Elastic Machine <[email protected]>\r\nCo-authored-by: kibanamachine <[email protected]>","sha":"b12e7d0e79af8150ea9f2b5940a6ad1d428cff72"}},"sourceBranch":"main","suggestedTargetBranches":["8.16","8.x"],"targetPullRequestStates":[{"branch":"main","label":"v9.0.0","branchLabelMappingKey":"^v9.0.0$","isSourceBranch":true,"state":"MERGED","url":"https://github.com/elastic/kibana/pull/198054","number":198054,"mergeCommit":{"message":"[Authz] Fix description generation for Open API spec for an API (#198054)\n\nCloses #198058. \r\n\r\nAdds a fix for https://github.com/elastic/kibana/pull/197001\r\n\r\n## Summary\r\nThere was an error in how descriptions were added to the Open API spec\r\nfor a given route - for the specific case when both a route description\r\nand security authz required privileges were present. The code with the\r\nerror is:\r\nhttps://github.com//pull/197001/files#diff-5942307fac5a7b321e7f317bacd2837a7f766f3e79d5aad285513b1f82951b46R79-R80\r\n\r\nThis PR fixes that error. \r\n\r\n\r\nAlso updated: Description field for required privileges now includes a\r\nmore intuitive descriptor: `Required authorization` as well as a line\r\nbreak.\r\n\r\n<img width=\"838\" alt=\"image\"\r\nsrc=\"https://github.com/user-attachments/assets/e6af0459-28e8-40e5-873d-924d1a49b01b\">\r\n\r\n---------\r\n\r\nCo-authored-by: Elastic Machine <[email protected]>\r\nCo-authored-by: kibanamachine <[email protected]>","sha":"b12e7d0e79af8150ea9f2b5940a6ad1d428cff72"}},{"branch":"8.16","label":"v8.16.0","branchLabelMappingKey":"^v(\\d+).(\\d+).\\d+$","isSourceBranch":false,"state":"NOT_CREATED"},{"branch":"8.x","label":"v8.17.0","branchLabelMappingKey":"^v8.17.0$","isSourceBranch":false,"state":"NOT_CREATED"}]}] BACKPORT--> Co-authored-by: Sid <[email protected]>
…tic#198054) Closes elastic#198058. Adds a fix for elastic#197001 ## Summary There was an error in how descriptions were added to the Open API spec for a given route - for the specific case when both a route description and security authz required privileges were present. The code with the error is: https://github.com/elastic/kibana/pull/197001/files#diff-5942307fac5a7b321e7f317bacd2837a7f766f3e79d5aad285513b1f82951b46R79-R80 This PR fixes that error. Also updated: Description field for required privileges now includes a more intuitive descriptor: `Required authorization` as well as a line break. <img width="838" alt="image" src="https://github.com/user-attachments/assets/e6af0459-28e8-40e5-873d-924d1a49b01b"> --------- Co-authored-by: Elastic Machine <[email protected]> Co-authored-by: kibanamachine <[email protected]> (cherry picked from commit b12e7d0) # Conflicts: # packages/kbn-router-to-openapispec/src/process_router.ts # packages/kbn-router-to-openapispec/src/process_versioned_router.ts
#198054) (#198837) # Backport This will backport the following commits from `main` to `8.16`: - [[Authz] Fix description generation for Open API spec for an API (#198054)](#198054) <!--- Backport version: 8.9.8 --> ### Questions ? Please refer to the [Backport tool documentation](https://github.com/sqren/backport) <!--BACKPORT [{"author":{"name":"Sid","email":"[email protected]"},"sourceCommit":{"committedDate":"2024-11-04T15:57:45Z","message":"[Authz] Fix description generation for Open API spec for an API (#198054)\n\nCloses #198058. \r\n\r\nAdds a fix for https://github.com/elastic/kibana/pull/197001\r\n\r\n## Summary\r\nThere was an error in how descriptions were added to the Open API spec\r\nfor a given route - for the specific case when both a route description\r\nand security authz required privileges were present. The code with the\r\nerror is:\r\nhttps://github.com//pull/197001/files#diff-5942307fac5a7b321e7f317bacd2837a7f766f3e79d5aad285513b1f82951b46R79-R80\r\n\r\nThis PR fixes that error. \r\n\r\n\r\nAlso updated: Description field for required privileges now includes a\r\nmore intuitive descriptor: `Required authorization` as well as a line\r\nbreak.\r\n\r\n<img width=\"838\" alt=\"image\"\r\nsrc=\"https://github.com/user-attachments/assets/e6af0459-28e8-40e5-873d-924d1a49b01b\">\r\n\r\n---------\r\n\r\nCo-authored-by: Elastic Machine <[email protected]>\r\nCo-authored-by: kibanamachine <[email protected]>","sha":"b12e7d0e79af8150ea9f2b5940a6ad1d428cff72","branchLabelMapping":{"^v9.0.0$":"main","^v8.17.0$":"8.x","^v(\\d+).(\\d+).\\d+$":"$1.$2"}},"sourcePullRequest":{"labels":["bug","Team:Security","release_note:skip","Feature:Security/Authorization","v9.0.0","backport:prev-major","v8.16.0","v8.17.0"],"number":198054,"url":"https://github.com/elastic/kibana/pull/198054","mergeCommit":{"message":"[Authz] Fix description generation for Open API spec for an API (#198054)\n\nCloses #198058. \r\n\r\nAdds a fix for https://github.com/elastic/kibana/pull/197001\r\n\r\n## Summary\r\nThere was an error in how descriptions were added to the Open API spec\r\nfor a given route - for the specific case when both a route description\r\nand security authz required privileges were present. The code with the\r\nerror is:\r\nhttps://github.com//pull/197001/files#diff-5942307fac5a7b321e7f317bacd2837a7f766f3e79d5aad285513b1f82951b46R79-R80\r\n\r\nThis PR fixes that error. \r\n\r\n\r\nAlso updated: Description field for required privileges now includes a\r\nmore intuitive descriptor: `Required authorization` as well as a line\r\nbreak.\r\n\r\n<img width=\"838\" alt=\"image\"\r\nsrc=\"https://github.com/user-attachments/assets/e6af0459-28e8-40e5-873d-924d1a49b01b\">\r\n\r\n---------\r\n\r\nCo-authored-by: Elastic Machine <[email protected]>\r\nCo-authored-by: kibanamachine <[email protected]>","sha":"b12e7d0e79af8150ea9f2b5940a6ad1d428cff72"}},"sourceBranch":"main","suggestedTargetBranches":["8.16"],"targetPullRequestStates":[{"branch":"main","label":"v9.0.0","labelRegex":"^v9.0.0$","isSourceBranch":true,"state":"MERGED","url":"https://github.com/elastic/kibana/pull/198054","number":198054,"mergeCommit":{"message":"[Authz] Fix description generation for Open API spec for an API (#198054)\n\nCloses #198058. \r\n\r\nAdds a fix for https://github.com/elastic/kibana/pull/197001\r\n\r\n## Summary\r\nThere was an error in how descriptions were added to the Open API spec\r\nfor a given route - for the specific case when both a route description\r\nand security authz required privileges were present. The code with the\r\nerror is:\r\nhttps://github.com//pull/197001/files#diff-5942307fac5a7b321e7f317bacd2837a7f766f3e79d5aad285513b1f82951b46R79-R80\r\n\r\nThis PR fixes that error. \r\n\r\n\r\nAlso updated: Description field for required privileges now includes a\r\nmore intuitive descriptor: `Required authorization` as well as a line\r\nbreak.\r\n\r\n<img width=\"838\" alt=\"image\"\r\nsrc=\"https://github.com/user-attachments/assets/e6af0459-28e8-40e5-873d-924d1a49b01b\">\r\n\r\n---------\r\n\r\nCo-authored-by: Elastic Machine <[email protected]>\r\nCo-authored-by: kibanamachine <[email protected]>","sha":"b12e7d0e79af8150ea9f2b5940a6ad1d428cff72"}},{"branch":"8.16","label":"v8.16.0","labelRegex":"^v(\\d+).(\\d+).\\d+$","isSourceBranch":false,"state":"NOT_CREATED"},{"branch":"8.x","label":"v8.17.0","labelRegex":"^v8.17.0$","isSourceBranch":false,"url":"https://github.com/elastic/kibana/pull/198814","number":198814,"state":"MERGED","mergeCommit":{"sha":"312f642c4a4451ff19dbb3a6dcf799996147c8f7","message":"[8.x] [Authz] Fix description generation for Open API spec for an API (#198054) (#198814)\n\n# Backport\n\nThis will backport the following commits from `main` to `8.x`:\n- [[Authz] Fix description generation for Open API spec for an API\n(#198054)](https://github.com/elastic/kibana/pull/198054)\n\n<!--- Backport version: 9.4.3 -->\n\n### Questions ?\nPlease refer to the [Backport tool\ndocumentation](https://github.com/sqren/backport)\n\n<!--BACKPORT\n[{\"author\":{\"name\":\"Sid\",\"email\":\"[email protected]\"},\"sourceCommit\":{\"committedDate\":\"2024-11-04T15:57:45Z\",\"message\":\"[Authz]\nFix description generation for Open API spec for an API\n(#198054)\\n\\nCloses https://github.com/elastic/kibana/issues/198058.\n\\r\\n\\r\\nAdds a fix for\nhttps://github.com//pull/197001\\r\\n\\r\\n## Summary\\r\\nThere\nwas an error in how descriptions were added to the Open API spec\\r\\nfor\na given route - for the specific case when both a route\ndescription\\r\\nand security authz required privileges were present. The\ncode with the\\r\\nerror\nis:\\r\\nhttps://github.com//pull/197001/files#diff-5942307fac5a7b321e7f317bacd2837a7f766f3e79d5aad285513b1f82951b46R79-R80\\r\\n\\r\\nThis\nPR fixes that error. \\r\\n\\r\\n\\r\\nAlso updated: Description field for\nrequired privileges now includes a\\r\\nmore intuitive descriptor:\n`Required authorization` as well as a line\\r\\nbreak.\\r\\n\\r\\n<img\nwidth=\\\"838\\\"\nalt=\\\"image\\\"\\r\\nsrc=\\\"https://github.com/user-attachments/assets/e6af0459-28e8-40e5-873d-924d1a49b01b\\\">\\r\\n\\r\\n---------\\r\\n\\r\\nCo-authored-by:\nElastic Machine\n<[email protected]>\\r\\nCo-authored-by:\nkibanamachine\n<[email protected]>\",\"sha\":\"b12e7d0e79af8150ea9f2b5940a6ad1d428cff72\",\"branchLabelMapping\":{\"^v9.0.0$\":\"main\",\"^v8.17.0$\":\"8.x\",\"^v(\\\\d+).(\\\\d+).\\\\d+$\":\"$1.$2\"}},\"sourcePullRequest\":{\"labels\":[\"bug\",\"Team:Security\",\"release_note:skip\",\"Feature:Security/Authorization\",\"v9.0.0\",\"backport:prev-major\",\"v8.16.0\",\"v8.17.0\"],\"title\":\"[Authz]\nFix description generation for Open API spec for an\nAPI\",\"number\":198054,\"url\":\"https://github.com/elastic/kibana/pull/198054\",\"mergeCommit\":{\"message\":\"[Authz]\nFix description generation for Open API spec for an API\n(#198054)\\n\\nCloses https://github.com/elastic/kibana/issues/198058.\n\\r\\n\\r\\nAdds a fix for\nhttps://github.com//pull/197001\\r\\n\\r\\n## Summary\\r\\nThere\nwas an error in how descriptions were added to the Open API spec\\r\\nfor\na given route - for the specific case when both a route\ndescription\\r\\nand security authz required privileges were present. The\ncode with the\\r\\nerror\nis:\\r\\nhttps://github.com//pull/197001/files#diff-5942307fac5a7b321e7f317bacd2837a7f766f3e79d5aad285513b1f82951b46R79-R80\\r\\n\\r\\nThis\nPR fixes that error. \\r\\n\\r\\n\\r\\nAlso updated: Description field for\nrequired privileges now includes a\\r\\nmore intuitive descriptor:\n`Required authorization` as well as a line\\r\\nbreak.\\r\\n\\r\\n<img\nwidth=\\\"838\\\"\nalt=\\\"image\\\"\\r\\nsrc=\\\"https://github.com/user-attachments/assets/e6af0459-28e8-40e5-873d-924d1a49b01b\\\">\\r\\n\\r\\n---------\\r\\n\\r\\nCo-authored-by:\nElastic Machine\n<[email protected]>\\r\\nCo-authored-by:\nkibanamachine\n<[email protected]>\",\"sha\":\"b12e7d0e79af8150ea9f2b5940a6ad1d428cff72\"}},\"sourceBranch\":\"main\",\"suggestedTargetBranches\":[\"8.16\",\"8.x\"],\"targetPullRequestStates\":[{\"branch\":\"main\",\"label\":\"v9.0.0\",\"branchLabelMappingKey\":\"^v9.0.0$\",\"isSourceBranch\":true,\"state\":\"MERGED\",\"url\":\"https://github.com/elastic/kibana/pull/198054\",\"number\":198054,\"mergeCommit\":{\"message\":\"[Authz]\nFix description generation for Open API spec for an API\n(#198054)\\n\\nCloses https://github.com/elastic/kibana/issues/198058.\n\\r\\n\\r\\nAdds a fix for\nhttps://github.com//pull/197001\\r\\n\\r\\n## Summary\\r\\nThere\nwas an error in how descriptions were added to the Open API spec\\r\\nfor\na given route - for the specific case when both a route\ndescription\\r\\nand security authz required privileges were present. The\ncode with the\\r\\nerror\nis:\\r\\nhttps://github.com//pull/197001/files#diff-5942307fac5a7b321e7f317bacd2837a7f766f3e79d5aad285513b1f82951b46R79-R80\\r\\n\\r\\nThis\nPR fixes that error. \\r\\n\\r\\n\\r\\nAlso updated: Description field for\nrequired privileges now includes a\\r\\nmore intuitive descriptor:\n`Required authorization` as well as a line\\r\\nbreak.\\r\\n\\r\\n<img\nwidth=\\\"838\\\"\nalt=\\\"image\\\"\\r\\nsrc=\\\"https://github.com/user-attachments/assets/e6af0459-28e8-40e5-873d-924d1a49b01b\\\">\\r\\n\\r\\n---------\\r\\n\\r\\nCo-authored-by:\nElastic Machine\n<[email protected]>\\r\\nCo-authored-by:\nkibanamachine\n<[email protected]>\",\"sha\":\"b12e7d0e79af8150ea9f2b5940a6ad1d428cff72\"}},{\"branch\":\"8.16\",\"label\":\"v8.16.0\",\"branchLabelMappingKey\":\"^v(\\\\d+).(\\\\d+).\\\\d+$\",\"isSourceBranch\":false,\"state\":\"NOT_CREATED\"},{\"branch\":\"8.x\",\"label\":\"v8.17.0\",\"branchLabelMappingKey\":\"^v8.17.0$\",\"isSourceBranch\":false,\"state\":\"NOT_CREATED\"}]}]\nBACKPORT-->\n\nCo-authored-by: Sid <[email protected]>"}}]}] BACKPORT--> --------- Co-authored-by: kibanamachine <[email protected]>
Closes #198058.
Adds a fix for #197001
Summary
There was an error in how descriptions were added to the Open API spec for a given route - for the specific case when both a route description and security authz required privileges were present. The code with the error is: https://github.com/elastic/kibana/pull/197001/files#diff-5942307fac5a7b321e7f317bacd2837a7f766f3e79d5aad285513b1f82951b46R79-R80
This PR fixes that error.
Also updated: Description field for required privileges now includes a more intuitive descriptor:
Required authorization
as well as a line break.