Skip to content

Commit 30df712

Browse files
authored
Merge branch '8.x' into backport/8.x/pr-204034
2 parents 07a92c6 + cd1cac1 commit 30df712

58 files changed

Lines changed: 2062 additions & 2381 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

x-pack/solutions/observability/packages/kbn-streams-schema/src/models/index.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@
66
*/
77

88
export * from './ingest';
9-
export * from './legacy';
109

1110
export * from './api';
1211
export * from './core';

x-pack/solutions/observability/packages/kbn-streams-schema/src/models/ingest/processors/index.ts

Lines changed: 17 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -11,14 +11,15 @@ import { Condition, conditionSchema } from '../conditions';
1111
import { createIsNarrowSchema } from '../../../helpers';
1212

1313
export interface ProcessorBase {
14+
description?: string;
1415
if: Condition;
16+
ignore_failure?: boolean;
1517
}
1618

1719
export interface GrokProcessorConfig extends ProcessorBase {
1820
field: string;
1921
patterns: string[];
2022
pattern_definitions?: Record<string, string>;
21-
ignore_failure?: boolean;
2223
ignore_missing?: boolean;
2324
}
2425

@@ -27,17 +28,18 @@ export interface GrokProcessorDefinition {
2728
}
2829

2930
const processorBaseSchema = z.object({
31+
description: z.optional(z.string()),
3032
if: conditionSchema,
33+
ignore_failure: z.optional(z.boolean()),
3134
});
3235

3336
export const grokProcessorDefinitionSchema: z.Schema<GrokProcessorDefinition> = z.strictObject({
3437
grok: z.intersection(
3538
processorBaseSchema,
3639
z.object({
3740
field: NonEmptyString,
38-
patterns: z.array(NonEmptyString),
41+
patterns: z.array(NonEmptyString).nonempty(),
3942
pattern_definitions: z.optional(z.record(z.string())),
40-
ignore_failure: z.optional(z.boolean()),
4143
ignore_missing: z.optional(z.boolean()),
4244
})
4345
),
@@ -47,7 +49,6 @@ export interface DissectProcessorConfig extends ProcessorBase {
4749
field: string;
4850
pattern: string;
4951
append_separator?: string;
50-
ignore_failure?: boolean;
5152
ignore_missing?: boolean;
5253
}
5354

@@ -63,7 +64,6 @@ export const dissectProcessorDefinitionSchema: z.Schema<DissectProcessorDefiniti
6364
field: NonEmptyString,
6465
pattern: NonEmptyString,
6566
append_separator: z.optional(NonEmptyString),
66-
ignore_failure: z.optional(z.boolean()),
6767
ignore_missing: z.optional(z.boolean()),
6868
})
6969
),
@@ -78,7 +78,7 @@ export type ProcessorConfig = BodyOf<ProcessorDefinition>;
7878

7979
export type ProcessorType = UnionKeysOf<ProcessorDefinition>;
8080

81-
type ProcessorTypeOf<TProcessorDefinition extends ProcessorDefinition> =
81+
export type ProcessorTypeOf<TProcessorDefinition extends ProcessorDefinition> =
8282
UnionKeysOf<TProcessorDefinition> & ProcessorType;
8383

8484
export const processorDefinitionSchema: z.ZodType<ProcessorDefinition> = z.union([
@@ -96,15 +96,20 @@ export const isDissectProcessorDefinition = createIsNarrowSchema(
9696
dissectProcessorDefinitionSchema
9797
);
9898

99+
const processorTypes: ProcessorType[] = (processorDefinitionSchema as z.ZodUnion<any>).options.map(
100+
(option: z.ZodUnion<any>['options'][number]) => Object.keys(option.shape)[0]
101+
);
102+
99103
export function getProcessorType<TProcessorDefinition extends ProcessorDefinition>(
100104
processor: TProcessorDefinition
101105
): ProcessorTypeOf<TProcessorDefinition> {
102-
return Object.keys(processor)[0] as ProcessorTypeOf<TProcessorDefinition>;
106+
return processorTypes.find((type) => type in processor) as ProcessorTypeOf<TProcessorDefinition>;
103107
}
104108

105-
export function getProcessorConfig(processor: ProcessorDefinition): ProcessorConfig {
106-
if ('grok' in processor) {
107-
return processor.grok;
108-
}
109-
return processor.dissect;
109+
export function getProcessorConfig<TProcessorDefinition extends ProcessorDefinition>(
110+
processor: TProcessorDefinition
111+
): ProcessorConfig {
112+
const type = getProcessorType(processor);
113+
114+
return processor[type as keyof TProcessorDefinition];
110115
}

x-pack/solutions/observability/packages/kbn-streams-schema/src/models/legacy.ts

Lines changed: 0 additions & 94 deletions
This file was deleted.

x-pack/solutions/observability/plugins/observability_onboarding/public/application/onboarding_flow_form/onboarding_flow_form.tsx

Lines changed: 27 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -26,12 +26,13 @@ import { css } from '@emotion/react';
2626

2727
import { useSearchParams } from 'react-router-dom-v5-compat';
2828
import { useKibana } from '@kbn/kibana-react-plugin/public';
29-
import { OnboardingFlowPackageList } from '../packages_list';
29+
import { IntegrationCardItem } from '@kbn/fleet-plugin/public';
30+
import { PackageListSearchForm } from '../package_list_search_form/package_list_search_form';
3031
import { Category } from './types';
31-
import { useCustomCardsForCategory } from './use_custom_cards_for_category';
32-
import { useVirtualSearchResults } from './use_virtual_search_results';
32+
import { useCustomCards } from './use_custom_cards';
3333
import { LogoIcon, SupportedLogo } from '../shared/logo_icon';
3434
import { ObservabilityOnboardingAppServices } from '../..';
35+
import { PackageList } from '../package_list/package_list';
3536

3637
interface UseCaseOption {
3738
id: Category;
@@ -147,11 +148,25 @@ export const OnboardingFlowForm: FunctionComponent = () => {
147148
[] // eslint-disable-line react-hooks/exhaustive-deps
148149
);
149150

150-
const customCards = useCustomCardsForCategory(
151-
createCollectionCardHandler,
152-
searchParams.get('category') as Category | null
153-
);
154-
const virtualSearchResults = useVirtualSearchResults();
151+
const featuredCardsForCategoryMap: Record<Category, string[]> = {
152+
host: ['auto-detect-logs', 'otel-logs'],
153+
kubernetes: ['kubernetes-quick-start', 'otel-kubernetes'],
154+
application: ['apm-virtual', 'otel-virtual', 'synthetics-virtual'],
155+
cloud: ['azure-logs-virtual', 'aws-logs-virtual', 'gcp-logs-virtual'],
156+
};
157+
const customCards = useCustomCards(createCollectionCardHandler);
158+
const featuredCardsForCategory: IntegrationCardItem[] = customCards.filter((card) => {
159+
const category = searchParams.get('category') as Category;
160+
161+
if (category === null) {
162+
return false;
163+
}
164+
165+
const cardList = featuredCardsForCategoryMap[category] ?? [];
166+
167+
return cardList.includes(card.id);
168+
});
169+
155170
/**
156171
* Cloud deployments have the new Firehose quick start
157172
* flow enabled, so the ond card 'epr:awsfirehose' should
@@ -272,7 +287,7 @@ export const OnboardingFlowForm: FunctionComponent = () => {
272287
</EuiFlexGrid>
273288
{/* Hiding element instead of not rending these elements in order to preload available packages on page load */}
274289
<div
275-
hidden={!searchParams.get('category') || !customCards}
290+
hidden={featuredCardsForCategory.length === 0}
276291
role="group"
277292
aria-labelledby={packageListTitleId}
278293
>
@@ -310,11 +325,7 @@ export const OnboardingFlowForm: FunctionComponent = () => {
310325
</strong>
311326
</EuiTitle>
312327
<EuiSpacer size="m" />
313-
<OnboardingFlowPackageList
314-
customCards={customCards}
315-
flowSearch={integrationSearch}
316-
flowCategory={searchParams.get('category')}
317-
/>
328+
<PackageList list={featuredCardsForCategory} />
318329
</div>
319330
</div>
320331

@@ -329,20 +340,12 @@ export const OnboardingFlowForm: FunctionComponent = () => {
329340
</strong>
330341
</EuiText>
331342
<EuiSpacer size="m" />
332-
<OnboardingFlowPackageList
333-
showSearchBar={true}
343+
<PackageListSearchForm
334344
searchQuery={integrationSearch}
335-
flowSearch={integrationSearch}
336345
setSearchQuery={setIntegrationSearch}
337346
flowCategory={searchParams.get('category')}
338-
customCards={(customCards || [])
339-
.filter(
340-
// Filter out collection cards and regular integrations that show up via search anyway
341-
(card) => card.type === 'virtual' && !card.isCollectionCard
342-
)
343-
.concat(virtualSearchResults)}
347+
customCards={customCards.filter((card) => !card.isCollectionCard)}
344348
excludePackageIdList={searchExcludePackageIdList}
345-
joinCardLists
346349
/>
347350
</div>
348351
</EuiPanel>

0 commit comments

Comments
 (0)