Embed the Portal in a Forge App

This guide explains how to properly configure and embed Released.so widgets in Atlassian Forge applications.

Overview

Released.so is a changelog and release notes platform that provides embeddable widgets to display product updates. This documentation covers the complete setup process for integrating Released.so embeds in Forge apps while handling Content Security Policy (CSP) requirements.

Prerequisites

  • A Forge app with UI components

  • A Released.so account with an embed widget configured

  • Access to your Released.so embed script URL

Configuration Steps

Manifest Configuration

The Released.so embed requires multiple types of external resources:

Permission Type
Address Pattern
Purpose

scripts

*.released.so

Main embed script and dynamically loaded modules

styles

*.released.so

CSS files including fonts (Inter font family)

fonts

*.released.so

Web font files

images

*.released.so

Post images and other visual assets

fetch.client

*.released.so

API calls for loading content

Add the necessary external permissions to your manifest.yml file to allow Released.so resources:

Frontend Implementation

React/TypeScript Example

HTML Example

Troubleshooting

Common CSP Violations

If you encounter Content Security Policy violations, verify these configurations:

Script Loading Issues

Solution: Ensure scripts: - address: "*.released.so" is in external permissions.

Style Loading Issues

Solution: Add styles: - address: "*.released.so" to external permissions.

Image Loading Issues

Solution: Add images: - address: "*.released.so" to external permissions.

Debugging Steps

1

Check Browser DevTools

Look for CSP violation errors in the console

2

Verify Manifest

Ensure all required external permissions are present

3

Test Deploy

Run forge deploy after manifest changes

4

Clear Cache

Browser cache might retain old CSP policies

Best Practices

Security Considerations

  1. Use Specific Domains: We use *.released.so to allow subdomains but limit to Released.so only

  2. Avoid Wildcards: Don't use * for all domains - be specific to Released.so

Performance Optimization

  1. Lazy Loading: Load the embed script only when needed

  2. Async Loading: Always use async attribute on script tags

Last updated

Was this helpful?