@forge/manifest 13.7.0-next.0 → 13.7.0-next.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.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,17 @@
1
1
  # @forge/manifest
2
2
 
3
+ ## 13.7.0-next.2
4
+
5
+ ### Minor Changes
6
+
7
+ - 0746937: Add Confluence entityPropertyEqualToContext and entityPropertyContainsContext display condition definitions for user.accountId. Include confluence:spacePage in Confluence display condition validation.
8
+
9
+ ## 13.7.0-next.1
10
+
11
+ ### Patch Changes
12
+
13
+ - e17be5e: Add validation linting for dashboard modules
14
+
3
15
  ## 13.7.0-next.0
4
16
 
5
17
  ### Minor Changes
@@ -240,6 +240,96 @@
240
240
  ],
241
241
  "type": "object"
242
242
  },
243
+ {
244
+ "additionalProperties": false,
245
+ "properties": {
246
+ "appEdition": {
247
+ "$ref": "#/definitions/AppEditionType"
248
+ },
249
+ "appIsLicensed": {
250
+ "type": "boolean"
251
+ },
252
+ "entityPropertyEqualToContext": {
253
+ "$ref": "#/definitions/EntityPropertyContext"
254
+ },
255
+ "hasAppAccess": {
256
+ "type": "boolean"
257
+ },
258
+ "hasPagePermission": {
259
+ "$ref": "#/definitions/ConfluenceContentPermission"
260
+ },
261
+ "hasSpacePermission": {
262
+ "$ref": "#/definitions/ConfluenceContentPermission"
263
+ },
264
+ "isAdmin": {
265
+ "type": "boolean"
266
+ },
267
+ "isLoggedIn": {
268
+ "type": "boolean"
269
+ },
270
+ "isSiteAdmin": {
271
+ "type": "boolean"
272
+ },
273
+ "isSpaceAdmin": {
274
+ "type": "boolean"
275
+ },
276
+ "permissions": {
277
+ "$ref": "#/definitions/DisplayConditionsPermissions"
278
+ },
279
+ "userIsExternalCollaborator": {
280
+ "type": "boolean"
281
+ }
282
+ },
283
+ "required": [
284
+ "entityPropertyEqualToContext"
285
+ ],
286
+ "type": "object"
287
+ },
288
+ {
289
+ "additionalProperties": false,
290
+ "properties": {
291
+ "appEdition": {
292
+ "$ref": "#/definitions/AppEditionType"
293
+ },
294
+ "appIsLicensed": {
295
+ "type": "boolean"
296
+ },
297
+ "entityPropertyContainsContext": {
298
+ "$ref": "#/definitions/EntityPropertyContext"
299
+ },
300
+ "hasAppAccess": {
301
+ "type": "boolean"
302
+ },
303
+ "hasPagePermission": {
304
+ "$ref": "#/definitions/ConfluenceContentPermission"
305
+ },
306
+ "hasSpacePermission": {
307
+ "$ref": "#/definitions/ConfluenceContentPermission"
308
+ },
309
+ "isAdmin": {
310
+ "type": "boolean"
311
+ },
312
+ "isLoggedIn": {
313
+ "type": "boolean"
314
+ },
315
+ "isSiteAdmin": {
316
+ "type": "boolean"
317
+ },
318
+ "isSpaceAdmin": {
319
+ "type": "boolean"
320
+ },
321
+ "permissions": {
322
+ "$ref": "#/definitions/DisplayConditionsPermissions"
323
+ },
324
+ "userIsExternalCollaborator": {
325
+ "type": "boolean"
326
+ }
327
+ },
328
+ "required": [
329
+ "entityPropertyContainsContext"
330
+ ],
331
+ "type": "object"
332
+ },
243
333
  {
244
334
  "items": {
245
335
  "$ref": "#/definitions/EntityPropertyCondition"
@@ -380,6 +470,12 @@
380
470
  },
381
471
  {
382
472
  "$ref": "#/definitions/EntityPropertyContainsAnyUserGroupItem"
473
+ },
474
+ {
475
+ "$ref": "#/definitions/EntityPropertyEqualToContextItem"
476
+ },
477
+ {
478
+ "$ref": "#/definitions/EntityPropertyContainsContextItem"
383
479
  }
384
480
  ]
385
481
  },
@@ -471,9 +567,62 @@
471
567
  ],
472
568
  "type": "object"
473
569
  },
570
+ "EntityPropertyContainsContextItem": {
571
+ "additionalProperties": false,
572
+ "properties": {
573
+ "entityPropertyContainsContext": {
574
+ "$ref": "#/definitions/EntityPropertyContext"
575
+ }
576
+ },
577
+ "required": [
578
+ "entityPropertyContainsContext"
579
+ ],
580
+ "type": "object"
581
+ },
582
+ "EntityPropertyContext": {
583
+ "additionalProperties": false,
584
+ "properties": {
585
+ "contextParam": {
586
+ "const": "user.accountId",
587
+ "type": "string"
588
+ },
589
+ "entity": {
590
+ "enum": [
591
+ "attachment",
592
+ "content",
593
+ "space"
594
+ ],
595
+ "type": "string"
596
+ },
597
+ "objectName": {
598
+ "type": "string"
599
+ },
600
+ "propertyKey": {
601
+ "type": "string"
602
+ }
603
+ },
604
+ "required": [
605
+ "contextParam",
606
+ "entity",
607
+ "propertyKey"
608
+ ],
609
+ "type": "object"
610
+ },
474
611
  "EntityPropertyEqualTo": {
475
612
  "$ref": "#/definitions/EntityPropertyEqualTo_1"
476
613
  },
614
+ "EntityPropertyEqualToContextItem": {
615
+ "additionalProperties": false,
616
+ "properties": {
617
+ "entityPropertyEqualToContext": {
618
+ "$ref": "#/definitions/EntityPropertyContext"
619
+ }
620
+ },
621
+ "required": [
622
+ "entityPropertyEqualToContext"
623
+ ],
624
+ "type": "object"
625
+ },
477
626
  "EntityPropertyEqualToItem": {
478
627
  "additionalProperties": false,
479
628
  "properties": {
@@ -1096,6 +1245,9 @@
1096
1245
  "confluence:pageBanner": {
1097
1246
  "$ref": "#/definitions/Confluence"
1098
1247
  },
1248
+ "confluence:spacePage": {
1249
+ "$ref": "#/definitions/Confluence"
1250
+ },
1099
1251
  "confluence:spaceSettings": {
1100
1252
  "$ref": "#/definitions/Confluence"
1101
1253
  },
@@ -137,7 +137,19 @@ interface EntityPropertyContainsAllItem {
137
137
  interface EntityPropertyContainsAnyUserGroupItem {
138
138
  entityPropertyContainsAnyUserGroup: EntityPropertyExists;
139
139
  }
140
- type EntityPropertyCondition = EntityPropertyExistsItem | EntityPropertyEqualToItem | EntityPropertyContainsAnyItem | EntityPropertyContainsAllItem | EntityPropertyContainsAnyUserGroupItem;
140
+ interface EntityPropertyContext {
141
+ entity: EntityType.Attachment | EntityType.Space | EntityType.Content;
142
+ propertyKey: string;
143
+ objectName?: string;
144
+ contextParam: 'user.accountId';
145
+ }
146
+ interface EntityPropertyEqualToContextItem {
147
+ entityPropertyEqualToContext: EntityPropertyContext;
148
+ }
149
+ interface EntityPropertyContainsContextItem {
150
+ entityPropertyContainsContext: EntityPropertyContext;
151
+ }
152
+ type EntityPropertyCondition = EntityPropertyExistsItem | EntityPropertyEqualToItem | EntityPropertyContainsAnyItem | EntityPropertyContainsAllItem | EntityPropertyContainsAnyUserGroupItem | EntityPropertyEqualToContextItem | EntityPropertyContainsContextItem;
141
153
  declare enum AppEditionType {
142
154
  Free = "free",
143
155
  Standard = "standard",
@@ -177,6 +189,7 @@ export type DisplayConditions = {
177
189
  'confluence:contextMenu'?: Confluence;
178
190
  'confluence:globalPage'?: Confluence;
179
191
  'confluence:globalSettings'?: Confluence;
192
+ 'confluence:spacePage'?: Confluence;
180
193
  'confluence:spaceSettings'?: Confluence;
181
194
  'confluence:backgroundScript'?: Confluence;
182
195
  'confluence:pageBanner'?: Confluence;
@@ -1 +1 @@
1
- {"version":3,"file":"display-condition-types.d.ts","sourceRoot":"","sources":["../../src/types/display-condition-types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"display-condition-types.d.ts","sourceRoot":"","sources":["../../src/types/display-condition-types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"modules-validator.d.ts","sourceRoot":"","sources":["../../src/validators/modules-validator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,cAAc,EAAE,wBAAwB,EAAsC,MAAM,UAAU,CAAC;AAWxH,OAAO,EAEL,cAAc,EAMf,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AA4B3D,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;IAwEpD,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;IA2E3B,OAAO,CAAC,4BAA4B;IA2BpC,OAAO,CAAC,yBAAyB;CAoClC"}
1
+ {"version":3,"file":"modules-validator.d.ts","sourceRoot":"","sources":["../../src/validators/modules-validator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,cAAc,EAAE,wBAAwB,EAAsC,MAAM,UAAU,CAAC;AAWxH,OAAO,EAEL,cAAc,EAMf,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AA6B3D,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;IAyEpD,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;IA2E3B,OAAO,CAAC,4BAA4B;IA2BpC,OAAO,CAAC,yBAAyB;CAoClC"}
@@ -27,6 +27,7 @@ const automation_1 = require("./modules-validators/automation");
27
27
  const graph_1 = require("./modules-validators/graph");
28
28
  const validate_global_ui_1 = require("./modules-validators/global/validate-global-ui");
29
29
  const validate_global_full_page_1 = require("./modules-validators/global/validate-global-full-page");
30
+ const dashboards_1 = require("./modules-validators/dashboards");
30
31
  class ModulesValidator {
31
32
  functionHandlerRegex = /^([\p{Alpha}\d_-]+(?:\/[\p{Alpha}\d_-]+)*)\.([\p{Alpha}\d_-]+)$/u;
32
33
  async validate(manifest) {
@@ -39,7 +40,7 @@ class ModulesValidator {
39
40
  let validationErrors = [...this.connectModuleValidation(manifest)];
40
41
  if (manifest.typedContent.modules) {
41
42
  const { typedContent: { modules, connectModules, remotes, permissions, services, providers }, yamlContentByLine, filePath } = manifest;
42
- 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, utils_1.getHandlersDirectory)(manifest.typedContent)), (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_full_page_module_1.validateJiraFullPageModule)(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, (0, path_1.dirname)(filePath), 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), (0, validate_global_background_script_1.validateJiraGlobalBackgroundScript)(modules, yamlContentByLine), (0, graph_1.validateGraphModules)(modules, providers, yamlContentByLine), (0, validate_global_ui_1.validateGlobalUi)(modules, yamlContentByLine), (0, validate_global_full_page_1.validateGlobalFullPage)(modules, yamlContentByLine));
43
+ 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, utils_1.getHandlersDirectory)(manifest.typedContent)), (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_full_page_module_1.validateJiraFullPageModule)(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, (0, path_1.dirname)(filePath), 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), (0, validate_global_background_script_1.validateJiraGlobalBackgroundScript)(modules, yamlContentByLine), (0, graph_1.validateGraphModules)(modules, providers, yamlContentByLine), (0, dashboards_1.validateDashboardModules)(modules, yamlContentByLine), (0, validate_global_ui_1.validateGlobalUi)(modules, yamlContentByLine), (0, validate_global_full_page_1.validateGlobalFullPage)(modules, yamlContentByLine));
43
44
  }
44
45
  else {
45
46
  const { typedContent: { connectModules }, yamlContentByLine } = manifest;
@@ -0,0 +1,2 @@
1
+ export { validateDashboardModules } from './validate-dashboard-modules';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/validators/modules-validators/dashboards/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,8BAA8B,CAAC"}
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.validateDashboardModules = void 0;
4
+ var validate_dashboard_modules_1 = require("./validate-dashboard-modules");
5
+ Object.defineProperty(exports, "validateDashboardModules", { enumerable: true, get: function () { return validate_dashboard_modules_1.validateDashboardModules; } });
@@ -0,0 +1,4 @@
1
+ import { Modules } from '../../../schema/manifest';
2
+ import { ValidationError } from '../../../types';
3
+ export declare const validateDashboardModules: (modules: Modules, yamlContentByLine?: string[]) => ValidationError[];
4
+ //# sourceMappingURL=validate-dashboard-modules.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validate-dashboard-modules.d.ts","sourceRoot":"","sources":["../../../../src/validators/modules-validators/dashboards/validate-dashboard-modules.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AAEnD,OAAO,EAAkB,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAyDjE,eAAO,MAAM,wBAAwB,GAAI,SAAS,OAAO,EAAE,oBAAoB,MAAM,EAAE,KAAG,eAAe,EAoBxG,CAAC"}
@@ -0,0 +1,55 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.validateDashboardModules = void 0;
4
+ const text_1 = require("../../../text");
5
+ const types_1 = require("../../../types");
6
+ const utils_1 = require("../../../utils");
7
+ const DASHBOARD_MODULE_ALLOWED_PROPERTIES = [
8
+ {
9
+ moduleType: types_1.AllModuleTypes.DashboardsWidget,
10
+ allowedProperties: new Set([
11
+ 'key',
12
+ 'title',
13
+ 'description',
14
+ 'thumbnail',
15
+ 'resource',
16
+ 'render',
17
+ 'edit',
18
+ 'resolver',
19
+ 'aiContext'
20
+ ])
21
+ },
22
+ {
23
+ moduleType: types_1.AllModuleTypes.DashboardsFilter,
24
+ allowedProperties: new Set(['key', 'title', 'icon', 'function', 'resource', 'render', 'edit', 'resolver'])
25
+ },
26
+ {
27
+ moduleType: types_1.AllModuleTypes.DashboardsBackgroundScript,
28
+ allowedProperties: new Set(['key', 'resource', 'render', 'resolver'])
29
+ }
30
+ ];
31
+ const isRecord = (value) => typeof value === 'object' && value !== null && !Array.isArray(value);
32
+ const buildAdditionalPropertyError = (moduleType, additionalProperty, moduleKey, yamlContentByLine) => ({
33
+ message: text_1.errors.schemaError(undefined, [moduleType], text_1.errors.schema.additionalProperties(additionalProperty)),
34
+ reference: text_1.References.Modules,
35
+ level: 'error',
36
+ ...(0, utils_1.findPosition)(additionalProperty, yamlContentByLine ?? [], moduleKey)
37
+ });
38
+ const validateAllowedProperties = (moduleType, module, allowedProperties, moduleKey, yamlContentByLine) => Object.keys(module)
39
+ .filter((property) => !allowedProperties.has(property))
40
+ .map((property) => buildAdditionalPropertyError(moduleType, property, moduleKey, yamlContentByLine));
41
+ const validateDashboardModules = (modules, yamlContentByLine) => {
42
+ const validationErrors = [];
43
+ DASHBOARD_MODULE_ALLOWED_PROPERTIES.forEach(({ moduleType, allowedProperties }) => {
44
+ const dashboardModules = modules[moduleType];
45
+ if (!Array.isArray(dashboardModules)) {
46
+ return;
47
+ }
48
+ dashboardModules.filter(isRecord).forEach((module) => {
49
+ const moduleKey = typeof module.key === 'string' ? module.key : undefined;
50
+ validationErrors.push(...validateAllowedProperties(moduleType, module, allowedProperties, moduleKey, yamlContentByLine));
51
+ });
52
+ });
53
+ return validationErrors;
54
+ };
55
+ exports.validateDashboardModules = validateDashboardModules;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@forge/manifest",
3
- "version": "13.7.0-next.0",
3
+ "version": "13.7.0-next.2",
4
4
  "description": "Definitions and validations of the Forge manifest",
5
5
  "main": "out/index.js",
6
6
  "scripts": {