<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
    <id>https://developers.trackunit.com/changelog</id>
    <title>Trackunit Developer Hub Blog</title>
    <updated>2026-03-24T00:00:00.000Z</updated>
    <generator>https://github.com/jpmonette/feed</generator>
    <link rel="alternate" href="https://developers.trackunit.com/changelog"/>
    <subtitle>Trackunit Developer Hub Blog</subtitle>
    <icon>https://developers.trackunit.com/img/favicon.ico</icon>
    <entry>
        <title type="html"><![CDATA[trackunit/react-widgets 2.13.4 - Interactive WidgetKPI]]></title>
        <id>https://developers.trackunit.com/changelog/2026/03/24/react-widgets-widget-kpi-interactive</id>
        <link href="https://developers.trackunit.com/changelog/2026/03/24/react-widgets-widget-kpi-interactive"/>
        <updated>2026-03-24T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[The WidgetKPI component now supports an onClick prop, making KPI cards interactive with a hover effect, chevron indicator, and keyboard accessibility.]]></summary>
        <content type="html"><![CDATA[<p>The <code>WidgetKPI</code> component now supports an <code>onClick</code> prop, making KPI cards interactive with a hover effect, chevron indicator, and keyboard accessibility.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="breaking-change">Breaking Change<a href="https://developers.trackunit.com/changelog/2026/03/24/react-widgets-widget-kpi-interactive#breaking-change" class="hash-link" aria-label="Direct link to Breaking Change" title="Direct link to Breaking Change" translate="no">​</a></h3>
<p><strong><code>WidgetContent</code> padding has changed</strong> for KPI widgets using the <code>onClick</code> prop. If your widget previously used <code>padding="responsive"</code>, you should update it to <code>padding="none"</code> — the <code>WidgetKPI</code> component now handles its own padding internally.</p>]]></content>
        <category label="Improved" term="Improved"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[Iris Apps now use Vite instead of Rspack]]></title>
        <id>https://developers.trackunit.com/changelog/2026/02/26/migrate-from-rspack-to-vite</id>
        <link href="https://developers.trackunit.com/changelog/2026/02/26/migrate-from-rspack-to-vite"/>
        <updated>2026-02-26T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Iris Apps have been migrated from Rspack to Vite as the build system. Vite provides near-instant dev server startup, fast HMR using native ES modules, and optimized production builds.]]></summary>
        <content type="html"><![CDATA[<p>Iris Apps have been migrated from Rspack to <a href="https://vitejs.dev/" target="_blank" rel="noopener noreferrer" class="">Vite</a> as the build system. Vite provides near-instant dev server startup, fast HMR using native ES modules, and optimized production builds.</p>
<p>Affected packages:</p>
<ul>
<li class=""><strong>@trackunit/iris-app-sdk-vite</strong> — new package, replaces <code>@trackunit/iris-app-sdk-rspack</code> for build and serve</li>
<li class=""><strong>@trackunit/iris-app-sdk-rspack</strong> — deprecated for Iris Apps, will be removed in a future version</li>
</ul>
<p>Old executors removed:</p>
<ul>
<li class=""><strong>@trackunit/iris-app:build</strong> — removed (was already deprecated)</li>
<li class=""><strong>@trackunit/iris-app:serve</strong> — removed (was already deprecated)</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="step-1-update-all-trackunit-dependencies">Step 1: Update all Trackunit dependencies<a href="https://developers.trackunit.com/changelog/2026/02/26/migrate-from-rspack-to-vite#step-1-update-all-trackunit-dependencies" class="hash-link" aria-label="Direct link to Step 1: Update all Trackunit dependencies" title="Direct link to Step 1: Update all Trackunit dependencies" translate="no">​</a></h2>
<p>Make sure you are on the latest Trackunit dependencies:</p>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#393A34"><span class="token plain">npx npm-check-updates </span><span class="token string" style="color:#e3116c">"/@trackunit/"</span><span class="token plain"> </span><span class="token parameter variable" style="color:#36acaa">-u</span><br></div></code></pre></div></div>
<p>Then install:</p>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#393A34"><span class="token function" style="color:#d73a49">npm</span><span class="token plain"> </span><span class="token function" style="color:#d73a49">install</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token function" style="color:#d73a49">npm</span><span class="token plain"> </span><span class="token function" style="color:#d73a49">install</span><span class="token plain"> @trackunit/iris-app-sdk-vite </span><span class="token parameter variable" style="color:#36acaa">-D</span><br></div></code></pre></div></div>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="step-2-update-projectjson">Step 2: Update <code>project.json</code><a href="https://developers.trackunit.com/changelog/2026/02/26/migrate-from-rspack-to-vite#step-2-update-projectjson" class="hash-link" aria-label="Direct link to step-2-update-projectjson" title="Direct link to step-2-update-projectjson" translate="no">​</a></h2>
<p>Replace the Rspack executors with the Vite equivalents.</p>
<p><strong>Before:</strong></p>
<div class="language-json codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-json codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#393A34"><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token property" style="color:#36acaa">"targets"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token property" style="color:#36acaa">"build"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token property" style="color:#36acaa">"executor"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"@trackunit/iris-app-sdk-rspack:build"</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token property" style="color:#36acaa">"options"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">        </span><span class="token property" style="color:#36acaa">"rspackConfig"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"apps/{app-name}/rspack.config.ts"</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">        </span><span class="token property" style="color:#36acaa">"outputPath"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"dist/apps/{app-name}"</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token property" style="color:#36acaa">"outputs"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">[</span><span class="token string" style="color:#e3116c">"{options.outputPath}"</span><span class="token punctuation" style="color:#393A34">]</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token property" style="color:#36acaa">"serve"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token property" style="color:#36acaa">"executor"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"@trackunit/iris-app-sdk-rspack:serve"</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token property" style="color:#36acaa">"options"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">        </span><span class="token property" style="color:#36acaa">"rspackConfig"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"apps/{app-name}/rspack.config.ts"</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token punctuation" style="color:#393A34">}</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token punctuation" style="color:#393A34">}</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token punctuation" style="color:#393A34">}</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token punctuation" style="color:#393A34">}</span><br></div></code></pre></div></div>
<p><strong>After:</strong></p>
<div class="language-json codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-json codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#393A34"><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token property" style="color:#36acaa">"targets"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token property" style="color:#36acaa">"build"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token property" style="color:#36acaa">"executor"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"@trackunit/iris-app-sdk-vite:build"</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token property" style="color:#36acaa">"options"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">        </span><span class="token property" style="color:#36acaa">"outputPath"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"dist/apps/{app-name}"</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token property" style="color:#36acaa">"outputs"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">[</span><span class="token string" style="color:#e3116c">"{options.outputPath}"</span><span class="token punctuation" style="color:#393A34">]</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token property" style="color:#36acaa">"serve"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token property" style="color:#36acaa">"executor"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"@trackunit/iris-app-sdk-vite:serve"</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token property" style="color:#36acaa">"options"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token punctuation" style="color:#393A34">}</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token punctuation" style="color:#393A34">}</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token punctuation" style="color:#393A34">}</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token punctuation" style="color:#393A34">}</span><br></div></code></pre></div></div>
<p>Key changes:</p>
<ul>
<li class="">Executor changed from <code>@trackunit/iris-app-sdk-rspack</code> to <code>@trackunit/iris-app-sdk-vite</code></li>
<li class="">The <code>rspackConfig</code> option is removed — Vite works with zero config by default</li>
<li class="">Optionally, you can add a <code>viteConfig</code> option if you need custom configuration (see Step 3)</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="step-3-replace-rspackconfigts-with-viteconfigts">Step 3: Replace <code>rspack.config.ts</code> with <code>vite.config.ts</code><a href="https://developers.trackunit.com/changelog/2026/02/26/migrate-from-rspack-to-vite#step-3-replace-rspackconfigts-with-viteconfigts" class="hash-link" aria-label="Direct link to step-3-replace-rspackconfigts-with-viteconfigts" title="Direct link to step-3-replace-rspackconfigts-with-viteconfigts" translate="no">​</a></h2>
<p>Delete your existing <code>rspack.config.ts</code> file.</p>
<p>If you had no customizations in your rspack config (i.e., it just returned the default configuration), you can skip creating a vite config entirely — it works out of the box.</p>
<p>If you need custom configuration, create a <code>vite.config.ts</code> in your app root:</p>
<div class="language-typescript codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-typescript codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#393A34"><span class="token keyword" style="color:#00009f">import</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"> defineConfig</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> UserConfig </span><span class="token punctuation" style="color:#393A34">}</span><span class="token plain"> </span><span class="token keyword" style="color:#00009f">from</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"vite"</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token keyword" style="color:#00009f">export</span><span class="token plain"> </span><span class="token keyword" style="color:#00009f">default</span><span class="token plain"> </span><span class="token function" style="color:#d73a49">defineConfig</span><span class="token punctuation" style="color:#393A34">(</span><span class="token keyword" style="color:#00009f">async</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain">configuration</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> UserConfig</span><span class="token punctuation" style="color:#393A34">)</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token builtin">Promise</span><span class="token operator" style="color:#393A34">&lt;</span><span class="token plain">UserConfig</span><span class="token operator" style="color:#393A34">&gt;</span><span class="token plain"> </span><span class="token operator" style="color:#393A34">=&gt;</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token keyword" style="color:#00009f">return</span><span class="token plain"> configuration</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">;</span><br></div></code></pre></div></div>
<p>You can extend the default configuration by spreading and adding your overrides:</p>
<div class="language-typescript codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-typescript codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#393A34"><span class="token keyword" style="color:#00009f">import</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"> defineConfig</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> UserConfig </span><span class="token punctuation" style="color:#393A34">}</span><span class="token plain"> </span><span class="token keyword" style="color:#00009f">from</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"vite"</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token keyword" style="color:#00009f">export</span><span class="token plain"> </span><span class="token keyword" style="color:#00009f">default</span><span class="token plain"> </span><span class="token function" style="color:#d73a49">defineConfig</span><span class="token punctuation" style="color:#393A34">(</span><span class="token keyword" style="color:#00009f">async</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain">configuration</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> UserConfig</span><span class="token punctuation" style="color:#393A34">)</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token builtin">Promise</span><span class="token operator" style="color:#393A34">&lt;</span><span class="token plain">UserConfig</span><span class="token operator" style="color:#393A34">&gt;</span><span class="token plain"> </span><span class="token operator" style="color:#393A34">=&gt;</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token keyword" style="color:#00009f">return</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">        </span><span class="token operator" style="color:#393A34">...</span><span class="token plain">configuration</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">        define</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">            </span><span class="token operator" style="color:#393A34">...</span><span class="token plain">configuration</span><span class="token punctuation" style="color:#393A34">.</span><span class="token plain">define</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">            __MY_CUSTOM_FLAG__</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token constant" style="color:#36acaa">JSON</span><span class="token punctuation" style="color:#393A34">.</span><span class="token function" style="color:#d73a49">stringify</span><span class="token punctuation" style="color:#393A34">(</span><span class="token boolean" style="color:#36acaa">true</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">        </span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">;</span><br></div></code></pre></div></div>
<p>Then reference it in your <code>project.json</code>:</p>
<div class="language-json codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-json codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#393A34"><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token property" style="color:#36acaa">"serve"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token property" style="color:#36acaa">"executor"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"@trackunit/iris-app-sdk-vite:serve"</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token property" style="color:#36acaa">"options"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token property" style="color:#36acaa">"viteConfig"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"apps/{app-name}/vite.config.ts"</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token punctuation" style="color:#393A34">}</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token property" style="color:#36acaa">"build"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token property" style="color:#36acaa">"executor"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"@trackunit/iris-app-sdk-vite:build"</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token property" style="color:#36acaa">"options"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token property" style="color:#36acaa">"viteConfig"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"apps/{app-name}/vite.config.ts"</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token property" style="color:#36acaa">"outputPath"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"dist/apps/{app-name}"</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token punctuation" style="color:#393A34">}</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token punctuation" style="color:#393A34">}</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token punctuation" style="color:#393A34">}</span><br></div></code></pre></div></div>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="step-4-remove-tailwindconfigjs-if-present">Step 4: Remove <code>tailwind.config.js</code> (if present)<a href="https://developers.trackunit.com/changelog/2026/02/26/migrate-from-rspack-to-vite#step-4-remove-tailwindconfigjs-if-present" class="hash-link" aria-label="Direct link to step-4-remove-tailwindconfigjs-if-present" title="Direct link to step-4-remove-tailwindconfigjs-if-present" translate="no">​</a></h2>
<p>If your app has a <code>tailwind.config.js</code> file, delete it. Tailwind CSS v4 is now configured automatically by the Vite plugin using PostCSS — no manual Tailwind config is needed.</p>
<p>See the <a href="https://developers.trackunit.com/changelog/tailwind-4-upgrade" target="_blank" rel="noopener noreferrer" class="">Tailwind 4 upgrade changelog</a> for more details on the Tailwind migration.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="step-5-clean-up-old-dependencies">Step 5: Clean up old dependencies<a href="https://developers.trackunit.com/changelog/2026/02/26/migrate-from-rspack-to-vite#step-5-clean-up-old-dependencies" class="hash-link" aria-label="Direct link to Step 5: Clean up old dependencies" title="Direct link to Step 5: Clean up old dependencies" translate="no">​</a></h2>
<p>Remove unwanted packages from your NX's <code>package.json</code> (if present):</p>
<ul>
<li class=""><code>@trackunit/iris-app-webpack-plugin</code></li>
<li class=""><code>@trackunit/iris-app-sdk-rspack</code></li>
<li class=""><code>@rspack/core</code></li>
<li class=""><code>@rspack/dev-server</code>,</li>
<li class=""><code>copy-webpack-plugin</code></li>
<li class=""><code>css-loader</code></li>
<li class=""><code>esbuild-loader</code></li>
<li class=""><code>style-loader</code></li>
<li class=""><code>postcss</code></li>
<li class=""><code>postcss-loader</code></li>
<li class=""><code>json-loader</code></li>
<li class=""><code>webpack</code></li>
<li class=""><code>webpack-cli</code></li>
<li class=""><code>webpack-dev-server</code></li>
</ul>
<p>Then install to update your lockfile:</p>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#393A34"><span class="token function" style="color:#d73a49">npm</span><span class="token plain"> </span><span class="token function" style="color:#d73a49">install</span><br></div></code></pre></div></div>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="step-6-verify">Step 6: Verify<a href="https://developers.trackunit.com/changelog/2026/02/26/migrate-from-rspack-to-vite#step-6-verify" class="hash-link" aria-label="Direct link to Step 6: Verify" title="Direct link to Step 6: Verify" translate="no">​</a></h2>
<p>Run serve and build to verify everything works:</p>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#393A34"><span class="token comment" style="color:#999988;font-style:italic"># Start dev server</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">npx nx run </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain">app-name</span><span class="token punctuation" style="color:#393A34">}</span><span class="token plain">:serve</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token comment" style="color:#999988;font-style:italic"># Production build</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">npx nx run </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain">app-name</span><span class="token punctuation" style="color:#393A34">}</span><span class="token plain">:build</span><br></div></code></pre></div></div>
<p>The dev server will start on a port in the range 22220–22229 and print a link to open your app:</p>
<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#393A34"><span class="token plain">✨ Iris App is now started, check it out ✨</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">https://new.manager.trackunit.com/goto/iris-app-dev</span><br></div></code></pre></div></div>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="new-executor-options">New executor options<a href="https://developers.trackunit.com/changelog/2026/02/26/migrate-from-rspack-to-vite#new-executor-options" class="hash-link" aria-label="Direct link to New executor options" title="Direct link to New executor options" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="serve-options">Serve options<a href="https://developers.trackunit.com/changelog/2026/02/26/migrate-from-rspack-to-vite#serve-options" class="hash-link" aria-label="Direct link to Serve options" title="Direct link to Serve options" translate="no">​</a></h3>



































<table><thead><tr><th>Option</th><th>Type</th><th>Default</th><th>Description</th></tr></thead><tbody><tr><td><code>viteConfig</code></td><td>string</td><td>—</td><td>Path to custom Vite config file (optional)</td></tr><tr><td><code>port</code></td><td>number</td><td>auto (22220-22229)</td><td>Dev server port</td></tr><tr><td><code>host</code></td><td>string</td><td><code>localhost</code></td><td>Dev server host</td></tr><tr><td><code>skipTypeChecking</code></td><td>boolean</td><td><code>false</code></td><td>Skip TypeScript type checking during dev</td></tr></tbody></table>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="build-options">Build options<a href="https://developers.trackunit.com/changelog/2026/02/26/migrate-from-rspack-to-vite#build-options" class="hash-link" aria-label="Direct link to Build options" title="Direct link to Build options" translate="no">​</a></h3>





























<table><thead><tr><th>Option</th><th>Type</th><th>Default</th><th>Description</th></tr></thead><tbody><tr><td><code>viteConfig</code></td><td>string</td><td>—</td><td>Path to custom Vite config file (optional)</td></tr><tr><td><code>outputPath</code></td><td>string</td><td>—</td><td>Output directory (required)</td></tr><tr><td><code>skipTypeChecking</code></td><td>boolean</td><td><code>false</code></td><td>Skip TypeScript type checking during build</td></tr></tbody></table>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="bundle-analysis">Bundle analysis<a href="https://developers.trackunit.com/changelog/2026/02/26/migrate-from-rspack-to-vite#bundle-analysis" class="hash-link" aria-label="Direct link to Bundle analysis" title="Direct link to Bundle analysis" translate="no">​</a></h2>
<p>To analyze your bundle size, set the <code>BUNDLE_ANALYSE</code> environment variable:</p>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#393A34"><span class="token assign-left variable" style="color:#36acaa">BUNDLE_ANALYSE</span><span class="token operator" style="color:#393A34">=</span><span class="token plain">true npx nx run </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain">app-name</span><span class="token punctuation" style="color:#393A34">}</span><span class="token plain">:build</span><br></div></code></pre></div></div>
<p>This generates a <code>stats.html</code> file in the output directory using <a href="https://github.com/btd/rollup-plugin-visualizer" target="_blank" rel="noopener noreferrer" class="">rollup-plugin-visualizer</a>.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="troubleshooting">Troubleshooting<a href="https://developers.trackunit.com/changelog/2026/02/26/migrate-from-rspack-to-vite#troubleshooting" class="hash-link" aria-label="Direct link to Troubleshooting" title="Direct link to Troubleshooting" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="cors-errors-during-development">CORS errors during development<a href="https://developers.trackunit.com/changelog/2026/02/26/migrate-from-rspack-to-vite#cors-errors-during-development" class="hash-link" aria-label="Direct link to CORS errors during development" title="Direct link to CORS errors during development" translate="no">​</a></h3>
<p>The Vite dev server automatically sets CORS headers for Trackunit domains. If you see CORS errors:</p>
<ol>
<li class="">Verify the Vite server is running</li>
<li class="">Check that "Use Local Apps" is enabled in developer settings</li>
<li class="">Ensure no proxy is interfering with requests</li>
</ol>]]></content>
        <category label="Improved" term="Improved"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[trackunit/iris-app v1.11.45 - NX upgraded to v22.4.4]]></title>
        <id>https://developers.trackunit.com/changelog/2026/02/19/iris-app-v1-11-45-nx-upgrade</id>
        <link href="https://developers.trackunit.com/changelog/2026/02/19/iris-app-v1-11-45-nx-upgrade"/>
        <updated>2026-02-19T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[In this version of our Iris App SDK, we have upgraded NX to v22.4.4.]]></summary>
        <content type="html"><![CDATA[<p>In this version of our Iris App SDK, we have upgraded NX to v22.4.4.
Make sure to upgrade your extensions to the latest version of NX.</p>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#393A34"><span class="token plain">npx nx migrate </span><span class="token number" style="color:#36acaa">22.4</span><span class="token plain">.4</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">npx nx migrate --run-migrations</span><br></div></code></pre></div></div>
<p>Please refer to <a class="" href="https://developers.trackunit.com/docs/apps-and-extensions/overview/iris-app-sdk-reference/maintaining-your-app">Maintaining Your Application</a> for more information.</p>]]></content>
        <category label="Improved" term="Improved"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[Tailwind upgraded from v3 to v4]]></title>
        <id>https://developers.trackunit.com/changelog/2026/02/16/tailwind-4-upgrade</id>
        <link href="https://developers.trackunit.com/changelog/2026/02/16/tailwind-4-upgrade"/>
        <updated>2026-02-16T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[In this version we upgraded the foundation for our tailwind to use tailwind 4.1.18 instead of 3.x.]]></summary>
        <content type="html"><![CDATA[<p>In this version we upgraded the foundation for our tailwind to use tailwind 4.1.18 instead of 3.x.</p>
<p>Effected packages:</p>
<ul>
<li class="">@trackunit/css-core - contains the generated css file to use</li>
<li class="">@trackunit/css-tailwind - deprecated, just remove it from your package.json</li>
<li class="">@trackunit/css-tailwind-custom-properties-plugin - deprecated, just remove it from your package.json</li>
</ul>
<p>Also, many of the React libraries have changed, so make sure to update all Trackunit dependencies.</p>
<p>Use this command to make sure you are updated with all latest Trackunit dependencies</p>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#393A34"><span class="token plain">npx npm-check-updates </span><span class="token string" style="color:#e3116c">"/@trackunit/"</span><span class="token plain"> </span><span class="token parameter variable" style="color:#36acaa">-u</span><br></div></code></pre></div></div>
<p>Now you need to install the latest tailwind dependencies</p>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#393A34"><span class="token function" style="color:#d73a49">npm</span><span class="token plain"> </span><span class="token function" style="color:#d73a49">install</span><span class="token plain"> @tailwind/postcss@4.1.18 --save-dev</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token function" style="color:#d73a49">npm</span><span class="token plain"> </span><span class="token function" style="color:#d73a49">install</span><span class="token plain"> tailwindcss@4.1.18 --save-dev</span><br></div></code></pre></div></div>
<p>After this the 'serve' command will use the correct tailwindcss/postcss and all Trackunit dependencies are updated.</p>
<p>For more information on how it might effect your own tailwind classes in your codebase - check this <a href="https://tailwindcss.com/docs/upgrade-guide" target="_blank" rel="noopener noreferrer" class="">Migration guide</a></p>]]></content>
        <category label="Improved" term="Improved"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[Assets API v2]]></title>
        <id>https://developers.trackunit.com/changelog/2026/01/15/assets-api-stable-version-v2</id>
        <link href="https://developers.trackunit.com/changelog/2026/01/15/assets-api-stable-version-v2"/>
        <updated>2026-01-15T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Released stable version v2 of Assets API.]]></summary>
        <content type="html"><![CDATA[<p>Released stable version v2 of Assets API.</p>
<p>The Assets API v2 builds on the foundation of v1 with expanded querying, improved asset lifecycle management, and enhanced flexibility. In addition to onboarding, offboarding, and updating asset specifications, v2 introduces advanced filtering and pagination, asset querying by multiple identifier types, asset hiding and unhiding, and dedicated support for asset notes. The API also streamlines telematics device attachment flow, providing a more consistent and scalable way to manage assets across accounts and fleets. For more information, see the updated endpoint documentation.</p>
<p>Below a list of all available endpoints:</p>
<blockquote>
<p>➕ GET: <code>/asset/v2/assets</code></p>
</blockquote>
<p>Get assets</p>
<blockquote>
<p>➕ GET: <code>/asset/v2/assets/{assetId}</code></p>
</blockquote>
<p>Get asset</p>
<blockquote>
<p>➕ POST: <code>/asset/v2/assets</code></p>
</blockquote>
<p>Create assets</p>
<blockquote>
<p>➕ PATCH: <code>/asset/v2/assets</code></p>
</blockquote>
<p>Update assets</p>
<blockquote>
<p>➕ DELETE: <code>/asset/v2/assets/{assetId}</code></p>
</blockquote>
<p>Delete asset</p>
<blockquote>
<p>➕ POST: <code>/asset/v2/assets/query</code></p>
</blockquote>
<p>Query assets by identifiers</p>
<blockquote>
<p>➕ PATCH: <code>/asset/v2/assets/hidden</code></p>
</blockquote>
<p>Hide or unhide assets</p>
<blockquote>
<p>➕ PATCH: <code>/asset/v2/assets/note</code></p>
</blockquote>
<p>Update asset note</p>
<blockquote>
<p>➕ POST: <code>/asset/v2/assets/notes/query</code></p>
</blockquote>
<p>Fetch asset notes</p>
<blockquote>
<p>➕ POST: <code>/asset/v2/assets/{assetId}/telematics-devices</code></p>
</blockquote>
<p>Attach telematics device</p>]]></content>
        <category label="Added" term="Added"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[trackunit/iris-app v1.7.96 - Node upgraded to v24]]></title>
        <id>https://developers.trackunit.com/changelog/2025/11/26/rackunitiris-app-vxxxxx-node-upgraded-to-v24</id>
        <link href="https://developers.trackunit.com/changelog/2025/11/26/rackunitiris-app-vxxxxx-node-upgraded-to-v24"/>
        <updated>2025-11-26T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[In this version of the App SDK, we have upgraded Node to the current LTS version 24.11.1. Make sure to upgrade your workspace to at least that version.]]></summary>
        <content type="html"><![CDATA[<p>In this version of the App SDK, we have upgraded Node to the current LTS version 24.11.1. Make sure to upgrade your workspace to at least that version.</p>
<p>If using volta, you can install the latest LTS version of Node by running:</p>
<div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#393A34"><span class="token plain">volta </span><span class="token function" style="color:#d73a49">install</span><span class="token plain"> node@lts</span><br></div></code></pre></div></div>
<p>or by adding the following to your root package.json</p>
<div class="language-json codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockTitle_OeMC">package.json</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-json codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#393A34"><span class="token property" style="color:#36acaa">"volta"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token property" style="color:#36acaa">"node"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"24.11.1"</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token punctuation" style="color:#393A34">}</span><br></div></code></pre></div></div>
<p>Otherwise, you can download the latest LTS version of Node from the Node.js website.</p>]]></content>
        <category label="Improved" term="Improved"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[trackunit/filters-filter-bar v1.7.90 - Filter URL Synchronization]]></title>
        <id>https://developers.trackunit.com/changelog/2025/10/06/filters-filter-bar-v1-7-90</id>
        <link href="https://developers.trackunit.com/changelog/2025/10/06/filters-filter-bar-v1-7-90"/>
        <updated>2025-10-06T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Filter URL Synchronization]]></summary>
        <content type="html"><![CDATA[<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="filter-url-synchronization">Filter URL Synchronization<a href="https://developers.trackunit.com/changelog/2025/10/06/filters-filter-bar-v1-7-90#filter-url-synchronization" class="hash-link" aria-label="Direct link to Filter URL Synchronization" title="Direct link to Filter URL Synchronization" translate="no">​</a></h2>
<p>Filter states are now automatically synchronized with URL parameters, allowing users to bookmark or share filtered views. When filters are applied, the URL updates to reflect the current filter state, and the filters are restored when navigating back to that URL.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="breaking-change">Breaking Change<a href="https://developers.trackunit.com/changelog/2025/10/06/filters-filter-bar-v1-7-90#breaking-change" class="hash-link" aria-label="Direct link to Breaking Change" title="Direct link to Breaking Change" translate="no">​</a></h3>
<p><strong>TanStack Router is now required</strong> for Iris app extensions using the filter bar.</p>
<p>Your app entry point must be wrapped with TanStack Router's <code>RouterProvider</code>. See the <a href="https://github.com/csk-trackunit/iris-app-with-router-example/blob/main/libs/context-test/src/index.tsx" target="_blank" rel="noopener noreferrer" class="">iris-app-with-router-example</a> for a complete implementation example showing how to set up the router in your Iris app extension.</p>]]></content>
        <category label="Improved" term="Improved"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[Set custom fields values using definition key]]></title>
        <id>https://developers.trackunit.com/changelog/2025/09/04/custom-fields-def-key</id>
        <link href="https://developers.trackunit.com/changelog/2025/09/04/custom-fields-def-key"/>
        <updated>2025-09-04T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[We enhanced the endpoint for setting custom field values to support definition keys as an alternative to definition UUIDs. This improvement eliminates the need to hardcode UUIDs in your integration code, making your implementations more maintainable and readable.]]></summary>
        <content type="html"><![CDATA[<p>We enhanced the endpoint for setting custom field values to support definition keys as an alternative to definition UUIDs. This improvement eliminates the need to hardcode UUIDs in your integration code, making your implementations more maintainable and readable.</p>
<blockquote>
<p>➕ POST: /api/custom-fields/v1/set-values/</p>
</blockquote>
<p>Set custom field values</p>]]></content>
        <category label="Improved" term="Improved"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[Deprecation of Day Range Picker Popover Component]]></title>
        <id>https://developers.trackunit.com/changelog/2025/06/24/day-ranger-picker-popover</id>
        <link href="https://developers.trackunit.com/changelog/2025/06/24/day-ranger-picker-popover"/>
        <updated>2025-06-24T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[The DayRangePickerPopover component is being deprecated in favor of the new DayRangeSelect component. The new DayRangeSelect component replaces it with all the same functionality but with a more user friendly user experience.]]></summary>
        <content type="html"><![CDATA[<p>The <code>DayRangePickerPopover</code> component is being deprecated in favor of the new <code>DayRangeSelect</code> component. The new <code>DayRangeSelect</code> component replaces it with all the same functionality but with a more user friendly user experience.</p>]]></content>
        <category label="Removed" term="Removed"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[trackunit/iris-app v1.3.155 - NX upgraded to v21.1.3]]></title>
        <id>https://developers.trackunit.com/changelog/2025/06/12/iris-app-v1-3-155-nx-upgrade</id>
        <link href="https://developers.trackunit.com/changelog/2025/06/12/iris-app-v1-3-155-nx-upgrade"/>
        <updated>2025-06-12T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[In this version of our Iris App SDK, we have upgraded NX to v21.1.3.]]></summary>
        <content type="html"><![CDATA[<p>In this version of our Iris App SDK, we have upgraded NX to v21.1.3.
Make sure to upgrade your extensions to the latest version of NX.</p>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#393A34"><span class="token plain">npx nx migrate </span><span class="token number" style="color:#36acaa">21.1</span><span class="token plain">.3</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">npx nx migrate --run-migrations</span><br></div></code></pre></div></div>
<p>Please refer to <a href="https://developers.trackunit.com/docs/maintaining-your-app" target="_blank" rel="noopener noreferrer" class="">Maintaining Your Application</a> for more information.</p>]]></content>
        <category label="Improved" term="Improved"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[Bluetooth tag configuration API v1]]></title>
        <id>https://developers.trackunit.com/changelog/2025/05/29/bluetooth-tag-configuration-api-v1</id>
        <link href="https://developers.trackunit.com/changelog/2025/05/29/bluetooth-tag-configuration-api-v1"/>
        <updated>2025-05-29T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Released stable version v1 of Bluetooth tag configuration API. For more information, see the documentation and introduction of the endpoints.]]></summary>
        <content type="html"><![CDATA[<p>Released stable version v1 of Bluetooth tag configuration API. For more information, see the documentation and introduction of the endpoints.</p>
<p>Below is a list of all available REST endpoints:</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="kin-challenge">KIN Challenge<a href="https://developers.trackunit.com/changelog/2025/05/29/bluetooth-tag-configuration-api-v1#kin-challenge" class="hash-link" aria-label="Direct link to KIN Challenge" title="Direct link to KIN Challenge" translate="no">​</a></h2>
<blockquote>
<p>➕ POST: <code>/v1/kin-challenge/sign</code></p>
</blockquote>
<p>Sign KIN Challenge</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="utilization-profiles">Utilization Profiles<a href="https://developers.trackunit.com/changelog/2025/05/29/bluetooth-tag-configuration-api-v1#utilization-profiles" class="hash-link" aria-label="Direct link to Utilization Profiles" title="Direct link to Utilization Profiles" translate="no">​</a></h2>
<blockquote>
<p>➕ POST: <code>/v1/utilization-profiles/search</code></p>
</blockquote>
<p>Search Utilization Profiles</p>
<blockquote>
<p>➕ GET: <code>/v1/utilization-profiles/{profileId}</code></p>
</blockquote>
<p>Get Utilization Profile</p>
<blockquote>
<p>➕ PUT: <code>/v1/utilization-profiles/{profileId}/acknowledge-desired/{deviceId}</code></p>
</blockquote>
<p>Acknowledge Desired Utilization Profile</p>
<blockquote>
<p>➕ PUT: <code>/v1/utilization-profiles/{profileId}/acknowledge-reported/{deviceId}</code></p>
</blockquote>
<p>Acknowledge Reported Utilization Profile</p>]]></content>
        <category label="Added" term="Added"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[GraphQL Asset Clusters]]></title>
        <id>https://developers.trackunit.com/changelog/2025/05/16/gql-asset-cluster</id>
        <link href="https://developers.trackunit.com/changelog/2025/05/16/gql-asset-cluster"/>
        <updated>2025-05-16T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Released asset clustering in the GraphQL API.]]></summary>
        <content type="html"><![CDATA[<p>Released asset clustering in the GraphQL API.</p>
<p>The new <code>assetClusters</code> field supports obtaining clusters of assets based on their current location. Useful for drawing a map of clusters of assets.</p>
<p>It accepts the same <code>AssetFiltersInput</code> as the <code>assets</code> search field, so they can easily be combined if needed.</p>
<blockquote>
<p>➕ GQL: <code>Query.assetClusters</code></p>
</blockquote>
<p><a href="https://developers.trackunit.com/reference/graphql-api-introduction" target="_blank" rel="noopener noreferrer" class="">See all relevant GQL documentation</a></p>
<p><img decoding="async" loading="lazy" src="https://cdn.statically.io/gh/Trackunit/developer-hub/master/changelogs/gql-asset-cluster.png" alt="map with some asset clusters" class="img_ev3q"></p>]]></content>
        <category label="Added" term="Added"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[Fleet Data Health API v1beta1]]></title>
        <id>https://developers.trackunit.com/changelog/2025/05/01/fleet-data-health-api-v1beta1</id>
        <link href="https://developers.trackunit.com/changelog/2025/05/01/fleet-data-health-api-v1beta1"/>
        <updated>2025-05-01T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Released beta version v1beta1 of Fleet Data Health API. For more information, see the documentation and introduction of the endpoints.]]></summary>
        <content type="html"><![CDATA[<p>Released beta version v1beta1 of Fleet Data Health API. For more information, see the documentation and introduction of the endpoints.</p>
<p>Below is a list of all available REST endpoints:</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="issue-api">Issue API<a href="https://developers.trackunit.com/changelog/2025/05/01/fleet-data-health-api-v1beta1#issue-api" class="hash-link" aria-label="Direct link to Issue API" title="Direct link to Issue API" translate="no">​</a></h2>
<blockquote>
<p>➕ GET: <code>/v1beta1/assets/{assetId}/issues</code></p>
</blockquote>
<p>Get issues by asset</p>
<blockquote>
<p>➕ GET: <code>/v1beta1/issues</code></p>
</blockquote>
<p>Get issues</p>
<blockquote>
<p>➕ GET: <code>/v1beta1/issues/{issueId}</code></p>
</blockquote>
<p>Get issues</p>]]></content>
        <category label="Added" term="Added"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[Compaction App API v1]]></title>
        <id>https://developers.trackunit.com/changelog/2025/04/23/compaction-app-api-v1</id>
        <link href="https://developers.trackunit.com/changelog/2025/04/23/compaction-app-api-v1"/>
        <updated>2025-04-23T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Released stable version v1 of Compaction API. For more information, see the documentation and introduction of the endpoints.]]></summary>
        <content type="html"><![CDATA[<p>Released stable version v1 of Compaction API. For more information, see the documentation and introduction of the endpoints.</p>
<p>Below is a list of all available REST endpoints:</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="filter">Filter:<a href="https://developers.trackunit.com/changelog/2025/04/23/compaction-app-api-v1#filter" class="hash-link" aria-label="Direct link to Filter:" title="Direct link to Filter:" translate="no">​</a></h2>
<blockquote>
<p>➕ GET: <code>/api/compaction/v1/compactions/trips/{tripId}/filter</code></p>
</blockquote>
<p>Get Trip Filter</p>
<blockquote>
<p>➕ PUT: <code>/api/compaction/v1/compactions/trips/{tripId}/filter</code></p>
</blockquote>
<p>Update Trip Filter</p>
<blockquote>
<p>➕ DELETE: <code>/api/compaction/v1/compactions/trips/{tripId}/filter</code></p>
</blockquote>
<p>Delete Trip Filter</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="searches">Searches:<a href="https://developers.trackunit.com/changelog/2025/04/23/compaction-app-api-v1#searches" class="hash-link" aria-label="Direct link to Searches:" title="Direct link to Searches:" translate="no">​</a></h2>
<blockquote>
<p>➕ POST: <code>/api/compaction/v1/compactions/searches</code></p>
</blockquote>
<p>Create Saved Search</p>
<blockquote>
<p>➕ GET: <code>/api/compaction/v1/compactions/searches</code></p>
</blockquote>
<p>Get All Saved Searches</p>
<blockquote>
<p>➕ GET: <code>/api/compaction/v1/compactions/searches/{searchUUID}</code></p>
</blockquote>
<p>Get Saved Search</p>
<blockquote>
<p>➕ PUT: <code>/api/compaction/v1/compactions/searches/{searchUUID}</code></p>
</blockquote>
<p>Update Saved Search</p>
<blockquote>
<p>➕ DELETE: <code>/api/compaction/v1/compactions/searches/{searchUUID}</code></p>
</blockquote>
<p>Delete Saved Search</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="trips">Trips:<a href="https://developers.trackunit.com/changelog/2025/04/23/compaction-app-api-v1#trips" class="hash-link" aria-label="Direct link to Trips:" title="Direct link to Trips:" translate="no">​</a></h2>
<blockquote>
<p>➕ GET: <code>/api/compaction/v1/compactions/trips/{tripId}</code></p>
</blockquote>
<p>Get Compaction Trip</p>
<blockquote>
<p>➕ DELETE: <code>/api/compaction/v1/compactions/trips/{tripId}</code></p>
</blockquote>
<p>Delete Compaction Trip</p>
<blockquote>
<p>➕ GET: <code>/api/compaction/v1/compactions/trips/{tripId}/compactions</code></p>
</blockquote>
<p>Get Compaction Datapoints</p>
<blockquote>
<p>➕ GET: <code>/api/compaction/v1/compactions/trips/{tripId}/compactions/summarized</code></p>
</blockquote>
<p>Get Summarized Compaction</p>
<blockquote>
<p>➕ POST: <code>/api/compaction/v1/compactions/trips</code></p>
</blockquote>
<p>Get Compaction Trips</p>]]></content>
        <category label="Added" term="Added"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[trackunit/iris-app v1.3.38 - NX upgraded to v20.5.0]]></title>
        <id>https://developers.trackunit.com/changelog/2025/03/18/iris-app-v1-3-38-nx-upgrade</id>
        <link href="https://developers.trackunit.com/changelog/2025/03/18/iris-app-v1-3-38-nx-upgrade"/>
        <updated>2025-03-18T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[In this version of our Iris App SDK, we have upgraded NX to v20.5.0.]]></summary>
        <content type="html"><![CDATA[<p>In this version of our Iris App SDK, we have upgraded NX to v20.5.0.
Make sure to upgrade your extensions to the latest version of NX.</p>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#393A34"><span class="token plain">npx nx migrate </span><span class="token number" style="color:#36acaa">20.5</span><span class="token plain">.0</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">npx nx migrate --run-migrations</span><br></div></code></pre></div></div>
<p>Please refer to <a href="https://developers.trackunit.com/docs/maintaining-your-app" target="_blank" rel="noopener noreferrer" class="">Maintaining Your Application</a> for more information.</p>]]></content>
        <category label="Improved" term="Improved"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[trackunit/iris-app v1.3.36 - Node upgraded to v22.14.0]]></title>
        <id>https://developers.trackunit.com/changelog/2025/03/17/iris-app-v1-3-36-node-upgrade</id>
        <link href="https://developers.trackunit.com/changelog/2025/03/17/iris-app-v1-3-36-node-upgrade"/>
        <updated>2025-03-17T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[In this version of the App SDK, we have upgraded Node to the current LTS version 22.14.0.]]></summary>
        <content type="html"><![CDATA[<p>In this version of the App SDK, we have upgraded Node to the current LTS version 22.14.0.
Make sure to upgrade your workspace to at least Node v22.14.0.</p>
<p>If using volta, you can install the latest LTS version of Node by running:</p>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#393A34"><span class="token plain">volta </span><span class="token function" style="color:#d73a49">install</span><span class="token plain"> node@lts</span><br></div></code></pre></div></div>
<p>Otherwise, you can download the latest LTS version of Node from the <a href="https://nodejs.org/en/" target="_blank" rel="noopener noreferrer" class="">Node.js website</a>.</p>]]></content>
        <category label="Improved" term="Improved"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[CAN Faults API v1]]></title>
        <id>https://developers.trackunit.com/changelog/2025/03/13/can-faults-api-v1</id>
        <link href="https://developers.trackunit.com/changelog/2025/03/13/can-faults-api-v1"/>
        <updated>2025-03-13T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Released stable version v1 of CAN Faults API. For more information, see the documentation and introduction of the endpoints.]]></summary>
        <content type="html"><![CDATA[<p>Released stable version v1 of CAN Faults API. For more information, see the documentation and introduction of the endpoints.</p>
<p>Below is a list of all available REST endpoints:</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="faults">Faults:<a href="https://developers.trackunit.com/changelog/2025/03/13/can-faults-api-v1#faults" class="hash-link" aria-label="Direct link to Faults:" title="Direct link to Faults:" translate="no">​</a></h2>
<blockquote>
<p>➕ POST: /public/api/can-faults/faults</p>
</blockquote>
<p>Get faults</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="faults-summary">Faults Summary:<a href="https://developers.trackunit.com/changelog/2025/03/13/can-faults-api-v1#faults-summary" class="hash-link" aria-label="Direct link to Faults Summary:" title="Direct link to Faults Summary:" translate="no">​</a></h2>
<blockquote>
<p>➕ POST: /public/api/can-faults/faults-summary</p>
</blockquote>
<p>Get faults summary</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="simulated-fault">Simulated Fault:<a href="https://developers.trackunit.com/changelog/2025/03/13/can-faults-api-v1#simulated-fault" class="hash-link" aria-label="Direct link to Simulated Fault:" title="Direct link to Simulated Fault:" translate="no">​</a></h2>
<blockquote>
<p>➕ GET: /public/api/can-faults/simulated-faults/list</p>
</blockquote>
<p>Get simulatable faults</p>
<blockquote>
<p>➕ GET: /public/api/can-faults/simulated-faults/list/simulated</p>
</blockquote>
<p>Get simulated faults</p>
<blockquote>
<p>➕ POST: /public/api/can-faults/simulated-faults/resolve</p>
</blockquote>
<p>Resolve simulated fault</p>
<blockquote>
<p>➕ POST: /public/api/can-faults/simulated-faults/send</p>
</blockquote>
<p>Send simulated fault</p>
<blockquote>
<p>➕ GET: /public/api/can-faults/simulated-faults/summary</p>
</blockquote>
<p>Get simulated faults summary</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="unit-activefault">Unit ActiveFault:<a href="https://developers.trackunit.com/changelog/2025/03/13/can-faults-api-v1#unit-activefault" class="hash-link" aria-label="Direct link to Unit ActiveFault:" title="Direct link to Unit ActiveFault:" translate="no">​</a></h2>
<p>Get unit active faults</p>
<blockquote>
<p>➕ GET: /public/api/can-faults/get-unit-active-faults</p>
</blockquote>
<p>Get unit active faults</p>
<blockquote>
<p>➕ POST: /public/api/can-faults/get-unit-active-faults</p>
</blockquote>]]></content>
        <category label="Added" term="Added"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[trackunit/iris-app v1.0.10 - NX upgraded to v20.4.0]]></title>
        <id>https://developers.trackunit.com/changelog/2025/01/30/iris-app-v1-0-10-nx-upgrade</id>
        <link href="https://developers.trackunit.com/changelog/2025/01/30/iris-app-v1-0-10-nx-upgrade"/>
        <updated>2025-01-30T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[In this version of our Iris App SDK, we have upgraded NX to v20.4.0.]]></summary>
        <content type="html"><![CDATA[<p>In this version of our Iris App SDK, we have upgraded NX to v20.4.0.
Make sure to upgrade your extensions to the latest version of NX.</p>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#393A34"><span class="token plain">npx nx migrate </span><span class="token number" style="color:#36acaa">20.4</span><span class="token plain">.0</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">npx nx migrate --run-migrations</span><br></div></code></pre></div></div>
<p>Please refer to <a href="https://developers.trackunit.com/docs/maintaining-your-app" target="_blank" rel="noopener noreferrer" class="">Maintaining Your Application</a> for more information.</p>]]></content>
        <category label="Improved" term="Improved"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[trackunit/iris-app v0.0.5 - upgrade to rspack from webpack]]></title>
        <id>https://developers.trackunit.com/changelog/2025/01/14/upgrade-to-rspack-from-webpack</id>
        <link href="https://developers.trackunit.com/changelog/2025/01/14/upgrade-to-rspack-from-webpack"/>
        <updated>2025-01-14T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[In this version of our Iris App SDK we have added support for Rspack as well as the existing Webpack.]]></summary>
        <content type="html"><![CDATA[<p>In this version of our Iris App SDK we have added support for Rspack as well as the existing Webpack.</p>
<blockquote>
<p>To read more on rspack, please visit the <a href="https://rspack.dev/" target="_blank" rel="noopener noreferrer" class="">rspack documentation</a>.</p>
</blockquote>
<blockquote>
<p>Iris apps created with <code>@trackunit/iris-app@0.0.5</code> should already have the required rspack configuration.</p>
</blockquote>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="rename-and-update-the-webpack-config-file">Rename and update the webpack config file<a href="https://developers.trackunit.com/changelog/2025/01/14/upgrade-to-rspack-from-webpack#rename-and-update-the-webpack-config-file" class="hash-link" aria-label="Direct link to Rename and update the webpack config file" title="Direct link to Rename and update the webpack config file" translate="no">​</a></h3>
<p>Rename the <code>webpack.config.ts</code> file to <code>rspack.config.ts</code> and update the file to use the rspack configuration.</p>
<p>For the new <code>rspack.config.ts</code> file, you shold change the following import:</p>
<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#393A34"><span class="token plain">import { Configuration } from "webpack";</span><br></div></code></pre></div></div>
<p>Change to:</p>
<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#393A34"><span class="token plain">import { Configuration } from "@rspack/core";</span><br></div></code></pre></div></div>
<p>The end result should look like the following:</p>
<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#393A34"><span class="token plain">import { Configuration } from "@rspack/core";</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">export default (configuration: Configuration) =&gt; {</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  return configuration;</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">};</span><br></div></code></pre></div></div>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="change-the-following-entries-in-targets-map-in-the-projectjson-file-of-your-iris-app">Change the following entries in <code>targets</code> map in the <code>project.json</code> file of your iris app.<a href="https://developers.trackunit.com/changelog/2025/01/14/upgrade-to-rspack-from-webpack#change-the-following-entries-in-targets-map-in-the-projectjson-file-of-your-iris-app" class="hash-link" aria-label="Direct link to change-the-following-entries-in-targets-map-in-the-projectjson-file-of-your-iris-app" title="Direct link to change-the-following-entries-in-targets-map-in-the-projectjson-file-of-your-iris-app" translate="no">​</a></h3>
<p>For the <code>build</code> target, change the following:</p>
<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#393A34"><span class="token plain">    "executor": "@trackunit/iris-app:build",</span><br></div></code></pre></div></div>
<p>Change to:</p>
<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#393A34"><span class="token plain">    "executor": "@trackunit/iris-app-sdk-rspack:build",</span><br></div></code></pre></div></div>
<p>For the <code>serve</code> target, change the following:</p>
<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#393A34"><span class="token plain">    "executor": "@trackunit/iris-app:serve",</span><br></div></code></pre></div></div>
<p>Change to:</p>
<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#393A34"><span class="token plain">    "executor": "@trackunit/iris-app-sdk-rspack:serve",</span><br></div></code></pre></div></div>
<p>Also change the <code>webpackConfig</code> option to point to the new <code>rspack.config.ts</code> file instead of the <code>webpack.config.ts</code> file, and rename it to <code>rspackConfig</code>.</p>
<p>The end result should look something like the following.</p>
<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#393A34"><span class="token plain">  ...</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  "build": {</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">      "executor": "@trackunit/iris-app-sdk-rspack:build",</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">      "options": { </span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">        "outputPath": "dist/apps/your_app", </span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">        "rspackConfig": "apps/your_app/rspack.config.ts" </span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">      },</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">      "outputs": ["{options.outputPath}"]</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    },</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    "serve": {</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">      "executor": "@trackunit/iris-app-sdk-rspack:serve",</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">      "options": { </span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">        "rspackConfig": "apps/your_app/rspack.config.ts" </span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">      },</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">      "outputs": ["{options.outputPath}"]</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    },</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    ...</span><br></div></code></pre></div></div>]]></content>
        <category label="Improved" term="Improved"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[Ownership & Visibility API]]></title>
        <id>https://developers.trackunit.com/changelog/2024/10/30/ownership-visibility-api</id>
        <link href="https://developers.trackunit.com/changelog/2024/10/30/ownership-visibility-api"/>
        <updated>2024-10-30T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[New Section: The API for managing ownership and visibility of assets has been moved to its own dedicated section.]]></summary>
        <content type="html"><![CDATA[<p><strong>New Section:</strong> The API for managing ownership and visibility of assets has been moved to its own dedicated section.</p>
<p><strong>Introduction Added:</strong> A comprehensive Introduction has been included to explain the key concepts involved in managing ownership and visibility of assets.</p>
<p><strong>Endpoints:</strong> The following endpoints are now available for managing ownership and visibility of assets:</p>
<p>List asset shares</p>
<p>Share assets</p>
<p>Unshare assets</p>
<p>Transfer assets</p>
<p>Remove visibility</p>]]></content>
        <category label="Added" term="Added"/>
    </entry>
</feed>