[Graph] Fix graph saved object references#85295
Merged
flash1293 merged 3 commits intoelastic:masterfrom Dec 10, 2020
Merged
Conversation
Contributor
|
Pinging @elastic/kibana-app (Team:KibanaApp) |
dej611
approved these changes
Dec 9, 2020
Contributor
dej611
left a comment
There was a problem hiding this comment.
Code reviewed 👍 . Only minor comments
dej611
approved these changes
Dec 9, 2020
Contributor
Author
|
@elasticmachine merge upstream |
Contributor
💚 Build SucceededMetrics [docs]Async chunks
Distributable file count
Saved Objects .kibana field count
History
To update your PR or re-run it, just comment with: |
flash1293
added a commit
to flash1293/kibana
that referenced
this pull request
Dec 10, 2020
flash1293
added a commit
that referenced
this pull request
Dec 10, 2020
gmmorris
added a commit
to gmmorris/kibana
that referenced
this pull request
Dec 10, 2020
* master: (53 commits) Fixing recovered instance reference bug (elastic#85412) Switch to new elasticsearch client for Visualizations (elastic#85245) Switch to new elasticsearch client for TSVB (elastic#85275) Switch to new elasticsearch client for Vega (elastic#85280) [ILM] Add shrink field to hot phase (elastic#84087) Add rolling-file appender to core logging (elastic#84735) [APM] Service overview: Dependencies table (elastic#83416) [Uptime ]Update empty message for certs list (elastic#78575) [Graph] Fix graph saved object references (elastic#85295) [APM] Create new API's to return Latency and Throughput charts (elastic#85242) [Advanced settings] Reset to default for empty strings (elastic#85137) [SECURITY SOLUTION] Bundles _source -> Fields + able to sort on multiple fields in Timeline (elastic#83761) [Fleet] Update agent listing for better status reporting (elastic#84798) [APM] enable 'sanitize_field_names' for Go (elastic#85373) Update dependency @elastic/charts to v24.4.0 (elastic#85452) Introduce external url service (elastic#81234) Deprecate disabling the security plugin (elastic#85159) [FLEET] New Integration Policy Details page for use in Integrations section (elastic#85355) [Security Solutions][Detection Engine] Fixes one liner access control with find_rules REST API chore: 🤖 remove extraPublicDirs (elastic#85454) ...
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes #34989
Fixes #34997
This PR fixes saved object references for Graph and makes them importable/exportable.
The problem
Right now, graph does use the reference system, but it's not storing the proper id, but the title of the index pattern instead:
[ { "type": "index-pattern", "name": "indexPattern_0", "id": "titleOfThePattern*" } ]In the serialized state, an
indexPatternRefNameis stored:{ "vertices": [...], "indexPatternRefName": "indexPattern_0" }In
x-pack/plugins/graph/public/services/persistence/saved_workspace_references.tsthe reference is placed inside the state.This part of the code wasn't touched in this PR, as it's already functioning as it should, the only issue being it contains the title instead of the id of the index pattern.
If a user would try to export/import a workspace saved object, they would get errors because the referenced index pattern can't be found.
The solution
This PR resolves this by doing the following changes:
legacyIndexPatternRefproperty (x-pack/plugins/graph/server/saved_objects/migrations.ts)migrateLegacyIndexPatternRef(x-pack/plugins/graph/public/services/persistence/deserialize.ts) is called, which tries to map the index pattern title to the id by searching for it in a list of all index pattern which is anyway fetched for the Graph UI. If it is successful,legacyIndexPatternRefis removed, and the index pattern id is stored in the deserialized workspace statex-pack/plugins/graph/public/services/persistence/serialize.tsandx-pack/plugins/graph/public/services/persistence/saved_workspace_references.ts)Other changes
xpack.graph.loadWorkspace.missingIndexPatternErrorMessagegot improved by including the name of the index pattern causing the problem (either if loading it fails for some reason or if a legacy workspace is opened and thelegacyIndexPatternRefcan't be mapped)x-pack/plugins/graph/server/saved_objects/graph_workspace.tsworkspace saved objects are whitelisted for importing/exportingx-pack/plugins/graph/server/plugin.tsa new UI capability "show" is added to make it possible to enable the edit link in the saved object management page for graph workspaces if the user has at least "read" permissions for the Graph app