@forge/manifest 10.3.0 → 10.4.0-experimental-73629cc

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.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,49 @@
1
1
  # @forge/manifest
2
2
 
3
+ ## 10.4.0-experimental-73629cc
4
+
5
+ ### Patch Changes
6
+
7
+ - fe2852a: Added backend SDK for permission handling
8
+
9
+ ## 10.4.0
10
+
11
+ ### Minor Changes
12
+
13
+ - 7e13ccd: Add support for multi-service tunnelling
14
+ - 17dfed4: Add validation for experimental `jira:actionValidator` module
15
+ - 2a0dadd: Remove Node18 runtime
16
+
17
+ ### Patch Changes
18
+
19
+ - acb3247: Update Typing for JiraActionValidatorModule
20
+ - d3b9bde: Update manifest definitions
21
+
22
+ ## 10.4.0-next.3
23
+
24
+ ### Minor Changes
25
+
26
+ - 7e13ccd: Add support for multi-service tunnelling
27
+
28
+ ## 10.4.0-next.2
29
+
30
+ ### Patch Changes
31
+
32
+ - acb3247: Update Typing for JiraActionValidatorModule
33
+ - d3b9bde: Update manifest definitions
34
+
35
+ ## 10.4.0-next.1
36
+
37
+ ### Minor Changes
38
+
39
+ - 17dfed4: Add validation for experimental `jira:actionValidator` module
40
+
41
+ ## 10.4.0-next.0
42
+
43
+ ### Minor Changes
44
+
45
+ - 2a0dadd: Remove Node18 runtime
46
+
3
47
  ## 10.3.0
4
48
 
5
49
  ### Minor Changes
package/out/index.d.ts CHANGED
@@ -8,6 +8,6 @@ export * from './text';
8
8
  export * from './types';
9
9
  export * from './utils';
10
10
  export * from './validators';
11
- export { Modules, ManifestSchema, App, Resources, Permissions, Remotes, Fetch, Providers, Backend, Frames, Navigation, Images, Media, Scripts1, Styles1, Scopes, Content1, Fonts, Translations, ForgeSupportedLocaleCode } from './schema/manifest';
11
+ export { Modules, ManifestSchema, App, Resources, Permissions, Remotes, Fetch, Providers, Backend, Frames, Navigation, Images, Media, Services, Scripts1, Styles1, Scopes, Content1, Fonts, Translations, ForgeSupportedLocaleCode, External } from './schema/manifest';
12
12
  export declare const validate: (basic?: boolean, manifest?: string | undefined) => Promise<ManifestValidationResult<ManifestSchema | BasicManifestSchema>>;
13
13
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAmB,MAAM,SAAS,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAG9D,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,cAAc,CAAC;AAC7B,OAAO,EACL,OAAO,EACP,cAAc,EACd,GAAG,EACH,SAAS,EACT,WAAW,EACX,OAAO,EACP,KAAK,EACL,SAAS,EACT,OAAO,EACP,MAAM,EACN,UAAU,EACV,MAAM,EACN,KAAK,EACL,QAAQ,EACR,OAAO,EACP,MAAM,EACN,QAAQ,EACR,KAAK,EACL,YAAY,EACZ,wBAAwB,EACzB,MAAM,mBAAmB,CAAC;AAE3B,eAAO,MAAM,QAAQ,+BAET,MAAM,GAAG,SAAS,KAC3B,QAAQ,yBAAyB,cAAc,GAAG,mBAAmB,CAAC,CAInD,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAmB,MAAM,SAAS,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAG9D,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,cAAc,CAAC;AAC7B,OAAO,EACL,OAAO,EACP,cAAc,EACd,GAAG,EACH,SAAS,EACT,WAAW,EACX,OAAO,EACP,KAAK,EACL,SAAS,EACT,OAAO,EACP,MAAM,EACN,UAAU,EACV,MAAM,EACN,KAAK,EACL,QAAQ,EACR,QAAQ,EACR,OAAO,EACP,MAAM,EACN,QAAQ,EACR,KAAK,EACL,YAAY,EACZ,wBAAwB,EACxB,QAAQ,EACT,MAAM,mBAAmB,CAAC;AAE3B,eAAO,MAAM,QAAQ,+BAET,MAAM,GAAG,SAAS,KAC3B,QAAQ,yBAAyB,cAAc,GAAG,mBAAmB,CAAC,CAInD,CAAC"}
@@ -25,7 +25,6 @@
25
25
  "title": "name",
26
26
  "type": "string",
27
27
  "enum": [
28
- "nodejs18.x",
29
28
  "nodejs20.x",
30
29
  "nodejs22.x"
31
30
  ]
@@ -16,7 +16,7 @@ export type Id = string;
16
16
  /**
17
17
  * Name of the runtime to use for app execution.
18
18
  */
19
- export type Name = 'nodejs18.x' | 'nodejs20.x' | 'nodejs22.x';
19
+ export type Name = 'nodejs20.x' | 'nodejs22.x';
20
20
  /**
21
21
  * Lambda architecture, its value can be either 'x86_64' or 'arm64'. Default value is 'x86_64'.
22
22
  */
@@ -25,7 +25,6 @@
25
25
  "title": "name",
26
26
  "type": "string",
27
27
  "enum": [
28
- "nodejs18.x",
29
28
  "nodejs20.x",
30
29
  "nodejs22.x"
31
30
  ]
@@ -14755,6 +14754,65 @@
14755
14754
  },
14756
14755
  "minItems": 1
14757
14756
  },
14757
+ "jira:actionValidator": {
14758
+ "type": "array",
14759
+ "items": {
14760
+ "type": "object",
14761
+ "properties": {
14762
+ "action": {
14763
+ "type": "string",
14764
+ "enum": [
14765
+ "workItemTypeChanged"
14766
+ ]
14767
+ },
14768
+ "expression": {
14769
+ "type": "string"
14770
+ },
14771
+ "errorMessage": {
14772
+ "anyOf": [
14773
+ {
14774
+ "additionalProperties": false,
14775
+ "type": "object",
14776
+ "properties": {
14777
+ "i18n": {
14778
+ "type": "string",
14779
+ "minLength": 1,
14780
+ "maxLength": 300,
14781
+ "pattern": "^[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)*$"
14782
+ }
14783
+ },
14784
+ "required": [
14785
+ "i18n"
14786
+ ]
14787
+ },
14788
+ {
14789
+ "type": "string"
14790
+ }
14791
+ ]
14792
+ },
14793
+ "errorMessage__i18n": {
14794
+ "type": "string",
14795
+ "minLength": 1,
14796
+ "maxLength": 300,
14797
+ "pattern": "^[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)*$"
14798
+ },
14799
+ "key": {
14800
+ "$ref": "#/definitions/ModuleKeySchema"
14801
+ }
14802
+ },
14803
+ "required": [
14804
+ "action",
14805
+ "expression",
14806
+ "key"
14807
+ ],
14808
+ "not": {
14809
+ "required": [
14810
+ "unlicensedAccess"
14811
+ ]
14812
+ }
14813
+ },
14814
+ "minItems": 1
14815
+ },
14758
14816
  "compass:adminPage": {
14759
14817
  "type": "array",
14760
14818
  "items": {
@@ -27045,7 +27103,12 @@
27045
27103
  "atlassian:pull-request",
27046
27104
  "atlassian:video",
27047
27105
  "atlassian:work-item",
27048
- "atlassian:worker"
27106
+ "atlassian:worker",
27107
+ "atlassian:dashboard",
27108
+ "atlassian:test",
27109
+ "atlassian:test-execution",
27110
+ "atlassian:test-plan",
27111
+ "atlassian:test-run"
27049
27112
  ],
27050
27113
  "minLength": 1,
27051
27114
  "maxLength": 255
@@ -27091,12 +27154,24 @@
27091
27154
  "formConfiguration": {
27092
27155
  "type": "object",
27093
27156
  "properties": {
27094
- "properties": {
27157
+ "form": {
27095
27158
  "type": "array",
27096
27159
  "minItems": 1,
27160
+ "maxItems": 5,
27097
27161
  "items": {
27098
- "$ref": "#/definitions/ConnectionProperty"
27099
- }
27162
+ "$ref": "#/definitions/FormSection"
27163
+ },
27164
+ "description": "Form properties to capture from Admin user (rendered in order)."
27165
+ },
27166
+ "instructions": {
27167
+ "type": "array",
27168
+ "items": {
27169
+ "type": "string"
27170
+ },
27171
+ "minItems": 1,
27172
+ "maxItems": 10,
27173
+ "description": "Instructions displayed to the admin at the top of the form.",
27174
+ "title": "instructions"
27100
27175
  },
27101
27176
  "validateConnection": {
27102
27177
  "type": "object",
@@ -27127,7 +27202,7 @@
27127
27202
  },
27128
27203
  "additionalProperties": false,
27129
27204
  "required": [
27130
- "properties",
27205
+ "form",
27131
27206
  "validateConnection"
27132
27207
  ]
27133
27208
  },
@@ -27145,6 +27220,9 @@
27145
27220
  ]
27146
27221
  }
27147
27222
  },
27223
+ "required": [
27224
+ "onConnectionChange"
27225
+ ],
27148
27226
  "additionalProperties": false
27149
27227
  },
27150
27228
  "key": {
@@ -28235,6 +28313,19 @@
28235
28313
  }
28236
28314
  }
28237
28315
  },
28316
+ "ServiceTunnelSchema": {
28317
+ "type": "object",
28318
+ "additionalProperties": false,
28319
+ "required": [
28320
+ "port"
28321
+ ],
28322
+ "properties": {
28323
+ "port": {
28324
+ "type": "number",
28325
+ "description": "The port of the service where tunnel requests should be sent"
28326
+ }
28327
+ }
28328
+ },
28238
28329
  "ServicesSchema": {
28239
28330
  "type": "array",
28240
28331
  "additionalProperties": false,
@@ -28260,6 +28351,10 @@
28260
28351
  "scaling": {
28261
28352
  "$ref": "#/definitions/ServiceScalingSchema",
28262
28353
  "title": "scaling"
28354
+ },
28355
+ "tunnel": {
28356
+ "$ref": "#/definitions/ServiceTunnelSchema",
28357
+ "title": "tunnel"
28263
28358
  }
28264
28359
  }
28265
28360
  }
@@ -31113,40 +31208,29 @@
31113
31208
  "minLength": 1,
31114
31209
  "pattern": "^[a-zA-Z0-9-._]+$"
31115
31210
  },
31116
- "ConnectionProperty": {
31211
+ "FormProperty": {
31117
31212
  "type": "object",
31118
31213
  "properties": {
31119
31214
  "key": {
31120
31215
  "type": "string",
31121
- "description": "The key identifying the connection property."
31216
+ "description": "The key identifying the form property."
31122
31217
  },
31123
31218
  "label": {
31124
- "type": "object",
31125
- "properties": {
31126
- "defaultMessage": {
31127
- "type": "string",
31128
- "description": "The default message for the field label."
31129
- },
31130
- "description": {
31131
- "type": "string",
31132
- "description": "A description of the field label."
31133
- }
31134
- },
31135
- "required": [
31136
- "defaultMessage",
31137
- "description"
31138
- ],
31139
- "additionalProperties": false
31219
+ "type": "string",
31220
+ "description": "Label displayed to the admin."
31221
+ },
31222
+ "placeholder": {
31223
+ "type": "string",
31224
+ "description": "Placeholder text displayed to the admin."
31140
31225
  },
31141
31226
  "type": {
31142
31227
  "type": "string",
31143
31228
  "enum": [
31144
31229
  "string",
31145
31230
  "number",
31146
- "boolean",
31147
- "textArea"
31231
+ "boolean"
31148
31232
  ],
31149
- "description": "The type of the connection property."
31233
+ "description": "The type of the property."
31150
31234
  },
31151
31235
  "isRequired": {
31152
31236
  "type": "boolean",
@@ -31155,6 +31239,10 @@
31155
31239
  "isSensitive": {
31156
31240
  "type": "boolean",
31157
31241
  "description": "Whether the property is sensitive. (default: false)"
31242
+ },
31243
+ "hideInEditView": {
31244
+ "type": "boolean",
31245
+ "description": "Whether the property is hidden in the edit view. (default: false)"
31158
31246
  }
31159
31247
  },
31160
31248
  "required": [
@@ -31163,6 +31251,47 @@
31163
31251
  "type"
31164
31252
  ],
31165
31253
  "additionalProperties": false
31254
+ },
31255
+ "FormSection": {
31256
+ "type": "object",
31257
+ "properties": {
31258
+ "key": {
31259
+ "type": "string",
31260
+ "description": "The key identifying the form property section."
31261
+ },
31262
+ "type": {
31263
+ "type": "string",
31264
+ "enum": [
31265
+ "header"
31266
+ ],
31267
+ "description": "The type of the section."
31268
+ },
31269
+ "title": {
31270
+ "type": "string",
31271
+ "description": "The title of the section."
31272
+ },
31273
+ "description": {
31274
+ "type": "string",
31275
+ "description": "The description of the section."
31276
+ },
31277
+ "properties": {
31278
+ "type": "array",
31279
+ "items": {
31280
+ "$ref": "#/definitions/FormProperty"
31281
+ },
31282
+ "minItems": 1,
31283
+ "maxItems": 10,
31284
+ "description": "The properties of the section."
31285
+ }
31286
+ },
31287
+ "required": [
31288
+ "key",
31289
+ "type",
31290
+ "title",
31291
+ "description",
31292
+ "properties"
31293
+ ],
31294
+ "additionalProperties": false
31166
31295
  }
31167
31296
  },
31168
31297
  "additionalProperties": false,
@@ -16,7 +16,7 @@ export type Id = string;
16
16
  /**
17
17
  * Name of the runtime to use for app execution.
18
18
  */
19
- export type Name = 'nodejs18.x' | 'nodejs20.x' | 'nodejs22.x';
19
+ export type Name = 'nodejs20.x' | 'nodejs22.x';
20
20
  /**
21
21
  * Lambda architecture, its value can be either 'x86_64' or 'arm64'. Default value is 'x86_64'.
22
22
  */
@@ -684,6 +684,20 @@ export type ExtensionKey10 = string;
684
684
  * A key referencing authentication provider. This will be utilised to authenticate end-users and match with external users.
685
685
  */
686
686
  export type UserAuthProvider = string;
687
+ /**
688
+ * Instructions displayed to the admin at the top of the form.
689
+ */
690
+ export type Instructions =
691
+ | [string]
692
+ | [string, string]
693
+ | [string, string, string]
694
+ | [string, string, string, string]
695
+ | [string, string, string, string, string]
696
+ | [string, string, string, string, string, string]
697
+ | [string, string, string, string, string, string, string]
698
+ | [string, string, string, string, string, string, string, string]
699
+ | [string, string, string, string, string, string, string, string, string]
700
+ | [string, string, string, string, string, string, string, string, string, string];
687
701
  /**
688
702
  * The key for an extension in CaaS. That means that this is a reference to another extension in your descriptor / manifest.
689
703
  */
@@ -806,6 +820,7 @@ export type Services = {
806
820
  key: string;
807
821
  containers: Containers;
808
822
  scaling?: Scaling;
823
+ tunnel?: Tunnel;
809
824
  }[];
810
825
 
811
826
  export interface ManifestSchema {
@@ -18029,6 +18044,32 @@ export interface Modules {
18029
18044
  key: ModuleKeySchema;
18030
18045
  }[]
18031
18046
  ];
18047
+ 'jira:actionValidator'?: [
18048
+ {
18049
+ action: 'workItemTypeChanged';
18050
+ expression: string;
18051
+ errorMessage?:
18052
+ | {
18053
+ i18n: string;
18054
+ }
18055
+ | string;
18056
+ errorMessage__i18n?: string;
18057
+ key: ModuleKeySchema;
18058
+ [k: string]: unknown;
18059
+ },
18060
+ ...{
18061
+ action: 'workItemTypeChanged';
18062
+ expression: string;
18063
+ errorMessage?:
18064
+ | {
18065
+ i18n: string;
18066
+ }
18067
+ | string;
18068
+ errorMessage__i18n?: string;
18069
+ key: ModuleKeySchema;
18070
+ [k: string]: unknown;
18071
+ }[]
18072
+ ];
18032
18073
  'compass:adminPage'?: [
18033
18074
  (
18034
18075
  | {
@@ -23295,6 +23336,11 @@ export interface Modules {
23295
23336
  | 'atlassian:video'
23296
23337
  | 'atlassian:work-item'
23297
23338
  | 'atlassian:worker'
23339
+ | 'atlassian:dashboard'
23340
+ | 'atlassian:test'
23341
+ | 'atlassian:test-execution'
23342
+ | 'atlassian:test-plan'
23343
+ | 'atlassian:test-run'
23298
23344
  ),
23299
23345
  ...(
23300
23346
  | 'atlassian:document'
@@ -23319,6 +23365,11 @@ export interface Modules {
23319
23365
  | 'atlassian:video'
23320
23366
  | 'atlassian:work-item'
23321
23367
  | 'atlassian:worker'
23368
+ | 'atlassian:dashboard'
23369
+ | 'atlassian:test'
23370
+ | 'atlassian:test-execution'
23371
+ | 'atlassian:test-plan'
23372
+ | 'atlassian:test-run'
23322
23373
  )[]
23323
23374
  ];
23324
23375
  orchestration?: {
@@ -23331,7 +23382,16 @@ export interface Modules {
23331
23382
  };
23332
23383
  datasource?: {
23333
23384
  formConfiguration?: {
23334
- properties: [ConnectionProperty, ...ConnectionProperty[]];
23385
+ /**
23386
+ * Form properties to capture from Admin user (rendered in order).
23387
+ */
23388
+ form:
23389
+ | [FormSection]
23390
+ | [FormSection, FormSection]
23391
+ | [FormSection, FormSection, FormSection]
23392
+ | [FormSection, FormSection, FormSection, FormSection]
23393
+ | [FormSection, FormSection, FormSection, FormSection, FormSection];
23394
+ instructions?: Instructions;
23335
23395
  validateConnection: {
23336
23396
  function: ExtensionKey11;
23337
23397
  [k: string]: unknown;
@@ -23341,7 +23401,7 @@ export interface Modules {
23341
23401
  [k: string]: unknown;
23342
23402
  };
23343
23403
  };
23344
- onConnectionChange?: {
23404
+ onConnectionChange: {
23345
23405
  function: ExtensionKey13;
23346
23406
  [k: string]: unknown;
23347
23407
  };
@@ -23391,6 +23451,11 @@ export interface Modules {
23391
23451
  | 'atlassian:video'
23392
23452
  | 'atlassian:work-item'
23393
23453
  | 'atlassian:worker'
23454
+ | 'atlassian:dashboard'
23455
+ | 'atlassian:test'
23456
+ | 'atlassian:test-execution'
23457
+ | 'atlassian:test-plan'
23458
+ | 'atlassian:test-run'
23394
23459
  ),
23395
23460
  ...(
23396
23461
  | 'atlassian:document'
@@ -23415,6 +23480,11 @@ export interface Modules {
23415
23480
  | 'atlassian:video'
23416
23481
  | 'atlassian:work-item'
23417
23482
  | 'atlassian:worker'
23483
+ | 'atlassian:dashboard'
23484
+ | 'atlassian:test'
23485
+ | 'atlassian:test-execution'
23486
+ | 'atlassian:test-plan'
23487
+ | 'atlassian:test-run'
23418
23488
  )[]
23419
23489
  ];
23420
23490
  orchestration?: {
@@ -23427,7 +23497,16 @@ export interface Modules {
23427
23497
  };
23428
23498
  datasource?: {
23429
23499
  formConfiguration?: {
23430
- properties: [ConnectionProperty, ...ConnectionProperty[]];
23500
+ /**
23501
+ * Form properties to capture from Admin user (rendered in order).
23502
+ */
23503
+ form:
23504
+ | [FormSection]
23505
+ | [FormSection, FormSection]
23506
+ | [FormSection, FormSection, FormSection]
23507
+ | [FormSection, FormSection, FormSection, FormSection]
23508
+ | [FormSection, FormSection, FormSection, FormSection, FormSection];
23509
+ instructions?: Instructions;
23431
23510
  validateConnection: {
23432
23511
  function: ExtensionKey11;
23433
23512
  [k: string]: unknown;
@@ -23437,7 +23516,7 @@ export interface Modules {
23437
23516
  [k: string]: unknown;
23438
23517
  };
23439
23518
  };
23440
- onConnectionChange?: {
23519
+ onConnectionChange: {
23441
23520
  function: ExtensionKey13;
23442
23521
  [k: string]: unknown;
23443
23522
  };
@@ -72616,25 +72695,76 @@ export interface I18NProperty105 {
72616
72695
  i18n?: string;
72617
72696
  [k: string]: unknown;
72618
72697
  }
72619
- export interface ConnectionProperty {
72698
+ export interface FormSection {
72620
72699
  /**
72621
- * The key identifying the connection property.
72700
+ * The key identifying the form property section.
72622
72701
  */
72623
72702
  key: string;
72624
- label: {
72625
- /**
72626
- * The default message for the field label.
72627
- */
72628
- defaultMessage: string;
72629
- /**
72630
- * A description of the field label.
72631
- */
72632
- description: string;
72633
- };
72634
72703
  /**
72635
- * The type of the connection property.
72704
+ * The type of the section.
72705
+ */
72706
+ type: 'header';
72707
+ /**
72708
+ * The title of the section.
72636
72709
  */
72637
- type: 'string' | 'number' | 'boolean' | 'textArea';
72710
+ title: string;
72711
+ /**
72712
+ * The description of the section.
72713
+ */
72714
+ description: string;
72715
+ /**
72716
+ * The properties of the section.
72717
+ */
72718
+ properties:
72719
+ | [FormProperty]
72720
+ | [FormProperty, FormProperty]
72721
+ | [FormProperty, FormProperty, FormProperty]
72722
+ | [FormProperty, FormProperty, FormProperty, FormProperty]
72723
+ | [FormProperty, FormProperty, FormProperty, FormProperty, FormProperty]
72724
+ | [FormProperty, FormProperty, FormProperty, FormProperty, FormProperty, FormProperty]
72725
+ | [FormProperty, FormProperty, FormProperty, FormProperty, FormProperty, FormProperty, FormProperty]
72726
+ | [FormProperty, FormProperty, FormProperty, FormProperty, FormProperty, FormProperty, FormProperty, FormProperty]
72727
+ | [
72728
+ FormProperty,
72729
+ FormProperty,
72730
+ FormProperty,
72731
+ FormProperty,
72732
+ FormProperty,
72733
+ FormProperty,
72734
+ FormProperty,
72735
+ FormProperty,
72736
+ FormProperty
72737
+ ]
72738
+ | [
72739
+ FormProperty,
72740
+ FormProperty,
72741
+ FormProperty,
72742
+ FormProperty,
72743
+ FormProperty,
72744
+ FormProperty,
72745
+ FormProperty,
72746
+ FormProperty,
72747
+ FormProperty,
72748
+ FormProperty
72749
+ ];
72750
+ }
72751
+ export interface FormProperty {
72752
+ /**
72753
+ * The key identifying the form property.
72754
+ */
72755
+ key: string;
72756
+ /**
72757
+ * Label displayed to the admin.
72758
+ */
72759
+ label: string;
72760
+ /**
72761
+ * Placeholder text displayed to the admin.
72762
+ */
72763
+ placeholder?: string;
72764
+ /**
72765
+ * The type of the property.
72766
+ */
72767
+ type: 'string' | 'number' | 'boolean';
72638
72768
  /**
72639
72769
  * Whether the property is required. (default: false)
72640
72770
  */
@@ -72643,6 +72773,10 @@ export interface ConnectionProperty {
72643
72773
  * Whether the property is sensitive. (default: false)
72644
72774
  */
72645
72775
  isSensitive?: boolean;
72776
+ /**
72777
+ * Whether the property is hidden in the edit view. (default: false)
72778
+ */
72779
+ hideInEditView?: boolean;
72646
72780
  }
72647
72781
  export interface Permissions {
72648
72782
  scopes?: Scopes;
@@ -73025,3 +73159,9 @@ export interface Scaling {
73025
73159
  */
73026
73160
  max?: number;
73027
73161
  }
73162
+ export interface Tunnel {
73163
+ /**
73164
+ * The port of the service where tunnel requests should be sent
73165
+ */
73166
+ port: number;
73167
+ }
@@ -90,6 +90,11 @@ export declare const errors: {
90
90
  jiraJqlFunction: {
91
91
  duplicateFunctionNames: (names: string[]) => string;
92
92
  };
93
+ jiraActionValidator: {
94
+ limitPerActionType: (actionType: string, limit: number) => string;
95
+ incompatibleModules: (otherModules: string[]) => string;
96
+ tooManyModules: (totalModules: number, limit: number) => string;
97
+ };
93
98
  moduleScopesValidator: {
94
99
  missingScopes: (moduleType: AllModuleTypes, key: string, scopes: string[]) => string;
95
100
  };
@@ -1 +1 @@
1
- {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/text/errors.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/text/errors.ts"],"names":[],"mappings":"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"}
@@ -102,6 +102,11 @@ exports.errors = {
102
102
  jiraJqlFunction: {
103
103
  duplicateFunctionNames: (names) => `JQL function names must be unique. Found duplicates: ${names.join(', ')}.`
104
104
  },
105
+ jiraActionValidator: {
106
+ limitPerActionType: (actionType, limit) => `Only ${limit} ${types_1.AllModuleTypes.JiraActionValidator} module is allowed per action type. Found multiple modules for action type: ${actionType}.`,
107
+ incompatibleModules: (otherModules) => `${types_1.AllModuleTypes.JiraActionValidator} modules can only be declared with page modules and core functions. Found incompatible modules: ${otherModules.join(', ')}.`,
108
+ tooManyModules: (totalModules, limit) => `Apps with ${types_1.AllModuleTypes.JiraActionValidator} modules can declare up to ${limit} additional modules. Found ${totalModules} total modules.`
109
+ },
105
110
  moduleScopesValidator: {
106
111
  missingScopes: (moduleType, key, scopes) => `${moduleType} module '${key}' requires '${scopes.join(', ')}' scope(s).`
107
112
  },
@@ -31,6 +31,7 @@ export declare enum AllModuleTypes {
31
31
  JiraWorkflowValidator = "jira:workflowValidator",
32
32
  JiraWorkflowCondition = "jira:workflowCondition",
33
33
  JiraWorkflowPostFunction = "jira:workflowPostFunction",
34
+ JiraActionValidator = "jira:actionValidator",
34
35
  JiraCustomField = "jira:customField",
35
36
  JiraCustomFieldType = "jira:customFieldType",
36
37
  JiraIssueAction = "jira:issueAction",
@@ -1 +1 @@
1
- {"version":3,"file":"module-types.d.ts","sourceRoot":"","sources":["../../src/types/module-types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"module-types.d.ts","sourceRoot":"","sources":["../../src/types/module-types.ts"],"names":[],"mappings":"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"}
@@ -35,6 +35,7 @@ var AllModuleTypes;
35
35
  AllModuleTypes["JiraWorkflowValidator"] = "jira:workflowValidator";
36
36
  AllModuleTypes["JiraWorkflowCondition"] = "jira:workflowCondition";
37
37
  AllModuleTypes["JiraWorkflowPostFunction"] = "jira:workflowPostFunction";
38
+ AllModuleTypes["JiraActionValidator"] = "jira:actionValidator";
38
39
  AllModuleTypes["JiraCustomField"] = "jira:customField";
39
40
  AllModuleTypes["JiraCustomFieldType"] = "jira:customFieldType";
40
41
  AllModuleTypes["JiraIssueAction"] = "jira:issueAction";
@@ -1 +1 @@
1
- {"version":3,"file":"modules-validator.d.ts","sourceRoot":"","sources":["../../src/validators/modules-validator.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,cAAc,EACd,wBAAwB,EAKzB,MAAM,UAAU,CAAC;AASlB,OAAO,EAEL,cAAc,EAMf,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAuB3D,qBAAa,gBACX,YAAW,kBAAkB,CAAC,cAAc,CAAC,cAAc,CAAC,GAAG,SAAS,EAAE,cAAc,CAAC;IAGzF,OAAO,CAAC,oBAAoB,CAAsE;IAE5F,QAAQ,CACZ,QAAQ,EAAE,cAAc,CAAC,cAAc,CAAC,GAAG,SAAS,GACnD,OAAO,CAAC,wBAAwB,CAAC,cAAc,CAAC,CAAC;IA6DpD,OAAO,CAAC,uBAAuB;IAO/B,OAAO,CAAC,iBAAiB;IAkBzB,OAAO,CAAC,4BAA4B;IAapC,OAAO,CAAC,uBAAuB;IAe/B,OAAO,CAAC,uBAAuB;IAiB/B,OAAO,CAAC,4BAA4B;IA0BpC,OAAO,CAAC,mBAAmB;IA+H3B,OAAO,CAAC,4BAA4B;IA2BpC,OAAO,CAAC,yBAAyB;CAkClC"}
1
+ {"version":3,"file":"modules-validator.d.ts","sourceRoot":"","sources":["../../src/validators/modules-validator.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,cAAc,EACd,wBAAwB,EAKzB,MAAM,UAAU,CAAC;AASlB,OAAO,EAEL,cAAc,EAMf,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAwB3D,qBAAa,gBACX,YAAW,kBAAkB,CAAC,cAAc,CAAC,cAAc,CAAC,GAAG,SAAS,EAAE,cAAc,CAAC;IAGzF,OAAO,CAAC,oBAAoB,CAAsE;IAE5F,QAAQ,CACZ,QAAQ,EAAE,cAAc,CAAC,cAAc,CAAC,GAAG,SAAS,GACnD,OAAO,CAAC,wBAAwB,CAAC,cAAc,CAAC,CAAC;IA8DpD,OAAO,CAAC,uBAAuB;IAO/B,OAAO,CAAC,iBAAiB;IAkBzB,OAAO,CAAC,4BAA4B;IAapC,OAAO,CAAC,uBAAuB;IAe/B,OAAO,CAAC,uBAAuB;IAiB/B,OAAO,CAAC,4BAA4B;IA0BpC,OAAO,CAAC,mBAAmB;IA+H3B,OAAO,CAAC,4BAA4B;IA2BpC,OAAO,CAAC,yBAAyB;CAkClC"}
@@ -20,6 +20,7 @@ const validate_full_page_1 = require("./modules-validators/jira/validate-full-pa
20
20
  const validate_custom_field_1 = require("./modules-validators/jira/validate-custom-field");
21
21
  const validate_trigger_1 = require("./modules-validators/jira/validate-trigger");
22
22
  const validate_command_1 = require("./modules-validators/jira/validate-command");
23
+ const validate_action_validator_1 = require("./modules-validators/jira/validate-action-validator");
23
24
  const scopes_1 = require("../utils/scopes");
24
25
  const automation_1 = require("./modules-validators/automation");
25
26
  class ModulesValidator {
@@ -34,7 +35,7 @@ class ModulesValidator {
34
35
  let validationErrors = [...this.connectModuleValidation(manifest)];
35
36
  if (manifest.typedContent.modules) {
36
37
  const { typedContent: { modules, connectModules, remotes, permissions, services }, yamlContentByLine, filePath } = manifest;
37
- validationErrors = validationErrors.concat(this.checkUnsupportedModules(manifest.typedContent.modules, yamlContentByLine), this.functionKeyLength(modules, yamlContentByLine), this.minimumModuleCountValidation(modules, yamlContentByLine), this.functionKeyDefinedValidation(modules, yamlContentByLine), this.endpointValidations(modules, yamlContentByLine, remotes, permissions?.scopes || [], services), this.duplicateModuleKeyValidation(modules, connectModules || {}, yamlContentByLine), this.functionHandlerValidation(modules, yamlContentByLine, filePath), (0, validate_workflow_1.validateJiraWorkflowValidator)(modules, yamlContentByLine), (0, validate_workflow_1.validateJiraWorkflowCondition)(modules, yamlContentByLine), (0, ui_modifications_1.validateUiModificationsModule)(modules, yamlContentByLine), (0, validate_full_admin_page_1.validateJiraFullAdminPage)(modules, yamlContentByLine), (0, validate_full_page_1.validateJiraFullPage)(modules, yamlContentByLine), (0, validate_custom_field_1.validateJiraCustomField)(modules, yamlContentByLine), (0, confluence_1.validateConfluenceModules)(modules, yamlContentByLine), (0, bitbucket_1.validateBitbucketModules)(modules, yamlContentByLine), (0, validate_trigger_1.validateJiraTriggers)(modules, yamlContentByLine), (0, remote_1.validateRemoteModules)(modules, yamlContentByLine), (0, dataResidency_1.validateMigrationDataResidencyModule)(modules, remotes, yamlContentByLine), (0, validateModuleScopes_1.validateModuleScopes)(modules, yamlContentByLine, permissions), (0, rovo_1.validateRovoModules)(modules, yamlContentByLine), (0, automation_1.validateAutomationModules)(modules, yamlContentByLine), (0, validate_timetrackingprovider_module_1.validateJiraTimeTrackingModule)(modules, yamlContentByLine), (0, validate_command_1.validateJiraCommandModule)(modules, yamlContentByLine));
38
+ validationErrors = validationErrors.concat(this.checkUnsupportedModules(manifest.typedContent.modules, yamlContentByLine), this.functionKeyLength(modules, yamlContentByLine), this.minimumModuleCountValidation(modules, yamlContentByLine), this.functionKeyDefinedValidation(modules, yamlContentByLine), this.endpointValidations(modules, yamlContentByLine, remotes, permissions?.scopes || [], services), this.duplicateModuleKeyValidation(modules, connectModules || {}, yamlContentByLine), this.functionHandlerValidation(modules, yamlContentByLine, filePath), (0, validate_workflow_1.validateJiraWorkflowValidator)(modules, yamlContentByLine), (0, validate_workflow_1.validateJiraWorkflowCondition)(modules, yamlContentByLine), (0, ui_modifications_1.validateUiModificationsModule)(modules, yamlContentByLine), (0, validate_full_admin_page_1.validateJiraFullAdminPage)(modules, yamlContentByLine), (0, validate_full_page_1.validateJiraFullPage)(modules, yamlContentByLine), (0, validate_custom_field_1.validateJiraCustomField)(modules, yamlContentByLine), (0, confluence_1.validateConfluenceModules)(modules, yamlContentByLine), (0, bitbucket_1.validateBitbucketModules)(modules, yamlContentByLine), (0, validate_trigger_1.validateJiraTriggers)(modules, yamlContentByLine), (0, remote_1.validateRemoteModules)(modules, yamlContentByLine), (0, dataResidency_1.validateMigrationDataResidencyModule)(modules, remotes, yamlContentByLine), (0, validateModuleScopes_1.validateModuleScopes)(modules, yamlContentByLine, permissions), (0, rovo_1.validateRovoModules)(modules, yamlContentByLine), (0, automation_1.validateAutomationModules)(modules, yamlContentByLine), (0, validate_timetrackingprovider_module_1.validateJiraTimeTrackingModule)(modules, yamlContentByLine), (0, validate_command_1.validateJiraCommandModule)(modules, yamlContentByLine), (0, validate_action_validator_1.validateJiraActionValidator)(modules, yamlContentByLine));
38
39
  }
39
40
  else {
40
41
  const { typedContent: { connectModules }, yamlContentByLine } = manifest;
@@ -0,0 +1,4 @@
1
+ import { ValidationError } from '../../../types';
2
+ import { Modules } from '../../../schema/manifest';
3
+ export declare function validateJiraActionValidator(modules: Modules, yamlContentByLine: string[] | undefined): ValidationError[];
4
+ //# sourceMappingURL=validate-action-validator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validate-action-validator.d.ts","sourceRoot":"","sources":["../../../../src/validators/modules-validators/jira/validate-action-validator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AA8BnD,wBAAgB,2BAA2B,CACzC,OAAO,EAAE,OAAO,EAChB,iBAAiB,EAAE,MAAM,EAAE,GAAG,SAAS,GACtC,eAAe,EAAE,CAYnB"}
@@ -0,0 +1,84 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.validateJiraActionValidator = void 0;
4
+ const text_1 = require("../../../text");
5
+ const utils_1 = require("../../../utils");
6
+ const module_types_1 = require("../../../types/module-types");
7
+ const PAGE_MODULE_TYPES = [
8
+ module_types_1.AllModuleTypes.JiraAdminPage,
9
+ module_types_1.AllModuleTypes.JiraProjectPage,
10
+ module_types_1.AllModuleTypes.JiraProjectSettingsPage,
11
+ module_types_1.AllModuleTypes.JiraGlobalPage,
12
+ module_types_1.AllModuleTypes.JiraPersonalSettingsPage
13
+ ];
14
+ const MAX_JIRA_ACTION_VALIDATORS = 1;
15
+ const MAX_ALLOWED_MODULES = MAX_JIRA_ACTION_VALIDATORS + 1;
16
+ function validateJiraActionValidator(modules, yamlContentByLine) {
17
+ const actionValidatorModules = getActionValidatorModules(modules);
18
+ if (actionValidatorModules.length === 0) {
19
+ return [];
20
+ }
21
+ return [
22
+ ...validateUniqueActionTypes(actionValidatorModules, yamlContentByLine),
23
+ ...validateCompatibleModules(modules, actionValidatorModules, yamlContentByLine),
24
+ ...validateModuleLimit(modules, actionValidatorModules, yamlContentByLine)
25
+ ];
26
+ }
27
+ exports.validateJiraActionValidator = validateJiraActionValidator;
28
+ function getActionValidatorModules(modules) {
29
+ const actionValidators = modules[module_types_1.AllModuleTypes.JiraActionValidator];
30
+ return Array.isArray(actionValidators) ? actionValidators : [];
31
+ }
32
+ function createValidationError(message, key, yamlContentByLine) {
33
+ return {
34
+ message,
35
+ reference: text_1.References.Modules,
36
+ level: 'error',
37
+ ...(0, utils_1.findPosition)(key, yamlContentByLine)
38
+ };
39
+ }
40
+ function validateUniqueActionTypes(actionValidatorModules, yamlContentByLine) {
41
+ if (actionValidatorModules.length <= 1) {
42
+ return [];
43
+ }
44
+ const actionTypeGroups = new Map();
45
+ actionValidatorModules.forEach((module) => {
46
+ const actionType = module.action || 'unknown';
47
+ const group = actionTypeGroups.get(actionType) || [];
48
+ group.push(module);
49
+ actionTypeGroups.set(actionType, group);
50
+ });
51
+ return Array.from(actionTypeGroups.entries())
52
+ .filter(([, modules]) => modules.length > MAX_JIRA_ACTION_VALIDATORS)
53
+ .flatMap(([actionType, modules]) => modules.map((module) => createValidationError(text_1.errors.modules.jiraActionValidator.limitPerActionType(actionType, MAX_JIRA_ACTION_VALIDATORS), module.key, yamlContentByLine)));
54
+ }
55
+ function validateCompatibleModules(modules, actionValidatorModules, yamlContentByLine) {
56
+ const incompatibleModules = getIncompatibleModules(modules);
57
+ if (incompatibleModules.length === 0) {
58
+ return [];
59
+ }
60
+ return actionValidatorModules.map((module) => createValidationError(text_1.errors.modules.jiraActionValidator.incompatibleModules(incompatibleModules), module.key, yamlContentByLine));
61
+ }
62
+ function getIncompatibleModules(modules) {
63
+ const moduleTypes = Object.keys(modules);
64
+ const otherModules = moduleTypes.filter((type) => type !== module_types_1.AllModuleTypes.JiraActionValidator);
65
+ return otherModules.filter((moduleType) => {
66
+ const isPageModule = PAGE_MODULE_TYPES.includes(moduleType);
67
+ const isCoreFunction = moduleType === module_types_1.AllModuleTypes.CoreFunction;
68
+ return !isPageModule && !isCoreFunction;
69
+ });
70
+ }
71
+ function validateModuleLimit(modules, actionValidatorModules, yamlContentByLine) {
72
+ const nonCoreModuleCount = getNonCoreModuleCount(modules);
73
+ if (nonCoreModuleCount <= MAX_ALLOWED_MODULES) {
74
+ return [];
75
+ }
76
+ return actionValidatorModules.map((module) => createValidationError(text_1.errors.modules.jiraActionValidator.tooManyModules(nonCoreModuleCount, MAX_JIRA_ACTION_VALIDATORS), module.key, yamlContentByLine));
77
+ }
78
+ function getNonCoreModuleCount(modules) {
79
+ return Object.entries(modules)
80
+ .filter(([moduleType]) => !moduleType.startsWith('core:'))
81
+ .reduce((total, [, moduleArray]) => {
82
+ return total + (Array.isArray(moduleArray) ? moduleArray.length : 0);
83
+ }, 0);
84
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@forge/manifest",
3
- "version": "10.3.0",
3
+ "version": "10.4.0-experimental-73629cc",
4
4
  "description": "Definitions and validations of the Forge manifest",
5
5
  "main": "out/index.js",
6
6
  "scripts": {