Skip to content
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

Remove SO root property index signature #64434

Merged
merged 3 commits into from
Apr 27, 2020

Conversation

rudolf
Copy link
Contributor

@rudolf rudolf commented Apr 24, 2020

Summary

Remove the root property index signature from SavedObjectsUnsanitizedDoc to increase the type safety of migrations which rely on this type.

Checklist

Delete any items that are not applicable to this PR.

For maintainers

@rudolf rudolf added Team:Core Core services & architecture: plugins, logging, config, saved objects, http, ES client, i18n, etc Feature:Saved Objects v8.0.0 release_note:skip Skip the PR/issue when compiling release notes v7.8.0 labels Apr 24, 2020
@elasticmachine
Copy link
Contributor

Pinging @elastic/kibana-platform (Team:Platform)

@@ -165,13 +165,13 @@ describe('DocumentMigrator', () => {
attributes: { name: 'Tyler' },
acl: 'anyone',
migrationVersion: {},
});
} as SavedObjectUnsanitizedDoc);
Copy link
Contributor Author

@rudolf rudolf Apr 24, 2020

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

our types are stricter than the code... although the code still supports plugins adding their own root property (the acl type can add the acl root property) there's no plugins using this and we should probably remove this functionality.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yea, I feel like migrations are more permissive than they should, at least for plugins.

@rudolf rudolf self-assigned this Apr 24, 2020
@rudolf rudolf requested a review from pgayvallet April 24, 2020 14:39
@rudolf rudolf marked this pull request as ready for review April 24, 2020 14:41
@rudolf rudolf requested a review from a team as a code owner April 24, 2020 14:41
Comment on lines -282 to 283
(doc[prop] && doc[prop].latestVersion) ||
((doc as any)[prop] && (doc as any)[prop].latestVersion) ||
(doc.migrationVersion && (doc as any).migrationVersion[prop])
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Wonder if it's worth to introduce an internal type that keeps this [rootProp: string]: any ?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I considered it, but it felt like we're losing type safety instead of increasing it. Core doesn't usually touch any of the root properties except the ones that core itself defines (updated_at namespaces), this section that performs the migration is the only exception where Core basically touches data owned by a plugin. So it felt like we could rather have any override here with slightly more type safety everywhere else.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

SGTM

@@ -165,13 +165,13 @@ describe('DocumentMigrator', () => {
attributes: { name: 'Tyler' },
acl: 'anyone',
migrationVersion: {},
});
} as SavedObjectUnsanitizedDoc);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yea, I feel like migrations are more permissive than they should, at least for plugins.

@kibanamachine
Copy link
Contributor

💚 Build Succeeded

History

To update your PR or re-run it, just comment with:
@elasticmachine merge upstream

@rudolf rudolf merged commit dfb6a30 into elastic:master Apr 27, 2020
@rudolf rudolf deleted the rm-so-index-signature branch April 27, 2020 14:08
rudolf added a commit to rudolf/kibana that referenced this pull request Apr 27, 2020
* Remove SO root property index signature

* Update documentation
gmmorris added a commit to gmmorris/kibana that referenced this pull request Apr 27, 2020
* master: (78 commits)
  Remove SO root property index signature (elastic#64434)
  [ML] Functional tests - stabilize job row details validations (elastic#64503)
  [Ingest] Add Global settings flyout (elastic#64276)
  Bump cypress dev-dependency from 4.2.0 to 4.4.1 (elastic#64408)
  Migrate saved object of type url to kibana platform (elastic#64043)
  [NP] Migrate ui capabilities (elastic#64185)
  Bump karma-mocha dev-dependency from 1.3.0 to 2.0.0 (elastic#64407)
  Migrate kql_telemetry saved object registration to Kibana platform (elastic#64149)
  Remove SO autocreateindex error and error page (elastic#64037)
  Fix issue with yarn.lock (elastic#64496)
  Bump @hapi/boom dependency from 7.4.2 to 7.4.11 (elastic#64433)
  Bump gonzales-pe dev-dependency from 4.2.4 to 4.3.0 (elastic#64401)
  Bump karma dev-dependency from 3.1.4 to 5.0.2 (elastic#64403)
  Bump iedriver dev-dependency from 3.14.1 to 3.14.2 (elastic#64406)
  Revert "disable flaky suite (elastic#64382) (elastic#64381) (elastic#64480)"
  Revert "skip flaky suite (elastic#64310)"
  skip flaky suite (elastic#64310)
  disable flaky suite (elastic#64382) (elastic#64381) (elastic#64480)
  [Maps] Include maps styles in embeddables factory so that they're bundled w/ consuming plugins (elastic#64460)
  update charts library to 18.4.2 (elastic#64438)
  ...
rudolf added a commit that referenced this pull request Apr 27, 2020
* Remove SO root property index signature

* Update documentation
jloleysens added a commit to jloleysens/kibana that referenced this pull request Apr 28, 2020
…bana into pipeline-editor-part-mvp-2

* 'feature/ingest-node-pipelines' of github.com:elastic/kibana: (152 commits)
  [Ingest pipelines] Simulate pipeline (elastic#64223)
  Ability to get scoped call cluster from alerting and action executors (elastic#64432)
  Add editApp and editPath to embeddable (elastic#64297)
  TSVB validation: Allow numeric values for axes (elastic#63553)
  [ML] Fixing optional plugin dependency types (elastic#64450)
  [Logs UI] Alerting (elastic#62806)
  [Endpoint] Show Policy Status on Host Details using Policy Response API (elastic#64116)
  [Maps] update LayerWizard previewLayer to take layerDescriptor instead of ISource (elastic#64461)
  Remove SO root property index signature (elastic#64434)
  [ML] Functional tests - stabilize job row details validations (elastic#64503)
  [Ingest] Add Global settings flyout (elastic#64276)
  Bump cypress dev-dependency from 4.2.0 to 4.4.1 (elastic#64408)
  Migrate saved object of type url to kibana platform (elastic#64043)
  [NP] Migrate ui capabilities (elastic#64185)
  Bump karma-mocha dev-dependency from 1.3.0 to 2.0.0 (elastic#64407)
  Migrate kql_telemetry saved object registration to Kibana platform (elastic#64149)
  Remove SO autocreateindex error and error page (elastic#64037)
  Fix issue with yarn.lock (elastic#64496)
  Bump @hapi/boom dependency from 7.4.2 to 7.4.11 (elastic#64433)
  Bump gonzales-pe dev-dependency from 4.2.4 to 4.3.0 (elastic#64401)
  ...

# Conflicts:
#	x-pack/plugins/ingest_pipelines/public/application/components/pipeline_form/pipeline_form.tsx
#	x-pack/plugins/ingest_pipelines/public/shared_imports.ts
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Feature:Saved Objects release_note:skip Skip the PR/issue when compiling release notes Team:Core Core services & architecture: plugins, logging, config, saved objects, http, ES client, i18n, etc v7.8.0 v8.0.0
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants