{"id":13455,"date":"2025-12-05T10:57:07","date_gmt":"2025-12-05T09:57:07","guid":{"rendered":"https:\/\/actonic.de\/?p=13455"},"modified":"2025-12-05T10:57:19","modified_gmt":"2025-12-05T09:57:19","slug":"release-v3-0-1-migration-to-forge-on-connect","status":"publish","type":"post","link":"https:\/\/actonic.de\/en\/release-v3-0-1-migration-to-forge-on-connect\/","title":{"rendered":"Release v3.0.1 \u2013 Migration to Forge on Connect"},"content":{"rendered":"<div class=\"wpb-content-wrapper\"><p>[vc_row][vc_column][vc_column_text css=&#8221;&#8221;]<\/p>\n<p data-start=\"2261\" data-end=\"2588\">This version marks a significant technical milestone as we begin the transition to Atlassian Forge. The app now runs on Forge using Connect as a remote backend and UI served via Atlassian Connect Express. This hybrid model allows seamless updates for users, setting the foundation for a full Forge migration in future releases.<\/p>\n<p data-start=\"2590\" data-end=\"2608\"><strong data-start=\"2590\" data-end=\"2606\">New Features<\/strong><\/p>\n<ul data-start=\"2609\" data-end=\"3143\">\n<li data-start=\"2609\" data-end=\"2665\">\n<p data-start=\"2611\" data-end=\"2665\">Added improved validation for POST and PUT requests.<\/p>\n<\/li>\n<li data-start=\"2666\" data-end=\"2732\">\n<p data-start=\"2668\" data-end=\"2732\">UI updated for a more polished and consistent user experience.<\/p>\n<\/li>\n<li data-start=\"2733\" data-end=\"2821\">\n<p data-start=\"2735\" data-end=\"2821\">react-table removed and replaced with @atlaskit\/table-tree for all table components.<\/p>\n<\/li>\n<li data-start=\"2822\" data-end=\"2889\">\n<p data-start=\"2824\" data-end=\"2889\">User names are now displayed in cancelled template information.<\/p>\n<\/li>\n<li data-start=\"2890\" data-end=\"3003\">\n<p data-start=\"2892\" data-end=\"3003\">Introduced scripts and infrastructure for Forge deployment, including pipeline and environment configuration.<\/p>\n<\/li>\n<li data-start=\"3004\" data-end=\"3073\">\n<p data-start=\"3006\" data-end=\"3073\">Caching flush implemented on deployment to prevent outdated data.<\/p>\n<\/li>\n<li data-start=\"3074\" data-end=\"3143\">\n<p data-start=\"3076\" data-end=\"3143\">Improved search logic for rules, allowing better filtering by name.<\/p>\n<\/li>\n<\/ul>\n<p data-start=\"3145\" data-end=\"3171\"><strong data-start=\"3145\" data-end=\"3169\">Fixes &amp; Improvements<\/strong><\/p>\n<ul data-start=\"3172\" data-end=\"4170\">\n<li data-start=\"3172\" data-end=\"3281\">\n<p data-start=\"3174\" data-end=\"3281\">Addressed a Regular Expression Denial of Service (ReDoS) vulnerability by using RE2 for regex validation.<\/p>\n<\/li>\n<li data-start=\"3282\" data-end=\"3341\">\n<p data-start=\"3284\" data-end=\"3341\">Refactored export functionality for better performance.<\/p>\n<\/li>\n<li data-start=\"3342\" data-end=\"3397\">\n<p data-start=\"3344\" data-end=\"3397\">Resolved multiple UI bugs in templates and dialogs.<\/p>\n<\/li>\n<li data-start=\"3398\" data-end=\"3461\">\n<p data-start=\"3400\" data-end=\"3461\">Fixed missing rule creation when new templates are created.<\/p>\n<\/li>\n<li data-start=\"3462\" data-end=\"3529\">\n<p data-start=\"3464\" data-end=\"3529\">Resolved issues with delete dialogs in the Data Cleaner module.<\/p>\n<\/li>\n<li data-start=\"3530\" data-end=\"3596\">\n<p data-start=\"3532\" data-end=\"3596\">Enhanced error handling and improved search process stability.<\/p>\n<\/li>\n<li data-start=\"3597\" data-end=\"3666\">\n<p data-start=\"3599\" data-end=\"3666\">Fixed an endless search loop and added logging and test coverage.<\/p>\n<\/li>\n<li data-start=\"3667\" data-end=\"3723\">\n<p data-start=\"3669\" data-end=\"3723\">Corrected behavior when updating <code data-start=\"3702\" data-end=\"3713\">clientKey<\/code> values.<\/p>\n<\/li>\n<li data-start=\"3724\" data-end=\"3765\">\n<p data-start=\"3726\" data-end=\"3765\">Fixed announcement validation errors.<\/p>\n<\/li>\n<li data-start=\"3766\" data-end=\"3843\">\n<p data-start=\"3768\" data-end=\"3843\">Fixed pagination issues in user announcements and removed legacy caching.<\/p>\n<\/li>\n<li data-start=\"3844\" data-end=\"3929\">\n<p data-start=\"3846\" data-end=\"3929\">Replaced custom concurrency logic with <code data-start=\"3885\" data-end=\"3894\">p-limit<\/code> and added fallback improvements.<\/p>\n<\/li>\n<li data-start=\"3930\" data-end=\"3993\">\n<p data-start=\"3932\" data-end=\"3993\">Fixed incorrect updates in statistics after user responses.<\/p>\n<\/li>\n<li data-start=\"3994\" data-end=\"4068\">\n<p data-start=\"3996\" data-end=\"4068\">Resolved CQL search issues related to request headers and rate limits.<\/p>\n<\/li>\n<li data-start=\"4069\" data-end=\"4170\">\n<p data-start=\"4071\" data-end=\"4170\">General codebase improvements including TypeScript migration, module separation, and logic cleanup.<\/p>\n<\/li>\n<\/ul>\n<p>[\/vc_column_text][\/vc_column][\/vc_row]<\/p>\n<\/div>","protected":false},"excerpt":{"rendered":"<p>Data Protection Toolkit Release 3.0.1<\/p>\n","protected":false},"author":33,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"single_release.php","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[246],"tags":[299,354,353],"class_list":["post-13455","post","type-post","status-publish","format-standard","hentry","category-articles-release-notes","tag-release-notes-en","tag-release-notes-data-protection-security-toolkit-confluence-en","tag-release-notes-data-protection-security-toolkit-jira-en"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.4 (Yoast SEO v27.5) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Release v3.0.1 \u2013 Migration to Forge on Connect - Actonic \u2013 Unfolding your potential<\/title>\n<meta name=\"description\" content=\"Data Protection Toolkit Release 3.0.1\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/actonic.de\/en\/release-v3-0-1-migration-to-forge-on-connect\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Release v3.0.1 \u2013 Migration to Forge on Connect\" \/>\n<meta property=\"og:description\" content=\"Data Protection Toolkit Release 3.0.1\" \/>\n<meta property=\"og:url\" content=\"https:\/\/actonic.de\/en\/release-v3-0-1-migration-to-forge-on-connect\/\" \/>\n<meta property=\"og:site_name\" content=\"Actonic \u2013 Unfolding your potential\" \/>\n<meta property=\"article:published_time\" content=\"2025-12-05T09:57:07+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-12-05T09:57:19+00:00\" \/>\n<meta name=\"author\" content=\"Rustem Shiriiazdanov\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Rustem Shiriiazdanov\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"2 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/actonic.de\\\/en\\\/release-v3-0-1-migration-to-forge-on-connect\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/actonic.de\\\/en\\\/release-v3-0-1-migration-to-forge-on-connect\\\/\"},\"author\":{\"name\":\"Rustem Shiriiazdanov\",\"@id\":\"https:\\\/\\\/actonic.de\\\/en\\\/#\\\/schema\\\/person\\\/315396086623b0d7b90e64da0a72acc6\"},\"headline\":\"Release v3.0.1 \u2013 Migration to Forge on Connect\",\"datePublished\":\"2025-12-05T09:57:07+00:00\",\"dateModified\":\"2025-12-05T09:57:19+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/actonic.de\\\/en\\\/release-v3-0-1-migration-to-forge-on-connect\\\/\"},\"wordCount\":274,\"keywords\":[\"Release Notes\",\"Release Notes Data Protection and Security Toolkit for Confluence\",\"Release Notes Data Protection and Security Toolkit for Jira\"],\"articleSection\":[\"Release Notes\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/actonic.de\\\/en\\\/release-v3-0-1-migration-to-forge-on-connect\\\/\",\"url\":\"https:\\\/\\\/actonic.de\\\/en\\\/release-v3-0-1-migration-to-forge-on-connect\\\/\",\"name\":\"Release v3.0.1 \u2013 Migration to Forge on Connect - Actonic \u2013 Unfolding your potential\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/actonic.de\\\/en\\\/#website\"},\"datePublished\":\"2025-12-05T09:57:07+00:00\",\"dateModified\":\"2025-12-05T09:57:19+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/actonic.de\\\/en\\\/#\\\/schema\\\/person\\\/315396086623b0d7b90e64da0a72acc6\"},\"description\":\"Data Protection Toolkit Release 3.0.1\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/actonic.de\\\/en\\\/release-v3-0-1-migration-to-forge-on-connect\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/actonic.de\\\/en\\\/release-v3-0-1-migration-to-forge-on-connect\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/actonic.de\\\/en\\\/release-v3-0-1-migration-to-forge-on-connect\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/actonic.de\\\/en\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Release v3.0.1 \u2013 Migration to Forge on Connect\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/actonic.de\\\/en\\\/#website\",\"url\":\"https:\\\/\\\/actonic.de\\\/en\\\/\",\"name\":\"Actonic \u2013 Unfolding your potential\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/actonic.de\\\/en\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/actonic.de\\\/en\\\/#\\\/schema\\\/person\\\/315396086623b0d7b90e64da0a72acc6\",\"name\":\"Rustem Shiriiazdanov\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/29c0c269fe1dd9f12ceb4fba71e920c8b71d0f6e2ab048efb0b9468914cef19e?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/29c0c269fe1dd9f12ceb4fba71e920c8b71d0f6e2ab048efb0b9468914cef19e?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/29c0c269fe1dd9f12ceb4fba71e920c8b71d0f6e2ab048efb0b9468914cef19e?s=96&d=mm&r=g\",\"caption\":\"Rustem Shiriiazdanov\"},\"url\":\"https:\\\/\\\/actonic.de\\\/en\\\/author\\\/rustem-shiriiazdanov\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Release v3.0.1 \u2013 Migration to Forge on Connect - Actonic \u2013 Unfolding your potential","description":"Data Protection Toolkit Release 3.0.1","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/actonic.de\/en\/release-v3-0-1-migration-to-forge-on-connect\/","og_locale":"en_US","og_type":"article","og_title":"Release v3.0.1 \u2013 Migration to Forge on Connect","og_description":"Data Protection Toolkit Release 3.0.1","og_url":"https:\/\/actonic.de\/en\/release-v3-0-1-migration-to-forge-on-connect\/","og_site_name":"Actonic \u2013 Unfolding your potential","article_published_time":"2025-12-05T09:57:07+00:00","article_modified_time":"2025-12-05T09:57:19+00:00","author":"Rustem Shiriiazdanov","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Rustem Shiriiazdanov","Est. reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/actonic.de\/en\/release-v3-0-1-migration-to-forge-on-connect\/#article","isPartOf":{"@id":"https:\/\/actonic.de\/en\/release-v3-0-1-migration-to-forge-on-connect\/"},"author":{"name":"Rustem Shiriiazdanov","@id":"https:\/\/actonic.de\/en\/#\/schema\/person\/315396086623b0d7b90e64da0a72acc6"},"headline":"Release v3.0.1 \u2013 Migration to Forge on Connect","datePublished":"2025-12-05T09:57:07+00:00","dateModified":"2025-12-05T09:57:19+00:00","mainEntityOfPage":{"@id":"https:\/\/actonic.de\/en\/release-v3-0-1-migration-to-forge-on-connect\/"},"wordCount":274,"keywords":["Release Notes","Release Notes Data Protection and Security Toolkit for Confluence","Release Notes Data Protection and Security Toolkit for Jira"],"articleSection":["Release Notes"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/actonic.de\/en\/release-v3-0-1-migration-to-forge-on-connect\/","url":"https:\/\/actonic.de\/en\/release-v3-0-1-migration-to-forge-on-connect\/","name":"Release v3.0.1 \u2013 Migration to Forge on Connect - Actonic \u2013 Unfolding your potential","isPartOf":{"@id":"https:\/\/actonic.de\/en\/#website"},"datePublished":"2025-12-05T09:57:07+00:00","dateModified":"2025-12-05T09:57:19+00:00","author":{"@id":"https:\/\/actonic.de\/en\/#\/schema\/person\/315396086623b0d7b90e64da0a72acc6"},"description":"Data Protection Toolkit Release 3.0.1","breadcrumb":{"@id":"https:\/\/actonic.de\/en\/release-v3-0-1-migration-to-forge-on-connect\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/actonic.de\/en\/release-v3-0-1-migration-to-forge-on-connect\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/actonic.de\/en\/release-v3-0-1-migration-to-forge-on-connect\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/actonic.de\/en\/"},{"@type":"ListItem","position":2,"name":"Release v3.0.1 \u2013 Migration to Forge on Connect"}]},{"@type":"WebSite","@id":"https:\/\/actonic.de\/en\/#website","url":"https:\/\/actonic.de\/en\/","name":"Actonic \u2013 Unfolding your potential","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/actonic.de\/en\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/actonic.de\/en\/#\/schema\/person\/315396086623b0d7b90e64da0a72acc6","name":"Rustem Shiriiazdanov","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/29c0c269fe1dd9f12ceb4fba71e920c8b71d0f6e2ab048efb0b9468914cef19e?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/29c0c269fe1dd9f12ceb4fba71e920c8b71d0f6e2ab048efb0b9468914cef19e?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/29c0c269fe1dd9f12ceb4fba71e920c8b71d0f6e2ab048efb0b9468914cef19e?s=96&d=mm&r=g","caption":"Rustem Shiriiazdanov"},"url":"https:\/\/actonic.de\/en\/author\/rustem-shiriiazdanov\/"}]}},"jetpack_featured_media_url":"","_links":{"self":[{"href":"https:\/\/actonic.de\/en\/wp-json\/wp\/v2\/posts\/13455","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/actonic.de\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/actonic.de\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/actonic.de\/en\/wp-json\/wp\/v2\/users\/33"}],"replies":[{"embeddable":true,"href":"https:\/\/actonic.de\/en\/wp-json\/wp\/v2\/comments?post=13455"}],"version-history":[{"count":0,"href":"https:\/\/actonic.de\/en\/wp-json\/wp\/v2\/posts\/13455\/revisions"}],"wp:attachment":[{"href":"https:\/\/actonic.de\/en\/wp-json\/wp\/v2\/media?parent=13455"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/actonic.de\/en\/wp-json\/wp\/v2\/categories?post=13455"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/actonic.de\/en\/wp-json\/wp\/v2\/tags?post=13455"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}