# Backport
This will backport the following commits from `main` to `8.6`:
- [[Security Solution] [Exceptions] Fix edit the exception while adding
new comment. (#145575)](https://github.com/elastic/kibana/pull/145575)
<!--- Backport version: 8.9.7 -->
### Questions ?
Please refer to the [Backport tool
documentation](https://github.com/sqren/backport)
<!--BACKPORT [{"author":{"name":"Wafaa
Nasr","email":"wafaa.nasr@elastic.co"},"sourceCommit":{"committedDate":"2022-11-18T13:35:03Z","message":"[Security
Solution] [Exceptions] Fix edit the exception while adding new comment.
(#145575)\n\n## Summary\r\n\r\nAddress
https://github.com/elastic/kibana/issues/144523\r\n\r\n1. Fix type
schema check to use `updateExceptionListItemSchema` instead\r\nof
`exceptionListItemSchema` as the comments array could be empty
when\r\nthe user adds the Exceptions and in Editing with adding a new
comment(s)\r\nit will contain only (comment and id) in the newly created
comment\r\n\r\n2. Add `removeCreatedAtCreatedByFromCommentsOnUpdate` to
remove the\r\n`createdAt`, and `createdBy` from the updated exception
Item if a\r\ncomment was added before to fix the `400 Schema
validations` as per the\r\nbelow
Schema\r\n\r\nThe\r\n`packages/kbn-securitysolution-io-ts-list-types/src/common/update_comment/index.ts`\r\n
\r\n ```\r\n export const updateComment = t.intersection([\r\n
t.exact(\r\n t.type({\r\n comment: NonEmptyString,\r\n })\r\n ),\r\n
t.exact(\r\n t.partial({\r\n id,\r\n })\r\n ),\r\n ]);\r\n ```\r\n3.
Moving tests and mocks to the `hooks` package as well add new
tests\r\nfor the new
`removeCreatedAtCreatedByFromCommentsOnUpdate`\r\n\r\n###
Checklist\r\n\r\n- [x] [Unit or
functional\r\ntests](https://www.elastic.co/guide/en/kibana/master/development-tests.html)\r\nwere
updated or added to match the most common
scenarios\r\n\r\nCo-authored-by: Kibana Machine
<42973632+kibanamachine@users.noreply.github.com>","sha":"2bd2226cb259312b90ad32b1cd5618a0cc2e8b49","branchLabelMapping":{"^v8.7.0$":"main","^v(\\d+).(\\d+).\\d+$":"$1.$2"}},"sourcePullRequest":{"labels":["release_note:fix","Team:
SecuritySolution","Team:Security Solution
Platform","v8.6.0","v8.7.0"],"number":145575,"url":"https://github.com/elastic/kibana/pull/145575","mergeCommit":{"message":"[Security
Solution] [Exceptions] Fix edit the exception while adding new comment.
(#145575)\n\n## Summary\r\n\r\nAddress
https://github.com/elastic/kibana/issues/144523\r\n\r\n1. Fix type
schema check to use `updateExceptionListItemSchema` instead\r\nof
`exceptionListItemSchema` as the comments array could be empty
when\r\nthe user adds the Exceptions and in Editing with adding a new
comment(s)\r\nit will contain only (comment and id) in the newly created
comment\r\n\r\n2. Add `removeCreatedAtCreatedByFromCommentsOnUpdate` to
remove the\r\n`createdAt`, and `createdBy` from the updated exception
Item if a\r\ncomment was added before to fix the `400 Schema
validations` as per the\r\nbelow
Schema\r\n\r\nThe\r\n`packages/kbn-securitysolution-io-ts-list-types/src/common/update_comment/index.ts`\r\n
\r\n ```\r\n export const updateComment = t.intersection([\r\n
t.exact(\r\n t.type({\r\n comment: NonEmptyString,\r\n })\r\n ),\r\n
t.exact(\r\n t.partial({\r\n id,\r\n })\r\n ),\r\n ]);\r\n ```\r\n3.
Moving tests and mocks to the `hooks` package as well add new
tests\r\nfor the new
`removeCreatedAtCreatedByFromCommentsOnUpdate`\r\n\r\n###
Checklist\r\n\r\n- [x] [Unit or
functional\r\ntests](https://www.elastic.co/guide/en/kibana/master/development-tests.html)\r\nwere
updated or added to match the most common
scenarios\r\n\r\nCo-authored-by: Kibana Machine
<42973632+kibanamachine@users.noreply.github.com>","sha":"2bd2226cb259312b90ad32b1cd5618a0cc2e8b49"}},"sourceBranch":"main","suggestedTargetBranches":["8.6"],"targetPullRequestStates":[{"branch":"8.6","label":"v8.6.0","labelRegex":"^v(\\d+).(\\d+).\\d+$","isSourceBranch":false,"state":"NOT_CREATED"},{"branch":"main","label":"v8.7.0","labelRegex":"^v8.7.0$","isSourceBranch":true,"state":"MERGED","url":"https://github.com/elastic/kibana/pull/145575","number":145575,"mergeCommit":{"message":"[Security
Solution] [Exceptions] Fix edit the exception while adding new comment.
(#145575)\n\n## Summary\r\n\r\nAddress
https://github.com/elastic/kibana/issues/144523\r\n\r\n1. Fix type
schema check to use `updateExceptionListItemSchema` instead\r\nof
`exceptionListItemSchema` as the comments array could be empty
when\r\nthe user adds the Exceptions and in Editing with adding a new
comment(s)\r\nit will contain only (comment and id) in the newly created
comment\r\n\r\n2. Add `removeCreatedAtCreatedByFromCommentsOnUpdate` to
remove the\r\n`createdAt`, and `createdBy` from the updated exception
Item if a\r\ncomment was added before to fix the `400 Schema
validations` as per the\r\nbelow
Schema\r\n\r\nThe\r\n`packages/kbn-securitysolution-io-ts-list-types/src/common/update_comment/index.ts`\r\n
\r\n ```\r\n export const updateComment = t.intersection([\r\n
t.exact(\r\n t.type({\r\n comment: NonEmptyString,\r\n })\r\n ),\r\n
t.exact(\r\n t.partial({\r\n id,\r\n })\r\n ),\r\n ]);\r\n ```\r\n3.
Moving tests and mocks to the `hooks` package as well add new
tests\r\nfor the new
`removeCreatedAtCreatedByFromCommentsOnUpdate`\r\n\r\n###
Checklist\r\n\r\n- [x] [Unit or
functional\r\ntests](https://www.elastic.co/guide/en/kibana/master/development-tests.html)\r\nwere
updated or added to match the most common
scenarios\r\n\r\nCo-authored-by: Kibana Machine
<42973632+kibanamachine@users.noreply.github.com>","sha":"2bd2226cb259312b90ad32b1cd5618a0cc2e8b49"}}]}]
BACKPORT-->
Co-authored-by: Wafaa Nasr <wafaa.nasr@elastic.co>
## Summary
**API changes**
- Adds API for determining the list-rule references.
- Updates the exception items find api to include the `search` param which allows for simple search queries - used with the EUI search bar
**UI updates**
- Moved the exception components into new `rule_exceptions` folder per suggested folder structure updates listed [here](https://github.com/elastic/kibana/issues/138600)
- Updates the rule details tabs to split endpoint and rule exceptions into their own tabs
- Updates the viewer utilities header now that these different exception types are split
- Updates exception item UI to match new designs
- Updates the UI for when there are no items
- Removes `use_exception_list_items` hook as it is no longer in use
- Flyouts (add/edit) remain untouched
* [packages] add kibana.jsonc files
* auto-migrate to kibana.jsonc
* support interactive pkg id selection too
* remove old codeowners entry
* skip codeowners generation when .github/CODEOWNERS doesn't exist
* fall back to format validation if user is offline
* update question style
* [CI] Auto-commit changed files from 'node scripts/eslint --no-cache --fix'
Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
* refact(NA): apply root_input_dir=src to each already created pkg
* refact(NA): update package generator
* fix(NA): correctly use rootDir
* fix(NA): use root input dir on latest introduced pkgs for jsts_transpiler macro
* chore(NA): merge with main
Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com>
* [type-summarizer] reimplement for broader support
* Enable sourceMaps in all packages
* include naming collision in summarizePackage test
* fix readmes
* remove unnecessary transient dependency
* remove code that was commented out
* remove outdated todo comment
* ensure errors triggered by untyped-exports are ligible
* remove unused import
* break out snippet generation from AstIndexer
* refactor several massive files into smaller pieces and add more inline docs
* fix typos
* update jest snapshots
* add sections to readme that points people to the useful parts of the source code along with a high-level overview of how the type-summarizer works
* remove --dump flag, it doesn't work
* use decName instead of calling names.get a second time
* include `export` as invalid name
* Add exceptions to threshold timeline
* Tests and error handling
* Fix unit tests
* Add alias for exceptions filter
* Fix tests
* Type fixes
Co-authored-by: Marshall Main <marshall.main@elastic.co>
* chore(NA): splits types from code on @kbn/securitysolution-io-ts-utils
* chore(NA): fix package.json
* chore(NA): merge and solve conflicts with main
* chore(NA): remove any from types
Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com>
* [build_ts_refs] improve caches, allow building a subset of projects
* cleanup project def script and update refs in type check script
* rename browser_bazel config to avoid kebab-case
* remove execInProjects() helper
* list references for tsconfig.types.json for api-extractor workload
* disable composite features of tsconfig.types.json for api-extractor
* set declaration: true to avoid weird debug error
* fix jest tests
Co-authored-by: spalger <spalger@users.noreply.github.com>
* Add event filters filter on exception list to hide it in UI
* Fixes unit test and added more tests for showEventFilters
* fixes test adding showEventFilters test cases
* Pass params as js object instead of individual variables
Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com>
* Adds boilerplate for new hook-utils package
* Move existing, identified utils into our hook-utils package
Updates references, and fixes a few missing config that were preventing
packages from building.
* Extracts a common type and adds a little more JSdoc for clarity
* Adds new useObservable hook
Similar to useAsync (a nearly identical interface), this is meant to
wrap a thunk returning an observable, allowing conditional invocation
and progressive updates as the observable continues to emit.
* Remove orphaned test
This function (and its tests) were moved to the hook-utils package; this
was simply missed.
* Remove optional chaining from kbn package
The build system does not currently support these typescript features.
While a valid fix would also have been to build separate browser and
node targets a la #99390, the use here was very minimal and so changing
to a supported syntax was the most pragmatic fix.
* Update old reference in test file
Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com>
## Summary
Utilizes constants package and deletes duplicate code
* Renames the `securitysolution-constants` to be `securitysolution-list-constants` to be specific
* Deletes duplicated code found during cleanup
* Moves more tests into the packages found along the way with the duplicated code
* Moves `parseScheduleDates` from `@kbn/securitysolution-io-ts-types` to `@kbn/securitysolution-io-ts-utils`
### Checklist
- [x] [Unit or functional tests](https://www.elastic.co/guide/en/kibana/master/development-tests.html) were updated or added to match the most common scenarios
## Summary
* Adds package `kbn-securitysolution-list-api`
* Adds package `kbn-securitysolution-list-hooks`
* Moves files into the packages
* Moves a few additional types into the other packages such as the `kbn-securitysolution-io-ts-types` package to remove more things from the shard_export/shared_import between lists and security solution
* Removes more duplicated code
### Checklist
- [x] [Unit or functional tests](https://www.elastic.co/guide/en/kibana/master/development-tests.html) were updated or added to match the most common scenarios