@devtron-labs/devtron-fe-common-lib 0.0.41 → 0.0.42-beta-2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -12,4 +12,4 @@ import { DebouncedSearchProps } from './Types';
12
12
  * @param clearSearch - (Optional) To clear the search text
13
13
  * @param showClearIcon - (Optional) To show the clear icon default value is true
14
14
  */
15
- export default function DebouncedSearch({ onSearch, Icon, children, placeholder, containerClass, iconClass, inputClass, debounceTimeout, clearSearch, showClearIcon, }: DebouncedSearchProps): JSX.Element;
15
+ export default function DebouncedSearch({ onSearch, Icon, children, placeholder, containerClass, iconClass, inputClass, debounceTimeout, clearSearch, showClearIcon, autoFocus, }: DebouncedSearchProps): JSX.Element;
@@ -10,4 +10,5 @@ export interface DebouncedSearchProps {
10
10
  debounceTimeout?: number;
11
11
  clearSearch?: boolean;
12
12
  showClearIcon?: boolean;
13
+ autoFocus?: boolean;
13
14
  }
@@ -9,6 +9,7 @@ export interface DeleteDialogProps {
9
9
  apiCallInProgress?: boolean;
10
10
  dataTestId?: string;
11
11
  buttonPrimaryText?: string;
12
+ shouldStopPropagation?: boolean;
12
13
  }
13
14
  export interface ForceDeleteDialogType {
14
15
  onClickDelete: () => void;
@@ -1,6 +1,7 @@
1
1
  import React, { ReactNode, CSSProperties } from 'react';
2
2
  import { Placement } from 'tippy.js';
3
3
  import { ImageComment, ReleaseTag } from './ImageTags.Types';
4
+ import { DockerConfigOverrideType, TaskErrorObj } from '.';
4
5
  export interface ResponseType {
5
6
  code: number;
6
7
  status: string;
@@ -284,6 +285,7 @@ export interface CommonNodeAttr {
284
285
  colorCode?: string;
285
286
  isExternalCI?: boolean;
286
287
  isLinkedCI?: boolean;
288
+ isLinkedCD?: boolean;
287
289
  isJobCI?: boolean;
288
290
  environmentName?: string;
289
291
  environmentId?: number;
@@ -320,6 +322,7 @@ export interface CommonNodeAttr {
320
322
  };
321
323
  appReleaseTagNames?: string[];
322
324
  tagsEditable?: boolean;
325
+ isGitRequired?: boolean;
323
326
  }
324
327
  export declare enum DeploymentAppTypes {
325
328
  HELM = "helm",
@@ -427,4 +430,138 @@ export interface AsyncState<T> {
427
430
  export interface AsyncOptions {
428
431
  resetOnChange: boolean;
429
432
  }
433
+ export interface AppEnvironment {
434
+ environmentId: number;
435
+ environmentName: string;
436
+ appMetrics: boolean;
437
+ infraMetrics: boolean;
438
+ prod: boolean;
439
+ chartRefId?: number;
440
+ lastDeployed?: string;
441
+ lastDeployedBy?: string;
442
+ lastDeployedImage?: string;
443
+ appStatus?: string;
444
+ deploymentAppDeleteRequest?: boolean;
445
+ isVirtualEnvironment?: boolean;
446
+ isProtected?: boolean;
447
+ pipelineId?: number;
448
+ latestCdWorkflowRunnerId?: number;
449
+ }
450
+ export interface Strategy {
451
+ deploymentTemplate: string;
452
+ config: any;
453
+ default?: boolean;
454
+ }
455
+ export interface CDStage {
456
+ status: string;
457
+ name: string;
458
+ triggerType: 'AUTOMATIC' | 'MANUAL';
459
+ config: string;
460
+ }
461
+ export interface CDStageConfigMapSecretNames {
462
+ configMaps: any[];
463
+ secrets: any[];
464
+ }
465
+ export interface PrePostDeployStageType {
466
+ isValid: boolean;
467
+ steps: TaskErrorObj[];
468
+ triggerType: string;
469
+ name: string;
470
+ status: string;
471
+ }
472
+ export interface CdPipeline {
473
+ id: number;
474
+ environmentId: number;
475
+ environmentName?: string;
476
+ description?: string;
477
+ ciPipelineId: number;
478
+ triggerType: 'AUTOMATIC' | 'MANUAL';
479
+ name: string;
480
+ strategies?: Strategy[];
481
+ namespace?: string;
482
+ appWorkflowId?: number;
483
+ deploymentTemplate?: string;
484
+ preStage?: CDStage;
485
+ postStage?: CDStage;
486
+ preStageConfigMapSecretNames?: CDStageConfigMapSecretNames;
487
+ postStageConfigMapSecretNames?: CDStageConfigMapSecretNames;
488
+ runPreStageInEnv?: boolean;
489
+ runPostStageInEnv?: boolean;
490
+ isClusterCdActive?: boolean;
491
+ parentPipelineId?: number;
492
+ parentPipelineType?: string;
493
+ deploymentAppDeleteRequest?: boolean;
494
+ deploymentAppCreated?: boolean;
495
+ userApprovalConfig?: UserApprovalConfigType;
496
+ isVirtualEnvironment?: boolean;
497
+ deploymentAppType: DeploymentAppTypes;
498
+ helmPackageName?: string;
499
+ preDeployStage?: PrePostDeployStageType;
500
+ postDeployStage?: PrePostDeployStageType;
501
+ isProdEnv?: boolean;
502
+ }
503
+ export interface ExternalCiConfig {
504
+ id: number;
505
+ webhookUrl: string;
506
+ payload: string;
507
+ accessKey: string;
508
+ }
509
+ export interface Source {
510
+ type: string;
511
+ value?: string;
512
+ regex?: string;
513
+ }
514
+ export interface CiMaterial {
515
+ source: Source;
516
+ gitMaterialId: number;
517
+ id: number;
518
+ gitMaterialName: string;
519
+ isRegex?: boolean;
520
+ }
521
+ export interface Task {
522
+ name?: string;
523
+ type?: string;
524
+ cmd?: string;
525
+ args?: Array<string>;
526
+ }
527
+ export interface CiScript {
528
+ id: number;
529
+ index: number;
530
+ name: string;
531
+ script: string;
532
+ outputLocation?: string;
533
+ }
534
+ export interface CiPipeline {
535
+ isManual: boolean;
536
+ dockerArgs?: Map<string, string>;
537
+ isExternal: boolean;
538
+ parentCiPipeline: number;
539
+ parentAppId: number;
540
+ externalCiConfig: ExternalCiConfig;
541
+ ciMaterial?: CiMaterial[];
542
+ name?: string;
543
+ id?: number;
544
+ active?: boolean;
545
+ linkedCount: number;
546
+ scanEnabled: boolean;
547
+ deleted?: boolean;
548
+ version?: string;
549
+ beforeDockerBuild?: Array<Task>;
550
+ afterDockerBuild?: Array<Task>;
551
+ appWorkflowId?: number;
552
+ beforeDockerBuildScripts?: Array<CiScript>;
553
+ afterDockerBuildScripts?: Array<CiScript>;
554
+ isDockerConfigOverridden?: boolean;
555
+ dockerConfigOverride?: DockerConfigOverrideType;
556
+ appName?: string;
557
+ appId?: string;
558
+ componentId?: number;
559
+ isCITriggerBlocked?: boolean;
560
+ ciBlockState?: {
561
+ action: any;
562
+ metadataField: string;
563
+ };
564
+ isOffendingMandatoryPlugin?: boolean;
565
+ pipelineType?: string;
566
+ }
430
567
  export {};
package/dist/index.js CHANGED
@@ -15098,7 +15098,19 @@ ConfirmationDialog.ButtonGroup = ButtonGroup;
15098
15098
  var warn = "data:image/svg+xml,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2248%22%20height%3D%2248%22%20viewBox%3D%220%200%2048%2048%22%3E%20%20%20%20%3Cg%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%20%20%20%20%20%20%20%20%3Cpath%20d%3D%22M0%200h48v48H0z%22%2F%3E%20%20%20%20%20%20%20%20%3Cg%20fill%3D%22%23FFEBEB%22%20stroke%3D%22%23F33E3E%22%20stroke-linejoin%3D%22round%22%20stroke-width%3D%222%22%3E%20%20%20%20%20%20%20%20%20%20%20%20%3Cpath%20d%3D%22M7%2024h24v17a4%204%200%200%201-4%204H11a4%204%200%200%201-4-4V24z%22%2F%3E%20%20%20%20%20%20%20%20%20%20%20%20%3Cpath%20stroke-linecap%3D%22round%22%20d%3D%22M19%2029.5v10M24%2029.5v10M14%2029.5v10%22%2F%3E%20%20%20%20%20%20%20%20%3C%2Fg%3E%20%20%20%20%20%20%20%20%3Cpath%20stroke%3D%22%23F33E3E%22%20stroke-dasharray%3D%2217%2C3%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20stroke-width%3D%222%22%20d%3D%22M42%2010a3%203%200%200%201%200%206H31M38%2023a3%203%200%200%200-3-3h-8%22%2F%3E%20%20%20%20%20%20%20%20%3Cg%20stroke%3D%22%23F33E3E%22%20stroke-linejoin%3D%22round%22%20stroke-width%3D%222%22%20transform%3D%22rotate%28-10%2036.29%20-8.86%29%22%3E%20%20%20%20%20%20%20%20%20%20%20%20%3Crect%20width%3D%2230%22%20height%3D%225%22%20y%3D%226%22%20fill%3D%22%23FFEBEB%22%20rx%3D%221%22%2F%3E%20%20%20%20%20%20%20%20%20%20%20%20%3Cpath%20d%3D%22M11%200h8a2%202%200%200%201%202%202v4H9V2a2%202%200%200%201%202-2z%22%2F%3E%20%20%20%20%20%20%20%20%3C%2Fg%3E%20%20%20%20%3C%2Fg%3E%3C%2Fsvg%3E";
15099
15099
 
15100
15100
  var DeleteDialog = function (props) {
15101
- return (jsxRuntime.jsxs(ConfirmationDialog, __assign({ className: "confirmation-dialog__body--w-400" }, { children: [jsxRuntime.jsx(ConfirmationDialog.Icon, { src: warn }), jsxRuntime.jsx(ConfirmationDialog.Body, __assign({ title: props.title }, { children: jsxRuntime.jsxs("div", __assign({ className: "fs-13 cn-7 lh-1-54 w-100" }, { children: [props.description ? props.description : null, props.children] })) })), jsxRuntime.jsx(ConfirmationDialog.ButtonGroup, { children: jsxRuntime.jsxs("div", __assign({ className: "flex right" }, { children: [jsxRuntime.jsx("button", __assign({ type: "button", className: "cta cancel cta-cd-delete-modal ml-16", onClick: props.closeDelete, disabled: props.apiCallInProgress, "data-testid": "dialog-cancel" }, { children: "Cancel" })), jsxRuntime.jsx("button", __assign({ type: "button", className: "cta delete cta-cd-delete-modal ml-16", onClick: function () { return props.delete(); }, disabled: props.apiCallInProgress, "data-testid": "dialog-delete" }, { children: props.apiCallInProgress ? (jsxRuntime.jsx(Progressing, {})) : ("".concat(props.deletePrefix || '').concat(props.buttonPrimaryText ? props.buttonPrimaryText : 'Delete').concat(props.deletePostfix || '')) }))] })) })] })));
15101
+ var handleDelete = function (e) {
15102
+ if (props.shouldStopPropagation) {
15103
+ e.stopPropagation();
15104
+ }
15105
+ props.delete();
15106
+ };
15107
+ var handleModalClose = function (e) {
15108
+ if (props.shouldStopPropagation) {
15109
+ e.stopPropagation();
15110
+ }
15111
+ props.closeDelete();
15112
+ };
15113
+ return (jsxRuntime.jsxs(ConfirmationDialog, __assign({ className: "confirmation-dialog__body--w-400" }, { children: [jsxRuntime.jsx(ConfirmationDialog.Icon, { src: warn }), jsxRuntime.jsx(ConfirmationDialog.Body, __assign({ title: props.title }, { children: jsxRuntime.jsxs("div", __assign({ className: "fs-13 cn-7 lh-1-54 w-100" }, { children: [props.description ? props.description : null, props.children] })) })), jsxRuntime.jsx(ConfirmationDialog.ButtonGroup, { children: jsxRuntime.jsxs("div", __assign({ className: "flex right" }, { children: [jsxRuntime.jsx("button", __assign({ type: "button", className: "cta cancel cta-cd-delete-modal ml-16", onClick: handleModalClose, disabled: props.apiCallInProgress, "data-testid": "dialog-cancel" }, { children: "Cancel" })), jsxRuntime.jsx("button", __assign({ type: "button", className: "cta delete cta-cd-delete-modal ml-16", onClick: handleDelete, disabled: props.apiCallInProgress, "data-testid": "dialog-delete" }, { children: props.apiCallInProgress ? (jsxRuntime.jsx(Progressing, {})) : ("".concat(props.deletePrefix || '').concat(props.buttonPrimaryText ? props.buttonPrimaryText : 'Delete').concat(props.deletePostfix || '')) }))] })) })] })));
15102
15114
  };
15103
15115
  function DeleteDialogDescription(props) {
15104
15116
  return jsxRuntime.jsx(jsxRuntime.Fragment, { children: props.children });
@@ -23638,8 +23650,8 @@ var SvgIcErrorCross = function SvgIcErrorCross(props) {
23638
23650
  * @param showClearIcon - (Optional) To show the clear icon default value is true
23639
23651
  */
23640
23652
  function DebouncedSearch(_a) {
23641
- var onSearch = _a.onSearch, Icon = _a.Icon, children = _a.children, placeholder = _a.placeholder, _b = _a.containerClass, containerClass = _b === void 0 ? '' : _b, _c = _a.iconClass, iconClass = _c === void 0 ? '' : _c, _d = _a.inputClass, inputClass = _d === void 0 ? '' : _d, _e = _a.debounceTimeout, debounceTimeout = _e === void 0 ? 500 : _e, clearSearch = _a.clearSearch, _f = _a.showClearIcon, showClearIcon = _f === void 0 ? true : _f;
23642
- var _g = __read(React.useState(''), 2), searchText = _g[0], setSearchText = _g[1];
23653
+ var onSearch = _a.onSearch, Icon = _a.Icon, children = _a.children, placeholder = _a.placeholder, _b = _a.containerClass, containerClass = _b === void 0 ? '' : _b, _c = _a.iconClass, iconClass = _c === void 0 ? '' : _c, _d = _a.inputClass, inputClass = _d === void 0 ? '' : _d, _e = _a.debounceTimeout, debounceTimeout = _e === void 0 ? 500 : _e, clearSearch = _a.clearSearch, _f = _a.showClearIcon, showClearIcon = _f === void 0 ? true : _f, _g = _a.autoFocus, autoFocus = _g === void 0 ? true : _g;
23654
+ var _h = __read(React.useState(''), 2), searchText = _h[0], setSearchText = _h[1];
23643
23655
  React.useEffect(function () {
23644
23656
  setSearchText('');
23645
23657
  }, [clearSearch]);
@@ -23649,8 +23661,8 @@ function DebouncedSearch(_a) {
23649
23661
  var handleClearSearch = function () {
23650
23662
  setSearchText('');
23651
23663
  };
23652
- useDebouncedEffect(function () { return onSearch(searchText); }, debounceTimeout, [searchText, onSearch]);
23653
- return (jsxRuntime.jsxs("div", __assign({ className: containerClass }, { children: [Icon && jsxRuntime.jsx(Icon, { className: iconClass }), jsxRuntime.jsx("input", { type: "text", className: inputClass, placeholder: placeholder !== null && placeholder !== void 0 ? placeholder : 'Search', value: searchText, onChange: handleSearchTextChange, autoFocus: true, "data-testid": "debounced-search" }), showClearIcon && !!searchText && (jsxRuntime.jsx("button", __assign({ type: "button", className: "dc__outline-none-imp dc__no-border p-0 bc-n50 flex", onClick: handleClearSearch, "data-testid": "clear-search" }, { children: jsxRuntime.jsx(SvgIcErrorCross, { className: "icon-dim-20 icon-n6" }) }))), children] })));
23664
+ useDebouncedEffect(function () { return onSearch(searchText); }, debounceTimeout, [searchText]);
23665
+ return (jsxRuntime.jsxs("div", __assign({ className: containerClass }, { children: [Icon && jsxRuntime.jsx(Icon, { className: iconClass }), jsxRuntime.jsx("input", { type: "text", className: inputClass, placeholder: placeholder !== null && placeholder !== void 0 ? placeholder : 'Search', value: searchText, onChange: handleSearchTextChange, autoFocus: autoFocus, "data-testid": "debounced-search" }), showClearIcon && !!searchText && (jsxRuntime.jsx("button", __assign({ type: "button", className: "dc__outline-none-imp dc__no-border p-0 bc-n50 flex", onClick: handleClearSearch, "data-testid": "clear-search" }, { children: jsxRuntime.jsx(SvgIcErrorCross, { className: "icon-dim-20 icon-n6" }) }))), children] })));
23654
23666
  }
23655
23667
 
23656
23668
  // This is meant to be a reusable component that will provide a grid like dynamic layout where xs is the number of columns out of 12 that the item will take up
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@devtron-labs/devtron-fe-common-lib",
3
- "version": "0.0.41",
3
+ "version": "0.0.42-beta-2",
4
4
  "description": "Supporting common component library",
5
5
  "main": "dist/index.js",
6
6
  "scripts": {
@@ -26,6 +26,7 @@ export default function DebouncedSearch({
26
26
  debounceTimeout = 500,
27
27
  clearSearch,
28
28
  showClearIcon = true,
29
+ autoFocus = true,
29
30
  }: DebouncedSearchProps) {
30
31
  const [searchText, setSearchText] = useState<string>('')
31
32
 
@@ -41,7 +42,7 @@ export default function DebouncedSearch({
41
42
  setSearchText('')
42
43
  }
43
44
 
44
- useDebouncedEffect(() => onSearch(searchText), debounceTimeout, [searchText, onSearch])
45
+ useDebouncedEffect(() => onSearch(searchText), debounceTimeout, [searchText])
45
46
 
46
47
  return (
47
48
  <div className={containerClass}>
@@ -53,7 +54,7 @@ export default function DebouncedSearch({
53
54
  placeholder={placeholder ?? 'Search'}
54
55
  value={searchText}
55
56
  onChange={handleSearchTextChange}
56
- autoFocus
57
+ autoFocus={autoFocus}
57
58
  data-testid="debounced-search"
58
59
  />
59
60
 
@@ -9,4 +9,5 @@ export interface DebouncedSearchProps {
9
9
  debounceTimeout?: number
10
10
  clearSearch?: boolean
11
11
  showClearIcon?: boolean
12
+ autoFocus?: boolean
12
13
  }
@@ -5,6 +5,22 @@ import ConfirmationDialog from './ConfirmationDialog'
5
5
  import { DeleteDialogProps } from './Types'
6
6
 
7
7
  export const DeleteDialog: React.FC<DeleteDialogProps> & { Description?: React.FC<any> } = function (props) {
8
+ const handleDelete = (e: React.MouseEvent) => {
9
+ if (props.shouldStopPropagation) {
10
+ e.stopPropagation()
11
+ }
12
+
13
+ props.delete()
14
+ }
15
+
16
+ const handleModalClose = (e: React.MouseEvent) => {
17
+ if (props.shouldStopPropagation) {
18
+ e.stopPropagation()
19
+ }
20
+
21
+ props.closeDelete()
22
+ }
23
+
8
24
  return (
9
25
  <ConfirmationDialog className="confirmation-dialog__body--w-400">
10
26
  <ConfirmationDialog.Icon src={warn} />
@@ -19,7 +35,7 @@ export const DeleteDialog: React.FC<DeleteDialogProps> & { Description?: React.F
19
35
  <button
20
36
  type="button"
21
37
  className="cta cancel cta-cd-delete-modal ml-16"
22
- onClick={props.closeDelete}
38
+ onClick={handleModalClose}
23
39
  disabled={props.apiCallInProgress}
24
40
  data-testid="dialog-cancel"
25
41
  >
@@ -28,7 +44,7 @@ export const DeleteDialog: React.FC<DeleteDialogProps> & { Description?: React.F
28
44
  <button
29
45
  type="button"
30
46
  className="cta delete cta-cd-delete-modal ml-16"
31
- onClick={() => props.delete()}
47
+ onClick={handleDelete}
32
48
  disabled={props.apiCallInProgress}
33
49
  data-testid="dialog-delete"
34
50
  >
@@ -10,6 +10,7 @@ export interface DeleteDialogProps {
10
10
  apiCallInProgress?: boolean
11
11
  dataTestId?: string
12
12
  buttonPrimaryText?: string
13
+ shouldStopPropagation?: boolean
13
14
  }
14
15
 
15
16
  export interface ForceDeleteDialogType {
@@ -1,6 +1,8 @@
1
1
  import React, { ReactNode, CSSProperties } from 'react'
2
2
  import { Placement } from 'tippy.js'
3
3
  import { ImageComment, ReleaseTag } from './ImageTags.Types'
4
+ import { DockerConfigOverrideType, TaskErrorObj } from '.'
5
+
4
6
  export interface ResponseType {
5
7
  code: number
6
8
  status: string
@@ -315,6 +317,7 @@ export interface CommonNodeAttr {
315
317
  colorCode?: string
316
318
  isExternalCI?: boolean
317
319
  isLinkedCI?: boolean
320
+ isLinkedCD?: boolean
318
321
  isJobCI?: boolean // used for Job type CI in Devtron Apps
319
322
  environmentName?: string //used for CDs
320
323
  environmentId?: number
@@ -351,6 +354,7 @@ export interface CommonNodeAttr {
351
354
  }
352
355
  appReleaseTagNames?: string[]
353
356
  tagsEditable?: boolean
357
+ isGitRequired?: boolean;
354
358
  }
355
359
 
356
360
  export enum DeploymentAppTypes {
@@ -474,3 +478,149 @@ export interface AsyncState<T> {
474
478
  export interface AsyncOptions {
475
479
  resetOnChange: boolean
476
480
  }
481
+
482
+ export interface AppEnvironment {
483
+ environmentId: number
484
+ environmentName: string
485
+ appMetrics: boolean
486
+ infraMetrics: boolean
487
+ prod: boolean
488
+ chartRefId?: number
489
+ lastDeployed?: string
490
+ lastDeployedBy?: string
491
+ lastDeployedImage?: string
492
+ appStatus?: string
493
+ deploymentAppDeleteRequest?: boolean
494
+ isVirtualEnvironment?: boolean
495
+ isProtected?: boolean
496
+ pipelineId?: number
497
+ latestCdWorkflowRunnerId?: number
498
+ }
499
+
500
+ export interface Strategy {
501
+ deploymentTemplate: string
502
+ config: any
503
+ default?: boolean
504
+ }
505
+
506
+ export interface CDStage {
507
+ status: string
508
+ name: string
509
+ triggerType: 'AUTOMATIC' | 'MANUAL'
510
+ config: string
511
+ }
512
+
513
+ export interface CDStageConfigMapSecretNames {
514
+ configMaps: any[]
515
+ secrets: any[]
516
+ }
517
+
518
+ export interface PrePostDeployStageType {
519
+ isValid: boolean
520
+ steps: TaskErrorObj[]
521
+ triggerType: string
522
+ name: string
523
+ status: string
524
+ }
525
+
526
+ export interface CdPipeline {
527
+ id: number
528
+ environmentId: number
529
+ environmentName?: string
530
+ description?: string
531
+ ciPipelineId: number
532
+ triggerType: 'AUTOMATIC' | 'MANUAL'
533
+ name: string
534
+ strategies?: Strategy[]
535
+ namespace?: string
536
+ appWorkflowId?: number
537
+ deploymentTemplate?: string
538
+ preStage?: CDStage
539
+ postStage?: CDStage
540
+ preStageConfigMapSecretNames?: CDStageConfigMapSecretNames
541
+ postStageConfigMapSecretNames?: CDStageConfigMapSecretNames
542
+ runPreStageInEnv?: boolean
543
+ runPostStageInEnv?: boolean
544
+ isClusterCdActive?: boolean
545
+ parentPipelineId?: number
546
+ parentPipelineType?: string
547
+ deploymentAppDeleteRequest?: boolean
548
+ deploymentAppCreated?: boolean
549
+ userApprovalConfig?: UserApprovalConfigType
550
+ isVirtualEnvironment?: boolean
551
+ deploymentAppType: DeploymentAppTypes
552
+ helmPackageName?: string
553
+ preDeployStage?: PrePostDeployStageType
554
+ postDeployStage?: PrePostDeployStageType
555
+ isProdEnv?: boolean
556
+ }
557
+
558
+ export interface ExternalCiConfig {
559
+ id: number
560
+ webhookUrl: string
561
+ payload: string
562
+ accessKey: string
563
+ }
564
+
565
+ export interface Source {
566
+ type: string
567
+ value?: string
568
+ regex?: string
569
+ }
570
+
571
+ export interface CiMaterial {
572
+ source: Source
573
+ gitMaterialId: number
574
+ id: number
575
+ gitMaterialName: string
576
+ isRegex?: boolean
577
+ }
578
+
579
+ export interface Task {
580
+ name?: string
581
+ type?: string
582
+ cmd?: string
583
+ args?: Array<string>
584
+ }
585
+
586
+ export interface CiScript {
587
+ id: number
588
+ index: number
589
+ name: string
590
+ script: string
591
+ outputLocation?: string
592
+ }
593
+
594
+ export interface CiPipeline {
595
+ isManual: boolean
596
+ dockerArgs?: Map<string, string>
597
+ isExternal: boolean
598
+ parentCiPipeline: number
599
+ parentAppId: number
600
+ externalCiConfig: ExternalCiConfig
601
+ ciMaterial?: CiMaterial[]
602
+ name?: string
603
+ id?: number
604
+ active?: boolean
605
+ linkedCount: number
606
+ scanEnabled: boolean
607
+ deleted?: boolean
608
+ version?: string
609
+ beforeDockerBuild?: Array<Task>
610
+ afterDockerBuild?: Array<Task>
611
+ appWorkflowId?: number
612
+ beforeDockerBuildScripts?: Array<CiScript>
613
+ afterDockerBuildScripts?: Array<CiScript>
614
+ isDockerConfigOverridden?: boolean
615
+ dockerConfigOverride?: DockerConfigOverrideType
616
+ appName?: string
617
+ appId?: string
618
+ componentId?: number
619
+ isCITriggerBlocked?: boolean
620
+ ciBlockState?: {
621
+ action: any
622
+ metadataField: string
623
+ }
624
+ isOffendingMandatoryPlugin?: boolean
625
+ pipelineType?: string
626
+ }