# Forge no-egress web triggers EAP is now open to participation!

**URL:** <https://community.developer.atlassian.com/t/forge-no-egress-web-triggers-eap-is-now-open-to-participation/88021>\
**Category:** Forge Modules and Product Triggers\
**Tags:** data-residency, egress-permissions, forge-web-trigger, runs-on-atlassian\
**Created:** [January 21, 2025, 12:14am UTC](https://community.developer.atlassian.com/t/forge-no-egress-web-triggers-eap-is-now-open-to-participation/88021 "2025-01-21T00:14:40Z")\
**Posts on this page:** 9\
**Page:** 1

<div class="post-metadata">

**Author:** ![Niel-Reitmann](https://sea1.discourse-cdn.com/atlassiandeveloper/user_avatar/community.developer.atlassian.com/niel-reitmann/32/52407_2.png) [@Niel-Reitmann](https://community.developer.atlassian.com/u/Niel-Reitmann)\
**Post date:** [January 21, 2025, 12:14am UTC](https://community.developer.atlassian.com/t/forge-no-egress-web-triggers-eap-is-now-open-to-participation/88021/1 "2025-01-21T00:14:40Z")

</div>

Hey everyone!

Niel here, Associate Product Management Intern at Atlassian.

Per the [recent announcement](https://developer.atlassian.com/platform/forge/changelog/#CHANGE-2246), web triggers will now make apps ineligible for Runs on Atlassian.

We’ve been working hard on a new no-egress web trigger and would love your feedback.

**The Forge no-egress web trigger EAP is open and accepting participants!**

This new no-egress solution will provide partners with a way to use web triggers while still meeting [Runs on Atlassian](https://www.atlassian.com/blog/developer/runs-on-atlassian-gives-partners-a-new-way-to-showcase-strict-data-protections) eligibility requirements.

Developers will be able to configure no-egress web triggers that handle incoming requests and respond with status codes and set static responses.

At this stage, **we believe that this will support** :

- Callers that require indicating success or failure generically (e.g., “200” for success, “500” for failure)
- Callers that require a static error or success message based on the response

If you are interested, we encourage you to sign up for this EAP.

**How do you participate?**

- [Fill out the sign up form](https://ecosystem.atlassian.net/servicedesk/customer/portal/3421)

**What happens after you sign up:**

- You’ll be notified once the feature has been enabled so you can start testing on the App ID you submitted in the participation form.
- You’ll be invited to a slack channel where you will be able to talk to the team about feedback, challenges, and more.

We are looking forward to receiving your feedback so we can deliver a more powerful solution for you!

\*Please note, that these features will only be accessible by those participating in the EAP. However we will also be posting relevant updates to ensure everyone is informed.

Thank you!

Niel

---

<div class="post-metadata">

**Author:** ![ppasler](https://sea1.discourse-cdn.com/atlassiandeveloper/user_avatar/community.developer.atlassian.com/ppasler/32/49174_2.png) [@ppasler](https://community.developer.atlassian.com/u/ppasler)\
**Post date:** [January 30, 2025, 7:39pm UTC](https://community.developer.atlassian.com/t/forge-no-egress-web-triggers-eap-is-now-open-to-participation/88021/2 "2025-01-30T19:39:51Z")

</div>

Hi @Niel-Reitmann and @MaxLee,

Thanks for adding this!

We tried the no-egress webtriggers as proposed in the docs. Adding the `security.egress. allowDataEgress` flag worked and removed the egress warning we earlier had with the [eligibility](https://developer.atlassian.com/platform/forge/cli-reference/eligibility/) command.

I had some trouble to send the correct response to get [this example](https://developer.atlassian.com/platform/forge/manifest-reference/modules/web-trigger/#egress) to work

```auto
egress:
  allowDataEgress: false
  allowedResponses:
    - statusCode: 200
      body: '{"body": "Allowed static response"}'

```

Neither `{statusCode: 200, body: JSON.stringify("Allowed static response")}`  
nor `{statusCode: 200, body: JSON.stringify({body: "Allowed static response"})}`  
worked.

It would be nice to have the `body` property in `allowedResponses` being a list of strings, so I can send more than one static message for the same HTTP status.

We’ll keep you updated if we have further feedback!

Cheers,  
paul

---

<div class="post-metadata">

**Author:** ![MaxLee](https://avatars.discourse-cdn.com/v4/letter/m/ebca7d/32.png) [@MaxLee](https://community.developer.atlassian.com/u/MaxLee)\
**Post date:** [January 31, 2025, 1:40am UTC](https://community.developer.atlassian.com/t/forge-no-egress-web-triggers-eap-is-now-open-to-participation/88021/3 "2025-01-31T01:40:54Z")

</div>

Hi @ppasler,

Thanks for reaching out!

When using static responses, the body and status code must be exact matches, and in using `JSON.stringify("Allowed static response")` and `JSON.stringify({body: "Allowed static response"})`, we get `'"Allowed static response"'` and `'{"body":"Allowed static response"}'` respectively. Here, the static response is defined as `'{"body": "Allowed static response"}` inside the manifest, with an extra whitespace after the colon, and therefore your current implementation won’t work since static responses use string literal comparisons for bodies.

It is also possible to to define multiple static responses for the same status code because of allowedResponses being a list of status code and body pairs. An example of this would look like

```auto
modules:
  webtrigger:
    - key: no-egress-web-trigger
      function: no-egress-function
      security:
        egress:
          allowDataEgress: false
          allowedResponses:
            - statusCode: 200
              body: '{"body": "Allowed static response"}'
            - statusCode: 200
              body: '{"body": "Another allowed static response"}'

```

Please let me know if you had any further questions and I hope this was helpful!

Cheers,  
Max

---

<div class="post-metadata">

**Author:** ![ppasler](https://sea1.discourse-cdn.com/atlassiandeveloper/user_avatar/community.developer.atlassian.com/ppasler/32/49174_2.png) [@ppasler](https://community.developer.atlassian.com/u/ppasler)\
**Post date:** [February 5, 2025, 11:25am UTC](https://community.developer.atlassian.com/t/forge-no-egress-web-triggers-eap-is-now-open-to-participation/88021/4 "2025-02-05T11:25:12Z")

</div>

Hi there,

as the switch to the no-egress webtrigger will include breaking changes, we’re interested in the timeline to inform our customers.

- When will the no-egress webtrigger be GA?
- When will (legacy) egress webtrigger lead to the loss of the “Runs on Atlassian” badge?

Thanks in advance,  
paul

---

<div class="post-metadata">

**Author:** ![HeyJoe](https://sea1.discourse-cdn.com/atlassiandeveloper/user_avatar/community.developer.atlassian.com/heyjoe/32/39049_2.png) [@HeyJoe](https://community.developer.atlassian.com/u/HeyJoe)\
**Post date:** [February 6, 2025, 1:16pm UTC](https://community.developer.atlassian.com/t/forge-no-egress-web-triggers-eap-is-now-open-to-participation/88021/5 "2025-02-06T13:16:02Z")

</div>

Hi @ppasler ,

> When will the no-egress webtrigger be GA?

We are aiming for a March release. I have just updated the public roadmap here: [Jira](https://ecosystem.atlassian.net/browse/ROADMAP-102)

> When will (legacy) egress webtrigger lead to the loss of the “Runs on Atlassian” badge?

The Forge CLI eligibility check already reports standard web triggers as not eligible for runs on atlassian.

---

<div class="post-metadata">

**Author:** ![ppasler](https://sea1.discourse-cdn.com/atlassiandeveloper/user_avatar/community.developer.atlassian.com/ppasler/32/49174_2.png) [@ppasler](https://community.developer.atlassian.com/u/ppasler)\
**Post date:** [February 6, 2025, 2:03pm UTC](https://community.developer.atlassian.com/t/forge-no-egress-web-triggers-eap-is-now-open-to-participation/88021/6 "2025-02-06T14:03:30Z")

</div>

Hi @HeyJoe ,

thanks for the update!

It would be nice to have the GA before the launch of the “Runs on Atlassian” marketplace badge. It’s stated to be available on Q2 2025 ([Runs on Atlassian Gives Partners a New Way to Showcase Strict Data Protections - Work Life by Atlassian](https://www.atlassian.com/blog/developer/runs-on-atlassian-gives-partners-a-new-way-to-showcase-strict-data-protections)).

Can we already release a version for production without the GA of the no-egress webtrigger?

Cheers,  
paul

---

<div class="post-metadata">

**Author:** ![HeyJoe](https://sea1.discourse-cdn.com/atlassiandeveloper/user_avatar/community.developer.atlassian.com/heyjoe/32/39049_2.png) [@HeyJoe](https://community.developer.atlassian.com/u/HeyJoe)\
**Post date:** [February 7, 2025, 10:19am UTC](https://community.developer.atlassian.com/t/forge-no-egress-web-triggers-eap-is-now-open-to-participation/88021/7 "2025-02-07T10:19:57Z")

</div>

Hi @ppasler,

Yes we understand the importance of ensuring that the capabilities needed to achieve “Runs on Atlassian” eligibility are working ahead of the customer-facing launch (with time for partners to adopt them). That is the sequence of events we are striving for.

> Can we already release a version for production without the GA of the no-egress webtrigger?

I would not recommend this. As per our [release policy](https://developer.atlassian.com/platform/forge/whats-coming/#disclaimer-for-use), features in early access are not recommended for production use and are not subject to our typical deprecation timelines (we can change them at any time).

We are exploring if we can improve the developer experience of the no-egress web trigger to address the pain point of trying to map exactly the manifest string to the stringified JSON result. So, code changes may be needed between EAP and GA before you launch.

Hope this helps! Thanks for your feedback during the EAP.

---

<div class="post-metadata">

**Author:** ![HeyJoe](https://sea1.discourse-cdn.com/atlassiandeveloper/user_avatar/community.developer.atlassian.com/heyjoe/32/39049_2.png) [@HeyJoe](https://community.developer.atlassian.com/u/HeyJoe)\
**Post date:** [March 17, 2025, 1:29am UTC](https://community.developer.atlassian.com/t/forge-no-egress-web-triggers-eap-is-now-open-to-participation/88021/8 "2025-03-17T01:29:42Z")

</div>

Hi @ppasler (and anyone else waiting for the announcement) - this feature is now generally available and suitable for use in production: [https://developer.atlassian.com/platform/forge/changelog/#CHANGE-2362](https://developer.atlassian.com/platform/forge/changelog/#CHANGE-2362)

---

<div class="post-metadata">

**Author:** ![ppasler](https://sea1.discourse-cdn.com/atlassiandeveloper/user_avatar/community.developer.atlassian.com/ppasler/32/49174_2.png) [@ppasler](https://community.developer.atlassian.com/u/ppasler)\
**Post date:** [March 17, 2025, 8:01am UTC](https://community.developer.atlassian.com/t/forge-no-egress-web-triggers-eap-is-now-open-to-participation/88021/9 "2025-03-17T08:01:52Z")

</div>

@HeyJoe ,

Nice - Thanks for the bump!
