Skip to content

Compatibility and migration

The Forge version of Custom HTML, CSS & JavaScript preserves the two historical Confluence macro module keys so existing page content can continue to render.

Macro modes

MacroNew insertionExisting macro renderingSource model
Custom Code Macro HTML CSS JSAvailableSupportedHTML body fragment
Custom Code Macro HTML CSS JS AdvancedHiddenSupported and editableComplete HTML document

The Advanced macro remains hidden to prevent new uses of the legacy mode, but it is retained so existing pages do not need to be manually recreated.

Existing Connect macros

Earlier versions stored custom code in the Connect macro body. When the Forge app encounters an existing macro without a saved Forge source value, it uses that legacy body to render the macro.

The first time an editor saves that macro, the body is copied into the Forge source configuration parameter. This is a one-time storage-format migration for that macro instance. Publish the Confluence page after saving to retain the migrated configuration.

Compatibility changes

The move from Connect to Forge intentionally keeps self-contained inline content while removing integrations that would weaken isolation.

BehaviorCurrent result
Inline HTML, CSS, and JavaScriptSupported
Existing Normal and Advanced macro contentRendered without reopening the macro
Connect AP.* APINot supported
Connect CDN all.js scriptDoes not load
New Advanced macrosNot available
External scripts, styles, images, frames, and network requestsBlocked
Native alert(), confirm(), prompt(), and print()Blocked
PDF or Word export renderingNot supported

If a legacy macro depends on AP.*, an external library, a remote image, or a network request, rewrite it as a self-contained macro or host the needed content in a supported Confluence-native location.

For the reason behind these limits and the remaining risk boundary, read Security and limitations.