Skip to content

Remove SO root property index signature#64434

Merged
rudolf merged 3 commits intoelastic:masterfrom
rudolf:rm-so-index-signature
Apr 27, 2020
Merged

Remove SO root property index signature#64434
rudolf merged 3 commits intoelastic:masterfrom
rudolf:rm-so-index-signature

Conversation

@rudolf
Copy link
Copy Markdown
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 Platform Core services: plugins, logging, config, saved objects, http, ES client, i18n, etc t// 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
Copy Markdown
Contributor

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

acl: 'anyone',
migrationVersion: {},
});
} as SavedObjectUnsanitizedDoc);
Copy link
Copy Markdown
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
Copy Markdown
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
return (
(doc[prop] && doc[prop].latestVersion) ||
((doc as any)[prop] && (doc as any)[prop].latestVersion) ||
(doc.migrationVersion && (doc as any).migrationVersion[prop])
Copy link
Copy Markdown
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
Copy Markdown
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
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

SGTM

acl: 'anyone',
migrationVersion: {},
});
} as SavedObjectUnsanitizedDoc);
Copy link
Copy Markdown
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
Copy Markdown
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 Platform Core services: plugins, logging, config, saved objects, http, ES client, i18n, etc t// v7.8.0 v8.0.0

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants