@forge/manifest
12.5.0-next.412.5.0-next.5
~
Modified (13 files)
Index: package/out/processor/basic-validation-processor.js
===================================================================
--- package/out/processor/basic-validation-processor.js
+++ package/out/processor/basic-validation-processor.js
@@ -14,9 +14,10 @@
new validators_1.YamlValidator(),
new validators_1.SchemaValidator(BASIC_SCHEMA),
new validators_1.EntityPropertyValidator(),
new jql_function_validator_1.JqlFunctionValidator(),
- new runtime_version_validator_1.RuntimeVersionValidator(lintOptions)
+ new runtime_version_validator_1.RuntimeVersionValidator(lintOptions),
+ new validators_1.CompatibilityValidator()
]);
}
}
exports.BasicValidationProcessor = BasicValidationProcessor; Index: package/out/validators/compatibility-validator.js
===================================================================
--- package/out/validators/compatibility-validator.js
+++ package/out/validators/compatibility-validator.js
@@ -12,10 +12,25 @@
manifestObject: manifest
};
}
const validationErrors = [];
+ const app = manifest.typedContent.app;
const modules = manifest.typedContent.modules || {};
- const compatibility = manifest.typedContent.app?.compatibility || {};
+ const compatibility = app?.compatibility || {};
+ const installationTarget = app?.installationTarget;
+ const shouldCheckRequiredContext = installationTarget === undefined || installationTarget === 'site';
+ if (shouldCheckRequiredContext) {
+ const hasCompatibilityKeys = Object.keys(compatibility).length > 0;
+ const requiredContexts = Object.keys(compatibility).filter((key) => compatibility[key]?.required === true);
+ if (hasCompatibilityKeys && requiredContexts.length !== 1) {
+ validationErrors.push({
+ message: text_1.errors.app.compatibility.oneRequiredContext(),
+ reference: text_2.References.SchemaError,
+ level: 'error',
+ ...(0, utils_1.findPosition)('compatibility', manifest.yamlContentByLine)
+ });
+ }
+ }
const isJiraPrimary = compatibility.jira?.required === true;
const isConfluencePrimary = compatibility.confluence?.required === true;
const moduleKeys = Object.keys(modules);
if (isJiraPrimary && moduleKeys.some((key) => key === 'confluence:fullPage')) { Index: package/out/text/errors.js
===================================================================
--- package/out/text/errors.js
+++ package/out/text/errors.js
@@ -239,9 +239,10 @@
}
},
compatibility: {
invalidConfluenceModuleInJira: () => 'Using the module `confluence:fullPage` is invalid when the required product is Jira. Full page modules must match the required product. Use `jira:fullPage` as the module type, or change the required product to Confluence in your manifest.yml compatibility settings.',
- invalidJiraModuleInConfluence: () => 'Using the module `jira:fullPage` is invalid when the required product is Confluence. Full page modules must match the required product. Use `confluence:fullPage` as the module type, or change the required product to Jira in your manifest.yml compatibility settings.'
+ invalidJiraModuleInConfluence: () => 'Using the module `jira:fullPage` is invalid when the required product is Confluence. Full page modules must match the required product. Use `confluence:fullPage` as the module type, or change the required product to Jira in your manifest.yml compatibility settings.',
+ oneRequiredContext: () => 'One context (Jira, Confluence, or Compass) must have `required:true` in app.compatibility.'
}
},
translations: {
missingTranslationsJsonFile: (languageLocaleCode) => `There is no available translations JSON file for the specified fallback language: '${languageLocaleCode}'`, Index: package/out/schema/basic-manifest-schema.json
===================================================================
--- package/out/schema/basic-manifest-schema.json
+++ package/out/schema/basic-manifest-schema.json
@@ -50,146 +50,60 @@
"required": [
"name"
]
},
+ "installationTarget": {
+ "type": "string",
+ "enum": [
+ "site",
+ "unit"
+ ],
+ "description": "The target of the app installation."
+ },
"compatibility": {
"type": "object",
"title": "compatibility",
- "description": "The app compatibility configuration. If not set, app is not a cross-context app.",
- "oneOf": [
- {
- "required": [
- "confluence"
- ],
- "additionalProperties": false,
+ "description": "The app compatibility configuration. If not set, app is not a cross-context or global app.",
+ "additionalProperties": false,
+ "minProperties": 1,
+ "properties": {
+ "confluence": {
+ "type": "object",
"properties": {
- "confluence": {
- "type": "object",
- "required": [
- "required"
- ],
- "properties": {
- "required": {
- "enum": [
- true
- ]
- }
- },
- "additionalProperties": false
- },
- "jira": {
- "type": "object",
- "properties": {
- "required": {
- "enum": [
- false
- ]
- }
- },
- "additionalProperties": false
- },
- "compass": {
- "type": "object",
- "properties": {
- "required": {
- "enum": [
- false
- ]
- }
- },
- "additionalProperties": false
+ "required": {
+ "enum": [
+ true,
+ false
+ ]
}
- }
+ },
+ "additionalProperties": false
},
- {
- "required": [
- "jira"
- ],
- "additionalProperties": false,
+ "jira": {
+ "type": "object",
"properties": {
- "confluence": {
- "type": "object",
- "properties": {
- "required": {
- "enum": [
- false
- ]
- }
- },
- "additionalProperties": false
- },
- "jira": {
- "type": "object",
- "required": [
- "required"
- ],
- "properties": {
- "required": {
- "enum": [
- true
- ]
- }
- },
- "additionalProperties": false
- },
- "compass": {
- "type": "object",
- "properties": {
- "required": {
- "enum": [
- false
- ]
- }
- },
- "additionalProperties": false
+ "required": {
+ "enum": [
+ true,
+ false
+ ]
}
- }
+ },
+ "additionalProperties": false
},
- {
- "required": [
- "compass"
- ],
- "additionalProperties": false,
+ "compass": {
+ "type": "object",
"properties": {
- "confluence": {
- "type": "object",
- "properties": {
- "required": {
- "enum": [
- false
- ]
- }
- },
- "additionalProperties": false
- },
- "jira": {
- "type": "object",
- "properties": {
- "required": {
- "enum": [
- false
- ]
- }
- },
- "additionalProperties": false
- },
- "compass": {
- "type": "object",
- "required": [
- "required"
- ],
- "properties": {
- "required": {
- "enum": [
- true
- ]
- }
- },
- "additionalProperties": false
+ "required": {
+ "enum": [
+ true,
+ false
+ ]
}
- }
+ },
+ "additionalProperties": false
}
- ]
+ }
},
"access": {
"additionalProperties": false,
"required": [ File too large for inline diff
Index: package/package.json
===================================================================
--- package/package.json
+++ package/package.json
@@ -1,7 +1,7 @@
{
"name": "@forge/manifest",
- "version": "12.5.0-next.4",
+ "version": "12.5.0-next.5",
"description": "Definitions and validations of the Forge manifest",
"main": "out/index.js",
"scripts": {
"build": "yarn run compile", Index: package/out/processor/basic-validation-processor.d.ts.map
===================================================================
--- package/out/processor/basic-validation-processor.d.ts.map
+++ package/out/processor/basic-validation-processor.d.ts.map
@@ -1,1 +1,1 @@
-{"version":3,"file":"basic-validation-processor.d.ts","sourceRoot":"","sources":["../../src/processor/basic-validation-processor.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,2BAA2B,EAAE,MAAM,iCAAiC,CAAC;AAC9E,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAG/D,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAEvC,qBAAa,wBAAyB,SAAQ,2BAA2B,CAAC,mBAAmB,CAAC;gBAChF,WAAW,EAAE,WAAW;CAUrC"}
\ No newline at end of file
+{"version":3,"file":"basic-validation-processor.d.ts","sourceRoot":"","sources":["../../src/processor/basic-validation-processor.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,2BAA2B,EAAE,MAAM,iCAAiC,CAAC;AAC9E,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAG/D,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAEvC,qBAAa,wBAAyB,SAAQ,2BAA2B,CAAC,mBAAmB,CAAC;gBAChF,WAAW,EAAE,WAAW;CAWrC"}
\ No newline at end of file Index: package/out/validators/compatibility-validator.d.ts.map
===================================================================
--- package/out/validators/compatibility-validator.d.ts.map
+++ package/out/validators/compatibility-validator.d.ts.map
@@ -1,1 +1,1 @@
-{"version":3,"file":"compatibility-validator.d.ts","sourceRoot":"","sources":["../../src/validators/compatibility-validator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,wBAAwB,EAAmB,MAAM,UAAU,CAAC;AACrF,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAK3D,qBAAa,sBAAuB,YAAW,kBAAkB,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,SAAS,EAAE,GAAG,CAAC;IAC/F,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC,GAAG,CAAC,GAAG,SAAS,GAAG,OAAO,CAAC,wBAAwB,CAAC,GAAG,CAAC,CAAC;CA2ClG"}
\ No newline at end of file
+{"version":3,"file":"compatibility-validator.d.ts","sourceRoot":"","sources":["../../src/validators/compatibility-validator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,wBAAwB,EAAmB,MAAM,UAAU,CAAC;AACrF,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAK3D,qBAAa,sBAAuB,YAAW,kBAAkB,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,SAAS,EAAE,GAAG,CAAC;IAC/F,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC,GAAG,CAAC,GAAG,SAAS,GAAG,OAAO,CAAC,wBAAwB,CAAC,GAAG,CAAC,CAAC;CA6DlG"}
\ No newline at end of file Index: package/out/text/errors.d.ts.map
===================================================================
--- package/out/text/errors.d.ts.map
+++ package/out/text/errors.d.ts.map
@@ -1,1 +1,1 @@
-{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/text/errors.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
+{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/text/errors.ts"],"names":[],"mappings":"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"}
\ No newline at end of file File too large for inline diff
Index: package/out/schema/basic-manifest.d.ts
===================================================================
--- package/out/schema/basic-manifest.d.ts
+++ package/out/schema/basic-manifest.d.ts
@@ -25,45 +25,8 @@
* The default amount of memory available to all functions at runtime. Increasing the function memory also increases its CPU allocation. You can configure memory between 128 MB and 1024 MB in 1-MB increments. The default value is 512 MB.
*/
export type MemoryMB = number;
/**
- * The app compatibility configuration. If not set, app is not a cross-context app.
- */
-export type Compatibility =
- | {
- confluence: {
- required: true;
- };
- jira?: {
- required?: false;
- };
- compass?: {
- required?: false;
- };
- }
- | {
- confluence?: {
- required?: false;
- };
- jira: {
- required: true;
- };
- compass?: {
- required?: false;
- };
- }
- | {
- confluence?: {
- required?: false;
- };
- jira?: {
- required?: false;
- };
- compass: {
- required: true;
- };
- };
-/**
* Whether to enable user access control for this app. Default value of false.
*/
export type UserAccess = boolean;
/**
@@ -94,8 +57,12 @@
export interface App {
description?: Description;
id: Id;
runtime: Runtime;
+ /**
+ * The target of the app installation.
+ */
+ installationTarget?: 'site' | 'unit';
compatibility?: Compatibility;
access?: Access;
licensing?: Licensing;
features?: Features;
@@ -212,8 +179,22 @@
architecture?: Architecture;
memoryMB?: MemoryMB;
}
/**
+ * The app compatibility configuration. If not set, app is not a cross-context or global app.
+ */
+export interface Compatibility {
+ confluence?: {
+ required?: true | false;
+ };
+ jira?: {
+ required?: true | false;
+ };
+ compass?: {
+ required?: true | false;
+ };
+}
+/**
* Options related to app access control
*/
export interface Access {
userAccess: UserAccess; Index: package/out/text/errors.d.ts
===================================================================
--- package/out/text/errors.d.ts
+++ package/out/text/errors.d.ts
@@ -226,8 +226,9 @@
};
compatibility: {
invalidConfluenceModuleInJira: () => string;
invalidJiraModuleInConfluence: () => string;
+ oneRequiredContext: () => string;
};
};
translations: {
missingTranslationsJsonFile: (languageLocaleCode: ForgeSupportedLocaleCode) => string; File too large for inline diff