Running @forge/cli 4.1.1, I am having issues using the blob content permission explained here: https://developer.atlassian.com/platform/forge/manifest-reference/permissions/#content-permissions
My manifest looks like this in the relevant parts:
content:
styles:
- unsafe-inline
scripts:
- 'unsafe-inline'
- 'blob:'
However I’m getting the following error:
Result: {
"appDeployment": {
"status": "FAILED",
"errorDetails": {
"code": "HOSTED_RESOURCE_INVALID_EGRESS_PERMISSIONS",
"message": "Invalid content permissions specified: blob:",
"fields": null
},
"stages": [
{
"description": "Validating manifest",
"events": [
{
"__typename": "AppDeploymentTransitionEvent",
"stepName": "Init deployment",
"createdAt": "2022-04-13T04:40:11.317Z",
"newStatus": "STARTED"
},
{
"__typename": "AppDeploymentTransitionEvent",
"stepName": "Init deployment",
"createdAt": "2022-04-13T04:40:11.511Z",
"newStatus": "DONE"
},
{
"__typename": "AppDeploymentTransitionEvent",
"stepName": "Download manifest",
"createdAt": "2022-04-13T04:40:11.513Z",
"newStatus": "STARTED"
},
{
"__typename": "AppDeploymentLogEvent",
"stepName": "Download manifest",
"createdAt": "2022-04-13T04:40:11.514Z",
"message": "Upload URL is valid",
"level": "INFO"
},
{
"__typename": "AppDeploymentLogEvent",
"stepName": "Download manifest",
"createdAt": "2022-04-13T04:40:11.716Z",
"message": "Found manifest file",
"level": "INFO"
},
{
"__typename": "AppDeploymentLogEvent",
"stepName": "Download manifest",
"createdAt": "2022-04-13T04:40:11.719Z",
"message": "Manifest is a valid YAML",
"level": "INFO"
},
{
"__typename": "AppDeploymentTransitionEvent",
"stepName": "Download manifest",
"createdAt": "2022-04-13T04:40:11.720Z",
"newStatus": "DONE"
},
{
"__typename": "AppDeploymentTransitionEvent",
"stepName": "Validate manifest",
"createdAt": "2022-04-13T04:40:11.722Z",
"newStatus": "STARTED"
},
{
"__typename": "AppDeploymentLogEvent",
"stepName": "Validate manifest",
"createdAt": "2022-04-13T04:40:11.881Z",
"message": "Manifest passed common validations",
"level": "INFO"
},
{
"__typename": "AppDeploymentLogEvent",
"stepName": "Validate manifest",
"createdAt": "2022-04-13T04:40:11.882Z",
"message": "Manifest doesn't have forbidden modules",
"level": "INFO"
},
{
"__typename": "AppDeploymentLogEvent",
"stepName": "Validate manifest",
"createdAt": "2022-04-13T04:40:11.883Z",
"message": "Manifest passed function names validations",
"level": "INFO"
},
{
"__typename": "AppDeploymentLogEvent",
"stepName": "Validate manifest",
"createdAt": "2022-04-13T04:40:11.884Z",
"message": "Manifest passed cleanup function validation",
"level": "INFO"
},
{
"__typename": "AppDeploymentTransitionEvent",
"stepName": "Validate manifest",
"createdAt": "2022-04-13T04:40:11.885Z",
"newStatus": "DONE"
}
]
},
{
"description": "Snapshotting functions",
"events": [
{
"__typename": "AppDeploymentTransitionEvent",
"stepName": "Generate snapshot step",
"createdAt": "2022-04-13T04:40:11.887Z",
"newStatus": "STARTED"
},
{
"__typename": "AppDeploymentTransitionEvent",
"stepName": "Generate snapshot step",
"createdAt": "2022-04-13T04:40:12.758Z",
"newStatus": "DONE"
}
]
},
{
"description": "Deploying to environment",
"events": [
{
"__typename": "AppDeploymentTransitionEvent",
"stepName": "Validate hosted resource upload step",
"createdAt": "2022-04-13T04:40:12.759Z",
"newStatus": "STARTED"
},
{
"__typename": "AppDeploymentLogEvent",
"stepName": "Validate hosted resource upload step",
"createdAt": "2022-04-13T04:40:13.092Z",
"message": "Invalid content permissions specified: blob:",
"level": "WARNING"
},
{
"__typename": "AppDeploymentTransitionEvent",
"stepName": "Validate hosted resource upload step",
"createdAt": "2022-04-13T04:40:13.094Z",
"newStatus": "FAILED"
}
]
}
]
}
}
Invalid content permissions specified: blob:
Error: Deployment failed
Error: Deployment failed
at ArtifactDeployer.handleErrorEvent (/home/brian/.nvm/versions/node/v16.14.2/lib/node_modules/@forge/cli/out/deploy/deployer/deployer.js:151:15)
at ArtifactDeployer.pollAndCheckEvents (/home/brian/.nvm/versions/node/v16.14.2/lib/node_modules/@forge/cli/out/deploy/deployer/deployer.js:61:18)
at processTicksAndRejections (node:internal/process/task_queues:96:5)
at async ArtifactDeployer.monitorDeployment (/home/brian/.nvm/versions/node/v16.14.2/lib/node_modules/@forge/cli/out/deploy/deployer/deployer.js:72:28)
at async ArtifactDeployer.deploy (/home/brian/.nvm/versions/node/v16.14.2/lib/node_modules/@forge/cli/out/deploy/deployer/deployer.js:36:9)
at async PackageUploadDeployCommand.execute (/home/brian/.nvm/versions/node/v16.14.2/lib/node_modules/@forge/cli/out/deploy/package-upload-deploy.js:14:9)
at async CommandLineUI.displayProgress (/home/brian/.nvm/versions/node/v16.14.2/lib/node_modules/@forge/cli/node_modules/@forge/cli-shared/out/ui/command-line-ui.js:44:28)
at async DeployView.reportDeploymentProgress (/home/brian/.nvm/versions/node/v16.14.2/lib/node_modules/@forge/cli/out/command-line/view/deploy-view.js:50:24)
at async DeployController.run (/home/brian/.nvm/versions/node/v16.14.2/lib/node_modules/@forge/cli/out/command-line/controller/deploy-controller.js:122:27)
at async Command.actionProcessor (/home/brian/.nvm/versions/node/v16.14.2/lib/node_modules/@forge/cli/out/command-line/command.js:76:32)
I’m likely missing something simple, but the documentation on this feature is a bit sparse, so please advise!
Thanks in advance.