{ "$schema": "http://json-schema.org/draft-06/schema#", "$id": "https://plasmo.com/bpp/keys.schema.json", "title": "Browser Platform Publisher Keys v3", "description": "Deployment Keys for the Plasmo's BPP Action.", "$ref": "#/definitions/Root", "definitions": { "Root": { "type": "object", "properties": { "chrome": { "allOf": [ { "$ref": "#/definitions/Common" }, { "$ref": "#/definitions/Chrome" } ] }, "firefox": { "allOf": [ { "$ref": "#/definitions/Common" }, { "$ref": "#/definitions/Firefox" } ] }, "edge": { "allOf": [ { "$ref": "#/definitions/Common" }, { "$ref": "#/definitions/Edge" } ] }, "itero": { "allOf": [ { "$ref": "#/definitions/Common" }, { "$ref": "#/definitions/Itero" } ] } } }, "Common": { "description": "Common properties", "type": "object", "properties": { "zip": { "type": "string", "description": "The zip file containing the extension. `{version}` can be used in the name and will be replaced by the version in the manifest.json file." }, "file": { "type": "string", "description": "Alias to zip" }, "notes": { "type": "string", "description": "Provide notes for certification to the Edge Add-ons reviewers" }, "verbose": { "type": "boolean", "description": "Enable verbose logging" } } }, "Chrome": { "description": "For refreshToken and clientId, follow: https://github.com/PlasmoHQ/chrome-webstore-api/blob/main/token.md", "type": "object", "properties": { "extId": { "type": "string", "description": "Get it from https://chrome.google.com/webstore/detail/EXT_ID" }, "refreshToken": { "type": "string", "description": "See: https://github.com/PlasmoHQ/chrome-webstore-api/blob/main/token.md" }, "clientId": { "type": "string", "description": "See: https://github.com/PlasmoHQ/chrome-webstore-api/blob/main/token.md" }, "clientSecret": { "type": "string", "description": "See: https://github.com/PlasmoHQ/chrome-webstore-api/blob/main/token.md" }, "target": { "type": "string", "description": "The target audience to publish to. Defaults to 'default'", "enum": ["default", "trustedTesters"], "default": "default" }, "uploadOnly": { "type": "boolean", "description": "Only upload the extension, do not publish it. Defaults to false", "default": false } }, "required": ["extId", "refreshToken", "clientId", "clientSecret"] }, "Firefox": { "type": "object", "description": "For API Key and API Secret, visit: https://addons.mozilla.org/en-US/developers/addon/api/key/", "properties": { "apiKey": { "type": "string", "description": "The JWT issuer, from https://addons.mozilla.org/en-US/developers/addon/api/key/" }, "apiSecret": { "type": "string", "description": "The JWT secret, from https://addons.mozilla.org/en-US/developers/addon/api/key/" }, "extId": { "type": "string", "description": "This is the extension UUID from https://addons.mozilla.org/en-US/developers/addon/EXT_ID/edit under Technical Details, or the URL slug. If it is embedded in your manifest under gecko.id, omit this property." }, "license": { "type": "string", "description": "The license for your extension. Defaults to 'all-right-reserved'. See: https://addons-server.readthedocs.io/en/latest/topics/api/licenses.html" }, "channel": { "type": "string", "description": "The channel to publish to. Defaults to 'listed'.", "enum": ["listed", "unlisted"] } }, "required": ["apiKey", "apiSecret"] }, "Edge": { "type": "object", "properties": { "productId": { "type": "string", "description": "Create an Edge add-on and get it from the dashboard: https://partner.microsoft.com/en-us/dashboard/microsoftedge/{product-id}/package/dashboard" }, "clientId": { "type": "string", "description": "You can find your client ID by visiting the Microsoft Partner Center: https://partner.microsoft.com/en-us/dashboard/microsoftedge/publishapi" }, "apiKey": { "type": "string", "description": "You can find your api key by visiting the Microsoft Partner Center: https://partner.microsoft.com/en-us/dashboard/microsoftedge/publishapi" }, "uploadOnly": { "type": "boolean", "description": "Only upload the extension, do not publish it. Defaults to false", "default": false } }, "required": ["productId", "clientId", "clientSecret", "accessTokenUrl"] }, "Itero": { "type": "object", "description": "NOTE: Itero TestBed requires a paid subscription. See: https://itero.plasmo.com", "properties": { "privateKey": { "type": "string" }, "token": { "type": "string" }, "entityId": { "type": "string" }, "extensionId": { "type": "string" } }, "required": ["privateKey", "token", "extensionId", "entityId"] }, "Opera": { "type": "object", "description": "NOTE: Opera add-ons reviewer require inspecting your extension's source code.", "properties": { "packageId": { "type": "string", "description": "Get it from https://addons.opera.com/developer/package/PACKAGE_ID" }, "changelog": { "type": "string", "description": "Provide changelog for the Opera users" } }, "required": ["packageId"] } } }