I’m developing a Forge app with a custom UI for Confluence, using the following configuration:
modules:
confluence:spacePage:
- key: hello-world
resource: main
icon: https://www.xyz.ai/assets/images/new/LOGO.png
resolver:
function: resolver
title: Hello World
route: hello-world
resources:
- key: main
path: static/dist
tunnel:
port: 5173
app:
runtime:
name: nodejs20.x
id: ari:cloud:ecosystem::app/4c3587dd-586b-4a3f-861a-040651b50e50
permissions:
content:
styles:
- 'unsafe-inline'
scripts:
- 'unsafe-inline'
scopes:
- read:space:confluence
- write:confluence-space
- read:page:confluence
- write:page:confluence
- read:confluence-content.all
- write:confluence-content
- search:confluence
external:
fetch:
client:
- 'api.abc.com'
images:
- 'api.abc.com'
Issue
When deploying the app, I encounter an error stating:
"The version of your app [19.31.0] that was just deployed to [development] is not eligible for the Runs on Atlassian program. Run forge eligibility to know more.
- App is egressing data"
Running forge eligibility
indicates:
“App is egressing data.”
Context
Initially, we used PDFtron for document viewing, but due to Atlassian platform limitations, we decided to host the document viewer externally. Instead of embedding it directly, we now redirect users from the Confluence app to the hosted document viewer using:
router.open(`${REDIRECT_DOMAIN}/viewer?${queryString}`);
While this approach works fine in development stage, the deployment fails with the above error. We also use the domain api.abc.com
for API calling, which is already included in the manifest.yml
file.
Question
How can I properly configure my Forge app to handle dynamic redirections and deploy it without triggering an egress error?
Are any changes required to correct the order or format of the manifest file for the above-mentioned requirements or scenario?
Any insights would be greatly appreciated!