mirror of
https://github.com/elastic/kibana.git
synced 2025-04-23 09:19:04 -04:00
[Fleet] Add lint rule/fix for import
order groups (#93300)
## Problem Blocks of 10-15 `import`s are common in the plugin and there a few places which have ~50 lines of `import`s. It makes it more difficult to understand the where/why of what's being imported. We've had instances while files import from the same module in different lines. i.e. ```ts import { a } from './file'; ... 5-10 lines later import { b } from './file'; ``` ## Proposed solution Add a lint rule to enforce a convention on the module `import` order. This can help in the same way Prettier & ESLint help to format type signatures or other code. It makes it easier to understand or notice any changes in the code. It's also able to be fixed automatically (`node scripts/eslint.js --fix` or any existing "format on save" in an editor). ## This PR replaces #92980 (based on https://github.com/elastic/kibana/pull/92980#pullrequestreview-601070556) ### Lint rulef9be98d
Add eslint rule to enforce/autofix import group order. Use the same rule as a few other plugins. Groups `import` statements by type as shown in the [lint rule docs](https://github.com/benmosher/eslint-plugin-import/blob/master/docs/rules/order.md#importorder-enforce-a-convention-in-module-import-order ). The order is: 1. node "builtin" modules 2. "external" modules 3. "internal" modules 4. modules from a "parent" directory 5. "sibling" modules from the same or a sibling's directory, "index" of the current directory, everything else e.g. ```typescript import fs from 'fs'; import path from 'path'; import _ from 'lodash'; import chalk from 'chalk'; import foo from 'src/foo'; import foo from '../foo'; import qux from '../../foo/qux'; import bar from './bar'; import baz from './bar/baz'; import main from './'; ``` The [lint rule](https://github.com/benmosher/eslint-plugin-import/blob/master/docs/rules/order.md#importorder-enforce-a-convention-in-module-import-order) is relatively light handed. It only ensures the `imports` are groups together in the given order. It doesn't alphabetize or otherwise sort the order of the files. e.g. imports aren't rewritten to be in alphabetical order. This is fine ```ts import from './c'; import from './a'; import from './b'; ``` The [docs show other options](https://github.com/benmosher/eslint-plugin-import/blob/master/docs/rules/order.md#options) and2831f02bc7/.eslintrc.js (L1138-L1168)
uses many of them ### Newlines option The newlines settings means a change from something like ```typescript import fs from 'fs'; import path from 'path'; import _ from 'lodash'; import chalk from 'chalk'; import foo from 'src/foo'; import foo from '../foo'; import qux from '../../foo/qux'; import bar from './bar'; import baz from './bar/baz'; import main from './'; ``` to ```typescript import fs from 'fs'; import path from 'path'; import _ from 'lodash'; import chalk from 'chalk'; import foo from 'src/foo'; import foo from '../foo'; import qux from '../../foo/qux'; import bar from './bar'; import baz from './bar/baz'; import main from './'; ``` Added it as a separate commit2831f02
in case we want to avoid it, but I believe it's an improvement overall. Especially on the files with 25+ lines of imports. Even the "worst case" of something like this isn't bad (IMO). Especially since it's an automatic reformat like anything else in prettier ```typescript import fs from 'fs'; import _ from 'lodash'; import foo from '../foo'; import main from './'; ```
This commit is contained in:
parent
9dd395b452
commit
b5522ed30c
298 changed files with 664 additions and 182 deletions
16
.eslintrc.js
16
.eslintrc.js
|
@ -789,6 +789,22 @@ module.exports = {
|
|||
},
|
||||
},
|
||||
|
||||
/**
|
||||
* Fleet overrides
|
||||
*/
|
||||
{
|
||||
files: ['x-pack/plugins/fleet/**/*.{js,mjs,ts,tsx}'],
|
||||
rules: {
|
||||
'import/order': [
|
||||
'warn',
|
||||
{
|
||||
groups: ['builtin', 'external', 'internal', 'parent'],
|
||||
'newlines-between': 'always-and-inside-groups',
|
||||
},
|
||||
],
|
||||
},
|
||||
},
|
||||
|
||||
/**
|
||||
* Security Solution overrides
|
||||
*/
|
||||
|
|
|
@ -5,9 +5,10 @@
|
|||
* 2.0.
|
||||
*/
|
||||
|
||||
import { defaultPackages } from './epm';
|
||||
import type { AgentPolicy } from '../types';
|
||||
|
||||
import { defaultPackages } from './epm';
|
||||
|
||||
export const AGENT_POLICY_SAVED_OBJECT_TYPE = 'ingest-agent-policies';
|
||||
export const AGENT_POLICY_INDEX = '.fleet-policies';
|
||||
export const agentPolicyStatuses = {
|
||||
|
|
|
@ -6,6 +6,7 @@
|
|||
*/
|
||||
|
||||
import { safeDump } from 'js-yaml';
|
||||
|
||||
import type { FullAgentPolicy } from '../types';
|
||||
|
||||
const POLICY_KEYS_ORDER = [
|
||||
|
|
|
@ -5,9 +5,10 @@
|
|||
* 2.0.
|
||||
*/
|
||||
|
||||
import { isAgentUpgradeable } from './is_agent_upgradeable';
|
||||
import type { Agent } from '../types/models/agent';
|
||||
|
||||
import { isAgentUpgradeable } from './is_agent_upgradeable';
|
||||
|
||||
const getAgent = ({
|
||||
version,
|
||||
upgradeable = false,
|
||||
|
|
|
@ -7,6 +7,7 @@
|
|||
|
||||
import semverCoerce from 'semver/functions/coerce';
|
||||
import semverLt from 'semver/functions/lt';
|
||||
|
||||
import type { Agent } from '../types';
|
||||
|
||||
export function isAgentUpgradeable(agent: Agent, kibanaVersion: string) {
|
||||
|
|
|
@ -6,6 +6,7 @@
|
|||
*/
|
||||
|
||||
import { Observable, Subscription } from 'rxjs';
|
||||
|
||||
import type { ILicense } from '../../../licensing/common/types';
|
||||
|
||||
// Generic license service class that works with the license observable
|
||||
|
|
|
@ -6,6 +6,7 @@
|
|||
*/
|
||||
|
||||
import type { PackagePolicy, PackagePolicyInput } from '../types';
|
||||
|
||||
import { storedPackagePoliciesToAgentInputs } from './package_policies_to_agent_inputs';
|
||||
|
||||
describe('Fleet - storedPackagePoliciesToAgentInputs', () => {
|
||||
|
|
|
@ -6,6 +6,7 @@
|
|||
*/
|
||||
|
||||
import type { PackageInfo } from '../types';
|
||||
|
||||
import { packageToPackagePolicy, packageToPackagePolicyInputs } from './package_to_package_policy';
|
||||
|
||||
describe('Fleet - packageToPackagePolicy', () => {
|
||||
|
|
|
@ -5,9 +5,10 @@
|
|||
* 2.0.
|
||||
*/
|
||||
|
||||
import type { FullAgentPolicy } from './agent_policy';
|
||||
import { AGENT_TYPE_EPHEMERAL, AGENT_TYPE_PERMANENT, AGENT_TYPE_TEMPORARY } from '../../constants';
|
||||
|
||||
import type { FullAgentPolicy } from './agent_policy';
|
||||
|
||||
export type AgentType =
|
||||
| typeof AGENT_TYPE_EPHEMERAL
|
||||
| typeof AGENT_TYPE_PERMANENT
|
||||
|
|
|
@ -7,6 +7,7 @@
|
|||
|
||||
import { agentPolicyStatuses } from '../../constants';
|
||||
import type { DataType, ValueOf } from '../../types';
|
||||
|
||||
import type { PackagePolicy, PackagePolicyPackage } from './package_policy';
|
||||
import type { Output } from './output';
|
||||
|
||||
|
|
|
@ -8,6 +8,7 @@
|
|||
// Follow pattern from https://github.com/elastic/kibana/pull/52447
|
||||
// TODO: Update when https://github.com/elastic/kibana/issues/53021 is closed
|
||||
import type { SavedObject, SavedObjectAttributes, SavedObjectReference } from 'src/core/public';
|
||||
|
||||
import {
|
||||
ASSETS_SAVED_OBJECT_TYPE,
|
||||
agentAssetTypes,
|
||||
|
@ -17,6 +18,7 @@ import {
|
|||
requiredPackages,
|
||||
} from '../../constants';
|
||||
import type { ValueOf } from '../../types';
|
||||
|
||||
import type { PackageSpecManifest, PackageSpecScreenshot } from './package_spec';
|
||||
|
||||
export type InstallationStatus = typeof installationStatuses;
|
||||
|
|
|
@ -6,6 +6,7 @@
|
|||
*/
|
||||
|
||||
import type { AgentPolicy, NewAgentPolicy, FullAgentPolicy } from '../models';
|
||||
|
||||
import type { ListWithKuery } from './common';
|
||||
|
||||
export interface GetAgentPoliciesRequest {
|
||||
|
|
|
@ -14,6 +14,11 @@ import { FormattedMessage } from '@kbn/i18n/react';
|
|||
import { i18n } from '@kbn/i18n';
|
||||
import styled from 'styled-components';
|
||||
import useObservable from 'react-use/lib/useObservable';
|
||||
|
||||
import { FleetConfigType, FleetStartServices } from '../../plugin';
|
||||
import { KibanaContextProvider } from '../../../../../../src/plugins/kibana_react/public';
|
||||
import { EuiThemeProvider } from '../../../../../../src/plugins/kibana_react/common';
|
||||
|
||||
import {
|
||||
ConfigContext,
|
||||
FleetStatusProvider,
|
||||
|
@ -34,10 +39,7 @@ import { DataStreamApp } from './sections/data_stream';
|
|||
import { FleetApp } from './sections/agents';
|
||||
import { IngestManagerOverview } from './sections/overview';
|
||||
import { ProtectedRoute } from './index';
|
||||
import { FleetConfigType, FleetStartServices } from '../../plugin';
|
||||
import { UIExtensionsStorage } from './types';
|
||||
import { KibanaContextProvider } from '../../../../../../src/plugins/kibana_react/public';
|
||||
import { EuiThemeProvider } from '../../../../../../src/plugins/kibana_react/common';
|
||||
import { UIExtensionsContext } from './hooks/use_ui_extension';
|
||||
|
||||
const ErrorLayout = ({ children }: { children: JSX.Element }) => (
|
||||
|
|
|
@ -9,6 +9,7 @@ import React, { useState } from 'react';
|
|||
import styled from 'styled-components';
|
||||
import { FormattedMessage } from '@kbn/i18n/react';
|
||||
import { EuiText, EuiLink } from '@elastic/eui';
|
||||
|
||||
import { AlphaFlyout } from './alpha_flyout';
|
||||
|
||||
const Message = styled(EuiText).attrs((props) => ({
|
||||
|
|
|
@ -9,6 +9,7 @@ import React from 'react';
|
|||
import styled from 'styled-components';
|
||||
import { EuiText, EuiSpacer, EuiLink, EuiTitle, EuiCodeBlock } from '@elastic/eui';
|
||||
import { FormattedMessage } from '@kbn/i18n/react';
|
||||
|
||||
import { EnrollmentAPIKey } from '../../../types';
|
||||
|
||||
interface Props {
|
||||
|
|
|
@ -7,6 +7,7 @@
|
|||
|
||||
import React, { memo, ReactNode, Suspense } from 'react';
|
||||
import { EuiErrorBoundary } from '@elastic/eui';
|
||||
|
||||
import { Loading } from './loading';
|
||||
|
||||
export const ExtensionWrapper = memo<{ children: ReactNode }>(({ children }) => {
|
||||
|
|
|
@ -9,8 +9,10 @@ import React, { memo, useState, useEffect } from 'react';
|
|||
import { FormattedMessage } from '@kbn/i18n/react';
|
||||
import { EuiButtonEmpty } from '@elastic/eui';
|
||||
import type { TutorialDirectoryHeaderLinkComponent } from 'src/plugins/home/public';
|
||||
|
||||
import { RedirectAppLinks } from '../../../../../../../../src/plugins/kibana_react/public';
|
||||
import { useLink, useCapabilities, useStartServices } from '../../hooks';
|
||||
|
||||
import { tutorialDirectoryNoticeState$ } from './tutorial_directory_notice';
|
||||
|
||||
const TutorialDirectoryHeaderLink: TutorialDirectoryHeaderLinkComponent = memo(() => {
|
||||
|
|
|
@ -19,6 +19,7 @@ import {
|
|||
EuiSpacer,
|
||||
} from '@elastic/eui';
|
||||
import type { TutorialDirectoryNoticeComponent } from 'src/plugins/home/public';
|
||||
|
||||
import { RedirectAppLinks } from '../../../../../../../../src/plugins/kibana_react/public';
|
||||
import {
|
||||
sendPutSettings,
|
||||
|
|
|
@ -9,6 +9,7 @@ import React, { memo } from 'react';
|
|||
import { FormattedMessage } from '@kbn/i18n/react';
|
||||
import { EuiText, EuiLink, EuiSpacer } from '@elastic/eui';
|
||||
import { TutorialModuleNoticeComponent } from 'src/plugins/home/public';
|
||||
|
||||
import { useGetPackages, useLink, useCapabilities } from '../../hooks';
|
||||
import { pkgKeyFromPackageInfo } from '../../services/pkg_key_from_package_info';
|
||||
|
||||
|
|
|
@ -7,6 +7,7 @@
|
|||
|
||||
import React, { memo } from 'react';
|
||||
import { EuiLink, EuiLinkAnchorProps } from '@elastic/eui';
|
||||
|
||||
import { useLink } from '../hooks';
|
||||
import { AGENT_SAVED_OBJECT_TYPE } from '../constants';
|
||||
|
||||
|
|
|
@ -7,6 +7,7 @@
|
|||
|
||||
import React from 'react';
|
||||
import { EuiIcon, EuiIconProps } from '@elastic/eui';
|
||||
|
||||
import { usePackageIconType, UsePackageIconType } from '../hooks';
|
||||
|
||||
export const PackageIcon: React.FunctionComponent<
|
||||
|
|
|
@ -6,6 +6,7 @@
|
|||
*/
|
||||
|
||||
import React, { useState, useEffect, useMemo } from 'react';
|
||||
|
||||
import {
|
||||
QueryStringInput,
|
||||
IFieldType,
|
||||
|
|
|
@ -27,6 +27,7 @@ import {
|
|||
import { FormattedMessage } from '@kbn/i18n/react';
|
||||
import { EuiText } from '@elastic/eui';
|
||||
import { safeLoad } from 'js-yaml';
|
||||
|
||||
import {
|
||||
useComboInput,
|
||||
useStartServices,
|
||||
|
|
|
@ -7,7 +7,9 @@
|
|||
|
||||
import { i18n } from '@kbn/i18n';
|
||||
import { ChromeBreadcrumb } from 'src/core/public';
|
||||
|
||||
import { BASE_PATH, Page, DynamicPagePathValues, pagePathGetters } from '../constants';
|
||||
|
||||
import { useStartServices } from './use_core';
|
||||
|
||||
const BASE_BREADCRUMB: ChromeBreadcrumb = {
|
||||
|
|
|
@ -6,6 +6,7 @@
|
|||
*/
|
||||
|
||||
import React, { useContext } from 'react';
|
||||
|
||||
import type { FleetConfigType } from '../../../plugin';
|
||||
|
||||
export const ConfigContext = React.createContext<FleetConfigType | null>(null);
|
||||
|
|
|
@ -6,9 +6,11 @@
|
|||
*/
|
||||
|
||||
import React, { useState, useContext, useEffect } from 'react';
|
||||
|
||||
import { GetFleetStatusResponse } from '../types';
|
||||
|
||||
import { useConfig } from './use_config';
|
||||
import { sendGetFleetStatus } from './use_request';
|
||||
import { GetFleetStatusResponse } from '../types';
|
||||
|
||||
interface FleetStatusState {
|
||||
enabled: boolean;
|
||||
|
|
|
@ -8,6 +8,7 @@
|
|||
import React, { memo, useContext, useMemo } from 'react';
|
||||
import { AppMountParameters } from 'kibana/public';
|
||||
import { useLocation } from 'react-router-dom';
|
||||
|
||||
import { AnyIntraAppRouteState } from '../types';
|
||||
|
||||
interface IntraAppState<S extends AnyIntraAppRouteState = AnyIntraAppRouteState> {
|
||||
|
|
|
@ -7,6 +7,7 @@
|
|||
|
||||
import { BASE_PATH, pagePathGetters } from '../constants';
|
||||
import type { StaticPage, DynamicPage, DynamicPagePathValues } from '../constants';
|
||||
|
||||
import { useStartServices } from './';
|
||||
|
||||
const getPath = (page: StaticPage | DynamicPage, values: DynamicPagePathValues = {}): string => {
|
||||
|
|
|
@ -7,8 +7,10 @@
|
|||
|
||||
import { useEffect, useState } from 'react';
|
||||
import { ICON_TYPES } from '@elastic/eui';
|
||||
|
||||
import type { PackageInfo, PackageListItem } from '../types';
|
||||
import { useLinks } from '../sections/epm/hooks';
|
||||
|
||||
import { sendGetPackageInfoByKey } from './index';
|
||||
|
||||
type Package = PackageInfo | PackageListItem;
|
||||
|
|
|
@ -5,9 +5,8 @@
|
|||
* 2.0.
|
||||
*/
|
||||
|
||||
import { useRequest, sendRequest, useConditionalRequest } from './use_request';
|
||||
import type { SendConditionalRequestConfig } from './use_request';
|
||||
import { agentPolicyRouteService } from '../../services';
|
||||
|
||||
import type {
|
||||
GetAgentPoliciesRequest,
|
||||
GetAgentPoliciesResponse,
|
||||
|
@ -23,6 +22,9 @@ import type {
|
|||
DeleteAgentPolicyResponse,
|
||||
} from '../../types';
|
||||
|
||||
import { useRequest, sendRequest, useConditionalRequest } from './use_request';
|
||||
import type { SendConditionalRequestConfig } from './use_request';
|
||||
|
||||
export const useGetAgentPolicies = (query?: GetAgentPoliciesRequest['query']) => {
|
||||
return useRequest<GetAgentPoliciesResponse>({
|
||||
path: agentPolicyRouteService.getListPath(),
|
||||
|
|
|
@ -5,9 +5,8 @@
|
|||
* 2.0.
|
||||
*/
|
||||
|
||||
import { useRequest, sendRequest } from './use_request';
|
||||
import type { UseRequestConfig } from './use_request';
|
||||
import { agentRouteService } from '../../services';
|
||||
|
||||
import type {
|
||||
GetOneAgentResponse,
|
||||
GetOneAgentEventsResponse,
|
||||
|
@ -32,6 +31,9 @@ import type {
|
|||
PostNewAgentActionResponse,
|
||||
} from '../../types';
|
||||
|
||||
import { useRequest, sendRequest } from './use_request';
|
||||
import type { UseRequestConfig } from './use_request';
|
||||
|
||||
type RequestOptions = Pick<Partial<UseRequestConfig>, 'pollIntervalMs'>;
|
||||
|
||||
export function useGetOneAgent(agentId: string, options?: RequestOptions) {
|
||||
|
|
|
@ -5,10 +5,11 @@
|
|||
* 2.0.
|
||||
*/
|
||||
|
||||
import { sendRequest } from './use_request';
|
||||
import { appRoutesService } from '../../services';
|
||||
import type { CheckPermissionsResponse } from '../../types';
|
||||
|
||||
import { sendRequest } from './use_request';
|
||||
|
||||
export const sendGetPermissionsCheck = () => {
|
||||
return sendRequest<CheckPermissionsResponse>({
|
||||
path: appRoutesService.getCheckPermissionsPath(),
|
||||
|
|
|
@ -5,10 +5,11 @@
|
|||
* 2.0.
|
||||
*/
|
||||
|
||||
import { useRequest } from './use_request';
|
||||
import { dataStreamRouteService } from '../../services';
|
||||
import type { GetDataStreamsResponse } from '../../types';
|
||||
|
||||
import { useRequest } from './use_request';
|
||||
|
||||
export const useGetDataStreams = () => {
|
||||
return useRequest<GetDataStreamsResponse>({
|
||||
path: dataStreamRouteService.getListPath(),
|
||||
|
|
|
@ -5,15 +5,17 @@
|
|||
* 2.0.
|
||||
*/
|
||||
|
||||
import { useRequest, sendRequest, useConditionalRequest } from './use_request';
|
||||
import type { UseRequestConfig, SendConditionalRequestConfig } from './use_request';
|
||||
import { enrollmentAPIKeyRouteService } from '../../services';
|
||||
|
||||
import type {
|
||||
GetOneEnrollmentAPIKeyResponse,
|
||||
GetEnrollmentAPIKeysResponse,
|
||||
GetEnrollmentAPIKeysRequest,
|
||||
} from '../../types';
|
||||
|
||||
import { useRequest, sendRequest, useConditionalRequest } from './use_request';
|
||||
import type { UseRequestConfig, SendConditionalRequestConfig } from './use_request';
|
||||
|
||||
type RequestOptions = Pick<Partial<UseRequestConfig>, 'pollIntervalMs'>;
|
||||
|
||||
export function useGetOneEnrollmentAPIKey(keyId: string | undefined) {
|
||||
|
|
|
@ -5,7 +5,6 @@
|
|||
* 2.0.
|
||||
*/
|
||||
|
||||
import { useRequest, sendRequest } from './use_request';
|
||||
import { epmRouteService } from '../../services';
|
||||
import type {
|
||||
GetCategoriesRequest,
|
||||
|
@ -19,6 +18,8 @@ import type {
|
|||
} from '../../types';
|
||||
import type { GetStatsResponse } from '../../../../../common';
|
||||
|
||||
import { useRequest, sendRequest } from './use_request';
|
||||
|
||||
export const useGetCategories = (query: GetCategoriesRequest['query'] = {}) => {
|
||||
return useRequest<GetCategoriesResponse>({
|
||||
path: epmRouteService.getCategoriesPath(),
|
||||
|
|
|
@ -5,10 +5,11 @@
|
|||
* 2.0.
|
||||
*/
|
||||
|
||||
import { sendRequest, useRequest } from './use_request';
|
||||
import { outputRoutesService } from '../../services';
|
||||
import type { PutOutputRequest, GetOutputsResponse } from '../../types';
|
||||
|
||||
import { sendRequest, useRequest } from './use_request';
|
||||
|
||||
export function useGetOutputs() {
|
||||
return useRequest<GetOutputsResponse>({
|
||||
method: 'get',
|
||||
|
|
|
@ -5,7 +5,6 @@
|
|||
* 2.0.
|
||||
*/
|
||||
|
||||
import { sendRequest, useRequest } from './use_request';
|
||||
import { packagePolicyRouteService } from '../../services';
|
||||
import type {
|
||||
CreatePackagePolicyRequest,
|
||||
|
@ -21,6 +20,8 @@ import type {
|
|||
GetOnePackagePolicyResponse,
|
||||
} from '../../../../../common/types/rest_spec';
|
||||
|
||||
import { sendRequest, useRequest } from './use_request';
|
||||
|
||||
export const sendCreatePackagePolicy = (body: CreatePackagePolicyRequest['body']) => {
|
||||
return sendRequest<CreatePackagePolicyResponse>({
|
||||
path: packagePolicyRouteService.getCreatePath(),
|
||||
|
|
|
@ -5,10 +5,11 @@
|
|||
* 2.0.
|
||||
*/
|
||||
|
||||
import { sendRequest, useRequest } from './use_request';
|
||||
import { settingsRoutesService } from '../../services';
|
||||
import type { PutSettingsResponse, PutSettingsRequest, GetSettingsResponse } from '../../types';
|
||||
|
||||
import { sendRequest, useRequest } from './use_request';
|
||||
|
||||
export function useGetSettings() {
|
||||
return useRequest<GetSettingsResponse>({
|
||||
method: 'get',
|
||||
|
|
|
@ -5,10 +5,11 @@
|
|||
* 2.0.
|
||||
*/
|
||||
|
||||
import { sendRequest } from './use_request';
|
||||
import { setupRouteService, fleetSetupRouteService } from '../../services';
|
||||
import type { GetFleetStatusResponse } from '../../types';
|
||||
|
||||
import { sendRequest } from './use_request';
|
||||
|
||||
export const sendSetup = () => {
|
||||
return sendRequest({
|
||||
path: setupRouteService.getSetupPath(),
|
||||
|
|
|
@ -7,6 +7,7 @@
|
|||
|
||||
import { useState, useEffect } from 'react';
|
||||
import type { HttpSetup } from 'src/core/public';
|
||||
|
||||
import {
|
||||
UseRequestConfig as _UseRequestConfig,
|
||||
sendRequest as _sendRequest,
|
||||
|
|
|
@ -6,6 +6,7 @@
|
|||
*/
|
||||
|
||||
import React, { useContext } from 'react';
|
||||
|
||||
import type { UIExtensionPoint, UIExtensionsStorage } from '../types';
|
||||
|
||||
export const UIExtensionsContext = React.createContext<UIExtensionsStorage>({});
|
||||
|
|
|
@ -7,6 +7,7 @@
|
|||
|
||||
import { useCallback, useEffect, useMemo } from 'react';
|
||||
import { useHistory, useLocation } from 'react-router-dom';
|
||||
|
||||
import { useUrlParams } from './use_url_params';
|
||||
import { PAGE_SIZE_OPTIONS, usePagination } from './use_pagination';
|
||||
import type { Pagination } from './use_pagination';
|
||||
|
|
|
@ -9,7 +9,9 @@ import React from 'react';
|
|||
import ReactDOM from 'react-dom';
|
||||
import { Redirect, Route, RouteProps } from 'react-router-dom';
|
||||
import { CoreStart, AppMountParameters } from 'src/core/public';
|
||||
|
||||
import { FleetConfigType, FleetStartServices } from '../../plugin';
|
||||
|
||||
import { licenseService } from './hooks';
|
||||
import { UIExtensionsStorage } from './types';
|
||||
import { AppRoutes, FleetAppContext, WithPermissionsAndSetup } from './app';
|
||||
|
|
|
@ -9,6 +9,7 @@ import React from 'react';
|
|||
import styled from 'styled-components';
|
||||
import { EuiTabs, EuiTab, EuiFlexGroup, EuiFlexItem, EuiButtonEmpty } from '@elastic/eui';
|
||||
import { FormattedMessage } from '@kbn/i18n/react';
|
||||
|
||||
import { Section } from '../sections';
|
||||
import { AlphaMessaging, SettingFlyout } from '../components';
|
||||
import { useLink, useConfig } from '../hooks';
|
||||
|
|
|
@ -7,7 +7,9 @@
|
|||
|
||||
import React, { Fragment } from 'react';
|
||||
import { EuiPageBody, EuiSpacer } from '@elastic/eui';
|
||||
|
||||
import { Header, HeaderProps } from '../components';
|
||||
|
||||
import { Page, ContentWrapper } from './without_header';
|
||||
|
||||
export interface WithHeaderLayoutProps extends HeaderProps {
|
||||
|
|
|
@ -8,11 +8,13 @@
|
|||
import { createMemoryHistory, History, createHashHistory } from 'history';
|
||||
import React, { memo } from 'react';
|
||||
import { render as reactRender, RenderOptions, RenderResult, act } from '@testing-library/react';
|
||||
|
||||
import { ScopedHistory } from '../../../../../../../src/core/public';
|
||||
import { FleetAppContext } from '../app';
|
||||
import { FleetConfigType } from '../../../plugin';
|
||||
import { createConfigurationMock } from './plugin_configuration';
|
||||
import { UIExtensionsStorage } from '../types';
|
||||
|
||||
import { createConfigurationMock } from './plugin_configuration';
|
||||
import { createStartMock } from './plugin_interfaces';
|
||||
import { createStartServices } from './fleet_start_services';
|
||||
import { MockedFleetStart, MockedFleetStartServices } from './types';
|
||||
|
|
|
@ -8,10 +8,12 @@
|
|||
import React from 'react';
|
||||
import { I18nProvider } from '@kbn/i18n/react';
|
||||
import { MockedKeys } from '@kbn/utility-types/jest';
|
||||
|
||||
import { coreMock } from '../../../../../../../src/core/public/mocks';
|
||||
import { createStartDepsMock } from './plugin_dependencies';
|
||||
import { IStorage, Storage } from '../../../../../../../src/plugins/kibana_utils/public';
|
||||
import { setHttpClient } from '../hooks/use_request';
|
||||
|
||||
import { createStartDepsMock } from './plugin_dependencies';
|
||||
import { MockedFleetStartServices } from './types';
|
||||
|
||||
// Taken from core. See: src/plugins/kibana_utils/public/storage/storage.test.ts
|
||||
|
|
|
@ -8,6 +8,7 @@
|
|||
import { dataPluginMock } from '../../../../../../../src/plugins/data/public/mocks';
|
||||
import { licensingMock } from '../../../../../licensing/public/mocks';
|
||||
import { homePluginMock } from '../../../../../../../src/plugins/home/public/mocks';
|
||||
|
||||
import type { MockedFleetSetupDeps, MockedFleetStartDeps } from './types';
|
||||
|
||||
export const createSetupDepsMock = (): MockedFleetSetupDeps => {
|
||||
|
|
|
@ -7,6 +7,7 @@
|
|||
|
||||
import type { UIExtensionsStorage } from '../types';
|
||||
import { createExtensionRegistrationCallback } from '../services/ui_extensions';
|
||||
|
||||
import type { MockedFleetStart } from './types';
|
||||
|
||||
export const createStartMock = (extensionsStorage: UIExtensionsStorage = {}): MockedFleetStart => {
|
||||
|
|
|
@ -6,6 +6,7 @@
|
|||
*/
|
||||
|
||||
import type { MockedKeys } from '@kbn/utility-types/jest';
|
||||
|
||||
import type {
|
||||
FleetSetupDeps,
|
||||
FleetStart,
|
||||
|
|
|
@ -8,10 +8,12 @@
|
|||
import React, { memo, useState, useMemo } from 'react';
|
||||
import { FormattedMessage } from '@kbn/i18n/react';
|
||||
import { EuiContextMenuItem, EuiPortal } from '@elastic/eui';
|
||||
|
||||
import { AgentPolicy } from '../../../types';
|
||||
import { useCapabilities } from '../../../hooks';
|
||||
import { ContextMenuActions } from '../../../components';
|
||||
import { AgentEnrollmentFlyout } from '../../agents/components';
|
||||
|
||||
import { AgentPolicyYamlFlyout } from './agent_policy_yaml_flyout';
|
||||
import { AgentPolicyCopyProvider } from './agent_policy_copy_provider';
|
||||
|
||||
|
|
|
@ -9,6 +9,7 @@ import React, { Fragment, useRef, useState } from 'react';
|
|||
import { EuiConfirmModal, EuiFormRow, EuiFieldText } from '@elastic/eui';
|
||||
import { i18n } from '@kbn/i18n';
|
||||
import { FormattedMessage } from '@kbn/i18n/react';
|
||||
|
||||
import { AgentPolicy } from '../../../types';
|
||||
import { sendCopyAgentPolicy, useStartServices } from '../../../hooks';
|
||||
|
||||
|
|
|
@ -9,6 +9,7 @@ import React, { Fragment, useRef, useState } from 'react';
|
|||
import { EuiConfirmModal, EuiCallOut } from '@elastic/eui';
|
||||
import { i18n } from '@kbn/i18n';
|
||||
import { FormattedMessage } from '@kbn/i18n/react';
|
||||
|
||||
import { AGENT_SAVED_OBJECT_TYPE } from '../../../constants';
|
||||
import { sendDeleteAgentPolicy, useStartServices, useConfig, sendRequest } from '../../../hooks';
|
||||
|
||||
|
|
|
@ -24,9 +24,11 @@ import {
|
|||
import { FormattedMessage } from '@kbn/i18n/react';
|
||||
import { i18n } from '@kbn/i18n';
|
||||
import styled from 'styled-components';
|
||||
|
||||
import { dataTypes } from '../../../../../../common';
|
||||
import { NewAgentPolicy, AgentPolicy } from '../../../types';
|
||||
import { isValidNamespace } from '../../../services';
|
||||
|
||||
import { AgentPolicyDeleteProvider } from './agent_policy_delete_provider';
|
||||
|
||||
interface ValidationResults {
|
||||
|
|
|
@ -21,6 +21,7 @@ import {
|
|||
EuiButton,
|
||||
EuiCallOut,
|
||||
} from '@elastic/eui';
|
||||
|
||||
import { useGetOneAgentPolicyFull, useGetOneAgentPolicy, useStartServices } from '../../../hooks';
|
||||
import { Loading } from '../../../components';
|
||||
import { fullAgentPolicyToYaml, agentPolicyRouteService } from '../../../services';
|
||||
|
|
|
@ -9,6 +9,7 @@ import React from 'react';
|
|||
import { EuiCallOut, EuiConfirmModal, EuiSpacer } from '@elastic/eui';
|
||||
import { FormattedMessage } from '@kbn/i18n/react';
|
||||
import { i18n } from '@kbn/i18n';
|
||||
|
||||
import { AgentPolicy } from '../../../types';
|
||||
|
||||
export const ConfirmDeployAgentPolicyModal: React.FunctionComponent<{
|
||||
|
|
|
@ -9,6 +9,7 @@ import React, { Fragment, useMemo, useRef, useState } from 'react';
|
|||
import { EuiCallOut, EuiConfirmModal, EuiSpacer } from '@elastic/eui';
|
||||
import { i18n } from '@kbn/i18n';
|
||||
import { FormattedMessage } from '@kbn/i18n/react';
|
||||
|
||||
import { useStartServices, sendRequest, sendDeletePackagePolicy, useConfig } from '../../../hooks';
|
||||
import { AGENT_API_ROUTES, AGENT_SAVED_OBJECT_TYPE } from '../../../constants';
|
||||
import { AgentPolicy } from '../../../types';
|
||||
|
|
|
@ -17,6 +17,7 @@ import {
|
|||
EuiButtonEmpty,
|
||||
EuiSpacer,
|
||||
} from '@elastic/eui';
|
||||
|
||||
import { WithHeaderLayout } from '../../../../layouts';
|
||||
import { AgentPolicy, PackageInfo } from '../../../../types';
|
||||
import { PackageIcon } from '../../../../components/package_icon';
|
||||
|
|
|
@ -16,12 +16,14 @@ import {
|
|||
EuiSpacer,
|
||||
EuiButtonEmpty,
|
||||
} from '@elastic/eui';
|
||||
|
||||
import { NewPackagePolicyInput, RegistryVarsEntry } from '../../../../types';
|
||||
import {
|
||||
isAdvancedVar,
|
||||
PackagePolicyConfigValidationResults,
|
||||
validationHasErrors,
|
||||
} from '../services';
|
||||
|
||||
import { PackagePolicyInputVarField } from './package_policy_input_var_field';
|
||||
|
||||
const FlexItemWithMaxWidth = styled(EuiFlexItem)`
|
||||
|
|
|
@ -18,6 +18,7 @@ import {
|
|||
EuiHorizontalRule,
|
||||
EuiSpacer,
|
||||
} from '@elastic/eui';
|
||||
|
||||
import {
|
||||
NewPackagePolicyInput,
|
||||
PackagePolicyInputStream,
|
||||
|
@ -29,6 +30,7 @@ import {
|
|||
hasInvalidButRequiredVar,
|
||||
countValidationErrors,
|
||||
} from '../services';
|
||||
|
||||
import { PackagePolicyInputConfig } from './package_policy_input_config';
|
||||
import { PackagePolicyInputStreamConfig } from './package_policy_input_stream';
|
||||
|
||||
|
|
|
@ -18,12 +18,14 @@ import {
|
|||
EuiSpacer,
|
||||
EuiButtonEmpty,
|
||||
} from '@elastic/eui';
|
||||
|
||||
import { NewPackagePolicyInputStream, RegistryStream, RegistryVarsEntry } from '../../../../types';
|
||||
import {
|
||||
isAdvancedVar,
|
||||
PackagePolicyConfigValidationResults,
|
||||
validationHasErrors,
|
||||
} from '../services';
|
||||
|
||||
import { PackagePolicyInputVarField } from './package_policy_input_var_field';
|
||||
|
||||
const FlexItemWithMaxWidth = styled(EuiFlexItem)`
|
||||
|
|
|
@ -16,6 +16,7 @@ import {
|
|||
EuiText,
|
||||
EuiCodeEditor,
|
||||
} from '@elastic/eui';
|
||||
|
||||
import { RegistryVarsEntry } from '../../../../types';
|
||||
|
||||
import 'brace/mode/yaml';
|
||||
|
|
|
@ -5,13 +5,15 @@
|
|||
* 2.0.
|
||||
*/
|
||||
|
||||
import { Route } from 'react-router-dom';
|
||||
import React from 'react';
|
||||
import { act } from 'react-test-renderer';
|
||||
|
||||
import { createTestRendererMock, MockedFleetStartServices, TestRenderer } from '../../../mock';
|
||||
import { PAGE_ROUTING_PATHS, pagePathGetters, PLUGIN_ID } from '../../../constants';
|
||||
import { Route } from 'react-router-dom';
|
||||
import { CreatePackagePolicyPage } from './index';
|
||||
import React from 'react';
|
||||
import { CreatePackagePolicyRouteState } from '../../../types';
|
||||
import { act } from 'react-test-renderer';
|
||||
|
||||
import { CreatePackagePolicyPage } from './index';
|
||||
|
||||
describe('when on the package policy create page', () => {
|
||||
const createPageUrlPath = pagePathGetters.add_integration_to_policy({ pkgkey: 'nginx-0.3.7' });
|
||||
|
|
|
@ -21,6 +21,7 @@ import {
|
|||
} from '@elastic/eui';
|
||||
import { EuiStepProps } from '@elastic/eui/src/components/steps/step';
|
||||
import { ApplicationStart } from 'kibana/public';
|
||||
|
||||
import {
|
||||
AgentPolicy,
|
||||
PackageInfo,
|
||||
|
@ -37,6 +38,13 @@ import {
|
|||
} from '../../../hooks';
|
||||
import { Loading } from '../../../components';
|
||||
import { ConfirmDeployAgentPolicyModal } from '../components';
|
||||
import { useIntraAppState } from '../../../hooks/use_intra_app_state';
|
||||
import { useUIExtension } from '../../../hooks/use_ui_extension';
|
||||
import { ExtensionWrapper } from '../../../components/extension_wrapper';
|
||||
import { PackagePolicyEditExtensionComponentProps } from '../../../types';
|
||||
import { PLUGIN_ID } from '../../../../../../common/constants';
|
||||
import { pkgKeyFromPackageInfo } from '../../../services/pkg_key_from_package_info';
|
||||
|
||||
import { CreatePackagePolicyPageLayout } from './components';
|
||||
import { CreatePackagePolicyFrom, PackagePolicyFormState } from './types';
|
||||
import {
|
||||
|
@ -48,12 +56,6 @@ import { StepSelectPackage } from './step_select_package';
|
|||
import { StepSelectAgentPolicy } from './step_select_agent_policy';
|
||||
import { StepConfigurePackagePolicy } from './step_configure_package';
|
||||
import { StepDefinePackagePolicy } from './step_define_package_policy';
|
||||
import { useIntraAppState } from '../../../hooks/use_intra_app_state';
|
||||
import { useUIExtension } from '../../../hooks/use_ui_extension';
|
||||
import { ExtensionWrapper } from '../../../components/extension_wrapper';
|
||||
import { PackagePolicyEditExtensionComponentProps } from '../../../types';
|
||||
import { PLUGIN_ID } from '../../../../../../common/constants';
|
||||
import { pkgKeyFromPackageInfo } from '../../../services/pkg_key_from_package_info';
|
||||
|
||||
const StepsWithLessPadding = styled(EuiSteps)`
|
||||
.euiStep__content {
|
||||
|
|
|
@ -6,6 +6,7 @@
|
|||
*/
|
||||
|
||||
import type { PackagePolicyConfigRecord, RegistryVarsEntry } from '../../../../types';
|
||||
|
||||
import { validatePackagePolicyConfig } from './';
|
||||
|
||||
export const hasInvalidButRequiredVar = (
|
||||
|
|
|
@ -7,6 +7,7 @@
|
|||
|
||||
import { installationStatuses } from '../../../../../../../common/constants';
|
||||
import type { PackageInfo, NewPackagePolicy, RegistryPolicyTemplate } from '../../../../types';
|
||||
|
||||
import { validatePackagePolicy, validationHasErrors } from './validate_package_policy';
|
||||
|
||||
describe('Fleet - validatePackagePolicy()', () => {
|
||||
|
|
|
@ -7,6 +7,7 @@
|
|||
|
||||
import { i18n } from '@kbn/i18n';
|
||||
import { safeLoad } from 'js-yaml';
|
||||
|
||||
import { getFlattenedObject, isValidNamespace } from '../../../../services';
|
||||
import type {
|
||||
NewPackagePolicy,
|
||||
|
|
|
@ -14,6 +14,7 @@ import {
|
|||
EuiText,
|
||||
} from '@elastic/eui';
|
||||
import { FormattedMessage } from '@kbn/i18n/react';
|
||||
|
||||
import {
|
||||
PackageInfo,
|
||||
RegistryStream,
|
||||
|
@ -21,6 +22,7 @@ import {
|
|||
NewPackagePolicyInput,
|
||||
} from '../../../types';
|
||||
import { Loading } from '../../../components';
|
||||
|
||||
import { PackagePolicyValidationResults } from './services';
|
||||
import { PackagePolicyInputPanel } from './components';
|
||||
import { CreatePackagePolicyFrom } from './types';
|
||||
|
|
|
@ -18,12 +18,14 @@ import {
|
|||
EuiFlexGroup,
|
||||
EuiFlexItem,
|
||||
} from '@elastic/eui';
|
||||
|
||||
import { AgentPolicy, PackageInfo, PackagePolicy, NewPackagePolicy } from '../../../types';
|
||||
import { packageToPackagePolicyInputs } from '../../../services';
|
||||
import { Loading } from '../../../components';
|
||||
import { PackagePolicyValidationResults } from './services';
|
||||
import { pkgKeyFromPackageInfo } from '../../../services/pkg_key_from_package_info';
|
||||
|
||||
import { PackagePolicyValidationResults } from './services';
|
||||
|
||||
export const StepDefinePackagePolicy: React.FunctionComponent<{
|
||||
agentPolicy: AgentPolicy;
|
||||
packageInfo: PackageInfo;
|
||||
|
|
|
@ -19,6 +19,7 @@ import {
|
|||
EuiFormRow,
|
||||
EuiLink,
|
||||
} from '@elastic/eui';
|
||||
|
||||
import { Error } from '../../../components';
|
||||
import { AgentPolicy, PackageInfo, GetAgentPoliciesResponseItem } from '../../../types';
|
||||
import { isPackageLimited, doesAgentPolicyAlreadyIncludePackage } from '../../../services';
|
||||
|
|
|
@ -9,6 +9,7 @@ import React, { useEffect, useState, Fragment } from 'react';
|
|||
import { i18n } from '@kbn/i18n';
|
||||
import { FormattedMessage } from '@kbn/i18n/react';
|
||||
import { EuiFlexGroup, EuiFlexItem, EuiSelectable, EuiSpacer } from '@elastic/eui';
|
||||
|
||||
import { Error } from '../../../components';
|
||||
import { AgentPolicy, PackageInfo, PackagePolicy, GetPackagesResponse } from '../../../types';
|
||||
import {
|
||||
|
|
|
@ -6,7 +6,9 @@
|
|||
*/
|
||||
|
||||
import React, { memo } from 'react';
|
||||
|
||||
import { AgentPolicy, PackagePolicy } from '../../../../../types';
|
||||
|
||||
import { NoPackagePolicies } from './no_package_policies';
|
||||
import { PackagePoliciesTable } from './package_policies_table';
|
||||
|
||||
|
|
|
@ -8,6 +8,7 @@
|
|||
import React, { memo } from 'react';
|
||||
import { FormattedMessage } from '@kbn/i18n/react';
|
||||
import { EuiButton, EuiEmptyPrompt } from '@elastic/eui';
|
||||
|
||||
import { useCapabilities, useLink } from '../../../../../hooks';
|
||||
|
||||
export const NoPackagePolicies = memo<{ policyId: string }>(({ policyId }) => {
|
||||
|
|
|
@ -17,6 +17,7 @@ import {
|
|||
EuiFlexGroup,
|
||||
EuiFlexItem,
|
||||
} from '@elastic/eui';
|
||||
|
||||
import { AgentPolicy, PackagePolicy } from '../../../../../types';
|
||||
import { PackageIcon, ContextMenuActions } from '../../../../../components';
|
||||
import { PackagePolicyDeleteProvider, DangerEuiContextMenuItem } from '../../../components';
|
||||
|
|
|
@ -11,6 +11,7 @@ import styled from 'styled-components';
|
|||
import { EuiBottomBar, EuiFlexGroup, EuiFlexItem, EuiButtonEmpty, EuiButton } from '@elastic/eui';
|
||||
import { i18n } from '@kbn/i18n';
|
||||
import { FormattedMessage } from '@kbn/i18n/react';
|
||||
|
||||
import { AgentPolicy } from '../../../../../types';
|
||||
import {
|
||||
useLink,
|
||||
|
|
|
@ -6,6 +6,7 @@
|
|||
*/
|
||||
|
||||
import React from 'react';
|
||||
|
||||
import { useRequest } from '../../../../hooks';
|
||||
import { GetAgentStatusResponse } from '../../../../types';
|
||||
import { agentRouteService } from '../../../../services';
|
||||
|
|
|
@ -22,6 +22,7 @@ import {
|
|||
} from '@elastic/eui';
|
||||
import { Props as EuiTabProps } from '@elastic/eui/src/components/tabs/tab';
|
||||
import styled from 'styled-components';
|
||||
|
||||
import { AgentPolicy, AgentPolicyDetailsDeployAgentAction } from '../../../types';
|
||||
import { PAGE_ROUTING_PATHS } from '../../../constants';
|
||||
import {
|
||||
|
@ -33,11 +34,12 @@ import {
|
|||
} from '../../../hooks';
|
||||
import { Loading, Error } from '../../../components';
|
||||
import { WithHeaderLayout } from '../../../layouts';
|
||||
import { AgentPolicyRefreshContext, useGetAgentStatus, AgentStatusRefreshContext } from './hooks';
|
||||
import { LinkedAgentCount, AgentPolicyActionMenu } from '../components';
|
||||
import { PackagePoliciesView, SettingsView } from './components';
|
||||
import { useIntraAppState } from '../../../hooks/use_intra_app_state';
|
||||
|
||||
import { AgentPolicyRefreshContext, useGetAgentStatus, AgentStatusRefreshContext } from './hooks';
|
||||
import { PackagePoliciesView, SettingsView } from './components';
|
||||
|
||||
const Divider = styled.div`
|
||||
width: 0;
|
||||
height: 100%;
|
||||
|
|
|
@ -17,6 +17,7 @@ import {
|
|||
EuiFlexItem,
|
||||
EuiSpacer,
|
||||
} from '@elastic/eui';
|
||||
|
||||
import { AgentPolicy, PackageInfo, UpdatePackagePolicy } from '../../../types';
|
||||
import {
|
||||
useLink,
|
||||
|
|
|
@ -7,8 +7,10 @@
|
|||
|
||||
import React from 'react';
|
||||
import { HashRouter as Router, Switch, Route } from 'react-router-dom';
|
||||
|
||||
import { PAGE_ROUTING_PATHS } from '../../constants';
|
||||
import { useBreadcrumbs } from '../../hooks';
|
||||
|
||||
import { AgentPolicyListPage } from './list_page';
|
||||
import { AgentPolicyDetailsPage } from './details_page';
|
||||
import { CreatePackagePolicyPage } from './create_package_policy_page';
|
||||
|
|
|
@ -23,6 +23,7 @@ import {
|
|||
EuiFlyoutProps,
|
||||
EuiSpacer,
|
||||
} from '@elastic/eui';
|
||||
|
||||
import { dataTypes } from '../../../../../../../common';
|
||||
import { NewAgentPolicy, AgentPolicy } from '../../../../types';
|
||||
import { useCapabilities, useStartServices, sendCreateAgentPolicy } from '../../../../hooks';
|
||||
|
|
|
@ -23,6 +23,7 @@ import { CriteriaWithPagination } from '@elastic/eui/src/components/basic_table/
|
|||
import { i18n } from '@kbn/i18n';
|
||||
import { FormattedMessage, FormattedDate } from '@kbn/i18n/react';
|
||||
import { useHistory } from 'react-router-dom';
|
||||
|
||||
import { AgentPolicy } from '../../../types';
|
||||
import { AGENT_POLICY_SAVED_OBJECT_TYPE } from '../../../constants';
|
||||
import { WithHeaderLayout } from '../../../layouts';
|
||||
|
@ -38,6 +39,7 @@ import {
|
|||
} from '../../../hooks';
|
||||
import { LinkAndRevision, SearchBar } from '../../../components';
|
||||
import { LinkedAgentCount, AgentPolicyActionMenu } from '../components';
|
||||
|
||||
import { CreateAgentPolicyFlyout } from './components';
|
||||
|
||||
const AgentPolicyListPageLayout: React.FunctionComponent = ({ children }) => (
|
||||
|
|
|
@ -8,6 +8,7 @@
|
|||
import React, { memo, useState, useMemo } from 'react';
|
||||
import { EuiPortal, EuiContextMenuItem } from '@elastic/eui';
|
||||
import { FormattedMessage } from '@kbn/i18n/react';
|
||||
|
||||
import { Agent } from '../../../../types';
|
||||
import { useCapabilities, useKibanaVersion } from '../../../../hooks';
|
||||
import { ContextMenuActions } from '../../../../components';
|
||||
|
|
|
@ -20,9 +20,11 @@ import {
|
|||
} from '@elastic/eui';
|
||||
import { i18n } from '@kbn/i18n';
|
||||
import styled from 'styled-components';
|
||||
|
||||
import { Agent, AgentPolicy, PackagePolicy, PackagePolicyInput } from '../../../../../types';
|
||||
import { useLink } from '../../../../../hooks';
|
||||
import { PackageIcon } from '../../../../../components';
|
||||
|
||||
import { displayInputType, getLogsQueryByInputType } from './input_type_utils';
|
||||
|
||||
const StyledEuiAccordion = styled(EuiAccordion)`
|
||||
|
|
|
@ -19,6 +19,7 @@ import {
|
|||
} from '@elastic/eui';
|
||||
import { i18n } from '@kbn/i18n';
|
||||
import { FormattedMessage } from '@kbn/i18n/react';
|
||||
|
||||
import { Agent, AgentPolicy } from '../../../../../types';
|
||||
import { useKibanaVersion, useLink } from '../../../../../hooks';
|
||||
import { isAgentUpgradeable } from '../../../../../services';
|
||||
|
|
|
@ -9,7 +9,9 @@ import React, { memo } from 'react';
|
|||
import styled from 'styled-components';
|
||||
import { EuiFlexGroup, EuiFlexItem, EuiTitle, EuiSpacer } from '@elastic/eui';
|
||||
import { FormattedMessage } from '@kbn/i18n/react';
|
||||
|
||||
import { Agent, AgentPolicy } from '../../../../../types';
|
||||
|
||||
import { AgentDetailsOverviewSection } from './agent_details_overview';
|
||||
import { AgentDetailsIntegrationsSection } from './agent_details_integrations';
|
||||
|
||||
|
|
|
@ -6,6 +6,7 @@
|
|||
*/
|
||||
|
||||
import { i18n } from '@kbn/i18n';
|
||||
|
||||
import {
|
||||
STATE_DATASET_FIELD,
|
||||
AGENT_DATASET_FILEBEAT,
|
||||
|
|
|
@ -5,9 +5,10 @@
|
|||
* 2.0.
|
||||
*/
|
||||
|
||||
import url from 'url';
|
||||
|
||||
import React, { memo, useMemo, useState, useCallback, useEffect } from 'react';
|
||||
import styled from 'styled-components';
|
||||
import url from 'url';
|
||||
import { encode } from 'rison-node';
|
||||
import { stringify } from 'query-string';
|
||||
import {
|
||||
|
@ -24,12 +25,14 @@ import useMeasure from 'react-use/lib/useMeasure';
|
|||
import { FormattedMessage } from '@kbn/i18n/react';
|
||||
import semverGte from 'semver/functions/gte';
|
||||
import semverCoerce from 'semver/functions/coerce';
|
||||
|
||||
import { createStateContainerReactHelpers } from '../../../../../../../../../../../src/plugins/kibana_utils/public';
|
||||
import { RedirectAppLinks } from '../../../../../../../../../../../src/plugins/kibana_react/public';
|
||||
import { TimeRange, esKuery } from '../../../../../../../../../../../src/plugins/data/public';
|
||||
import { LogStream } from '../../../../../../../../../infra/public';
|
||||
import { Agent } from '../../../../../types';
|
||||
import { useStartServices } from '../../../../../hooks';
|
||||
|
||||
import { DEFAULT_DATE_RANGE } from './constants';
|
||||
import { DatasetFilter } from './filter_dataset';
|
||||
import { LogLevelFilter } from './filter_log_level';
|
||||
|
|
|
@ -8,7 +8,9 @@
|
|||
import React, { memo, useState, useEffect } from 'react';
|
||||
import { EuiPopover, EuiFilterButton, EuiFilterSelectItem } from '@elastic/eui';
|
||||
import { i18n } from '@kbn/i18n';
|
||||
|
||||
import { useStartServices } from '../../../../../hooks';
|
||||
|
||||
import { AGENT_LOG_INDEX_PATTERN, DATASET_FIELD, AGENT_DATASET } from './constants';
|
||||
|
||||
export const DatasetFilter: React.FunctionComponent<{
|
||||
|
|
|
@ -8,9 +8,11 @@
|
|||
import React, { memo, useState, useEffect } from 'react';
|
||||
import { EuiPopover, EuiFilterButton, EuiFilterSelectItem } from '@elastic/eui';
|
||||
import { i18n } from '@kbn/i18n';
|
||||
import { ORDERED_FILTER_LOG_LEVELS, AGENT_LOG_INDEX_PATTERN, LOG_LEVEL_FIELD } from './constants';
|
||||
|
||||
import { useStartServices } from '../../../../../hooks';
|
||||
|
||||
import { ORDERED_FILTER_LOG_LEVELS, AGENT_LOG_INDEX_PATTERN, LOG_LEVEL_FIELD } from './constants';
|
||||
|
||||
function sortLogLevels(levels: string[]): string[] {
|
||||
return [
|
||||
...new Set([
|
||||
|
|
|
@ -6,6 +6,7 @@
|
|||
*/
|
||||
|
||||
import React, { memo, useEffect, useState, useMemo } from 'react';
|
||||
|
||||
import {
|
||||
createStateContainer,
|
||||
syncState,
|
||||
|
@ -14,6 +15,7 @@ import {
|
|||
PureTransition,
|
||||
getStateFromKbnUrl,
|
||||
} from '../../../../../../../../../../../src/plugins/kibana_utils/public';
|
||||
|
||||
import { DEFAULT_LOGS_STATE, STATE_STORAGE_KEY } from './constants';
|
||||
import { AgentLogsUI, AgentLogsProps, AgentLogsState, AgentLogsUrlStateHelper } from './agent_logs';
|
||||
|
||||
|
|
|
@ -7,11 +7,13 @@
|
|||
|
||||
import React, { memo, useState, useEffect } from 'react';
|
||||
import { i18n } from '@kbn/i18n';
|
||||
|
||||
import {
|
||||
QueryStringInput,
|
||||
IFieldType,
|
||||
} from '../../../../../../../../../../../src/plugins/data/public';
|
||||
import { useStartServices } from '../../../../../hooks';
|
||||
|
||||
import {
|
||||
AGENT_LOG_INDEX_PATTERN,
|
||||
AGENT_ID_FIELD,
|
||||
|
|
|
@ -9,8 +9,10 @@ import React, { memo, useState, useCallback } from 'react';
|
|||
import { i18n } from '@kbn/i18n';
|
||||
import { FormattedMessage } from '@kbn/i18n/react';
|
||||
import { EuiSelect, EuiFormLabel, EuiButtonEmpty, EuiFlexItem, EuiFlexGroup } from '@elastic/eui';
|
||||
|
||||
import { Agent } from '../../../../../types';
|
||||
import { sendPostAgentAction, useStartServices } from '../../../../../hooks';
|
||||
|
||||
import { AGENT_LOG_LEVELS, DEFAULT_LOG_LEVEL } from './constants';
|
||||
|
||||
const LEVEL_VALUES = Object.values(AGENT_LOG_LEVELS);
|
||||
|
|
|
@ -21,6 +21,7 @@ import { Props as EuiTabProps } from '@elastic/eui/src/components/tabs/tab';
|
|||
import { FormattedMessage, FormattedRelative } from '@kbn/i18n/react';
|
||||
import { i18n } from '@kbn/i18n';
|
||||
import { EuiIconTip } from '@elastic/eui';
|
||||
|
||||
import { Agent, AgentPolicy, AgentDetailsReassignPolicyAction } from '../../../types';
|
||||
import { PAGE_ROUTING_PATHS } from '../../../constants';
|
||||
import { Loading, Error } from '../../../components';
|
||||
|
@ -34,11 +35,12 @@ import {
|
|||
} from '../../../hooks';
|
||||
import { WithHeaderLayout } from '../../../layouts';
|
||||
import { AgentHealth } from '../components';
|
||||
import { AgentRefreshContext } from './hooks';
|
||||
import { AgentLogs, AgentDetailsActionMenu, AgentDetailsContent } from './components';
|
||||
import { useIntraAppState } from '../../../hooks/use_intra_app_state';
|
||||
import { isAgentUpgradeable } from '../../../services';
|
||||
|
||||
import { AgentRefreshContext } from './hooks';
|
||||
import { AgentLogs, AgentDetailsActionMenu, AgentDetailsContent } from './components';
|
||||
|
||||
export const AgentDetailsPage: React.FunctionComponent = () => {
|
||||
const {
|
||||
params: { agentId, tabId = '' },
|
||||
|
|
|
@ -18,6 +18,7 @@ import {
|
|||
EuiPortal,
|
||||
} from '@elastic/eui';
|
||||
import { FormattedMessage, FormattedNumber } from '@kbn/i18n/react';
|
||||
|
||||
import { SO_SEARCH_LIMIT } from '../../../../constants';
|
||||
import { Agent } from '../../../../types';
|
||||
import {
|
||||
|
|
|
@ -16,6 +16,7 @@ import {
|
|||
} from '@elastic/eui';
|
||||
import { i18n } from '@kbn/i18n';
|
||||
import { FormattedMessage } from '@kbn/i18n/react';
|
||||
|
||||
import { AgentPolicy } from '../../../../types';
|
||||
import { SearchBar } from '../../../../components';
|
||||
import { AGENTS_INDEX, AGENT_SAVED_OBJECT_TYPE } from '../../../../constants';
|
||||
|
|
|
@ -7,6 +7,7 @@
|
|||
|
||||
import { EuiFlexGroup, EuiHealth, EuiNotificationBadge, EuiFlexItem } from '@elastic/eui';
|
||||
import React, { memo, useMemo } from 'react';
|
||||
|
||||
import {
|
||||
AGENT_STATUSES,
|
||||
getColorForAgentStatus,
|
||||
|
|
|
@ -8,6 +8,7 @@
|
|||
import styled from 'styled-components';
|
||||
import { EuiColorPaletteDisplay } from '@elastic/eui';
|
||||
import React, { useMemo } from 'react';
|
||||
|
||||
import { AGENT_STATUSES, getColorForAgentStatus } from '../../services/agent_status';
|
||||
import { SimplifiedAgentStatus } from '../../../../types';
|
||||
|
||||
|
|
|
@ -7,6 +7,7 @@
|
|||
|
||||
import React from 'react';
|
||||
import { EuiFlexGroup, EuiFlexItem, EuiSpacer } from '@elastic/eui';
|
||||
|
||||
import { Agent, SimplifiedAgentStatus } from '../../../../types';
|
||||
|
||||
import { AgentStatusBar } from './status_bar';
|
||||
|
|
|
@ -21,6 +21,7 @@ import {
|
|||
} from '@elastic/eui';
|
||||
import { i18n } from '@kbn/i18n';
|
||||
import { FormattedMessage, FormattedRelative } from '@kbn/i18n/react';
|
||||
|
||||
import { AgentEnrollmentFlyout } from '../components';
|
||||
import { Agent, AgentPolicy, SimplifiedAgentStatus } from '../../../types';
|
||||
import {
|
||||
|
@ -45,6 +46,7 @@ import {
|
|||
AgentUnenrollAgentModal,
|
||||
AgentUpgradeAgentModal,
|
||||
} from '../components';
|
||||
|
||||
import { AgentTableHeader } from './components/table_header';
|
||||
import { SelectionMode } from './components/bulk_actions';
|
||||
import { SearchAndFilterBar } from './components/search_and_filter_bar';
|
||||
|
|
|
@ -9,6 +9,7 @@ import React, { useState, useEffect } from 'react';
|
|||
import { i18n } from '@kbn/i18n';
|
||||
import { FormattedMessage } from '@kbn/i18n/react';
|
||||
import { EuiSelect, EuiSpacer, EuiText, EuiButtonEmpty } from '@elastic/eui';
|
||||
|
||||
import { SO_SEARCH_LIMIT } from '../../../../constants';
|
||||
import { AgentPolicy, GetEnrollmentAPIKeysResponse } from '../../../../types';
|
||||
import { sendGetEnrollmentAPIKeys, useStartServices } from '../../../../hooks';
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue