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

Merge Frontend for OpenSearch Integrations #618

Merged
merged 4 commits into from
Jul 11, 2023

Conversation

Swiddis
Copy link
Collaborator

@Swiddis Swiddis commented Jul 10, 2023

Description

PR containing frontend. Breakdown WIP

Issues Resolved

[List any issues this PR will resolve]

Check List

  • New functionality includes testing.
    • All tests pass, including unit test, integration test and doctest
  • New functionality has been documented.
    • New functionality has javadoc added
    • New functionality has user manual doc added
  • Commits are signed per the DCO using --signoff

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>
Signed-off-by: Simeon Widdis <sawiddis@amazon.com>
@codecov
Copy link

codecov bot commented Jul 10, 2023

Codecov Report

Merging #618 (6a05461) into main (14ec857) will increase coverage by 0.21%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##             main     #618      +/-   ##
==========================================
+ Coverage   43.42%   43.63%   +0.21%     
==========================================
  Files         300      313      +13     
  Lines       18113    18594     +481     
  Branches     4447     4484      +37     
==========================================
+ Hits         7866     8114     +248     
- Misses       9712    10438     +726     
+ Partials      535       42     -493     
Flag Coverage Δ
dashboards-observability 43.63% <ø> (+0.21%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

see 92 files with indirect coverage changes

Copy link
Contributor

@pjfitzgibbons pjfitzgibbons left a comment

Choose a reason for hiding this comment

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

Overall good.

Create follow-on PRs for notes and suggestions.

};


describe('Basic sanity test for integrations plugin', () => {
Copy link
Contributor

Choose a reason for hiding this comment

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

Maybe add cleanup on each test.

Copy link
Contributor

Choose a reason for hiding this comment

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

I don't consider this a blocking note. Create a follow-on issue for tracking.

Copy link
Collaborator

Choose a reason for hiding this comment

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

Good call out, sometime I run into issues where i have added too many on my local that it shows up on second page, created an issue: #620

@@ -8,7 +8,9 @@ import { v4 as uuidv4 } from 'uuid';
export const CUSTOM_PANELS_API_PREFIX = '/api/observability/operational_panels';
export const CUSTOM_PANELS_DOCUMENTATION_URL =
'https://opensearch.org/docs/latest/observability-plugin/operational-panels/';
export const CREATE_PANEL_MESSAGE = 'Enter a name to describe the purpose of this Observability Dashboard.';
export const OPENSEARCH_DOCUMENTATION_URL = 'https://opensearch.org/docs/latest';
Copy link
Contributor

Choose a reason for hiding this comment

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

Why this change?
Future of integration is to split it into a separate plugin? - If so, then isolate this constant into a separate file.

Copy link
Collaborator

Choose a reason for hiding this comment

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

Moved to new file

@@ -38,6 +38,16 @@ export const CREATE_TAB_PARAM = {
} as const;
export const HAS_SAVED_TIMESTAMP = 'hasSavedTimestamp';
export const FILTER_OPTIONS = ['Visualization', 'Query', 'Metric'];
export const ASSET_FILTER_OPTIONS = ['index-pattern', 'search', 'visualization', 'dashboard'];
export const INTEGRATION_TEMPLATE_OPTIONS = ['nginx', 'aws_elb'];
Copy link
Contributor

Choose a reason for hiding this comment

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

Also split these constants into separate file for isolation

Copy link
Collaborator

Choose a reason for hiding this comment

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

Done

@@ -52,9 +52,9 @@ export const observabilityPanelsID = 'observability-dashboards';
export const observabilityPanelsTitle = 'Dashboards';
export const observabilityPanelsPluginOrder = 5095;

export const observabilityIntegrationsID = 'observability-integrations';
export const observabilityIntegrationsID = 'integrations';
Copy link
Contributor

Choose a reason for hiding this comment

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

Split for isolation

Copy link
Collaborator

Choose a reason for hiding this comment

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

Renamed, but I think it still makes sense to keep in the same file

@@ -0,0 +1,150 @@
/*
Copy link
Contributor

Choose a reason for hiding this comment

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

I think this file was taken away in Nav/OSD-Nav change.
This might be mistaken merge.

If this is required somehow we need to discuss alternative.

Copy link
Collaborator

Choose a reason for hiding this comment

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

Will remove

helpText,
optionalArgs,
} = props;
const [value, setValue] = useState(openPanelName || ''); // sets input value
Copy link
Contributor

Choose a reason for hiding this comment

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

This would be more meaningful panelName, setPanelName

@@ -0,0 +1,179 @@
/*
Copy link
Contributor

Choose a reason for hiding this comment

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

Dead code?
If not dead code, there are many questions.

Copy link
Collaborator

Choose a reason for hiding this comment

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

Yes dead code, will remove

));
};

if (Object.keys(integration).length === 0) {
Copy link
Contributor

Choose a reason for hiding this comment

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

This might be easier to read/follow/maintain using React Suspense
https://react.dev/reference/react/Suspense

Create a follow-on task to cover this on different PR

Copy link
Collaborator

Choose a reason for hiding this comment

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

Created issue here: #622

@@ -0,0 +1,113 @@
/*
Copy link
Contributor

Choose a reason for hiding this comment

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

All these files are called ..._panel, although there doesn't appear to be any distinguishing feature of the group or between them that suggests "panel". Also the internal class name is not "..Panel".

Consider dropping the file-name suffix to improve clarity.
Create a follow-on task to address this in a separate PR

Copy link
Collaborator

Choose a reason for hiding this comment

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

Created issue here: #621

Copy link
Member

@ps48 ps48 left a comment

Choose a reason for hiding this comment

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

Minor changes requested

@@ -8,7 +8,9 @@ import { v4 as uuidv4 } from 'uuid';
export const CUSTOM_PANELS_API_PREFIX = '/api/observability/operational_panels';
export const CUSTOM_PANELS_DOCUMENTATION_URL =
'https://opensearch.org/docs/latest/observability-plugin/operational-panels/';
export const CREATE_PANEL_MESSAGE = 'Enter a name to describe the purpose of this Observability Dashboard.';
export const OPENSEARCH_DOCUMENTATION_URL = 'https://opensearch.org/docs/latest';
Copy link
Member

Choose a reason for hiding this comment

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

Is this intended to be added?

Copy link
Collaborator

Choose a reason for hiding this comment

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

I think github just made it look weird - it was on line 11 before - but regardless moving this out to its own file as per suggestions above

@@ -12,6 +12,7 @@ import { observabilityID, observabilityTitle } from '../../common/constants/shar
import { store } from '../framework/redux/store';
import { AppPluginStartDependencies } from '../types';
import { Home as ApplicationAnalyticsHome } from './application_analytics/home';
import { Home as PlaceholderHome } from './integrations/home';
Copy link
Member

@ps48 ps48 Jul 10, 2023

Choose a reason for hiding this comment

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

Change name to IntegrationsHome?

Copy link
Collaborator

Choose a reason for hiding this comment

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

Yes good call out - was left over from calling it "Placeholder" Plugin

@@ -0,0 +1,150 @@
/*
Copy link
Member

Choose a reason for hiding this comment

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

I think we can delete this file. This was removed in 2.7

Copy link
Collaborator

Choose a reason for hiding this comment

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

Will remove

export const observabilityIntegrationsTitle = 'Integrations';
export const observabilityIntegrationsPluginOrder = 5096;
export const observabilityIntegrationsPluginOrder = 9020;
Copy link
Member

Choose a reason for hiding this comment

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

Is integrations moving out of the Observability plugin list?

Copy link
Collaborator

Choose a reason for hiding this comment

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

It will go under "Management" Sub group, which starts at 9000

http: HttpStart;
}

export const doTypeValidation = (toCheck: any, required: any): boolean => {
Copy link
Member

Choose a reason for hiding this comment

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

we can remove export from functions that do have a call outside this file.

Copy link
Collaborator

Choose a reason for hiding this comment

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

Actually just checked - it is used in testing file. Found a module that can potentially test unexported functions but don't want to add last minute things at this point - I am leaning towards keeping it as is - what do you think @ps48 ?

Copy link
Member

Choose a reason for hiding this comment

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

yes this is minor, so should be good. I would then move these functions to utils.tsx or something similar, later.

Copy link
Collaborator

Choose a reason for hiding this comment

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

Good idea - created follow up issue: #624

Comment on lines 102 to 103
// value={query}
// onClick = {() => query.current.}
Copy link
Member

Choose a reason for hiding this comment

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

can be removed.

@@ -9,6 +9,7 @@ export function OpenSearchObservabilityPlugin(Client: any, config: any, componen
const clientAction = components.clientAction.factory;

Client.prototype.observability = components.clientAction.namespaceFactory();
Client.prototype.integrations = components.clientAction.namespaceFactory();
Copy link
Member

Choose a reason for hiding this comment

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

I think this is unused, can be removed.

Copy link
Collaborator

Choose a reason for hiding this comment

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

Yes this should be removed

"author": "John Doe",
"sourceUrl": "https://github.com/",
"author": "OpenSearch",
"sourceUrl": "https://github.com/opensearch-project/observability/pull/1493/files",
Copy link
Member

Choose a reason for hiding this comment

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

Not sure if the URL must be link to PR or the asset folder itself in the main/version branch? Cause if Nginx assets change in future, the PR becomes out of date.

Copy link
Collaborator

Choose a reason for hiding this comment

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

Good idea, pointed it to the directory in observability 2.x line

Comment on lines 131 to 165
const getModal = (name: string) => {
setModalLayout(
getAddIntegrationModal(
() => {
addIntegrationRequest(name);
setIsModalVisible(false);
},
() => {
setIsModalVisible(false);
},
'Name',
'Namespace',
'Tags (optional)',
name,
'prod',
'Add Integration Options',
'Cancel',
'Add',
'test'
)
);
setIsModalVisible(true);
};

useEffect(() => {
chrome.setBreadcrumbs([
{
text: 'Integrations',
href: '#/',
},
]);
handleDataRequest();
}, []);

async function handleDataRequest() {
Copy link
Member

Choose a reason for hiding this comment

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

Minor: Any particular reason we keep two styles of declaring functions? Ex.
const getModal = (name: string) is declared as a function object.
async function handleDataRequest() is declared as a JS function
Keeping same style is good for readability.

Copy link
Collaborator

Choose a reason for hiding this comment

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

Good point - it might be because two people were developing 😂 , but yes this is a good suggestion - I created a follow up issue here: #623 (comment).

Comment on lines 131 to 136
// sorting={{
// sort: {
// field: 'dateModified',
// direction: 'desc',
// },
// }}
Copy link
Member

Choose a reason for hiding this comment

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

Can remove this commented code.

@@ -0,0 +1,171 @@
import {
Copy link
Collaborator

Choose a reason for hiding this comment

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

Add license

Signed-off-by: Derek Ho <dxho@amazon.com>
Signed-off-by: Derek Ho <dxho@amazon.com>
@derek-ho
Copy link
Collaborator

@pjfitzgibbons @ps48 thanks for the thorough review - it cleaned up the code a lot. Can you review again? I replied to review comments and where appropriate created follow up issues. Thanks!

@Swiddis Swiddis merged commit fba6d30 into opensearch-project:main Jul 11, 2023
9 checks passed
Swiddis added a commit to Swiddis/dashboards-observability that referenced this pull request Jul 11, 2023
Merge Frontend for OpenSearch Integrations
Swiddis added a commit to Swiddis/dashboards-observability that referenced this pull request Jul 11, 2023
Merge Frontend for OpenSearch Integrations

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>
Swiddis added a commit that referenced this pull request Jul 11, 2023
* Merge pull request #547 from Swiddis/osints/main

Stub router for integrations project

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* Merge pull request #552 from Swiddis/osints/main

Merge in repository classes from osints/dev

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* Merge pull request #559 from Swiddis/copy-repository

Copy integrations repository content

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* Merge pull request #583 from Swiddis/osints/sanitize-paths

Copy path sanitization from osints/dev

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* Merge pull request #615 from Swiddis/osints/main

Merge sample data endpoint from osints/dev

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* Merge pull request #618 from Swiddis/osints/frontend

Merge Frontend for OpenSearch Integrations

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* Merge frontend from osints/dev (#636)

* Remove unused NDJson parsing code

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* Remove unused instance store

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* Move repository logic to own class

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* Add tests for IntegrationsRepository

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* Add tests for kibana backend

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* Hotfix: Clear repository between runs in testing

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* fix tests and import

Signed-off-by: Derek Ho <dxho@amazon.com>

* add sanity test cypress test

Signed-off-by: Derek Ho <dxho@amazon.com>

* clean up code

Signed-off-by: Derek Ho <dxho@amazon.com>

* Add tests for integration builder

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* Hotfix: Swap jest test to it

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* {
  "attributes": {
    "description": "Nginx dashboard with basic Observability on access / error logs",
    "hits": 0,
    "kibanaSavedObjectMeta": {
      "searchSourceJSON": "{\"query\":{\"language\":\"kuery\",\"query\":\"\"},\"filter\":[]}"
    },
    "optionsJSON": "{\"hidePanelTitles\":false,\"useMargins\":true}",
    "panelsJSON": "[{\"version\":\"2.5.0\",\"gridData\":{\"h\":8,\"i\":\"1f31e50b-06e3-41e6-972e-e4e5fe1a9872\",\"w\":48,\"x\":0,\"y\":0},\"panelIndex\":\"1f31e50b-06e3-41e6-972e-e4e5fe1a9872\",\"embeddableConfig\":{},\"panelRefName\":\"panel_0\"},{\"version\":\"2.5.0\",\"gridData\":{\"h\":9,\"i\":\"d91a8da4-b34b-470a-aca6-9c76b47cd6fb\",\"w\":24,\"x\":0,\"y\":8},\"panelIndex\":\"d91a8da4-b34b-470a-aca6-9c76b47cd6fb\",\"embeddableConfig\":{},\"panelRefName\":\"panel_1\"},{\"version\":\"2.5.0\",\"gridData\":{\"h\":15,\"i\":\"27149e5a-3a77-4f3c-800e-8a160c3765f4\",\"w\":24,\"x\":24,\"y\":8},\"panelIndex\":\"27149e5a-3a77-4f3c-800e-8a160c3765f4\",\"embeddableConfig\":{},\"panelRefName\":\"panel_2\"},{\"version\":\"2.5.0\",\"gridData\":{\"x\":0,\"y\":17,\"w\":24,\"h\":15,\"i\":\"4d8c2aa7-159c-4a1a-80ff-00a9299056ce\"},\"panelIndex\":\"4d8c2aa7-159c-4a1a-80ff-00a9299056ce\",\"embeddableConfig\":{},\"panelRefName\":\"panel_3\"},{\"version\":\"2.5.0\",\"gridData\":{\"x\":24,\"y\":23,\"w\":24,\"h\":15,\"i\":\"800b7f19-f50c-417f-8987-21b930531cbe\"},\"panelIndex\":\"800b7f19-f50c-417f-8987-21b930531cbe\",\"embeddableConfig\":{},\"panelRefName\":\"panel_4\"}]",
    "timeRestore": false,
    "title": "[NGINX Core Logs 1.0] Overview",
    "version": 1
  },
  "id": "96847220-5261-44d0-89b4-65f3a659f13a",
  "migrationVersion": {
    "dashboard": "7.9.3"
  },
  "references": [
    {
      "id": "3b49a65d-54d8-483d-a8f0-3d7c855e1ecf",
      "name": "panel_0",
      "type": "visualization"
    },
    {
      "id": "865e577b-634b-4a65-b9d6-7e324c395d18",
      "name": "panel_1",
      "type": "visualization"
    },
    {
      "id": "dc1803f0-b478-11ed-9063-ebe46f9ac203",
      "name": "panel_2",
      "type": "visualization"
    },
    {
      "id": "99acc580-b47a-11ed-9063-ebe46f9ac203",
      "name": "panel_3",
      "type": "visualization"
    },
    {
      "id": "01ea64d0-b62f-11ed-a677-43d7aa86763b",
      "name": "panel_4",
      "type": "visualization"
    }
  ],
  "type": "dashboard",
  "updated_at": "2023-02-26T23:44:09.855Z",
  "version": "WzczLDdd"
}

Signed-off-by: Derek Ho <dxho@amazon.com>

* Stub out sample integration data for front-end

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* Use more realistic integration sample

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* Add full traversal to fields list

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* Add license to integration template

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* add some unit testing framework

Signed-off-by: Derek Ho <dxho@amazon.com>

* fix up the testing name

Signed-off-by: Derek Ho <dxho@amazon.com>

* fix up table view and add a test

Signed-off-by: Derek Ho <dxho@amazon.com>

* add an added integration table test using dummy data

Signed-off-by: Derek Ho <dxho@amazon.com>

* add integration specific types and clean up code

Signed-off-by: Derek Ho <dxho@amazon.com>

* clean up code and use integration specific types

Signed-off-by: Derek Ho <dxho@amazon.com>

* Route integrations page to actual repository

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* Hotfix: Remove unused import

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* Hotfix: Use loading spinner

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* add some changes to UI according to figma

Signed-off-by: Derek Ho <dxho@amazon.com>

* add license headers and hook up get to specific instance for added page

Signed-off-by: Derek Ho <dxho@amazon.com>

* add screenshots and fix up mappings and breadcrumbs

Signed-off-by: Derek Ho <dxho@amazon.com>

* Add failing test case for empty object

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* Make template test pass

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* use flyout according to figma and connect flyout input to backend creation

Signed-off-by: Derek Ho <dxho@amazon.com>

* implement delete

Signed-off-by: Derek Ho <dxho@amazon.com>

* fix up tests for changes

Signed-off-by: Derek Ho <dxho@amazon.com>

* get added page to working order

Signed-off-by: Derek Ho <dxho@amazon.com>

* Add template validator via Ajv

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* Fix builder tests for new validation

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* add unit test coverage

Signed-off-by: Derek Ho <dxho@amazon.com>

* update page and tests to remove added by for integration instances

Signed-off-by: Derek Ho <dxho@amazon.com>

* deleting an instance also deletes its children saved objects

Signed-off-by: Derek Ho <dxho@amazon.com>

* Add integration instance validation

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* update components and snapshots with data-test-subj for cypress tests and add more comprehensive cypress test suite

Signed-off-by: Derek Ho <dxho@amazon.com>

* remove unecessary console logging

Signed-off-by: Derek Ho <dxho@amazon.com>

* Hotfix: Minor code cleanup

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* dynamically handle id generation to allow for multiple instances of the same template to be created

Signed-off-by: Derek Ho <dxho@amazon.com>

* Update integration with fixed panels

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* Apply minor behavior tweaks

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* Refactor repository for new format

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* fix empty assets bug

Signed-off-by: Derek Ho <dxho@amazon.com>

* Write basic FS latest integration queries

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* Update integration template type and validator

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* Add template retrieval to repository fs

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* Add copyright notice to repository_fs

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* fix escape

Signed-off-by: Derek Ho <dxho@amazon.com>

* revert file

Signed-off-by: Derek Ho <dxho@amazon.com>

* fix test

Signed-off-by: Derek Ho <dxho@amazon.com>

* Stub composite repository class

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* Apply minor condition refactor

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* Fill in basic implementation for integration class

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* Add tests for integration class

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* Fix type errors on repository tests

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* Patch: Handle files with invalid version formats

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* Refactor displayAssets to assets

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* Add basic getAssets implementation

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* Add handling for invalid config error case

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* Add handling for failed saved object loading

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* Add basic getStatic method

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* Fix handling for missing statics

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* Remove outdated repository classes

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* Add docs for the integration class

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* Hook up router to new static loading

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* Clarify content-type docs

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* Fix details page crashes due to outdated schema

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* Infer mime type for statics

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* Fix screenshot loading on integrations details page

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* Hotfix: Remove mimetypes from nginx 1.0.0

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* Add getSchemas method with tests

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* Make minor modifications to integration typing

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* Add integration deep check

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* Refactor integration builder

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* Fix remap ID method

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* Fix loading process

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* Refactor tests for new integrations backend

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* Fix type errors in test suite

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* hook up datasource creation from flyout to backend

Signed-off-by: Derek Ho <dxho@amazon.com>

* remove nullable

Signed-off-by: Derek Ho <dxho@amazon.com>

* Add schema route to router

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* Fix frontend request routing for new API

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* Hotfix: Fix added integration errors

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* Hotfix: Add an actual screenshot

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* Hotfix: Remove unused assets folder

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* Hotfix: Use Oui images

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* Make integration instance deletion more robust

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* Remove asset map (again

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* Fix remap data source

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* Correct deletion for actual 404 behavior

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* Add display name field to integrations

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* Apply display name through frontend

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* Hotfix: Use display name on table view

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* Remove unused code in flyout

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* Stub mapping validation on frontend

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* Add error message for failed validation result

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* Fix request to proxy

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* Add more detailed handling for missing schemas

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* Apply integration type in validation

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* Add full schema validation

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* Add unit tests for mapping validation

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* Fix type checking in unit tests

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* create dataSource UI option

Signed-off-by: Derek Ho <dxho@amazon.com>

* Hotfix: Update route for listing added integrations

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* Hotfix: Fix component tests

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* Add basic status querying

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* Add unit tests for availability queries

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* create ss4o index from ui

Signed-off-by: Derek Ho <dxho@amazon.com>

* code cleanup

Signed-off-by: Derek Ho <dxho@amazon.com>

* use user input

Signed-off-by: Derek Ho <dxho@amazon.com>

* Hotfix: Sync package versions with osd

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* Fix path-dependent tests on windows

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* Hotfix: Repair template naming on index autocreation

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* Hotfix: Allow wildcards in index pattern specification

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* Hotfix: Remove redundant integrationType field

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* Hotfix: Remove unused schema files

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* Hotfix: Add sample data

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* move integrations under core (pending ux)

Signed-off-by: Derek Ho <dxho@amazon.com>

* Fix handling for templates on create

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* Merge in kibana backend from osints/dev

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* Add integration type to .kibana from osints/dev

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* Re-add license header

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* hook up toast

Signed-off-by: Derek Ho <dxho@amazon.com>

* Update integration-instance type

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* Hotfix: Fix types again

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* Hotfix: Fix cypress

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* Add sample data endpoint

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* Add license checking to eslint

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* Created elb integration

Signed-off-by: Daniel Dong <danieldong51@amazon.com>

* successfully hook up toast and block until done with for loop

Signed-off-by: Derek Ho <dxho@amazon.com>

* fix and fix test

Signed-off-by: Derek Ho <dxho@amazon.com>

* Added screenshot of elb integration`

Signed-off-by: Daniel Dong <danieldong51@amazon.com>

* Updated aws_elb descriptions and logos

Signed-off-by: Daniel Dong <danieldong51@amazon.com>

* Deleted .DS_Store

Signed-off-by: Daniel Dong <danieldong51@amazon.com>

* Added container in components

Signed-off-by: Daniel Dong <danieldong51@amazon.com>

* Merged markers

Signed-off-by: Daniel Dong <danieldong51@amazon.com>

* Hotfix: Rename installed integrations to added integrations

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* Hotfix: Revert Nginx sample prettifying

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* remove console.log

Signed-off-by: Derek Ho <dxho@amazon.com>

* updates cypress test to test create data source flow with toast

Signed-off-by: Derek Ho <dxho@amazon.com>

* update snapshot based on cypress changes

Signed-off-by: Derek Ho <dxho@amazon.com>

* get rid of extra line

Signed-off-by: Derek Ho <dxho@amazon.com>

* update according to figma

Signed-off-by: Derek Ho <dxho@amazon.com>

* Fix integrations type

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* Sanitize file path for getting integration statics

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* Update tests for merge

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* make some UX improvements

Signed-off-by: Derek Ho <dxho@amazon.com>

* Add basic sample data loading

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* moves integration on left nav, removes unused create flow

Signed-off-by: Derek Ho <dxho@amazon.com>

* hook up sample data to a standalone button

Signed-off-by: Derek Ho <dxho@amazon.com>

* fix tests

Signed-off-by: Derek Ho <dxho@amazon.com>

* implement length validation and update tests accordingly

Signed-off-by: Derek Ho <dxho@amazon.com>

* disable buttons while adding

Signed-off-by: Derek Ho <dxho@amazon.com>

* fix breadcrumbs and tests

Signed-off-by: Derek Ho <dxho@amazon.com>

* update according to figma

Signed-off-by: Derek Ho <dxho@amazon.com>

* maek some changes according to figma

Signed-off-by: Derek Ho <dxho@amazon.com>

* implement tabbing for both added/available and fields/assets

Signed-off-by: Derek Ho <dxho@amazon.com>

* remove status on template, change status to badge on instance and hook up type filtering for added

Signed-off-by: Derek Ho <dxho@amazon.com>

* remove actions

Signed-off-by: Derek Ho <dxho@amazon.com>

* convert to badges

Signed-off-by: Derek Ho <dxho@amazon.com>

* fix tests

Signed-off-by: Derek Ho <dxho@amazon.com>

* remove columns from table

Signed-off-by: Derek Ho <dxho@amazon.com>

* add linking to all assets

Signed-off-by: Derek Ho <dxho@amazon.com>

* fix unit and integration tests

Signed-off-by: Derek Ho <dxho@amazon.com>

* final fix up

Signed-off-by: Derek Ho <dxho@amazon.com>

* fix filtering

Signed-off-by: Derek Ho <dxho@amazon.com>

* final fix up

Signed-off-by: Derek Ho <dxho@amazon.com>

* fix tests

Signed-off-by: Derek Ho <dxho@amazon.com>

* add cateogry filter and fix tests

Signed-off-by: Derek Ho <dxho@amazon.com>

* fix cypress and unit tests

Signed-off-by: Derek Ho <dxho@amazon.com>

* Fix broken index template naming in sample creation

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* Add priority to logs mapping and fix index pattern

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* fix various UI and add validation

Signed-off-by: Derek Ho <dxho@amazon.com>

* add request metrics

Signed-off-by: Derek Ho <dxho@amazon.com>

* fix tests, remove console log

Signed-off-by: Derek Ho <dxho@amazon.com>

* add metrics to links and final UX fix up, test fixes

Signed-off-by: Derek Ho <dxho@amazon.com>

* add back installed

Signed-off-by: Derek Ho <dxho@amazon.com>

* Fix broken nginx panels

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* address pr comments

Signed-off-by: Derek Ho <dxho@amazon.com>

* address pr comments

Signed-off-by: Derek Ho <dxho@amazon.com>

* Hotfix: Fix constants

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* Add learn more link to index field

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* Remove unused AWS ELB integration

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* Remove unused ELB constants

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* Remove redundant EUI spacing

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* Fix snapshots

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* fix relative path

Signed-off-by: Derek Ho <dxho@amazon.com>

---------

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>
Signed-off-by: Derek Ho <dxho@amazon.com>
Signed-off-by: Derek Ho <derek01778@gmail.com>
Signed-off-by: Daniel Dong <danieldong51@amazon.com>
Co-authored-by: Derek Ho <dxho@amazon.com>
Co-authored-by: Derek Ho <derek01778@gmail.com>
Co-authored-by: Daniel Dong <danieldong51@amazon.com>
Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

---------

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>
Signed-off-by: Derek Ho <dxho@amazon.com>
Signed-off-by: Derek Ho <derek01778@gmail.com>
Signed-off-by: Daniel Dong <danieldong51@amazon.com>
Co-authored-by: Derek Ho <dxho@amazon.com>
Co-authored-by: Derek Ho <derek01778@gmail.com>
Co-authored-by: Daniel Dong <danieldong51@amazon.com>
amsiglan pushed a commit to amsiglan/dashboards-observability that referenced this pull request Jun 7, 2024
* Merge pull request opensearch-project#547 from Swiddis/osints/main

Stub router for integrations project

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* Merge pull request opensearch-project#552 from Swiddis/osints/main

Merge in repository classes from osints/dev

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* Merge pull request opensearch-project#559 from Swiddis/copy-repository

Copy integrations repository content

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* Merge pull request opensearch-project#583 from Swiddis/osints/sanitize-paths

Copy path sanitization from osints/dev

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* Merge pull request opensearch-project#615 from Swiddis/osints/main

Merge sample data endpoint from osints/dev

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* Merge pull request opensearch-project#618 from Swiddis/osints/frontend

Merge Frontend for OpenSearch Integrations

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* Merge frontend from osints/dev (opensearch-project#636)

* Remove unused NDJson parsing code

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* Remove unused instance store

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* Move repository logic to own class

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* Add tests for IntegrationsRepository

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* Add tests for kibana backend

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* Hotfix: Clear repository between runs in testing

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* fix tests and import

Signed-off-by: Derek Ho <dxho@amazon.com>

* add sanity test cypress test

Signed-off-by: Derek Ho <dxho@amazon.com>

* clean up code

Signed-off-by: Derek Ho <dxho@amazon.com>

* Add tests for integration builder

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* Hotfix: Swap jest test to it

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* {
  "attributes": {
    "description": "Nginx dashboard with basic Observability on access / error logs",
    "hits": 0,
    "kibanaSavedObjectMeta": {
      "searchSourceJSON": "{\"query\":{\"language\":\"kuery\",\"query\":\"\"},\"filter\":[]}"
    },
    "optionsJSON": "{\"hidePanelTitles\":false,\"useMargins\":true}",
    "panelsJSON": "[{\"version\":\"2.5.0\",\"gridData\":{\"h\":8,\"i\":\"1f31e50b-06e3-41e6-972e-e4e5fe1a9872\",\"w\":48,\"x\":0,\"y\":0},\"panelIndex\":\"1f31e50b-06e3-41e6-972e-e4e5fe1a9872\",\"embeddableConfig\":{},\"panelRefName\":\"panel_0\"},{\"version\":\"2.5.0\",\"gridData\":{\"h\":9,\"i\":\"d91a8da4-b34b-470a-aca6-9c76b47cd6fb\",\"w\":24,\"x\":0,\"y\":8},\"panelIndex\":\"d91a8da4-b34b-470a-aca6-9c76b47cd6fb\",\"embeddableConfig\":{},\"panelRefName\":\"panel_1\"},{\"version\":\"2.5.0\",\"gridData\":{\"h\":15,\"i\":\"27149e5a-3a77-4f3c-800e-8a160c3765f4\",\"w\":24,\"x\":24,\"y\":8},\"panelIndex\":\"27149e5a-3a77-4f3c-800e-8a160c3765f4\",\"embeddableConfig\":{},\"panelRefName\":\"panel_2\"},{\"version\":\"2.5.0\",\"gridData\":{\"x\":0,\"y\":17,\"w\":24,\"h\":15,\"i\":\"4d8c2aa7-159c-4a1a-80ff-00a9299056ce\"},\"panelIndex\":\"4d8c2aa7-159c-4a1a-80ff-00a9299056ce\",\"embeddableConfig\":{},\"panelRefName\":\"panel_3\"},{\"version\":\"2.5.0\",\"gridData\":{\"x\":24,\"y\":23,\"w\":24,\"h\":15,\"i\":\"800b7f19-f50c-417f-8987-21b930531cbe\"},\"panelIndex\":\"800b7f19-f50c-417f-8987-21b930531cbe\",\"embeddableConfig\":{},\"panelRefName\":\"panel_4\"}]",
    "timeRestore": false,
    "title": "[NGINX Core Logs 1.0] Overview",
    "version": 1
  },
  "id": "96847220-5261-44d0-89b4-65f3a659f13a",
  "migrationVersion": {
    "dashboard": "7.9.3"
  },
  "references": [
    {
      "id": "3b49a65d-54d8-483d-a8f0-3d7c855e1ecf",
      "name": "panel_0",
      "type": "visualization"
    },
    {
      "id": "865e577b-634b-4a65-b9d6-7e324c395d18",
      "name": "panel_1",
      "type": "visualization"
    },
    {
      "id": "dc1803f0-b478-11ed-9063-ebe46f9ac203",
      "name": "panel_2",
      "type": "visualization"
    },
    {
      "id": "99acc580-b47a-11ed-9063-ebe46f9ac203",
      "name": "panel_3",
      "type": "visualization"
    },
    {
      "id": "01ea64d0-b62f-11ed-a677-43d7aa86763b",
      "name": "panel_4",
      "type": "visualization"
    }
  ],
  "type": "dashboard",
  "updated_at": "2023-02-26T23:44:09.855Z",
  "version": "WzczLDdd"
}

Signed-off-by: Derek Ho <dxho@amazon.com>

* Stub out sample integration data for front-end

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* Use more realistic integration sample

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* Add full traversal to fields list

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* Add license to integration template

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* add some unit testing framework

Signed-off-by: Derek Ho <dxho@amazon.com>

* fix up the testing name

Signed-off-by: Derek Ho <dxho@amazon.com>

* fix up table view and add a test

Signed-off-by: Derek Ho <dxho@amazon.com>

* add an added integration table test using dummy data

Signed-off-by: Derek Ho <dxho@amazon.com>

* add integration specific types and clean up code

Signed-off-by: Derek Ho <dxho@amazon.com>

* clean up code and use integration specific types

Signed-off-by: Derek Ho <dxho@amazon.com>

* Route integrations page to actual repository

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* Hotfix: Remove unused import

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* Hotfix: Use loading spinner

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* add some changes to UI according to figma

Signed-off-by: Derek Ho <dxho@amazon.com>

* add license headers and hook up get to specific instance for added page

Signed-off-by: Derek Ho <dxho@amazon.com>

* add screenshots and fix up mappings and breadcrumbs

Signed-off-by: Derek Ho <dxho@amazon.com>

* Add failing test case for empty object

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* Make template test pass

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* use flyout according to figma and connect flyout input to backend creation

Signed-off-by: Derek Ho <dxho@amazon.com>

* implement delete

Signed-off-by: Derek Ho <dxho@amazon.com>

* fix up tests for changes

Signed-off-by: Derek Ho <dxho@amazon.com>

* get added page to working order

Signed-off-by: Derek Ho <dxho@amazon.com>

* Add template validator via Ajv

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* Fix builder tests for new validation

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* add unit test coverage

Signed-off-by: Derek Ho <dxho@amazon.com>

* update page and tests to remove added by for integration instances

Signed-off-by: Derek Ho <dxho@amazon.com>

* deleting an instance also deletes its children saved objects

Signed-off-by: Derek Ho <dxho@amazon.com>

* Add integration instance validation

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* update components and snapshots with data-test-subj for cypress tests and add more comprehensive cypress test suite

Signed-off-by: Derek Ho <dxho@amazon.com>

* remove unecessary console logging

Signed-off-by: Derek Ho <dxho@amazon.com>

* Hotfix: Minor code cleanup

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* dynamically handle id generation to allow for multiple instances of the same template to be created

Signed-off-by: Derek Ho <dxho@amazon.com>

* Update integration with fixed panels

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* Apply minor behavior tweaks

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* Refactor repository for new format

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* fix empty assets bug

Signed-off-by: Derek Ho <dxho@amazon.com>

* Write basic FS latest integration queries

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* Update integration template type and validator

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* Add template retrieval to repository fs

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* Add copyright notice to repository_fs

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* fix escape

Signed-off-by: Derek Ho <dxho@amazon.com>

* revert file

Signed-off-by: Derek Ho <dxho@amazon.com>

* fix test

Signed-off-by: Derek Ho <dxho@amazon.com>

* Stub composite repository class

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* Apply minor condition refactor

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* Fill in basic implementation for integration class

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* Add tests for integration class

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* Fix type errors on repository tests

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* Patch: Handle files with invalid version formats

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* Refactor displayAssets to assets

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* Add basic getAssets implementation

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* Add handling for invalid config error case

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* Add handling for failed saved object loading

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* Add basic getStatic method

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* Fix handling for missing statics

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* Remove outdated repository classes

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* Add docs for the integration class

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* Hook up router to new static loading

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* Clarify content-type docs

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* Fix details page crashes due to outdated schema

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* Infer mime type for statics

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* Fix screenshot loading on integrations details page

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* Hotfix: Remove mimetypes from nginx 1.0.0

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* Add getSchemas method with tests

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* Make minor modifications to integration typing

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* Add integration deep check

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* Refactor integration builder

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* Fix remap ID method

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* Fix loading process

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* Refactor tests for new integrations backend

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* Fix type errors in test suite

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* hook up datasource creation from flyout to backend

Signed-off-by: Derek Ho <dxho@amazon.com>

* remove nullable

Signed-off-by: Derek Ho <dxho@amazon.com>

* Add schema route to router

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* Fix frontend request routing for new API

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* Hotfix: Fix added integration errors

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* Hotfix: Add an actual screenshot

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* Hotfix: Remove unused assets folder

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* Hotfix: Use Oui images

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* Make integration instance deletion more robust

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* Remove asset map (again

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* Fix remap data source

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* Correct deletion for actual 404 behavior

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* Add display name field to integrations

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* Apply display name through frontend

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* Hotfix: Use display name on table view

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* Remove unused code in flyout

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* Stub mapping validation on frontend

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* Add error message for failed validation result

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* Fix request to proxy

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* Add more detailed handling for missing schemas

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* Apply integration type in validation

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* Add full schema validation

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* Add unit tests for mapping validation

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* Fix type checking in unit tests

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* create dataSource UI option

Signed-off-by: Derek Ho <dxho@amazon.com>

* Hotfix: Update route for listing added integrations

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* Hotfix: Fix component tests

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* Add basic status querying

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* Add unit tests for availability queries

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* create ss4o index from ui

Signed-off-by: Derek Ho <dxho@amazon.com>

* code cleanup

Signed-off-by: Derek Ho <dxho@amazon.com>

* use user input

Signed-off-by: Derek Ho <dxho@amazon.com>

* Hotfix: Sync package versions with osd

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* Fix path-dependent tests on windows

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* Hotfix: Repair template naming on index autocreation

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* Hotfix: Allow wildcards in index pattern specification

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* Hotfix: Remove redundant integrationType field

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* Hotfix: Remove unused schema files

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* Hotfix: Add sample data

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* move integrations under core (pending ux)

Signed-off-by: Derek Ho <dxho@amazon.com>

* Fix handling for templates on create

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* Merge in kibana backend from osints/dev

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* Add integration type to .kibana from osints/dev

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* Re-add license header

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* hook up toast

Signed-off-by: Derek Ho <dxho@amazon.com>

* Update integration-instance type

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* Hotfix: Fix types again

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* Hotfix: Fix cypress

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* Add sample data endpoint

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* Add license checking to eslint

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* Created elb integration

Signed-off-by: Daniel Dong <danieldong51@amazon.com>

* successfully hook up toast and block until done with for loop

Signed-off-by: Derek Ho <dxho@amazon.com>

* fix and fix test

Signed-off-by: Derek Ho <dxho@amazon.com>

* Added screenshot of elb integration`

Signed-off-by: Daniel Dong <danieldong51@amazon.com>

* Updated aws_elb descriptions and logos

Signed-off-by: Daniel Dong <danieldong51@amazon.com>

* Deleted .DS_Store

Signed-off-by: Daniel Dong <danieldong51@amazon.com>

* Added container in components

Signed-off-by: Daniel Dong <danieldong51@amazon.com>

* Merged markers

Signed-off-by: Daniel Dong <danieldong51@amazon.com>

* Hotfix: Rename installed integrations to added integrations

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* Hotfix: Revert Nginx sample prettifying

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* remove console.log

Signed-off-by: Derek Ho <dxho@amazon.com>

* updates cypress test to test create data source flow with toast

Signed-off-by: Derek Ho <dxho@amazon.com>

* update snapshot based on cypress changes

Signed-off-by: Derek Ho <dxho@amazon.com>

* get rid of extra line

Signed-off-by: Derek Ho <dxho@amazon.com>

* update according to figma

Signed-off-by: Derek Ho <dxho@amazon.com>

* Fix integrations type

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* Sanitize file path for getting integration statics

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* Update tests for merge

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* make some UX improvements

Signed-off-by: Derek Ho <dxho@amazon.com>

* Add basic sample data loading

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* moves integration on left nav, removes unused create flow

Signed-off-by: Derek Ho <dxho@amazon.com>

* hook up sample data to a standalone button

Signed-off-by: Derek Ho <dxho@amazon.com>

* fix tests

Signed-off-by: Derek Ho <dxho@amazon.com>

* implement length validation and update tests accordingly

Signed-off-by: Derek Ho <dxho@amazon.com>

* disable buttons while adding

Signed-off-by: Derek Ho <dxho@amazon.com>

* fix breadcrumbs and tests

Signed-off-by: Derek Ho <dxho@amazon.com>

* update according to figma

Signed-off-by: Derek Ho <dxho@amazon.com>

* maek some changes according to figma

Signed-off-by: Derek Ho <dxho@amazon.com>

* implement tabbing for both added/available and fields/assets

Signed-off-by: Derek Ho <dxho@amazon.com>

* remove status on template, change status to badge on instance and hook up type filtering for added

Signed-off-by: Derek Ho <dxho@amazon.com>

* remove actions

Signed-off-by: Derek Ho <dxho@amazon.com>

* convert to badges

Signed-off-by: Derek Ho <dxho@amazon.com>

* fix tests

Signed-off-by: Derek Ho <dxho@amazon.com>

* remove columns from table

Signed-off-by: Derek Ho <dxho@amazon.com>

* add linking to all assets

Signed-off-by: Derek Ho <dxho@amazon.com>

* fix unit and integration tests

Signed-off-by: Derek Ho <dxho@amazon.com>

* final fix up

Signed-off-by: Derek Ho <dxho@amazon.com>

* fix filtering

Signed-off-by: Derek Ho <dxho@amazon.com>

* final fix up

Signed-off-by: Derek Ho <dxho@amazon.com>

* fix tests

Signed-off-by: Derek Ho <dxho@amazon.com>

* add cateogry filter and fix tests

Signed-off-by: Derek Ho <dxho@amazon.com>

* fix cypress and unit tests

Signed-off-by: Derek Ho <dxho@amazon.com>

* Fix broken index template naming in sample creation

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* Add priority to logs mapping and fix index pattern

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* fix various UI and add validation

Signed-off-by: Derek Ho <dxho@amazon.com>

* add request metrics

Signed-off-by: Derek Ho <dxho@amazon.com>

* fix tests, remove console log

Signed-off-by: Derek Ho <dxho@amazon.com>

* add metrics to links and final UX fix up, test fixes

Signed-off-by: Derek Ho <dxho@amazon.com>

* add back installed

Signed-off-by: Derek Ho <dxho@amazon.com>

* Fix broken nginx panels

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* address pr comments

Signed-off-by: Derek Ho <dxho@amazon.com>

* address pr comments

Signed-off-by: Derek Ho <dxho@amazon.com>

* Hotfix: Fix constants

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* Add learn more link to index field

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* Remove unused AWS ELB integration

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* Remove unused ELB constants

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* Remove redundant EUI spacing

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* Fix snapshots

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

* fix relative path

Signed-off-by: Derek Ho <dxho@amazon.com>

---------

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>
Signed-off-by: Derek Ho <dxho@amazon.com>
Signed-off-by: Derek Ho <derek01778@gmail.com>
Signed-off-by: Daniel Dong <danieldong51@amazon.com>
Co-authored-by: Derek Ho <dxho@amazon.com>
Co-authored-by: Derek Ho <derek01778@gmail.com>
Co-authored-by: Daniel Dong <danieldong51@amazon.com>
Signed-off-by: Simeon Widdis <sawiddis@amazon.com>

---------

Signed-off-by: Simeon Widdis <sawiddis@amazon.com>
Signed-off-by: Derek Ho <dxho@amazon.com>
Signed-off-by: Derek Ho <derek01778@gmail.com>
Signed-off-by: Daniel Dong <danieldong51@amazon.com>
Co-authored-by: Derek Ho <dxho@amazon.com>
Co-authored-by: Derek Ho <derek01778@gmail.com>
Co-authored-by: Daniel Dong <danieldong51@amazon.com>
(cherry picked from commit 55d9954)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants