npm package diff
Package: @forge/manifest
Versions: 8.9.0-next.0-experimental-611b366 - 8.9.0-next.1
Modified: package/out/schema/basic-manifest-schema.json
Index: package/out/schema/basic-manifest-schema.json
===================================================================
--- package/out/schema/basic-manifest-schema.json
+++ package/out/schema/basic-manifest-schema.json
@@ -62,8 +62,99 @@
],
"title": "requiredProduct",
"description": "The required product for cross-product functionality. If not set, app is not a cross-product app."
},
+ "contexts": {
+ "type": "object",
+ "title": "contexts",
+ "description": "The required context for cross-context functionality. If not set, app is not a cross-context app.",
+ "oneOf": [
+ {
+ "required": ["confluence"],
+ "additionalProperties": false,
+ "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": ["jira"],
+ "additionalProperties": false,
+ "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": ["compass"],
+ "additionalProperties": false,
+ "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
+ }
+ }
+ }
+ ]
+ },
"licensing": {
"additionalProperties": false,
"required": [
"enabled"
Modified: package/out/schema/manifest-schema.json
Large diffs are not rendered by default.
Modified: package/package.json
Index: package/package.json
===================================================================
--- package/package.json
+++ package/package.json
@@ -1,7 +1,7 @@
{
"name": "@forge/manifest",
- "version": "8.9.0-next.0-experimental-611b366",
+ "version": "8.9.0-next.1",
"description": "Definitions and validations of the Forge manifest",
"main": "out/index.js",
"scripts": {
"build": "yarn run compile",
Modified: package/CHANGELOG.md
Index: package/CHANGELOG.md
===================================================================
--- package/CHANGELOG.md
+++ package/CHANGELOG.md
@@ -1,11 +1,11 @@
# @forge/manifest
-## 8.9.0-next.0-experimental-611b366
+## 8.9.0-next.1
-### Minor Changes
+### Patch Changes
-- 94e48b9: Remove agent mode support per product decision
+- 64daaa5: validate schema for app.contexts so developers can define a required context in the manifest
## 8.9.0-next.0
### Minor Changes
Modified: package/out/schema/basic-manifest.d.ts
Index: package/out/schema/basic-manifest.d.ts
===================================================================
--- package/out/schema/basic-manifest.d.ts
+++ package/out/schema/basic-manifest.d.ts
@@ -29,8 +29,45 @@
* The required product for cross-product functionality. If not set, app is not a cross-product app.
*/
export type RequiredProduct = 'confluence' | 'jira' | 'compass';
/**
+ * The required context for cross-context functionality. If not set, app is not a cross-context app.
+ */
+export type Contexts =
+ | {
+ 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 paid app licensing for production installations of this app. Default value of false.
*/
export type Enabled = boolean;
/**
@@ -58,8 +95,9 @@
description?: Description;
id: Id;
runtime: Runtime;
requiredProduct?: RequiredProduct;
+ contexts?: Contexts;
licensing?: Licensing;
features?: Features;
connect?: Connect;
/**
Modified: package/out/schema/manifest.d.ts
Large diffs are not rendered by default.