Stand with Ukraine 🇺🇦
Products
Services
Blog
About Us

May 2024

🔍 Summary

May marked a significant milestone for the User Macro for Confluence Cloud app. The core template engine transitioned from Handlebars to Apache Velocity, aligning the cloud experience with the legacy Confluence Server macros. This foundational change brings improved compatibility and opens the door to greater extensibility. In parallel, we focused on security upgrades, REST API helper automation, and UI safeguards.


✨ New Features & Enhancements

  • Switched from Handlebars to Apache Velocity
    A major shift in the macro engine: we deprecated Handlebars and adopted Velocity for templating to align with the original User Macro behavior from Confluence Server.

    #set($username = $currentUser.name)
    <p>Hello, $username!</p>
  • Introduced the Render Mode detection
    Added $renderMode to the Velocity context to differentiate between page states like view/edit for conditional rendering logic.

    #if($renderMode == "edit")
      <p>You are editing this macro.</p>
    #else
      <p>This macro is in view mode.</p>
    #end
  • New Array / List / Set Helpers
    Added utility helpers to handle arrays and collections — enabling macros to calculate list sizes or iterate more easily.

  • Improved set Helper Syntax
    Simplified the set helper — now defaulting to a name/value format without requiring explicit parameters. Updated documentation accordingly.

    #set($myVar = "value")
    <p>$myVar</p>
  • Additional Context Helpers Added
    Introduced new helpers for expanded insight into macro execution context (e.g., user, page, environment variables).

  • Foreach Documentation Overhaul
    Improved the foreach helper docs with practical examples:

    • Simple iteration over user groups

    • Advanced usage with deep object traversal and conditions

  • External Request Helper
    A new $request helper enables calling external services (e.g., random quotes, integrations).

  • OpenAPI Helper Registration for Jira REST API v3
    Automated the registration of all GET endpoints from Jira's v3 REST API to support richer dynamic content in macros.

  • "Last Rendered" Column in Macro Table
    Added a new timestamp field showing the last time a macro was rendered, improving audit and usage tracking.

  • OAuth “Golden Button”
    Introduced a styled banner/button UI to simplify the OAuth authentication flow for connected services.

    image-20250520-210528.png
  • Snyk Security Integration
    Added Snyk-based scanning to CI/CD to ensure the app meets Atlassian’s best practice guidelines for secure development.

  • Improved UX for Deleting User Parameters
    The "Delete" action is now hidden inside a modal for safety. Users must confirm before a parameter is permanently removed.


🛠 Bug Fixes & Improvements

  • JiraManager Fails to Render in Edit Mode
    Fixed an issue where macros using JiraManager displayed the OAuth prompt in edit mode but failed to render properly afterward.

  • Error on Long Macro Names (DataIntegrityViolationException)
    Added length validation to prevent database errors when creating macros with excessively long names.