Skip to content

Commit 23455bb

Browse files
committed
fixed error caused by editing a preconfigured conenctor
1 parent 3dbbafc commit 23455bb

File tree

21 files changed

+161
-100
lines changed

21 files changed

+161
-100
lines changed

x-pack/plugins/triggers_actions_ui/public/application/components/builtin_action_types/email/email.tsx

+2-2
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,9 @@
66
import { lazy } from 'react';
77
import { i18n } from '@kbn/i18n';
88
import { ActionTypeModel, ValidationResult } from '../../../../types';
9-
import { EmailActionParams, EmailActionConnector } from '../types';
9+
import { EmailActionParams, EmailConfig, EmailSecrets, EmailActionConnector } from '../types';
1010

11-
export function getActionType(): ActionTypeModel<EmailActionConnector, EmailActionParams> {
11+
export function getActionType(): ActionTypeModel<EmailConfig, EmailSecrets, EmailActionParams> {
1212
const mailformat = /^[^@\s]+@[^@\s]+$/;
1313
return {
1414
id: '.email',

x-pack/plugins/triggers_actions_ui/public/application/components/builtin_action_types/es_index/es_index.tsx

+2-2
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,9 @@
66
import { lazy } from 'react';
77
import { i18n } from '@kbn/i18n';
88
import { ActionTypeModel, ValidationResult } from '../../../../types';
9-
import { EsIndexActionConnector, IndexActionParams } from '../types';
9+
import { EsIndexActionConnector, EsIndexConfig, IndexActionParams } from '../types';
1010

11-
export function getActionType(): ActionTypeModel<EsIndexActionConnector, IndexActionParams> {
11+
export function getActionType(): ActionTypeModel<EsIndexConfig, unknown, IndexActionParams> {
1212
return {
1313
id: '.index',
1414
iconClass: 'indexOpen',

x-pack/plugins/triggers_actions_ui/public/application/components/builtin_action_types/jira/jira.tsx

+10-9
Original file line numberDiff line numberDiff line change
@@ -8,19 +8,20 @@ import { lazy } from 'react';
88
import { ValidationResult, ActionTypeModel } from '../../../../types';
99
import { connectorConfiguration } from './config';
1010
import logo from './logo.svg';
11-
import { JiraActionConnector, JiraActionParams } from './types';
11+
import { JiraActionConnector, JiraConfig, JiraSecrets, JiraActionParams } from './types';
1212
import * as i18n from './translations';
1313
import { isValidUrl } from '../../../lib/value_validators';
1414

1515
const validateConnector = (action: JiraActionConnector): ValidationResult => {
16-
const validationResult = { errors: {} };
17-
const errors = {
18-
apiUrl: new Array<string>(),
19-
projectKey: new Array<string>(),
20-
email: new Array<string>(),
21-
apiToken: new Array<string>(),
16+
const validationResult = {
17+
errors: {
18+
apiUrl: new Array<string>(),
19+
projectKey: new Array<string>(),
20+
email: new Array<string>(),
21+
apiToken: new Array<string>(),
22+
},
2223
};
23-
validationResult.errors = errors;
24+
const { errors } = validationResult;
2425

2526
if (!action.config.apiUrl) {
2627
errors.apiUrl = [...errors.apiUrl, i18n.API_URL_REQUIRED];
@@ -45,7 +46,7 @@ const validateConnector = (action: JiraActionConnector): ValidationResult => {
4546
return validationResult;
4647
};
4748

48-
export function getActionType(): ActionTypeModel<JiraActionConnector, JiraActionParams> {
49+
export function getActionType(): ActionTypeModel<JiraConfig, JiraSecrets, JiraActionParams> {
4950
return {
5051
id: connectorConfiguration.id,
5152
iconClass: logo,

x-pack/plugins/triggers_actions_ui/public/application/components/builtin_action_types/jira/jira_params.test.tsx

+2-1
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import { coreMock } from 'src/core/public/mocks';
1111

1212
import { useGetIssueTypes } from './use_get_issue_types';
1313
import { useGetFieldsByIssueType } from './use_get_fields_by_issue_type';
14+
import { ActionConnector } from '../../../../types';
1415

1516
jest.mock('./use_get_issue_types');
1617
jest.mock('./use_get_fields_by_issue_type');
@@ -33,7 +34,7 @@ const actionParams = {
3334
externalId: null,
3435
},
3536
};
36-
const connector = {
37+
const connector: ActionConnector = {
3738
secrets: {},
3839
config: {},
3940
id: 'test',

x-pack/plugins/triggers_actions_ui/public/application/components/builtin_action_types/jira/types.ts

+4-6
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,9 @@
55
*/
66

77
import { CasesConfigurationMapping } from '../case_mappings';
8+
import { UserConfiguredActionConnector } from '../../../../types';
89

9-
export interface JiraActionConnector {
10-
config: JiraConfig;
11-
secrets: JiraSecrets;
12-
}
10+
export type JiraActionConnector = UserConfiguredActionConnector<JiraConfig, JiraSecrets>;
1311

1412
export interface JiraActionParams {
1513
subAction: string;
@@ -29,14 +27,14 @@ interface IncidentConfiguration {
2927
mapping: CasesConfigurationMapping[];
3028
}
3129

32-
interface JiraConfig {
30+
export interface JiraConfig {
3331
apiUrl: string;
3432
projectKey: string;
3533
incidentConfiguration?: IncidentConfiguration;
3634
isCaseOwned?: boolean;
3735
}
3836

39-
interface JiraSecrets {
37+
export interface JiraSecrets {
4038
email: string;
4139
apiToken: string;
4240
}

x-pack/plugins/triggers_actions_ui/public/application/components/builtin_action_types/pagerduty/pagerduty.tsx

+12-2
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,20 @@ import { lazy } from 'react';
77
import { i18n } from '@kbn/i18n';
88
import moment from 'moment';
99
import { ActionTypeModel, ValidationResult } from '../../../../types';
10-
import { PagerDutyActionParams, PagerDutyActionConnector } from '.././types';
10+
import {
11+
PagerDutyActionConnector,
12+
PagerDutyConfig,
13+
PagerDutySecrets,
14+
PagerDutyActionParams,
15+
} from '.././types';
1116
import pagerDutySvg from './pagerduty.svg';
1217
import { hasMustacheTokens } from '../../../lib/has_mustache_tokens';
1318

14-
export function getActionType(): ActionTypeModel {
19+
export function getActionType(): ActionTypeModel<
20+
PagerDutyConfig,
21+
PagerDutySecrets,
22+
PagerDutyActionParams
23+
> {
1524
return {
1625
id: '.pagerduty',
1726
iconClass: pagerDutySvg,
@@ -33,6 +42,7 @@ export function getActionType(): ActionTypeModel {
3342
routingKey: new Array<string>(),
3443
};
3544
validationResult.errors = errors;
45+
3646
if (!action.secrets.routingKey) {
3747
errors.routingKey.push(
3848
i18n.translate(

x-pack/plugins/triggers_actions_ui/public/application/components/builtin_action_types/resilient/resilient.tsx

+11-2
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,12 @@ import { lazy } from 'react';
88
import { ValidationResult, ActionTypeModel } from '../../../../types';
99
import { connectorConfiguration } from './config';
1010
import logo from './logo.svg';
11-
import { ResilientActionConnector, ResilientActionParams } from './types';
11+
import {
12+
ResilientActionConnector,
13+
ResilientConfig,
14+
ResilientSecrets,
15+
ResilientActionParams,
16+
} from './types';
1217
import * as i18n from './translations';
1318
import { isValidUrl } from '../../../lib/value_validators';
1419

@@ -45,7 +50,11 @@ const validateConnector = (action: ResilientActionConnector): ValidationResult =
4550
return validationResult;
4651
};
4752

48-
export function getActionType(): ActionTypeModel<ResilientActionConnector, ResilientActionParams> {
53+
export function getActionType(): ActionTypeModel<
54+
ResilientConfig,
55+
ResilientSecrets,
56+
ResilientActionParams
57+
> {
4958
return {
5059
id: connectorConfiguration.id,
5160
iconClass: logo,

x-pack/plugins/triggers_actions_ui/public/application/components/builtin_action_types/resilient/types.ts

+7-6
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,12 @@
55
*/
66

77
import { CasesConfigurationMapping } from '../case_mappings';
8+
import { UserConfiguredActionConnector } from '../../../../types';
89

9-
export interface ResilientActionConnector {
10-
config: ResilientConfig;
11-
secrets: ResilientSecrets;
12-
}
10+
export type ResilientActionConnector = UserConfiguredActionConnector<
11+
ResilientConfig,
12+
ResilientSecrets
13+
>;
1314

1415
export interface ResilientActionParams {
1516
subAction: string;
@@ -28,14 +29,14 @@ interface IncidentConfiguration {
2829
mapping: CasesConfigurationMapping[];
2930
}
3031

31-
interface ResilientConfig {
32+
export interface ResilientConfig {
3233
apiUrl: string;
3334
orgId: string;
3435
incidentConfiguration?: IncidentConfiguration;
3536
isCaseOwned?: boolean;
3637
}
3738

38-
interface ResilientSecrets {
39+
export interface ResilientSecrets {
3940
apiKeyId: string;
4041
apiKeySecret: string;
4142
}

x-pack/plugins/triggers_actions_ui/public/application/components/builtin_action_types/server_log/server_log.test.tsx

+4-3
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
*/
66
import { TypeRegistry } from '../../../type_registry';
77
import { registerBuiltInActionTypes } from '.././index';
8-
import { ActionTypeModel, ActionConnector } from '../../../../types';
8+
import { ActionTypeModel, UserConfiguredActionConnector } from '../../../../types';
99

1010
const ACTION_TYPE_ID = '.server-log';
1111
let actionTypeModel: ActionTypeModel;
@@ -28,13 +28,14 @@ describe('actionTypeRegistry.get() works', () => {
2828

2929
describe('server-log connector validation', () => {
3030
test('connector validation succeeds when connector config is valid', () => {
31-
const actionConnector = {
31+
const actionConnector: UserConfiguredActionConnector<{}, {}> = {
3232
secrets: {},
3333
id: 'test',
3434
actionTypeId: '.server-log',
3535
name: 'server-log',
3636
config: {},
37-
} as ActionConnector;
37+
isPreconfigured: false,
38+
};
3839

3940
expect(actionTypeModel.validateConnector(actionConnector)).toEqual({
4041
errors: {},

x-pack/plugins/triggers_actions_ui/public/application/components/builtin_action_types/server_log/server_log.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import { i18n } from '@kbn/i18n';
88
import { ActionTypeModel, ValidationResult } from '../../../../types';
99
import { ServerLogActionParams } from '../types';
1010

11-
export function getActionType(): ActionTypeModel<unknown, ServerLogActionParams> {
11+
export function getActionType(): ActionTypeModel<unknown, unknown, ServerLogActionParams> {
1212
return {
1313
id: '.server-log',
1414
iconClass: 'logsApp',

x-pack/plugins/triggers_actions_ui/public/application/components/builtin_action_types/servicenow/servicenow.tsx

+8-2
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,12 @@ import { lazy } from 'react';
88
import { ValidationResult, ActionTypeModel } from '../../../../types';
99
import { connectorConfiguration } from './config';
1010
import logo from './logo.svg';
11-
import { ServiceNowActionConnector, ServiceNowActionParams } from './types';
11+
import {
12+
ServiceNowActionConnector,
13+
ServiceNowConfig,
14+
ServiceNowSecrets,
15+
ServiceNowActionParams,
16+
} from './types';
1217
import * as i18n from './translations';
1318
import { isValidUrl } from '../../../lib/value_validators';
1419

@@ -41,7 +46,8 @@ const validateConnector = (action: ServiceNowActionConnector): ValidationResult
4146
};
4247

4348
export function getActionType(): ActionTypeModel<
44-
ServiceNowActionConnector,
49+
ServiceNowConfig,
50+
ServiceNowSecrets,
4551
ServiceNowActionParams
4652
> {
4753
return {

x-pack/plugins/triggers_actions_ui/public/application/components/builtin_action_types/servicenow/types.ts

+7-6
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,12 @@
55
*/
66

77
import { CasesConfigurationMapping } from '../case_mappings';
8+
import { UserConfiguredActionConnector } from '../../../../types';
89

9-
export interface ServiceNowActionConnector {
10-
config: ServiceNowConfig;
11-
secrets: ServiceNowSecrets;
12-
}
10+
export type ServiceNowActionConnector = UserConfiguredActionConnector<
11+
ServiceNowConfig,
12+
ServiceNowSecrets
13+
>;
1314

1415
export interface ServiceNowActionParams {
1516
subAction: string;
@@ -29,13 +30,13 @@ interface IncidentConfiguration {
2930
mapping: CasesConfigurationMapping[];
3031
}
3132

32-
interface ServiceNowConfig {
33+
export interface ServiceNowConfig {
3334
apiUrl: string;
3435
incidentConfiguration?: IncidentConfiguration;
3536
isCaseOwned?: boolean;
3637
}
3738

38-
interface ServiceNowSecrets {
39+
export interface ServiceNowSecrets {
3940
username: string;
4041
password: string;
4142
}

x-pack/plugins/triggers_actions_ui/public/application/components/builtin_action_types/slack/slack.tsx

+2-2
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,9 @@
66
import { lazy } from 'react';
77
import { i18n } from '@kbn/i18n';
88
import { ActionTypeModel, ValidationResult } from '../../../../types';
9-
import { SlackActionParams, SlackActionConnector } from '../types';
9+
import { SlackActionParams, SlackSecrets, SlackActionConnector } from '../types';
1010

11-
export function getActionType(): ActionTypeModel<SlackActionConnector, SlackActionParams> {
11+
export function getActionType(): ActionTypeModel<unknown, SlackSecrets, SlackActionParams> {
1212
return {
1313
id: '.slack',
1414
iconClass: 'logoSlack',

x-pack/plugins/triggers_actions_ui/public/application/components/builtin_action_types/types.ts

+17-27
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
* or more contributor license agreements. Licensed under the Elastic License;
44
* you may not use this file except in compliance with the Elastic License.
55
*/
6-
import { ActionConnector } from '../../../types';
6+
import { UserConfiguredActionConnector } from '../../../types';
77

88
export interface EmailActionParams {
99
to: string[];
@@ -64,66 +64,56 @@ export interface WebhookActionParams {
6464
body?: string;
6565
}
6666

67-
interface EmailConfig {
67+
export interface EmailConfig {
6868
from: string;
6969
host: string;
7070
port: number;
7171
secure?: boolean;
7272
}
7373

74-
interface EmailSecrets {
74+
export interface EmailSecrets {
7575
user: string | null;
7676
password: string | null;
7777
}
7878

79-
export interface EmailActionConnector extends ActionConnector {
80-
config: EmailConfig;
81-
secrets: EmailSecrets;
82-
}
79+
export type EmailActionConnector = UserConfiguredActionConnector<EmailConfig, EmailSecrets>;
8380

84-
interface EsIndexConfig {
81+
export interface EsIndexConfig {
8582
index: string;
8683
executionTimeField?: string | null;
8784
refresh?: boolean;
8885
}
8986

90-
export interface EsIndexActionConnector extends ActionConnector {
91-
config: EsIndexConfig;
92-
}
87+
export type EsIndexActionConnector = UserConfiguredActionConnector<EsIndexConfig, unknown>;
9388

94-
interface PagerDutyConfig {
89+
export interface PagerDutyConfig {
9590
apiUrl?: string;
9691
}
9792

98-
interface PagerDutySecrets {
93+
export interface PagerDutySecrets {
9994
routingKey: string;
10095
}
10196

102-
export interface PagerDutyActionConnector extends ActionConnector {
103-
config: PagerDutyConfig;
104-
secrets: PagerDutySecrets;
105-
}
97+
export type PagerDutyActionConnector = UserConfiguredActionConnector<
98+
PagerDutyConfig,
99+
PagerDutySecrets
100+
>;
106101

107-
interface SlackSecrets {
102+
export interface SlackSecrets {
108103
webhookUrl: string;
109104
}
110105

111-
export interface SlackActionConnector extends ActionConnector {
112-
secrets: SlackSecrets;
113-
}
106+
export type SlackActionConnector = UserConfiguredActionConnector<unknown, SlackSecrets>;
114107

115-
interface WebhookConfig {
108+
export interface WebhookConfig {
116109
method: string;
117110
url: string;
118111
headers: Record<string, string>;
119112
}
120113

121-
interface WebhookSecrets {
114+
export interface WebhookSecrets {
122115
user: string;
123116
password: string;
124117
}
125118

126-
export interface WebhookActionConnector extends ActionConnector {
127-
config: WebhookConfig;
128-
secrets: WebhookSecrets;
129-
}
119+
export type WebhookActionConnector = UserConfiguredActionConnector<WebhookConfig, WebhookSecrets>;

0 commit comments

Comments
 (0)