kibana/packages/core/saved-objects/core-saved-objects-api-server-internal
Gerard Soldevila 6f87e1d696
[Migrations] Only pickup updated SO types when performing a compatible migration (#159962)
## Summary

Tackles the first improvement described in
https://github.com/elastic/kibana/issues/160038.

When "picking up" the updated mappings, we add a "query" in order to
select and update only the SO types that have been updated, compared to
the previous version.

We achieve this by comparing `migrationMappingPropertyHashes`; we
compare the hashes stored in the
`<soIndex>.mapping._meta.migrationMappingPropertyHashes` against the
ones calculated from the definitions from the `typeRegistry`.

---------

Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
2023-06-30 07:40:40 -07:00
..
src [Migrations] Only pickup updated SO types when performing a compatible migration (#159962) 2023-06-30 07:40:40 -07:00
index.ts Migrate remaining parts of server-side SO domain to packages (#139305) 2022-08-26 01:53:37 -07:00
jest.config.js Migrate remaining parts of server-side SO domain to packages (#139305) 2022-08-26 01:53:37 -07:00
kibana.jsonc Transpile packages on demand, validate all TS projects (#146212) 2022-12-22 19:00:29 -06:00
package.json Transpile packages on demand, validate all TS projects (#146212) 2022-12-22 19:00:29 -06:00
README.md SavedObjectsRepository code cleanup (#157154) 2023-05-11 00:25:27 -07:00
tsconfig.json SavedObjectsRepository code cleanup (#157154) 2023-05-11 00:25:27 -07:00

@kbn/core-saved-objects-api-server-internal

This package contains the internal implementation of core's server-side savedObjects client and repository.

Structure of the package

@kbn/core-saved-objects-api-server-internal
- /src/lib
  - repository.ts
  - /apis
    - create.ts
    - delete.ts
    - ....
    - /helpers
    - /utils
    - /internals

lib/apis/utils

Base utility functions, receiving (mostly) parameters from a given API call's option (e.g the type or id of a document, but not the type registry).

lib/apis/helpers

'Stateful' helpers. These helpers were mostly here to receive the utility functions that were extracted from the SOR. They are instantiated with the SOR's context (e.g type registry, mappings and so on), to avoid the caller to such helpers to have to pass all the parameters again.

lib/apis/internals

I would call them 'utilities with business logic'. These are the 'big' chunks of logic called by the APIs. E.g preflightCheckForCreate, internalBulkResolve and so on.