mirror of
https://github.com/elastic/kibana.git
synced 2025-04-24 09:48:58 -04:00
## Summary This closes #163788. ## High level overview - Adds a new `kbn-custom-integrations` package. - This package adds a new top level custom integrations state machine, which manages a child create custom integration state machine. In the future we will have additional modes (such as adding a dataset to an existing integration, and various "uplift" flows). - Adds connected (to the machine) components that consumers can use to facilitate custom integration workflows. - Adds a `kbn-xstate-utils` package (as these utils were in 2 plugins and now 1 package). - Replaces the integration creation inside of the onboarding wizard flow with this package. - At the moment this is locked down to `logs`, and one dataset, but it can be easily extended in the future to support all types and multiple datasets. The state machine is ready, it just needs exposed in the UI. - Some thought has gone in to how this will work with multiple "modes", and the foundations are there (imagining that certain types will be unions etc), however it's worth not getting too bogged down in those specific implementation details as I'd rather base that evolution on the real world usage when we have it. The Configure integration section should more or less work the same as before.  ## Testing - When utilising the onboarding flow for custom logs at `/app/observabilityOnboarding/customLogs` can you: - Create a custom integration? (It's worth verifying the network requests, and the assets are installed). - If you navigate forward, then back, make a change to the integration fields, and navigate forward again is the previously created integration deleted? - Is the success callout with the integration name shown on the next wizard panel? - Do field validations work? - Are errors displayed when you try to create an integration with a name that already exists? - Can you retry when there is a server error? (you can block network requests to the custom integrations API to test this) ## Screenshots     ## State machine diagram (The top level management machine is super basic, so this is just the create machine)  ## Followups - Tests (the current onboarding UI implementation doesn't have tests so whilst it's not ideal technically this coverage stays the same) - Storybook - Replace other plugins' usage with xstate-utils (not urgent) --------- Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com> Co-authored-by: Yngrid Coello <yngrid.coello@elastic.co>
9 lines
378 B
TypeScript
9 lines
378 B
TypeScript
/*
|
|
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
|
|
* or more contributor license agreements. Licensed under the Elastic License
|
|
* 2.0 and the Server Side Public License, v 1; you may not use this file except
|
|
* in compliance with, at your election, the Elastic License 2.0 or the Server
|
|
* Side Public License, v 1.
|
|
*/
|
|
|
|
export * from './src';
|