<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/">
    <channel>
        <title>vNext Docs Blog</title>
        <link>https://burgan-tech.github.io/vnext-docs/en/blog/archive</link>
        <description>vNext Docs Blog</description>
        <lastBuildDate>Sat, 25 Apr 2026 00:00:00 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <language>en</language>
        <item>
            <title><![CDATA[Release v0.0.44-50]]></title>
            <link>https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-44-50</link>
            <guid>https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-44-50</guid>
            <pubDate>Sat, 25 Apr 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Overview]]></description>
            <content:encoded><![CDATA[<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="overview">Overview<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-44-50#overview" class="hash-link" aria-label="Direct link to Overview" title="Direct link to Overview" translate="no">​</a></h2>
<p>This release consolidates seven interim versions (v0.0.44 through v0.0.49) into the stable <strong>v0.0.50</strong> release. The primary themes are <strong>pipeline correctness</strong>, <strong>infrastructure resilience</strong>, <strong>performance optimization</strong>, and <strong>observability</strong>.</p>
<!-- -->
<p>On the correctness front, <strong>workflow timeout</strong> now executes the full <strong>TransitionPipeline</strong> (onExit, onEntry, automatic transitions, finish handling) instead of a direct state mutation, and the <strong>async execution race condition</strong> that prematurely set instances to <code>Active</code> before post-commit jobs completed has been resolved. <strong>Extension</strong> error handling is reclassified so that infrastructure failures abort the request while application-level errors degrade gracefully. <strong>Schema validation</strong> is now enforced on <code>sync=false</code> requests, preventing invalid payloads from being accepted and later faulting.</p>
<p>Infrastructure improvements include <strong>UTC DateTime normalization</strong> via an EF Core interceptor and global ValueConverter (independent of PostgreSQL server timezone), a <strong>PgBouncer-safe schema command interceptor</strong> replacing the connection-level interceptor, and a <strong>timestamp with time zone migration</strong> for <code>SubFlowStateChangedAt</code>. On the CI/CD side, <strong>software supply chain security</strong> (Cosign signing, provenance attestation) and a <strong>cross-repo dispatch token fix</strong> strengthen the delivery pipeline.</p>
<p>Performance gains come from <strong>distributed cache tracing</strong> with short-TTL local vidx caching (eliminating redundant Redis roundtrips), <strong>broadcast cache invalidation</strong> that reads from distributed cache instead of performing a full DB reload on non-initiating pods, and <strong>hot-path index adjustments</strong> that fix a <code>GetInstanceHistory</code> regression and remove a redundant partial PK index.</p>
<p>New capabilities include <strong>dynamic workflow timeout mapping</strong> via <code>ITimerMapping</code> scripts (with static duration fallback), <strong>ErrorBoundary enrichment</strong> with <code>errorMessage</code>, <code>errorState</code>, and <code>errorTask</code> parameters in instance data, <strong><code>acceptedStatusCodes</code></strong> on HTTP-based task types to suppress ErrorBoundary for expected non-2xx responses, and <strong>local/remote metadata parity</strong> for <code>GetInstances</code> and <code>GetInstanceData</code> task executors.</p>
<hr>
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="bug-fixes">Bug Fixes<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-44-50#bug-fixes" class="hash-link" aria-label="Direct link to Bug Fixes" title="Direct link to Bug Fixes" translate="no">​</a></h2>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="timeout-target-state-pipeline-not-executed-514">Timeout target state pipeline not executed (#514)<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-44-50#timeout-target-state-pipeline-not-executed-514" class="hash-link" aria-label="Direct link to Timeout target state pipeline not executed (#514)" title="Direct link to Timeout target state pipeline not executed (#514)" translate="no">​</a></h3>
<p>When a workflow instance timed out, <code>FlowTimeoutJobHandler</code> changed the instance state and marked it complete but <strong>never ran the TransitionPipeline</strong>. All <code>onExit</code> tasks, <code>onEntry</code> tasks, automatic transitions, scheduled transitions, and finish-state handling were silently skipped. The handler now invokes the full <code>TransitionPipeline</code> with a synthetic timeout transition context, ensuring consistent state lifecycle execution regardless of how a transition is triggered.</p>
<blockquote>
<p><strong>Reference:</strong> <a href="https://github.com/burgan-tech/vnext/issues/514" target="_blank" rel="noopener noreferrer" class="">#514</a></p>
</blockquote>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="extension-failures-abort-the-entire-request-515">Extension failures abort the entire request (#515)<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-44-50#extension-failures-abort-the-entire-request-515" class="hash-link" aria-label="Direct link to Extension failures abort the entire request (#515)" title="Direct link to Extension failures abort the entire request (#515)" translate="no">​</a></h3>
<p>On all InstanceData read endpoints, any extension task failure caused the entire HTTP response to be aborted — even when the extension's <code>outputMapping</code> had already handled the downstream error at the application level. Error classification is now split into two categories:</p>
<ul>
<li class=""><strong>Infrastructure errors</strong> (network timeout, DNS failure, connection refused) — fail-fast, abort request.</li>
<li class=""><strong>Application-level / output-mapping-handled errors</strong> — degrade gracefully, continue with remaining extensions.</li>
</ul>
<blockquote>
<p><strong>Reference:</strong> <a href="https://github.com/burgan-tech/vnext/issues/515" target="_blank" rel="noopener noreferrer" class="">#515</a></p>
</blockquote>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="utc-datetime-normalization-520">UTC DateTime normalization (#520)<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-44-50#utc-datetime-normalization-520" class="hash-link" aria-label="Direct link to UTC DateTime normalization (#520)" title="Direct link to UTC DateTime normalization (#520)" translate="no">​</a></h3>
<p>PostgreSQL server configured with <code>TimeZone = 'Europe/Istanbul'</code> caused silent +3h offset corruption on all <code>DateTime</code> values stored in <code>timestamp</code> (without time zone) columns. A two-layer defense-in-depth fix was implemented:</p>
<ol>
<li class=""><strong>Write path:</strong> <code>UtcDateTimeInterceptor</code> (<code>SaveChangesInterceptor</code>) normalizes all <code>DateTime</code> properties to UTC before <code>SaveChanges</code>.</li>
<li class=""><strong>Read path:</strong> Global <code>UtcDateTimeConverter</code> via <code>ConfigureConventions</code> ensures all <code>DateTime</code> values read from the database are tagged as <code>DateTimeKind.Utc</code>.</li>
</ol>
<p>Behavior is now independent of the PostgreSQL server timezone configuration.</p>
<blockquote>
<p><strong>Reference:</strong> <a href="https://github.com/burgan-tech/vnext/issues/520" target="_blank" rel="noopener noreferrer" class="">#520</a></p>
</blockquote>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="subflowstatechangedat-timestamp-migration-525">SubFlowStateChangedAt timestamp migration (#525)<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-44-50#subflowstatechangedat-timestamp-migration-525" class="hash-link" aria-label="Direct link to SubFlowStateChangedAt timestamp migration (#525)" title="Direct link to SubFlowStateChangedAt timestamp migration (#525)" translate="no">​</a></h3>
<p>The <code>SubFlowStateChangedAt</code> column in <code>InstancesCorrelations</code> was <code>timestamp without time zone</code>. A migration converts it to <code>timestamp with time zone</code> using <code>AT TIME ZONE 'UTC'</code>, aligning it with the rest of the schema.</p>
<blockquote>
<p><strong>Reference:</strong> <a href="https://github.com/burgan-tech/vnext/issues/525" target="_blank" rel="noopener noreferrer" class="">#525</a></p>
</blockquote>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="pgbouncer-safe-schema-interceptor-534">PgBouncer-safe schema interceptor (#534)<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-44-50#pgbouncer-safe-schema-interceptor-534" class="hash-link" aria-label="Direct link to PgBouncer-safe schema interceptor (#534)" title="Direct link to PgBouncer-safe schema interceptor (#534)" translate="no">​</a></h3>
<p><code>NpgsqlSchemaConnectionInterceptor</code> set <code>search_path</code> at connection open time, which PgBouncer transaction-mode pooling could reassign to a different session. The new <code>PgBouncerSafeSchemaCommandInterceptor</code> prepends <code>SET search_path</code> inline to every SQL command, eliminating the extra round-trip and ensuring schema consistency under pooled connections.</p>
<blockquote>
<p><strong>Reference:</strong> <a href="https://github.com/burgan-tech/vnext/issues/534" target="_blank" rel="noopener noreferrer" class="">#534</a></p>
</blockquote>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="async-mode-race-condition-premature-active-status-535">Async mode race condition: premature Active status (#535)<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-44-50#async-mode-race-condition-premature-active-status-535" class="hash-link" aria-label="Direct link to Async mode race condition: premature Active status (#535)" title="Direct link to Async mode race condition: premature Active status (#535)" translate="no">​</a></h3>
<p>When <code>sync=false</code>, <code>ResolveAvailableStep</code> and <code>ClearBusyOnResumeStep</code> wrote <code>Active</code> status to the database mid-pipeline, before post-commit jobs (SubFlow start, remote task invocations) had completed. Clients polling during this window would see <code>Active</code> while the pipeline was still executing. The status update is now <strong>deferred</strong> via <code>PipelineDirectives.SetResolvedStatus</code> and applied in <code>TransitionPipeline.ApplyResolvedStatusAsync</code> only after all post-commit jobs complete.</p>
<blockquote>
<p><strong>Reference:</strong> <a href="https://github.com/burgan-tech/vnext/issues/535" target="_blank" rel="noopener noreferrer" class="">#535</a></p>
</blockquote>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="cross-repo-dispatch-token-scope-541">Cross-repo dispatch token scope (#541)<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-44-50#cross-repo-dispatch-token-scope-541" class="hash-link" aria-label="Direct link to Cross-repo dispatch token scope (#541)" title="Direct link to Cross-repo dispatch token scope (#541)" translate="no">​</a></h3>
<p>The <code>actions/create-github-app-token</code> step generated a token scoped only to <code>vnext</code>. <code>peter-evans/repository-dispatch</code> targeting <code>vnext-helm-charts</code> failed with HTTP 403. The token scope now includes both repositories.</p>
<blockquote>
<p><strong>Reference:</strong> <a href="https://github.com/burgan-tech/vnext/issues/541" target="_blank" rel="noopener noreferrer" class="">#541</a></p>
</blockquote>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="schema-validation-skipped-on-syncfalse-556">Schema validation skipped on sync=false (#556)<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-44-50#schema-validation-skipped-on-syncfalse-556" class="hash-link" aria-label="Direct link to Schema validation skipped on sync=false (#556)" title="Direct link to Schema validation skipped on sync=false (#556)" translate="no">​</a></h3>
<p>When <code>sync=false</code>, the async strategy accepted any payload without validating against the transition's JSON schema. Invalid data entered the system and faulted during background execution. Schema validation is now performed <strong>before</strong> accepting the request, regardless of the <code>sync</code> flag. Invalid payloads return <code>400 Bad Request</code> with field-level errors.</p>
<blockquote>
<p><strong>Reference:</strong> <a href="https://github.com/burgan-tech/vnext/issues/556" target="_blank" rel="noopener noreferrer" class="">#556</a></p>
</blockquote>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="local-execution-metadata-parity-for-getinstances--getinstancedata-563">Local execution metadata parity for GetInstances / GetInstanceData (#563)<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-44-50#local-execution-metadata-parity-for-getinstances--getinstancedata-563" class="hash-link" aria-label="Direct link to Local execution metadata parity for GetInstances / GetInstanceData (#563)" title="Direct link to Local execution metadata parity for GetInstances / GetInstanceData (#563)" translate="no">​</a></h3>
<p><code>GetInstanceDataTaskExecutor.ExecuteLocalAsync</code> returned no <code>metadata</code> on the happy path, and <code>GetInstancesTaskExecutor</code> had inconsistent metadata between local and remote paths. Both executors now build and return the same <code>metadata</code> dictionary as the remote/grouped paths, ensuring downstream consumers (scripting, mapping, logging) see identical shapes regardless of execution mode.</p>
<blockquote>
<p><strong>Reference:</strong> <a href="https://github.com/burgan-tech/vnext/issues/563" target="_blank" rel="noopener noreferrer" class="">#563</a></p>
</blockquote>
<hr>
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="features--enhancements">Features &amp; Enhancements<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-44-50#features--enhancements" class="hash-link" aria-label="Direct link to Features &amp; Enhancements" title="Direct link to Features &amp; Enhancements" translate="no">​</a></h2>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="errorboundary-enrichment-error-message-state-task-parameters-496">ErrorBoundary enrichment: error message, state, task parameters (#496)<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-44-50#errorboundary-enrichment-error-message-state-task-parameters-496" class="hash-link" aria-label="Direct link to ErrorBoundary enrichment: error message, state, task parameters (#496)" title="Direct link to ErrorBoundary enrichment: error message, state, task parameters (#496)" translate="no">​</a></h3>
<p>ErrorBoundary now populates <code>errorMessage</code>, <code>errorState</code>, and <code>errorTask</code> fields in instance data when an error is caught. This enables downstream consumers (backoffice UIs, mapping scripts) to display meaningful error context and handle errors programmatically.</p>
<blockquote>
<p><strong>Reference:</strong> <a href="https://github.com/burgan-tech/vnext/issues/496" target="_blank" rel="noopener noreferrer" class="">#496</a></p>
</blockquote>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="dynamic-timeout-mapping-for-subprocesses-524">Dynamic timeout mapping for subprocesses (#524)<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-44-50#dynamic-timeout-mapping-for-subprocesses-524" class="hash-link" aria-label="Direct link to Dynamic timeout mapping for subprocesses (#524)" title="Direct link to Dynamic timeout mapping for subprocesses (#524)" translate="no">​</a></h3>
<p>Workflow-level timeout now supports an optional <code>mapping</code> field (a <code>ScriptCode</code> object implementing <code>ITimerMapping</code>) for dynamic timeout duration calculation at runtime. When the mapping script succeeds, its <code>TimerSchedule</code> result is used. On failure, the static <code>timer.duration</code> is used as fallback. A static <code>timer</code> configuration is <strong>required</strong> when <code>mapping</code> is defined (validation enforced).</p>
<p><strong>Definition example:</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 property" style="color:#36acaa">"timeout"</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">"key"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"$timeout"</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">"target"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"timed-out"</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">"versionStrategy"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"None"</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">"timer"</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><span class="token property" style="color:#36acaa">"reset"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"false"</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> </span><span class="token property" style="color:#36acaa">"duration"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"PT1H"</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 property" style="color:#36acaa">"mapping"</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">"location"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"./src/TimeoutMapping.csx"</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">"code"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"&lt;BASE64&gt;"</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>Use case:</strong> A parent workflow starts a subprocess with <code>timeoutMinutes: 30</code> in the body. The subprocess timeout mapping reads this value and schedules a 30-minute timeout. If the mapping fails, the static 1-hour fallback applies.</p>
<p><strong>Documentation:</strong> <a class="" href="https://burgan-tech.github.io/vnext-docs/en/docs/components/workflow">Transitions</a>, <a class="" href="https://burgan-tech.github.io/vnext-docs/en/docs/components/workflow">Workflow Definition</a></p>
<blockquote>
<p><strong>Reference:</strong> <a href="https://github.com/burgan-tech/vnext/issues/524" target="_blank" rel="noopener noreferrer" class="">#524</a></p>
</blockquote>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="task-acceptedstatuscodes-configuration-v0050">Task <code>acceptedStatusCodes</code> configuration (v0.0.50+)<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-44-50#task-acceptedstatuscodes-configuration-v0050" class="hash-link" aria-label="Direct link to task-acceptedstatuscodes-configuration-v0050" title="Direct link to task-acceptedstatuscodes-configuration-v0050" translate="no">​</a></h3>
<p>HTTP-based task types now support an optional <code>acceptedStatusCodes</code> array in their <code>config</code> section. Status codes listed here are treated as successful even when they are error codes (4xx, 5xx), preventing the ErrorBoundary from being triggered. Supports exact codes (<code>"404"</code>), wildcard patterns (<code>"4xx"</code>), and partial wildcards (<code>"40x"</code>).</p>
<p><strong>Supported task types:</strong> Dapr Service (3), HTTP (6), StartTask (11), DirectTriggerTask (12), GetInstanceDataTask (13), SubProcessTask (14), GetInstances (15).</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 property" style="color:#36acaa">"config"</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">"method"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"GET"</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">"url"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"http://user-service/api/users/{userId}"</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">"acceptedStatusCodes"</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">"404"</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>Documentation:</strong> <a class="" href="https://burgan-tech.github.io/vnext-docs/en/docs/components/tasks/http">HTTP Task</a>, <a class="" href="https://burgan-tech.github.io/vnext-docs/en/docs/components/tasks/dapr-service">Dapr Service Task</a>, <a class="" href="https://burgan-tech.github.io/vnext-docs/en/docs/components/tasks/trigger">Trigger Tasks</a></p>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="software-supply-chain-security-545">Software supply chain security (#545)<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-44-50#software-supply-chain-security-545" class="hash-link" aria-label="Direct link to Software supply chain security (#545)" title="Direct link to Software supply chain security (#545)" translate="no">​</a></h3>
<p>The CI/CD pipeline now produces verifiable, signed, and traceable container images:</p>
<ul>
<li class=""><strong>Digest-based</strong> image handling for immutable references</li>
<li class=""><strong>Cosign keyless signing</strong> with GitHub OIDC for artifact authenticity</li>
<li class=""><strong>Build provenance attestation</strong> via GitHub attestation actions</li>
<li class="">Ready for downstream <strong>admission-policy verification</strong></li>
</ul>
<blockquote>
<p><strong>Reference:</strong> <a href="https://github.com/burgan-tech/vnext/issues/545" target="_blank" rel="noopener noreferrer" class="">#545</a></p>
</blockquote>
<hr>
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="performance-improvements">Performance Improvements<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-44-50#performance-improvements" class="hash-link" aria-label="Direct link to Performance Improvements" title="Direct link to Performance Improvements" translate="no">​</a></h2>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="broadcast-cache-invalidation-distributed-cache-first-reload-557">Broadcast cache invalidation: distributed-cache-first reload (#557)<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-44-50#broadcast-cache-invalidation-distributed-cache-first-reload-557" class="hash-link" aria-label="Direct link to Broadcast cache invalidation: distributed-cache-first reload (#557)" title="Direct link to Broadcast cache invalidation: distributed-cache-first reload (#557)" translate="no">​</a></h3>
<p>Non-initiating pods receiving a <code>DefinitionCacheInvalidationEvent</code> broadcast no longer perform a full paginated DB read of all active instance data. Instead, they read instance metadata (keys/versions), check the <strong>distributed cache</strong> first (which the initiating pod has already populated), and upsert only into the local in-memory cache. A per-key DB fallback handles distributed cache misses. This eliminates the heavy, redundant DB round-trip that stalled the first pod receiving the broadcast.</p>
<blockquote>
<p><strong>Reference:</strong> <a href="https://github.com/burgan-tech/vnext/issues/557" target="_blank" rel="noopener noreferrer" class="">#557</a></p>
</blockquote>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="distributed-cache-tracing-and-redis-vidx-optimization-568">Distributed cache tracing and Redis vidx optimization (#568)<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-44-50#distributed-cache-tracing-and-redis-vidx-optimization-568" class="hash-link" aria-label="Direct link to Distributed cache tracing and Redis vidx optimization (#568)" title="Direct link to Distributed cache tracing and Redis vidx optimization (#568)" translate="no">​</a></h3>
<ul>
<li class=""><strong>Cache tracing:</strong> A new <code>CacheActivityHelper</code> (<code>ActivitySource("BBT.Workflow.Cache")</code>) wraps distributed cache operations (<code>Cache.Get</code>, <code>Cache.Set</code>, <code>Cache.Remove</code>, <code>Cache.Warmup</code>, <code>Cache.VersionIndex</code>) with proper parent spans so Dapr sidecar spans nest correctly in trace tools.</li>
<li class=""><strong>vidx short-TTL local cache:</strong> <code>CacheSet</code> now caches Redis version-index (<code>vidx</code>) query results in a <code>ConcurrentDictionary</code> with a short TTL, eliminating 3–5+ redundant Redis roundtrips per transition hop. The local cache is invalidated on <code>SetAsync</code> and <code>InvalidateAsync</code>.</li>
</ul>
<blockquote>
<p><strong>Reference:</strong> <a href="https://github.com/burgan-tech/vnext/issues/568" target="_blank" rel="noopener noreferrer" class="">#568</a></p>
</blockquote>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="hot-path-index-adjustments-and-getinstancehistory-fix-561">Hot-path index adjustments and GetInstanceHistory fix (#561)<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-44-50#hot-path-index-adjustments-and-getinstancehistory-fix-561" class="hash-link" aria-label="Direct link to Hot-path index adjustments and GetInstanceHistory fix (#561)" title="Direct link to Hot-path index adjustments and GetInstanceHistory fix (#561)" translate="no">​</a></h3>
<ul>
<li class=""><strong>Dropped</strong> redundant <code>IX_Instances_Active_Id</code> partial PK index (never used by the planner, only write overhead).</li>
<li class=""><strong>Added</strong> non-partial <code>IX_Instances_Key</code> B-tree for <code>FindByIdentifierAsync</code> key-based lookups across all statuses.</li>
<li class=""><strong>Fixed</strong> <code>GetInstanceHistory</code> regression: a new <code>FindByIdentifierWithFullHistoryAsync</code> repository method loads the full <code>DataList</code> without the <code>IsLatest</code> filter, restoring complete revision history on the history endpoint.</li>
</ul>
<blockquote>
<p><strong>Reference:</strong> <a href="https://github.com/burgan-tech/vnext/issues/561" target="_blank" rel="noopener noreferrer" class="">#561</a></p>
</blockquote>
<hr>
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="breaking-changes">Breaking Changes<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-44-50#breaking-changes" class="hash-link" aria-label="Direct link to Breaking Changes" title="Direct link to Breaking Changes" translate="no">​</a></h2>
<p>None for this release.</p>
<hr>
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="configuration-updates">Configuration Updates<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-44-50#configuration-updates" class="hash-link" aria-label="Direct link to Configuration Updates" title="Direct link to Configuration Updates" translate="no">​</a></h2>
<p>Configuration for v0.0.50:</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">"runtimeVersion"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"0.0.50"</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">"schemaVersion"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"0.0.41"</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>
<blockquote>
<p><strong>Note:</strong> Schema package <strong>0.0.50</strong> is the documented pairing with this runtime. The <code>task-definition.schema.json</code> and <code>workflow-definition.schema.json</code> include new fields (<code>acceptedStatusCodes</code>, <code>timeout.mapping</code>). Update domain <strong><code>validate.js</code></strong> / <strong>Ajv2019</strong> usage per <a class="" href="https://burgan-tech.github.io/vnext-docs/en/docs/components/workflow">Schema Management</a>.</p>
</blockquote>
<hr>
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="issues-referenced">Issues Referenced<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-44-50#issues-referenced" class="hash-link" aria-label="Direct link to Issues Referenced" title="Direct link to Issues Referenced" translate="no">​</a></h2>
<ul>
<li class=""><a href="https://github.com/burgan-tech/vnext/issues/496" target="_blank" rel="noopener noreferrer" class="">vnext #496</a> — ErrorBoundary enrichment (error message, state, task)</li>
<li class=""><a href="https://github.com/burgan-tech/vnext/issues/514" target="_blank" rel="noopener noreferrer" class="">vnext #514</a> — FlowTimeoutJobHandler pipeline execution</li>
<li class=""><a href="https://github.com/burgan-tech/vnext/issues/515" target="_blank" rel="noopener noreferrer" class="">vnext #515</a> — Extension error classification / graceful degradation</li>
<li class=""><a href="https://github.com/burgan-tech/vnext/issues/520" target="_blank" rel="noopener noreferrer" class="">vnext #520</a> — UTC DateTime normalization</li>
<li class=""><a href="https://github.com/burgan-tech/vnext/issues/521" target="_blank" rel="noopener noreferrer" class="">vnext #521</a> — Rejecting out-of-order SubFlow state (duplicate of #520/#525)</li>
<li class=""><a href="https://github.com/burgan-tech/vnext/issues/524" target="_blank" rel="noopener noreferrer" class="">vnext #524</a> — Dynamic timeout mapping for subprocesses</li>
<li class=""><a href="https://github.com/burgan-tech/vnext/issues/525" target="_blank" rel="noopener noreferrer" class="">vnext #525</a> — SubFlowStateChangedAt timestamptz migration</li>
<li class=""><a href="https://github.com/burgan-tech/vnext/issues/534" target="_blank" rel="noopener noreferrer" class="">vnext #534</a> — PgBouncer-safe schema interceptor</li>
<li class=""><a href="https://github.com/burgan-tech/vnext/issues/535" target="_blank" rel="noopener noreferrer" class="">vnext #535</a> — Async mode race condition (premature Active status)</li>
<li class=""><a href="https://github.com/burgan-tech/vnext/issues/541" target="_blank" rel="noopener noreferrer" class="">vnext #541</a> — Cross-repo dispatch token scope</li>
<li class=""><a href="https://github.com/burgan-tech/vnext/issues/545" target="_blank" rel="noopener noreferrer" class="">vnext #545</a> — Software supply chain security</li>
<li class=""><a href="https://github.com/burgan-tech/vnext/issues/556" target="_blank" rel="noopener noreferrer" class="">vnext #556</a> — Schema validation on sync=false</li>
<li class=""><a href="https://github.com/burgan-tech/vnext/issues/557" target="_blank" rel="noopener noreferrer" class="">vnext #557</a> — Broadcast cache invalidation optimization</li>
<li class=""><a href="https://github.com/burgan-tech/vnext/issues/561" target="_blank" rel="noopener noreferrer" class="">vnext #561</a> — Hot-path indexes + GetInstanceHistory fix</li>
<li class=""><a href="https://github.com/burgan-tech/vnext/issues/563" target="_blank" rel="noopener noreferrer" class="">vnext #563</a> — Local execution metadata parity</li>
<li class=""><a href="https://github.com/burgan-tech/vnext/issues/568" target="_blank" rel="noopener noreferrer" class="">vnext #568</a> — Distributed cache tracing + vidx optimization</li>
</ul>
<hr>
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="summary">Summary<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-44-50#summary" class="hash-link" aria-label="Direct link to Summary" title="Direct link to Summary" translate="no">​</a></h2>
<ul>
<li class=""><strong>Timeout pipeline</strong> now executes full <code>TransitionPipeline</code> (onExit, onEntry, automatic transitions, finish handling) instead of direct state mutation.</li>
<li class=""><strong>Extension</strong> error handling reclassified: infrastructure errors fail-fast, application-level errors degrade gracefully.</li>
<li class=""><strong>UTC DateTime</strong> normalization via EF Core interceptor + global ValueConverter, independent of server timezone.</li>
<li class=""><strong>PgBouncer-safe</strong> schema command interceptor replaces connection-level interceptor.</li>
<li class=""><strong>Async race condition</strong> fixed: <code>Active</code> status deferred until all post-commit jobs complete.</li>
<li class=""><strong>Schema validation</strong> enforced on <code>sync=false</code> requests; invalid payloads rejected with <code>400</code>.</li>
<li class=""><strong>Dynamic timeout mapping</strong> via <code>ITimerMapping</code> scripts with static duration fallback.</li>
<li class=""><strong>ErrorBoundary</strong> enrichment with <code>errorMessage</code>, <code>errorState</code>, <code>errorTask</code> in instance data.</li>
<li class=""><strong><code>acceptedStatusCodes</code></strong> on HTTP-based tasks to suppress ErrorBoundary for expected non-2xx responses.</li>
<li class=""><strong>Supply chain security</strong>: Cosign signing, provenance attestation, digest-based image handling.</li>
<li class=""><strong>Cache performance</strong>: distributed-cache-first broadcast reload, vidx short-TTL local cache, cache operation tracing.</li>
<li class=""><strong>Index optimization</strong>: redundant partial PK dropped, Key index added, GetInstanceHistory regression fixed.</li>
<li class=""><strong>Metadata parity</strong> between local and remote execution paths for GetInstances/GetInstanceData task executors.</li>
</ul>
<hr>
<p><strong>vNext Runtime Platform Team</strong>
April 25, 2026</p>]]></content:encoded>
            <category>release</category>
        </item>
        <item>
            <title><![CDATA[Release v0.0.43]]></title>
            <link>https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-43</link>
            <guid>https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-43</guid>
            <pubDate>Mon, 06 Apr 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Overview]]></description>
            <content:encoded><![CDATA[<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="overview">Overview<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-43#overview" class="hash-link" aria-label="Direct link to Overview" title="Direct link to Overview" translate="no">​</a></h2>
<p>This release improves <strong>reliability and consistency</strong> across flows, tasks, and domain events: <strong>cancel</strong> transitions on single-flow definitions validate correctly, <strong>TriggerTask</strong> family tasks map <strong>HTTP status codes</strong> on local execution for <strong>errorBoundary</strong> matching, and <strong>AmbientServiceProvider</strong> scopes restore <strong>domain event</strong> delivery (including effective-state and subflow completion paths). <strong>GetInstance</strong> / <strong>GetInstanceData</strong> honor the <strong><code>version</code></strong> query parameter, <strong>GroupBy</strong> and aggregation work when filters reference <strong>Instance</strong> table columns, <strong>DaprServiceTask</strong> runs without invalid trace context for <strong>non-flow</strong> functions, and <strong>definition cache</strong> warm-up no longer loads the full active-instance set into memory (<strong>OutOfMemoryException</strong> fix). New capabilities include <strong>auto-transition rules</strong> evaluated with <strong>Dynamic Expresso</strong> over <strong>instance JSONB</strong>, and <strong>instance-data–based authorization</strong> using <strong><code>$user</code></strong>, <strong><code>$role</code></strong>, and <strong><code>$userBehalfOf</code></strong> JSONPath-style selectors plus <strong><code>$InstanceBehalfOfStarter</code></strong> and <strong><code>$PreviousBehalfOfUser</code></strong>.</p>
<!-- -->
<hr>
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="bug-fixes">Bug Fixes<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-43#bug-fixes" class="hash-link" aria-label="Direct link to Bug Fixes" title="Direct link to Bug Fixes" translate="no">​</a></h2>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="flow-level-cancel-transition-validation-509">Flow-level cancel transition validation (#509)<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-43#flow-level-cancel-transition-validation-509" class="hash-link" aria-label="Direct link to Flow-level cancel transition validation (#509)" title="Direct link to Flow-level cancel transition validation (#509)" translate="no">​</a></h3>
<p>The well-known <strong>cancel</strong> transition key resolved correctly but failed <strong>StateTransitionListSpecification</strong> validation (<strong>Transition:100020</strong>) on single-flow workflows. Validation now accepts the cancel definition as intended.</p>
<blockquote>
<p><strong>Reference:</strong> <a href="https://github.com/burgan-tech/vnext/issues/509" target="_blank" rel="noopener noreferrer" class="">#509</a></p>
</blockquote>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="daprservicetask-trace-context-without-flow-instance-507">DaprServiceTask: trace context without flow instance (#507)<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-43#daprservicetask-trace-context-without-flow-instance-507" class="hash-link" aria-label="Direct link to DaprServiceTask: trace context without flow instance (#507)" title="Direct link to DaprServiceTask: trace context without flow instance (#507)" translate="no">​</a></h3>
<p><strong>DaprServiceTask</strong> could produce an invalid trace context when <strong>function</strong> executions ran <strong>without</strong> a workflow instance. Execution is corrected for this scenario.</p>
<blockquote>
<p><strong>Reference:</strong> <a href="https://github.com/burgan-tech/vnext/issues/507" target="_blank" rel="noopener noreferrer" class="">#507</a></p>
</blockquote>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="ambientserviceprovider-in-gateway-and-postcommit-scopes-504">AmbientServiceProvider in Gateway and PostCommit scopes (#504)<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-43#ambientserviceprovider-in-gateway-and-postcommit-scopes-504" class="hash-link" aria-label="Direct link to AmbientServiceProvider in Gateway and PostCommit scopes (#504)" title="Direct link to AmbientServiceProvider in Gateway and PostCommit scopes (#504)" translate="no">​</a></h3>
<p><strong>AmbientServiceProvider.Current</strong> is restored consistently across <strong>local Gateway</strong> and <strong>PostCommit</strong> scopes, preventing <strong>domain event</strong> loss and related hook gaps. <strong>Effective state</strong> and <strong>subflow completion</strong> events are stabilized on this path.</p>
<blockquote>
<p><strong>Reference:</strong> <a href="https://github.com/burgan-tech/vnext/issues/504" target="_blank" rel="noopener noreferrer" class="">#504</a></p>
</blockquote>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="groupby--aggregation-with-instance-column-filters-488">GroupBy / aggregation with Instance column filters (#488)<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-43#groupby--aggregation-with-instance-column-filters-488" class="hash-link" aria-label="Direct link to GroupBy / aggregation with Instance column filters (#488)" title="Direct link to GroupBy / aggregation with Instance column filters (#488)" translate="no">​</a></h3>
<p>Aggregations using <strong>GroupBy</strong> failed when the filter referenced <strong>Instance</strong> metadata columns alongside instance data filters. Query generation is fixed for this combination.</p>
<blockquote>
<p><strong>Reference:</strong> <a href="https://github.com/burgan-tech/vnext/issues/488" target="_blank" rel="noopener noreferrer" class="">#488</a></p>
</blockquote>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="triggertask-family-statuscode-on-local-execution-493">TriggerTask family: StatusCode on local execution (#493)<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-43#triggertask-family-statuscode-on-local-execution-493" class="hash-link" aria-label="Direct link to TriggerTask family: StatusCode on local execution (#493)" title="Direct link to TriggerTask family: StatusCode on local execution (#493)" translate="no">​</a></h3>
<p><strong>TriggerTask</strong>-family tasks did not map <strong>HTTP StatusCode</strong> on <strong>local</strong> execution, so <strong>errorBoundary</strong> matching against standard codes (e.g. <strong>409</strong>, <strong>404</strong>) was unreliable. Local execution now aligns with the <strong>result pattern</strong> and error-boundary expectations.</p>
<blockquote>
<p><strong>Reference:</strong> <a href="https://github.com/burgan-tech/vnext/issues/493" target="_blank" rel="noopener noreferrer" class="">#493</a></p>
</blockquote>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="getinstance--getinstancedata-version-query-parameter-490">GetInstance / GetInstanceData: <code>version</code> query parameter (#490)<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-43#getinstance--getinstancedata-version-query-parameter-490" class="hash-link" aria-label="Direct link to getinstance--getinstancedata-version-query-parameter-490" title="Direct link to getinstance--getinstancedata-version-query-parameter-490" translate="no">​</a></h3>
<p>The <strong><code>version</code></strong> query parameter was ignored on <strong>GetInstance</strong> and <strong>GetInstanceData</strong>; operations now respect instance version as intended for consistency.</p>
<blockquote>
<p><strong>Reference:</strong> <a href="https://github.com/burgan-tech/vnext/issues/490" target="_blank" rel="noopener noreferrer" class="">#490</a></p>
</blockquote>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="definition-cache-invalidation-memory-use-487">Definition cache invalidation: memory use (#487)<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-43#definition-cache-invalidation-memory-use-487" class="hash-link" aria-label="Direct link to Definition cache invalidation: memory use (#487)" title="Direct link to Definition cache invalidation: memory use (#487)" translate="no">​</a></h3>
<p>Full <strong>active-instance</strong> loads during definition cache warm-up could cause <strong>OutOfMemoryException</strong>. Initialization uses a revised approach that avoids loading the entire active-instance table into memory.</p>
<blockquote>
<p><strong>Reference:</strong> <a href="https://github.com/burgan-tech/vnext/issues/487" target="_blank" rel="noopener noreferrer" class="">#487</a></p>
</blockquote>
<hr>
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="features">Features<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-43#features" class="hash-link" aria-label="Direct link to Features" title="Direct link to Features" translate="no">​</a></h2>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="auto-transition-rules-with-dynamic-expresso-over-instance-data-470">Auto-transition rules with Dynamic Expresso over instance data (#470)<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-43#auto-transition-rules-with-dynamic-expresso-over-instance-data-470" class="hash-link" aria-label="Direct link to Auto-transition rules with Dynamic Expresso over instance data (#470)" title="Direct link to Auto-transition rules with Dynamic Expresso over instance data (#470)" translate="no">​</a></h3>
<p><strong>Automatic</strong> transition <strong>Rule</strong> evaluation can use <strong>Dynamic Expresso</strong> for plain-text <strong>boolean</strong> expressions over <strong>instance JSON</strong> and <strong>ScriptContext</strong>, as an <strong>optional</strong> alternative to <strong>Roslyn</strong> <strong><code>IConditionMapping</code></strong> scripts.</p>
<p><strong>How to select Expresso vs Roslyn</strong></p>
<ul>
<li class="">Set <strong><code>rule.location</code></strong> to <strong><code>dynamicExpresso</code></strong>, put the expression in <strong><code>rule.code</code></strong>, and use <strong>native</strong> encoding: <strong><code>"encoding": "NAT"</code></strong> in JSON (or <strong><code>ScriptCode.FromNative</code></strong> in code).</li>
<li class="">Any other <strong><code>location</code></strong> keeps the Roslyn path (<strong>RoutingConditionEvaluator</strong> → <strong>ScriptConditionEvaluator</strong>).</li>
</ul>
<p><strong><code>context</code> parameter (<code>ExpressoRuleContext</code>)</strong></p>
<p>Expressions take a single <strong><code>context</code></strong> argument built from <strong><code>ScriptContext</code></strong> with an allowlist, including: <strong><code>Body</code></strong>, <strong><code>CurrentTransition</code></strong> (e.g. <strong>Data</strong> / <strong>Header</strong>), <strong><code>MetaData</code></strong>, <strong><code>Workflow</code></strong>, <strong><code>Instance</code></strong> (including <strong>Data</strong> as JSON), <strong><code>Headers</code></strong>, <strong><code>QueryParameters</code></strong>, <strong><code>RouteValues</code></strong>, <strong><code>Transition</code></strong> (key/from/target/trigger fields; no embedded rule/timer/task payloads), and <strong><code>Runtime</code></strong>. Some members may be <strong>null</strong> when not present on the context.</p>
<p><strong>JSON access</strong></p>
<p><strong><code>Instance.Data</code></strong>, <strong><code>Body</code></strong>, and related JSON are surfaced as <strong><code>RuleJsonDynamic</code></strong> (dynamic members, indexers, array <strong>Count</strong> / <strong>Contains</strong>). Missing keys resolve to <strong>null</strong>. Prefer <strong><code>AsDouble()</code></strong> / <strong><code>AsInt32()</code></strong>, <strong><code>AsBoolean()</code></strong>, <strong><code>AsArrayLength()</code></strong>, and array <strong><code>Contains</code></strong> as needed.</p>
<p><strong>Expression samples</strong></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">context.Instance.Data["amount"].AsDouble() &gt; 100000</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">context.Instance.Data["documents"].AsArrayLength() == 0</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">context.Body["score"].AsDouble() &gt;= 80</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">context.Transition != null &amp;&amp; context.Transition.Key == "approve-auto"</span><br></div></code></pre></div></div>
<p><strong>Definition fragment (NAT)</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 property" style="color:#36acaa">"rule"</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">"location"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"dynamicExpresso"</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">"encoding"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"NAT"</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">"code"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"context.Instance.Data.absenceType.ToString() == \"personal-leave\""</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>Full detail, <strong><code>ExpressoRuleContext</code></strong> member table, and additional examples: <a class="" href="https://burgan-tech.github.io/vnext-docs/en/docs/components/mappings">Mappings</a> — subsection <strong>Rule expressions with Dynamic Expresso (v0.0.43+)</strong>.</p>
<blockquote>
<p><strong>Reference:</strong> <a href="https://github.com/burgan-tech/vnext/issues/470" target="_blank" rel="noopener noreferrer" class="">#470</a></p>
</blockquote>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="instance-data-authorization-user--role--userbehalfof-jsonpath-469">Instance-data authorization: <code>$user</code> / <code>$role</code> / <code>$userBehalfOf</code> JSONPath (#469)<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-43#instance-data-authorization-user--role--userbehalfof-jsonpath-469" class="hash-link" aria-label="Direct link to instance-data-authorization-user--role--userbehalfof-jsonpath-469" title="Direct link to instance-data-authorization-user--role--userbehalfof-jsonpath-469" translate="no">​</a></h3>
<p>Authorization is extended to compare token values to data resolved from <strong>ScriptContext</strong> (including <strong>instance data</strong>) via JSONPath-style expressions:</p>
<table><thead><tr><th>Prefix</th><th>Role in comparison</th></tr></thead><tbody><tr><td><strong><code>$user.&lt;path&gt;</code></strong></td><td><strong>Actor</strong> token vs. value at <code>&lt;path&gt;</code></td></tr><tr><td><strong><code>$role.&lt;path&gt;</code></strong></td><td><strong>Role</strong> token vs. value at <code>&lt;path&gt;</code></td></tr><tr><td><strong><code>$userBehalfOf.&lt;path&gt;</code></strong></td><td><strong>Subject</strong> (behalf-of) token vs. value at <code>&lt;path&gt;</code></td></tr></tbody></table>
<p>Additional <strong>system roles</strong>:</p>
<table><thead><tr><th>Role</th><th>Meaning</th></tr></thead><tbody><tr><td><strong><code>$InstanceBehalfOfStarter</code></strong></td><td>Subject (behalf-of) for the instance starter</td></tr><tr><td><strong><code>$PreviousBehalfOfUser</code></strong></td><td>Subject (behalf-of) for the actor of the <strong>previous</strong> transition</td></tr></tbody></table>
<p>This applies across <strong>available transition</strong> and <strong>data</strong> authorization (including <strong>Master</strong> schema field visibility where supported).</p>
<p><strong>Documentation:</strong> <a class="" href="https://burgan-tech.github.io/vnext-docs/en/docs/components/functions/built-in">Function APIs — Authorization</a> (subsection <strong>Instance-data JSONPath authorization (v0.0.43+)</strong>).</p>
<blockquote>
<p><strong>Reference:</strong> <a href="https://github.com/burgan-tech/vnext/issues/469" target="_blank" rel="noopener noreferrer" class="">#469</a></p>
</blockquote>
<hr>
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="breaking-changes">Breaking Changes<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-43#breaking-changes" class="hash-link" aria-label="Direct link to Breaking Changes" title="Direct link to Breaking Changes" translate="no">​</a></h2>
<p>None for this release.</p>
<hr>
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="configuration-updates">Configuration Updates<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-43#configuration-updates" class="hash-link" aria-label="Direct link to Configuration Updates" title="Direct link to Configuration Updates" translate="no">​</a></h2>
<p>Configuration for v0.0.43:</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">"runtimeVersion"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"0.0.43"</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">"schemaVersion"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"0.0.39"</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>
<blockquote>
<p><strong>Note:</strong> <strong>Schema package 0.0.39</strong> remains the documented pairing with this runtime (same as v0.0.42). Update domain <strong><code>validate.js</code></strong> / <strong>Ajv2019</strong> usage per <a class="" href="https://burgan-tech.github.io/vnext-docs/en/docs/components/schema">Schema Management</a> if you have not already.</p>
</blockquote>
<hr>
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="issues-referenced">Issues Referenced<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-43#issues-referenced" class="hash-link" aria-label="Direct link to Issues Referenced" title="Direct link to Issues Referenced" translate="no">​</a></h2>
<ul>
<li class=""><a href="https://github.com/burgan-tech/vnext/issues/509" target="_blank" rel="noopener noreferrer" class="">vnext #509</a> — Cancel transition validation (single-flow)</li>
<li class=""><a href="https://github.com/burgan-tech/vnext/issues/507" target="_blank" rel="noopener noreferrer" class="">vnext #507</a> — DaprServiceTask trace context without instance</li>
<li class=""><a href="https://github.com/burgan-tech/vnext/issues/504" target="_blank" rel="noopener noreferrer" class="">vnext #504</a> — AmbientServiceProvider / domain events</li>
<li class=""><a href="https://github.com/burgan-tech/vnext/issues/488" target="_blank" rel="noopener noreferrer" class="">vnext #488</a> — GroupBy + Instance filters</li>
<li class=""><a href="https://github.com/burgan-tech/vnext/issues/493" target="_blank" rel="noopener noreferrer" class="">vnext #493</a> — TriggerTask StatusCode / errorBoundary</li>
<li class=""><a href="https://github.com/burgan-tech/vnext/issues/490" target="_blank" rel="noopener noreferrer" class="">vnext #490</a> — GetInstance(GetInstanceData) version query</li>
<li class=""><a href="https://github.com/burgan-tech/vnext/issues/487" target="_blank" rel="noopener noreferrer" class="">vnext #487</a> — Definition cache OOM</li>
<li class=""><a href="https://github.com/burgan-tech/vnext/issues/470" target="_blank" rel="noopener noreferrer" class="">vnext #470</a> — Dynamic Expresso auto-transition rules</li>
<li class=""><a href="https://github.com/burgan-tech/vnext/issues/469" target="_blank" rel="noopener noreferrer" class="">vnext #469</a> — Instance JSONPath authorization</li>
</ul>
<hr>
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="summary">Summary<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-43#summary" class="hash-link" aria-label="Direct link to Summary" title="Direct link to Summary" translate="no">​</a></h2>
<ul>
<li class=""><strong>Cancel</strong> transition validation fixed for single-flow definitions.</li>
<li class=""><strong>Stable domain events</strong> and hooks via <strong>AmbientServiceProvider</strong> scope fixes; <strong>effective state</strong> / <strong>subflow completion</strong> paths improved.</li>
<li class=""><strong>GetInstance</strong> / <strong>GetInstanceData</strong> respect <strong><code>version</code></strong>; <strong>GroupBy</strong> with <strong>Instance</strong> filters fixed; <strong>DaprServiceTask</strong> without instance fixed; <strong>TriggerTask</strong> <strong>StatusCode</strong> for <strong>errorBoundary</strong> on local runs.</li>
<li class=""><strong>Memory-safe</strong> definition cache warm-up (no full active-instance table load).</li>
<li class=""><strong>Dynamic Expresso</strong> for <strong>auto-transition</strong> rules over instance data; <strong>JSONPath-style</strong> <strong><code>$user</code> / <code>$role</code> / <code>$userBehalfOf</code></strong> authorization and new behalf-of system roles.</li>
</ul>
<hr>
<p><strong>vNext Runtime Platform Team</strong><br>
<!-- -->April 6, 2026</p>]]></content:encoded>
            <category>release</category>
        </item>
        <item>
            <title><![CDATA[Release v0.0.42]]></title>
            <link>https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-42</link>
            <guid>https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-42</guid>
            <pubDate>Wed, 25 Mar 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Overview]]></description>
            <content:encoded><![CDATA[<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="overview">Overview<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-42#overview" class="hash-link" aria-label="Direct link to Overview" title="Direct link to Overview" translate="no">​</a></h2>
<p>This release shifts <strong>flow database schema</strong> creation and migration to <strong>deploy time</strong> via a <strong>DB-Migrator job</strong> instead of running migration checks on every start and transition request. It improves <strong>observability</strong> with consistent structured logging and <strong>TaskCoordinator</strong> span tracing (Aether). For <strong>synchronous</strong> start and transition calls (<code>sync=true</code>), responses now include <strong>mapped instance data</strong> (attributes, ETags, extensions) in addition to <code>id</code> and <code>status</code>. <strong>User-defined functions</strong> support <strong>multi-task execution</strong> with ordered <code>onExecutionTasks</code> and optional <strong>output mapping</strong> via <code>IOutputHandler</code>. <strong>SubFlow</strong> definitions can use an <strong><code>overrides</code></strong> object to replace transition roles, state query roles, timeouts, and related behavior while keeping legacy <strong>view override</strong> compatibility. <strong>ScriptBase</strong> adds <strong>collection and dynamic-object helpers</strong> (<code>CreateObject</code>, <code>GetList</code>, <code>ListFilter</code>, <code>ListSelect</code>, and related APIs) for safer in-script shaping of <code>Instance.Data</code>. <strong>AutoMapper</strong> has been replaced by <strong>Mapperly</strong> in the Aether SDK, and AutoMapper is no longer a vNext dependency.</p>
<!-- -->
<hr>
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="bug-fixes">Bug Fixes<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-42#bug-fixes" class="hash-link" aria-label="Direct link to Bug Fixes" title="Direct link to Bug Fixes" translate="no">​</a></h2>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="instance-state-during-subflow-completion-propagation-461">Instance state during subflow completion propagation (#461)<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-42#instance-state-during-subflow-completion-propagation-461" class="hash-link" aria-label="Direct link to Instance state during subflow completion propagation (#461)" title="Direct link to Instance state during subflow completion propagation (#461)" translate="no">​</a></h3>
<p>While a subflow completion was still propagating, the parent instance could incorrectly report <strong>Completed</strong> status. The <strong>State</strong> function (long polling) was adjusted so parent status reflects the correct phase during that window.</p>
<blockquote>
<p><strong>Reference:</strong> <a href="https://github.com/burgan-tech/vnext/issues/461" target="_blank" rel="noopener noreferrer" class="">#461</a></p>
</blockquote>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="schema-flowversion-and-config-required-88-89">Schema: <code>flowVersion</code> and <code>config</code> required (#88, #89)<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-42#schema-flowversion-and-config-required-88-89" class="hash-link" aria-label="Direct link to schema-flowversion-and-config-required-88-89" title="Direct link to schema-flowversion-and-config-required-88-89" translate="no">​</a></h3>
<p><strong>flowVersion</strong> is required across definition schemas, and <strong>config</strong> is required on task definitions in vnext-schema, aligning validation with runtime and avoiding serialization issues.</p>
<blockquote>
<p><strong>References:</strong> <a href="https://github.com/burgan-tech/vnext-schema/issues/88" target="_blank" rel="noopener noreferrer" class="">#88</a>, <a href="https://github.com/burgan-tech/vnext-schema/issues/89" target="_blank" rel="noopener noreferrer" class="">#89</a></p>
</blockquote>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="schema-errorboundary-abort-action-aligned-with-backend-93">Schema: <code>errorBoundary</code> abort action aligned with backend (#93)<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-42#schema-errorboundary-abort-action-aligned-with-backend-93" class="hash-link" aria-label="Direct link to schema-errorboundary-abort-action-aligned-with-backend-93" title="Direct link to schema-errorboundary-abort-action-aligned-with-backend-93" translate="no">​</a></h3>
<p>The workflow definition schema for <strong>errorBoundary</strong> (abort action / transition) was aligned with backend validators.</p>
<blockquote>
<p><strong>Reference:</strong> <a href="https://github.com/burgan-tech/vnext-schema/issues/93" target="_blank" rel="noopener noreferrer" class="">#93</a></p>
</blockquote>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="workflow-cli-correct-csx-file-when-names-collide-10">Workflow CLI: correct <code>.csx</code> file when names collide (#10)<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-42#workflow-cli-correct-csx-file-when-names-collide-10" class="hash-link" aria-label="Direct link to workflow-cli-correct-csx-file-when-names-collide-10" title="Direct link to workflow-cli-correct-csx-file-when-names-collide-10" translate="no">​</a></h3>
<p>When the same <strong>.csx</strong> file name existed in multiple component directories, the CLI could update the wrong file. Selection now respects the configured <strong>location</strong> (vnext-workflow-cli <strong>v1.0.6</strong>).</p>
<blockquote>
<p><strong>Reference:</strong> <a href="https://github.com/burgan-tech/vnext-workflow-cli/issues/10" target="_blank" rel="noopener noreferrer" class="">#10</a></p>
</blockquote>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="init-service-timestamps-in-logs-and-clearer-errors-475">Init service: timestamps in logs and clearer errors (#475)<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-42#init-service-timestamps-in-logs-and-clearer-errors-475" class="hash-link" aria-label="Direct link to Init service: timestamps in logs and clearer errors (#475)" title="Direct link to Init service: timestamps in logs and clearer errors (#475)" translate="no">​</a></h3>
<p>Init service logs include <strong>timestamps</strong>. Helm chart updates increase <strong>nginx ingress</strong> timeouts where init was timing out.</p>
<blockquote>
<p><strong>Reference:</strong> <a href="https://github.com/burgan-tech/vnext/issues/475" target="_blank" rel="noopener noreferrer" class="">#475</a></p>
</blockquote>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="remote-view--roles-headers-viewtype-init-domain-replacement-statesubtype-482">Remote view / roles: headers, ViewType, init domain replacement, StateSubType (#482)<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-42#remote-view--roles-headers-viewtype-init-domain-replacement-statesubtype-482" class="hash-link" aria-label="Direct link to Remote view / roles: headers, ViewType, init domain replacement, StateSubType (#482)" title="Direct link to Remote view / roles: headers, ViewType, init domain replacement, StateSubType (#482)" translate="no">​</a></h3>
<p>HTTP handling for <strong>remote view</strong> and <strong>remote role</strong> calls was hardened (null-safety, <strong>ViewType</strong> enum, <strong>content-header</strong> forwarding). Remote view definitions receive corrected <strong>domain replacement</strong> in init. <strong>StateSubType</strong> adds <strong>Cancelled = 7</strong> and <strong>Timeout = 8</strong>.</p>
<blockquote>
<p><strong>Reference:</strong> <a href="https://github.com/burgan-tech/vnext/issues/482" target="_blank" rel="noopener noreferrer" class="">#482</a></p>
</blockquote>
<hr>
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="features">Features<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-42#features" class="hash-link" aria-label="Direct link to Features" title="Direct link to Features" translate="no">​</a></h2>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="flow-db-schema-at-deploy-time-449">Flow DB schema at deploy time (#449)<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-42#flow-db-schema-at-deploy-time-449" class="hash-link" aria-label="Direct link to Flow DB schema at deploy time (#449)" title="Direct link to Flow DB schema at deploy time (#449)" translate="no">​</a></h3>
<p>Per-request migration checks on start and transition have been removed. A <strong>DB-Migrator job</strong> applies schema creation and migrations at <strong>deploy</strong> time.</p>
<blockquote>
<p><strong>Reference:</strong> <a href="https://github.com/burgan-tech/vnext/issues/449" target="_blank" rel="noopener noreferrer" class="">#449</a></p>
</blockquote>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="telemetry-aether-logging-and-taskcoordinator-spans-451">Telemetry: Aether logging and TaskCoordinator spans (#451)<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-42#telemetry-aether-logging-and-taskcoordinator-spans-451" class="hash-link" aria-label="Direct link to Telemetry: Aether logging and TaskCoordinator spans (#451)" title="Direct link to Telemetry: Aether logging and TaskCoordinator spans (#451)" translate="no">​</a></h3>
<p>Logging is more consistent end-to-end, and <strong>task executions</strong> are easier to trace with <strong>span</strong> instrumentation on the task coordinator path.</p>
<blockquote>
<p><strong>Reference:</strong> <a href="https://github.com/burgan-tech/vnext/issues/451" target="_blank" rel="noopener noreferrer" class="">#451</a></p>
</blockquote>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="synchronous-starttransition-mapped-instance-payload-393">Synchronous start/transition: mapped instance payload (#393)<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-42#synchronous-starttransition-mapped-instance-payload-393" class="hash-link" aria-label="Direct link to Synchronous start/transition: mapped instance payload (#393)" title="Direct link to Synchronous start/transition: mapped instance payload (#393)" translate="no">​</a></h3>
<p>When <strong><code>sync=true</code></strong>, start and transition responses can include <strong><code>key</code></strong>, <strong><code>attributes</code></strong>, <strong><code>eTag</code></strong>, <strong><code>entityEtag</code></strong>, <strong><code>extensions</code></strong>, and related instance envelope fields—not only <code>id</code> and <code>status</code>.</p>
<blockquote>
<p><strong>Reference:</strong> <a href="https://github.com/burgan-tech/vnext/issues/393" target="_blank" rel="noopener noreferrer" class="">#393</a></p>
</blockquote>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="subflow-overrides-for-roles-and-timeouts-405">SubFlow <code>overrides</code> for roles and timeouts (#405)<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-42#subflow-overrides-for-roles-and-timeouts-405" class="hash-link" aria-label="Direct link to subflow-overrides-for-roles-and-timeouts-405" title="Direct link to subflow-overrides-for-roles-and-timeouts-405" translate="no">​</a></h3>
<p>Beyond legacy <strong>view</strong> overrides, <strong><code>subFlow.overrides</code></strong> supports <strong>transitions</strong> (e.g. role grants), <strong>states</strong> (e.g. <strong>queryRoles</strong>), <strong>timeout</strong> definitions, and other replace-mode overrides for authorize and transition list behavior.</p>
<blockquote>
<p><strong>Reference:</strong> <a href="https://github.com/burgan-tech/vnext/issues/405" target="_blank" rel="noopener noreferrer" class="">#405</a></p>
</blockquote>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="mapperly-replaces-automapper-in-aether--vnext-52">Mapperly replaces AutoMapper in Aether / vNext (#52)<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-42#mapperly-replaces-automapper-in-aether--vnext-52" class="hash-link" aria-label="Direct link to Mapperly replaces AutoMapper in Aether / vNext (#52)" title="Direct link to Mapperly replaces AutoMapper in Aether / vNext (#52)" translate="no">​</a></h3>
<p><strong>Mapperly</strong> is used in the Aether SDK; <strong>AutoMapper</strong> (commercial license) is no longer required for vNext.</p>
<blockquote>
<p><strong>Reference:</strong> <a href="https://github.com/burgan-tech/aether/issues/52" target="_blank" rel="noopener noreferrer" class="">#52</a></p>
</blockquote>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="multi-task-functions-and-output-mapping-478">Multi-task functions and output mapping (#478)<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-42#multi-task-functions-and-output-mapping-478" class="hash-link" aria-label="Direct link to Multi-task functions and output mapping (#478)" title="Direct link to Multi-task functions and output mapping (#478)" translate="no">​</a></h3>
<p>Function definitions may declare multiple <strong><code>onExecutionTasks</code></strong> (ordered). Each task can supply <strong>mapping</strong>; later tasks can consume earlier task outputs. Optional <strong><code>output</code></strong> mapping uses <strong><code>IOutputHandler</code></strong> to build the function’s final script response.</p>
<blockquote>
<p><strong>Reference:</strong> <a href="https://github.com/burgan-tech/vnext/issues/478" target="_blank" rel="noopener noreferrer" class="">#478</a></p>
</blockquote>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="scriptbase-collection-and-dynamic-object-helpers">ScriptBase: collection and dynamic-object helpers<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-42#scriptbase-collection-and-dynamic-object-helpers" class="hash-link" aria-label="Direct link to ScriptBase: collection and dynamic-object helpers" title="Direct link to ScriptBase: collection and dynamic-object helpers" translate="no">​</a></h3>
<p><strong><code>ScriptBase</code></strong> now includes helpers to work with <strong>dynamic objects</strong> and <strong>lists</strong> in mapping scripts—e.g. <strong><code>CreateObject</code></strong>, <strong><code>CreateList</code></strong>, <strong><code>SetProperty</code></strong>, <strong><code>GetList</code></strong>, <strong><code>AsList</code></strong>, <strong><code>ListAdd</code></strong> / <strong><code>ListRemove</code></strong>, <strong><code>ListFilter</code></strong>, <strong><code>ListCount</code></strong>, <strong><code>ListAny</code></strong>, <strong><code>ListFirst</code></strong> / <strong><code>ListLast</code></strong>, <strong><code>ListSelect&lt;TResult&gt;</code></strong>, <strong><code>RemoveProperty</code></strong>, and <strong><code>ToDictionary</code></strong>. These reduce fragile casts when reading or building structures under <strong><code>Instance.Data</code></strong>.</p>
<p><strong>Documentation:</strong> <a class="" href="https://burgan-tech.github.io/vnext-docs/en/docs/components/mappings#scriptbase-kullan%C4%B1m%C4%B1">Mapping Guide — ScriptBase</a> (see <strong>Collection and dynamic object helpers</strong>). <strong>Runnable sample mappings:</strong> <a href="https://github.com/burgan-tech/vnext-runtime/blob/main/release/extra/script-base-usage/" target="_blank" rel="noopener noreferrer" class=""><code>release/extra/script-base-usage/</code></a>.</p>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="etag-strategy-authorization-aware-follow-up-448">ETag strategy (authorization-aware) follow-up (#448)<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-42#etag-strategy-authorization-aware-follow-up-448" class="hash-link" aria-label="Direct link to ETag strategy (authorization-aware) follow-up (#448)" title="Direct link to ETag strategy (authorization-aware) follow-up (#448)" translate="no">​</a></h3>
<p>Work continues to keep <strong>etag</strong> / <strong>entityETag</strong> and response headers consistent when authorization changes the response shape (see also <a class="" href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-40">Release Notes v0.0.40</a>).</p>
<blockquote>
<p><strong>Reference:</strong> <a href="https://github.com/burgan-tech/vnext/issues/448" target="_blank" rel="noopener noreferrer" class="">#448</a></p>
</blockquote>
<hr>
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="breaking-changes">Breaking Changes<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-42#breaking-changes" class="hash-link" aria-label="Direct link to Breaking Changes" title="Direct link to Breaking Changes" translate="no">​</a></h2>
<ol>
<li class="">
<p><strong><code>GET /api/v1/{domain}/workflows/{workflow}/functions/{function}</code></strong> is <strong>removed</strong>. Integrations that called a workflow-level function by name must migrate to supported APIs (e.g. instance-scoped <strong>State</strong>, <strong>Data</strong>, <strong>View</strong>, <strong>Schema</strong>, or other documented endpoints).</p>
</li>
<li class="">
<p><strong>GetInstancesTask</strong> (task type <code>15</code>) now calls <strong><code>GET /api/v1/{domain}/workflows/{workflow}/instances</code></strong> (with query parameters for filter, paging, sort) instead of the previous workflow <strong>functions/data</strong>-style URL. <strong>Validate mapping scripts</strong> and consumers of task output against the new response shape.</p>
</li>
<li class="">
<p><strong>Domain package validation (<code>validate.js</code>):</strong> Repositories using the shared validator must adopt <strong><code>Ajv2019</code></strong> (JSON Schema draft <strong>2019-09</strong>) so workflow definitions validate against updated schemas (including <strong>errorBoundary</strong> fixes). See internal <strong><code>release/extra/validate.js</code></strong> or your template’s migration notes for the full script changes.</p>
</li>
</ol>
<hr>
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="configuration-updates">Configuration Updates<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-42#configuration-updates" class="hash-link" aria-label="Direct link to Configuration Updates" title="Direct link to Configuration Updates" translate="no">​</a></h2>
<p>Configuration for v0.0.42:</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">"runtimeVersion"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"0.0.42"</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">"schemaVersion"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"0.0.39"</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>
<blockquote>
<p><strong>Note:</strong> Use schema package <strong>0.0.39</strong> with this runtime. Update <strong><code>validate.js</code></strong> and domain tooling accordingly.</p>
</blockquote>
<hr>
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="issues-referenced">Issues Referenced<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-42#issues-referenced" class="hash-link" aria-label="Direct link to Issues Referenced" title="Direct link to Issues Referenced" translate="no">​</a></h2>
<ul>
<li class=""><a href="https://github.com/burgan-tech/vnext/issues/461" target="_blank" rel="noopener noreferrer" class="">vnext #461</a> — Subflow propagation / instance state</li>
<li class=""><a href="https://github.com/burgan-tech/vnext-schema/issues/88" target="_blank" rel="noopener noreferrer" class="">vnext-schema #88</a> — <code>flowVersion</code> required</li>
<li class=""><a href="https://github.com/burgan-tech/vnext-schema/issues/89" target="_blank" rel="noopener noreferrer" class="">vnext-schema #89</a> — Task <code>config</code> required</li>
<li class=""><a href="https://github.com/burgan-tech/vnext-schema/issues/93" target="_blank" rel="noopener noreferrer" class="">vnext-schema #93</a> — <code>errorBoundary</code> schema alignment</li>
<li class=""><a href="https://github.com/burgan-tech/vnext-workflow-cli/issues/10" target="_blank" rel="noopener noreferrer" class="">vnext-workflow-cli #10</a> — CSX selection by location</li>
<li class=""><a href="https://github.com/burgan-tech/vnext/issues/475" target="_blank" rel="noopener noreferrer" class="">vnext #475</a> — Init logs / ingress timeout</li>
<li class=""><a href="https://github.com/burgan-tech/vnext/issues/482" target="_blank" rel="noopener noreferrer" class="">vnext #482</a> — Remote view/roles, StateSubType 7–8</li>
<li class=""><a href="https://github.com/burgan-tech/vnext/issues/449" target="_blank" rel="noopener noreferrer" class="">vnext #449</a> — DB-Migrator / deploy-time schema</li>
<li class=""><a href="https://github.com/burgan-tech/vnext/issues/451" target="_blank" rel="noopener noreferrer" class="">vnext #451</a> — Telemetry / spans</li>
<li class=""><a href="https://github.com/burgan-tech/vnext/issues/393" target="_blank" rel="noopener noreferrer" class="">vnext #393</a> — Sync start/transition payload</li>
<li class=""><a href="https://github.com/burgan-tech/vnext/issues/405" target="_blank" rel="noopener noreferrer" class="">vnext #405</a> — SubFlow overrides</li>
<li class=""><a href="https://github.com/burgan-tech/aether/issues/52" target="_blank" rel="noopener noreferrer" class="">aether #52</a> — Mapperly</li>
<li class=""><a href="https://github.com/burgan-tech/vnext/issues/448" target="_blank" rel="noopener noreferrer" class="">vnext #448</a> — ETag strategy</li>
<li class=""><a href="https://github.com/burgan-tech/vnext/issues/478" target="_blank" rel="noopener noreferrer" class="">vnext #478</a> — Multi-task functions / output mapping</li>
</ul>
<hr>
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="summary">Summary<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-42#summary" class="hash-link" aria-label="Direct link to Summary" title="Direct link to Summary" translate="no">​</a></h2>
<ul>
<li class=""><strong>Deploy-time</strong> database schema lifecycle via <strong>DB-Migrator</strong>; no per-request migration on start/transition.</li>
<li class=""><strong>Better telemetry</strong>: structured logs and <strong>TaskCoordinator</strong> spans.</li>
<li class=""><strong><code>sync=true</code></strong> start/transition returns <strong>full mapped instance</strong> fields where applicable.</li>
<li class=""><strong>SubFlow <code>overrides</code></strong> for roles, states, timeouts; <strong>multi-task functions</strong> with <strong><code>IOutputHandler</code></strong> output mapping.</li>
<li class=""><strong>ScriptBase</strong> <strong>collection / dynamic-object</strong> helpers and samples under <strong><code>release/extra/script-base-usage/</code></strong>.</li>
<li class=""><strong>Breaking:</strong> removed <strong><code>.../functions/{function}</code></strong>; <strong>GetInstancesTask</strong> uses <strong><code>.../instances</code></strong>; update <strong><code>validate.js</code></strong> for <strong>Ajv2019</strong>.</li>
</ul>
<hr>
<p><strong>vNext Runtime Platform Team</strong><br>
<!-- -->March 25, 2026</p>]]></content:encoded>
            <category>release</category>
        </item>
        <item>
            <title><![CDATA[Release v0.0.40]]></title>
            <link>https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-40</link>
            <guid>https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-40</guid>
            <pubDate>Tue, 10 Mar 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[{/ truncate /}]]></description>
            <content:encoded><![CDATA[
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="overview">Overview<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-40#overview" class="hash-link" aria-label="Direct link to Overview" title="Direct link to Overview" translate="no">​</a></h2>
<p>This release improves <strong>schema consistency</strong> by making <strong>flowVersion</strong> required in definition schemas (vnext-schema) and <strong>config</strong> required in task definitions, and introduces an <strong>authorization-aware ETag strategy</strong> for data endpoints: response body exposes <strong>etag</strong> (request/response change) and <strong>entityETag</strong> (entity data change), with corresponding <strong>ETag</strong> and <strong>X-Entity-ETag</strong> response headers. It also fixes View function handling of deep JSON <strong>content</strong> (max depth increased to 256, <code>ReferenceHandler.IgnoreCycles</code>) and removes an unnecessary retry block in the cache invalidation handler.</p>
<hr>
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="bug-fixes">Bug Fixes<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-40#bug-fixes" class="hash-link" aria-label="Direct link to Bug Fixes" title="Direct link to Bug Fixes" translate="no">​</a></h2>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="1-make-flowversion-a-required-field-in-definition-schemas">1. Make flowVersion a Required Field in Definition Schemas<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-40#1-make-flowversion-a-required-field-in-definition-schemas" class="hash-link" aria-label="Direct link to 1. Make flowVersion a Required Field in Definition Schemas" title="Direct link to 1. Make flowVersion a Required Field in Definition Schemas" translate="no">​</a></h3>
<p><strong>flowVersion</strong> is now <strong>required</strong> in definition schemas in vnext-schema. This aligns the schema with runtime behavior (flowVersion was already required in v0.0.39) and ensures consistency across tooling and validation.</p>
<blockquote>
<p><strong>Reference:</strong> <a href="https://github.com/burgan-tech/vnext-schema/issues/88" target="_blank" rel="noopener noreferrer" class="">#88 - Make flowVersion a required field in definition schemas</a></p>
</blockquote>
<hr>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="2-make-config-a-required-field-in-task-definitions">2. Make config a Required Field in Task Definitions<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-40#2-make-config-a-required-field-in-task-definitions" class="hash-link" aria-label="Direct link to 2. Make config a Required Field in Task Definitions" title="Direct link to 2. Make config a Required Field in Task Definitions" translate="no">​</a></h3>
<p>Task definitions now <strong>require</strong> a <strong>config</strong> section. The task-definition schema (task-definition.schema.json) has been updated so that <code>config</code> is mandatory, ensuring all task definitions carry explicit configuration and improving consistency.</p>
<blockquote>
<p><strong>Reference:</strong> <a href="https://github.com/burgan-tech/vnext-schema/issues/89" target="_blank" rel="noopener noreferrer" class="">#89 - Make config a required field in task-definition.schema.json</a></p>
</blockquote>
<hr>
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="tasks--improvements">Tasks / Improvements<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-40#tasks--improvements" class="hash-link" aria-label="Direct link to Tasks / Improvements" title="Direct link to Tasks / Improvements" translate="no">​</a></h2>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="redesign-etag-strategy-for-authorization-aware-responses">Redesign ETag Strategy for Authorization-Aware Responses<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-40#redesign-etag-strategy-for-authorization-aware-responses" class="hash-link" aria-label="Direct link to Redesign ETag Strategy for Authorization-Aware Responses" title="Direct link to Redesign ETag Strategy for Authorization-Aware Responses" translate="no">​</a></h3>
<p>After adding the authorization layer to data endpoints, response content could change per caller, and the previous ETag logic became inconsistent. The ETag strategy has been <strong>redesigned</strong> so that:</p>
<ul>
<li class=""><strong>etag</strong> in the response body reflects <strong>request/response</strong> change (e.g. authorization or response shape).</li>
<li class=""><strong>entityETag</strong> in the response body reflects <strong>entity data</strong> change.</li>
</ul>
<p>Clients can use <strong>entityETag</strong> to track when the underlying data has changed and <strong>etag</strong> for general response caching. The same values are exposed in response headers:</p>
<ul>
<li class=""><strong>ETag</strong> — matches the <code>etag</code> value (without surrounding quotes in the header).</li>
<li class=""><strong>X-Entity-ETag</strong> — matches the <code>entityETag</code> value.</li>
</ul>
<p><strong>Example response body:</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">"etag"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"\"Hko5JI4fDcAOOnf-KGFNA7Xo_MpuxcLl1_hg5j2Sua8\""</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">"entityEtag"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"\"01KK8Q8N5T6H49T8AENYT6Z6ZQ\""</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>Example response headers:</strong></p>
<div class="language-http codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-http 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">ETag: "Hko5JI4fDcAOOnf-KGFNA7Xo_MpuxcLl1_hg5j2Sua8"</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">X-Entity-ETag: "01KK8Q8N5T6H49T8AENYT6Z6ZQ"</span><br></div></code></pre></div></div>
<blockquote>
<p><strong>Reference:</strong> <a href="https://github.com/burgan-tech/vnext/issues/448" target="_blank" rel="noopener noreferrer" class="">#448 - Redesign ETag Strategy for Authorization-Aware Responses</a></p>
</blockquote>
<hr>
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="other">Other<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-40#other" class="hash-link" aria-label="Direct link to Other" title="Direct link to Other" translate="no">​</a></h2>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="view-function-deep-json-content-and-referencehandler">View Function: Deep JSON Content and ReferenceHandler<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-40#view-function-deep-json-content-and-referencehandler" class="hash-link" aria-label="Direct link to View Function: Deep JSON Content and ReferenceHandler" title="Direct link to View Function: Deep JSON Content and ReferenceHandler" translate="no">​</a></h3>
<p>An error occurred when the <strong>content</strong> field of a view contained JSON deeper than the default maximum depth (32). The maximum depth has been increased to <strong>256</strong>, and <strong>ReferenceHandler</strong> has been set to <strong>IgnoreCycles</strong> so that deeply nested or cyclic structures in view content are handled correctly.</p>
<hr>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="cache-invalidation-handler-retry-behavior">Cache Invalidation Handler: Retry Behavior<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-40#cache-invalidation-handler-retry-behavior" class="hash-link" aria-label="Direct link to Cache Invalidation Handler: Retry Behavior" title="Direct link to Cache Invalidation Handler: Retry Behavior" translate="no">​</a></h3>
<p>An unnecessary retry block in the cache invalidation handler was removed, so retries are no longer incorrectly prevented when appropriate.</p>
<hr>
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="configuration-updates">Configuration Updates<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-40#configuration-updates" class="hash-link" aria-label="Direct link to Configuration Updates" title="Direct link to Configuration Updates" translate="no">​</a></h2>
<p>Configuration for v0.0.40:</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">"runtimeVersion"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"0.0.40"</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">"schemaVersion"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"0.0.38"</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>
<blockquote>
<p><strong>Note:</strong> Schema version <strong>0.0.38</strong> is used with this runtime version. Ensure your configuration and tooling reference the updated schema.</p>
</blockquote>
<hr>
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="issues-referenced">Issues Referenced<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-40#issues-referenced" class="hash-link" aria-label="Direct link to Issues Referenced" title="Direct link to Issues Referenced" translate="no">​</a></h2>
<ul>
<li class=""><a href="https://github.com/burgan-tech/vnext-schema/issues/88" target="_blank" rel="noopener noreferrer" class="">#88 - Make flowVersion a required field in definition schemas</a></li>
<li class=""><a href="https://github.com/burgan-tech/vnext-schema/issues/89" target="_blank" rel="noopener noreferrer" class="">#89 - Make config a required field in task-definition.schema.json</a></li>
<li class=""><a href="https://github.com/burgan-tech/vnext/issues/448" target="_blank" rel="noopener noreferrer" class="">#448 - Redesign ETag Strategy for Authorization-Aware Responses</a></li>
</ul>
<hr>
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="summary">Summary<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-40#summary" class="hash-link" aria-label="Direct link to Summary" title="Direct link to Summary" translate="no">​</a></h2>
<p>With this release:</p>
<ul>
<li class=""><strong>Definition schemas</strong> (vnext-schema) require <strong>flowVersion</strong>; <strong>task definitions</strong> require <strong>config</strong>.</li>
<li class=""><strong>Data endpoints</strong> use an <strong>authorization-aware ETag</strong> strategy: <strong>etag</strong> and <strong>entityETag</strong> in the response body, with <strong>ETag</strong> and <strong>X-Entity-ETag</strong> response headers for consistent caching and change detection.</li>
<li class=""><strong>View function</strong> supports deeper JSON <strong>content</strong> (max depth 256) with <strong>ReferenceHandler.IgnoreCycles</strong>.</li>
<li class=""><strong>Cache invalidation handler</strong> retry behavior is corrected.</li>
</ul>
<hr>
<p><strong>vNext Runtime Platform Team</strong><br>
<!-- -->March 10, 2026</p>]]></content:encoded>
            <category>release</category>
        </item>
        <item>
            <title><![CDATA[Release v0.0.38]]></title>
            <link>https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-38</link>
            <guid>https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-38</guid>
            <pubDate>Mon, 09 Mar 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[{/ truncate /}]]></description>
            <content:encoded><![CDATA[
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="overview">Overview<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-38#overview" class="hash-link" aria-label="Direct link to Overview" title="Direct link to Overview" translate="no">​</a></h2>
<p>This release adds <strong>X-App-Version</strong> in response headers and the Health endpoint, <strong>AddHeader</strong> and <strong>RemoveHeader</strong> methods on HttpTask, DaprService, and Trigger-family tasks for fine-grained header control, and <strong>ParentInstanceId</strong> in trace and logging for cross-domain subflow correlation.</p>
<hr>
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="features">Features<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-38#features" class="hash-link" aria-label="Direct link to Features" title="Direct link to Features" translate="no">​</a></h2>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="1-app-version-in-responses">1. App Version in Responses<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-38#1-app-version-in-responses" class="hash-link" aria-label="Direct link to 1. App Version in Responses" title="Direct link to 1. App Version in Responses" translate="no">​</a></h3>
<p>API responses and the Health endpoint now include the application version in the <strong>X-App-Version</strong> response header. This allows clients and monitoring tools to identify the runtime version without parsing response bodies.</p>
<p><strong>Where it appears:</strong></p>
<ul>
<li class=""><strong>Response headers:</strong> All API responses include an <code>X-App-Version</code> header with the runtime version (e.g. <code>0.0.38</code>).</li>
<li class=""><strong>Health endpoint:</strong> The <code>GET /health</code> response also includes the <code>X-App-Version</code> header.</li>
</ul>
<p><strong>Example Health response headers:</strong></p>
<div class="language-http codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-http 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">HTTP/1.1 200 OK</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">Content-Type: application/json</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">X-App-Version: 0.0.38</span><br></div></code></pre></div></div>
<blockquote>
<p><strong>Reference:</strong> <a href="https://github.com/burgan-tech/vnext/issues/365" target="_blank" rel="noopener noreferrer" class="">#365 - App Version in Responses - Implementation</a></p>
</blockquote>
<hr>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="2-addheader-and-removeheader-on-tasks-with-headers-support">2. AddHeader and RemoveHeader on Tasks with Headers Support<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-38#2-addheader-and-removeheader-on-tasks-with-headers-support" class="hash-link" aria-label="Direct link to 2. AddHeader and RemoveHeader on Tasks with Headers Support" title="Direct link to 2. AddHeader and RemoveHeader on Tasks with Headers Support" translate="no">​</a></h3>
<p><strong>HttpTask</strong>, <strong>DaprServiceTask</strong>, and the <strong>Trigger</strong> task family (StartTask, DirectTriggerTask, GetInstanceDataTask, SubProcessTask) now support <strong>AddHeader</strong> and <strong>RemoveHeader</strong> methods in addition to <strong>SetHeaders</strong>. This allows mapping code to add or remove individual headers without replacing the entire header set.</p>
<p><strong>Available methods (v0.0.38+):</strong></p>
<ul>
<li class=""><strong>AddHeader(string name, string value):</strong> Adds or overwrites a single header.</li>
<li class=""><strong>RemoveHeader(string name):</strong> Removes a header by name (case-insensitive where applicable).</li>
</ul>
<p><strong>Usage example (HttpTask):</strong></p>
<div class="language-csharp codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-csharp codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#393A34"><span class="token class-name keyword" style="color:#00009f">var</span><span class="token plain"> httpTask </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> task </span><span class="token keyword" style="color:#00009f">as</span><span class="token plain"> </span><span class="token class-name">HttpTask</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 comment" style="color:#999988;font-style:italic">// Add or override a single header</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">httpTask</span><span class="token punctuation" style="color:#393A34">.</span><span class="token function" style="color:#d73a49">AddHeader</span><span class="token punctuation" style="color:#393A34">(</span><span class="token string" style="color:#e3116c">"X-Correlation-ID"</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> context</span><span class="token punctuation" style="color:#393A34">.</span><span class="token plain">Instance</span><span class="token punctuation" style="color:#393A34">.</span><span class="token plain">Data</span><span class="token punctuation" style="color:#393A34">.</span><span class="token plain">correlationId</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">httpTask</span><span class="token punctuation" style="color:#393A34">.</span><span class="token function" style="color:#d73a49">AddHeader</span><span class="token punctuation" style="color:#393A34">(</span><span class="token string" style="color:#e3116c">"Authorization"</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"Bearer "</span><span class="token plain"> </span><span class="token operator" style="color:#393A34">+</span><span class="token plain"> token</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 comment" style="color:#999988;font-style:italic">// Remove a header</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">httpTask</span><span class="token punctuation" style="color:#393A34">.</span><span class="token function" style="color:#d73a49">RemoveHeader</span><span class="token punctuation" style="color:#393A34">(</span><span class="token string" style="color:#e3116c">"X-Optional-Header"</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">;</span><br></div></code></pre></div></div>
<p><strong>Usage example (DirectTriggerTask):</strong></p>
<div class="language-csharp codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-csharp codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#393A34"><span class="token class-name keyword" style="color:#00009f">var</span><span class="token plain"> directTriggerTask </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> task </span><span class="token keyword" style="color:#00009f">as</span><span class="token plain"> </span><span class="token class-name">DirectTriggerTask</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">directTriggerTask</span><span class="token punctuation" style="color:#393A34">.</span><span class="token function" style="color:#d73a49">SetInstance</span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain">context</span><span class="token punctuation" style="color:#393A34">.</span><span class="token plain">Instance</span><span class="token punctuation" style="color:#393A34">.</span><span class="token plain">Data</span><span class="token punctuation" style="color:#393A34">.</span><span class="token plain">approvalInstanceId</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">directTriggerTask</span><span class="token punctuation" style="color:#393A34">.</span><span class="token function" style="color:#d73a49">SetTransitionName</span><span class="token punctuation" style="color:#393A34">(</span><span class="token string" style="color:#e3116c">"approve"</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">directTriggerTask</span><span class="token punctuation" style="color:#393A34">.</span><span class="token function" style="color:#d73a49">AddHeader</span><span class="token punctuation" style="color:#393A34">(</span><span class="token string" style="color:#e3116c">"X-Request-Source"</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"parent-workflow"</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">directTriggerTask</span><span class="token punctuation" style="color:#393A34">.</span><span class="token function" style="color:#d73a49">AddHeader</span><span class="token punctuation" style="color:#393A34">(</span><span class="token string" style="color:#e3116c">"X-Correlation-ID"</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> context</span><span class="token punctuation" style="color:#393A34">.</span><span class="token plain">Instance</span><span class="token punctuation" style="color:#393A34">.</span><span class="token plain">Id</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">;</span><br></div></code></pre></div></div>
<p><strong>Behavior:</strong></p>
<ul>
<li class="">Headers defined in the task config (JSON) are applied first. AddHeader and RemoveHeader in mapping run afterward, so mapping can override or remove config headers.</li>
<li class="">SetHeaders continues to replace the entire header set when called; use AddHeader/RemoveHeader when you need incremental changes.</li>
</ul>
<blockquote>
<p><strong>Reference:</strong> <a href="https://github.com/burgan-tech/vnext/issues/417" target="_blank" rel="noopener noreferrer" class="">#417 - feat(domain): Add AddHeader and RemoveHeader to tasks with Headers support</a></p>
</blockquote>
<hr>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="3-parentinstanceid-in-trace-and-log-correlation-cross-domain-subflow">3. ParentInstanceId in Trace and Log Correlation (Cross-Domain Subflow)<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-38#3-parentinstanceid-in-trace-and-log-correlation-cross-domain-subflow" class="hash-link" aria-label="Direct link to 3. ParentInstanceId in Trace and Log Correlation (Cross-Domain Subflow)" title="Direct link to 3. ParentInstanceId in Trace and Log Correlation (Cross-Domain Subflow)" translate="no">​</a></h3>
<p>Trace and logging now include <strong>ParentInstanceId</strong> where applicable. When an instance is created or driven by a parent (e.g. subflow, cross-domain trigger), logs and trace metadata carry the parent instance id so you can correlate activity across the parent and child.</p>
<p><strong>Benefits:</strong></p>
<ul>
<li class=""><strong>Log correlation:</strong> Filter or search logs by parent instance id to see all activity for a given parent flow.</li>
<li class=""><strong>Distributed tracing:</strong> Trace views can follow the relationship between parent and child instances across domains.</li>
</ul>
<p>ParentInstanceId is included in the same places as InstanceId in the trace and log context (e.g. structured log properties, trace attributes). No configuration change is required; it is emitted automatically when a parent-child relationship exists.</p>
<blockquote>
<p><strong>Reference:</strong> <a href="https://github.com/burgan-tech/vnext/issues/415" target="_blank" rel="noopener noreferrer" class="">#415 - Add InstanceId and Parent InstanceId to trace and log correlation (cross-domain subflow)</a></p>
</blockquote>
<hr>
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="configuration-updates">Configuration Updates<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-38#configuration-updates" class="hash-link" aria-label="Direct link to Configuration Updates" title="Direct link to Configuration Updates" translate="no">​</a></h2>
<p>Configuration for v0.0.38:</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">"runtimeVersion"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"0.0.38"</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">"schemaVersion"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"0.0.36"</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>
<blockquote>
<p><strong>Note:</strong> Schema version remains at 0.0.36; runtime v0.0.38 is backward compatible with schema v0.0.36.</p>
</blockquote>
<hr>
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="issues-referenced">Issues Referenced<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-38#issues-referenced" class="hash-link" aria-label="Direct link to Issues Referenced" title="Direct link to Issues Referenced" translate="no">​</a></h2>
<ul>
<li class=""><a href="https://github.com/burgan-tech/vnext/issues/365" target="_blank" rel="noopener noreferrer" class="">#365 - App Version in Responses - Implementation</a></li>
<li class=""><a href="https://github.com/burgan-tech/vnext/issues/417" target="_blank" rel="noopener noreferrer" class="">#417 - feat(domain): Add AddHeader and RemoveHeader to tasks with Headers support</a></li>
<li class=""><a href="https://github.com/burgan-tech/vnext/issues/415" target="_blank" rel="noopener noreferrer" class="">#415 - Add InstanceId and Parent InstanceId to trace and log correlation (cross-domain subflow)</a></li>
</ul>
<hr>
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="summary">Summary<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-38#summary" class="hash-link" aria-label="Direct link to Summary" title="Direct link to Summary" translate="no">​</a></h2>
<p>With this release:</p>
<ul>
<li class=""><strong>X-App-Version</strong> is returned in all API response headers and on the Health endpoint for version identification.</li>
<li class=""><strong>AddHeader</strong> and <strong>RemoveHeader</strong> are available on HttpTask, DaprServiceTask, and Trigger-family tasks for fine-grained header control in mappings.</li>
<li class=""><strong>ParentInstanceId</strong> is included in trace and logging for cross-domain subflow correlation, improving observability for parent-child instance flows.</li>
</ul>
<hr>
<p><strong>vNext Runtime Platform Team</strong><br>
<!-- -->March 9, 2026</p>]]></content:encoded>
            <category>release</category>
        </item>
        <item>
            <title><![CDATA[Release v0.0.39]]></title>
            <link>https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-39</link>
            <guid>https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-39</guid>
            <pubDate>Mon, 09 Mar 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[{/ truncate /}]]></description>
            <content:encoded><![CDATA[
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="overview">Overview<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-39#overview" class="hash-link" aria-label="Direct link to Overview" title="Direct link to Overview" translate="no">​</a></h2>
<p>This release introduces <strong>transition filtering by role grants</strong> in the State function (static roles plus <strong>$InstanceStarter</strong> / <strong>$PreviousUser</strong>), <strong>field-level visibility</strong> on the Flow Master schema via roleGrant (x-roles) for Data function and data-returning endpoints, <strong>remote view</strong> support (cross-domain view references), <strong>instance metadata</strong> in GetInstance/GetInstances responses, <strong>parent flow shared-transition</strong> execution when the instance is in a subflow (with <strong>$self</strong> target rule), and <strong>ErrorBoundary</strong> retry resolved by rule-based matching. It also adds <strong>flow version on instance</strong> (with automatic migration), <strong>View function content</strong> typed by view type (JSON vs string), <strong>hasView</strong> and <strong>hasSchema</strong> in the State function response to avoid unnecessary requests, and <strong>type-dependent content</strong> in the view definition schema.</p>
<hr>
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="features">Features<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-39#features" class="hash-link" aria-label="Direct link to Features" title="Direct link to Features" translate="no">​</a></h2>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="1-filter-state-function-transitions-by-transition-role-grants">1. Filter State-Function Transitions by Transition Role Grants<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-39#1-filter-state-function-transitions-by-transition-role-grants" class="hash-link" aria-label="Direct link to 1. Filter State-Function Transitions by Transition Role Grants" title="Direct link to 1. Filter State-Function Transitions by Transition Role Grants" translate="no">​</a></h3>
<p>The State function now returns <strong>available transitions</strong> filtered by the roles defined in the transition’s authorize configuration. Only transitions for which the caller has an allowed role (static roles or <strong>$InstanceStarter</strong> / <strong>$PreviousUser</strong>) are included in the response.</p>
<p><strong>Behavior:</strong></p>
<ul>
<li class="">Transitions without role restrictions remain available to all callers.</li>
<li class="">Transitions with <code>roles</code> (roleGrant) are returned only when the caller holds an allowed role.</li>
<li class="">Enables clients to show only transitions the user is authorized to execute.</li>
</ul>
<blockquote>
<p><strong>Reference:</strong> <a href="https://github.com/burgan-tech/vnext/issues/397" target="_blank" rel="noopener noreferrer" class="">#397 - Filter state-function transitions by transition role grants</a></p>
</blockquote>
<hr>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="2-master-schema-field-level-visibility-rolegrant--x-roles">2. Master Schema Field-Level Visibility (roleGrant / x-roles)<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-39#2-master-schema-field-level-visibility-rolegrant--x-roles" class="hash-link" aria-label="Direct link to 2. Master Schema Field-Level Visibility (roleGrant / x-roles)" title="Direct link to 2. Master Schema Field-Level Visibility (roleGrant / x-roles)" translate="no">​</a></h3>
<p>The Flow Master schema supports <strong>field-level visibility</strong> via a <strong>roleGrant</strong> (roles) property on schema fields. Data functions and data-returning endpoints (Get Instance, GetInstances, etc.) run the authorize layer and expose only fields the caller is allowed to see.</p>
<p><strong>Example (Master schema properties with roles):</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">"properties"</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">"amount"</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">"type"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"number"</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">"roles"</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 punctuation" style="color:#393A34">{</span><span class="token plain"> </span><span class="token property" style="color:#36acaa">"role"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"morph-idm.maker"</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> </span><span class="token property" style="color:#36acaa">"grant"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"allow"</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><span class="token property" style="color:#36acaa">"role"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"morph-idm.approver"</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> </span><span class="token property" style="color:#36acaa">"grant"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"allow"</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><span class="token property" style="color:#36acaa">"role"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"morph-idm.viewer"</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> </span><span class="token property" style="color:#36acaa">"grant"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"allow"</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 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">"internalNotes"</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">"type"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"string"</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">"roles"</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 punctuation" style="color:#393A34">{</span><span class="token plain"> </span><span class="token property" style="color:#36acaa">"role"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"morph-idm.approver"</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> </span><span class="token property" style="color:#36acaa">"grant"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"allow"</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><span class="token property" style="color:#36acaa">"role"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"morph-idm.manager"</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> </span><span class="token property" style="color:#36acaa">"grant"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"allow"</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 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">"publicStatus"</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">"type"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"string"</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>Properties without <code>roles</code> are visible to all authorized callers. For third-party and tooling compatibility, a <strong>roles vocabulary</strong> is published:</p>
<ul>
<li class=""><a href="https://unpkg.com/@burgan-tech/vnext-schema@0.0.37/vocabularies/roles-vocab.json" target="_blank" rel="noopener noreferrer" class="">roles-vocab.json</a></li>
</ul>
<blockquote>
<p><strong>Reference:</strong> <a href="https://github.com/burgan-tech/vnext/issues/402" target="_blank" rel="noopener noreferrer" class="">#402 - Implement master schema field-level visibility with x-roles for function responses</a></p>
</blockquote>
<hr>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="3-predefined-system-roles-instancestarter-previoususer">3. Predefined System Roles ($InstanceStarter, $PreviousUser)<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-39#3-predefined-system-roles-instancestarter-previoususer" class="hash-link" aria-label="Direct link to 3. Predefined System Roles ($InstanceStarter, $PreviousUser)" title="Direct link to 3. Predefined System Roles ($InstanceStarter, $PreviousUser)" translate="no">​</a></h3>
<p>Two <strong>static system roles</strong> are available in the roleGrant schema for instance authorization:</p>
<table><thead><tr><th>Role</th><th>Description</th></tr></thead><tbody><tr><td><strong>$InstanceStarter</strong></td><td>The actor who started the instance</td></tr><tr><td><strong>$PreviousUser</strong></td><td>The actor who triggered the previous transition</td></tr></tbody></table>
<p><strong>Example:</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">"roles"</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 punctuation" style="color:#393A34">{</span><span class="token plain"> </span><span class="token property" style="color:#36acaa">"role"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"$InstanceStarter"</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> </span><span class="token property" style="color:#36acaa">"grant"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"allow"</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><span class="token property" style="color:#36acaa">"role"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"$PreviousUser"</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> </span><span class="token property" style="color:#36acaa">"grant"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"allow"</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 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>They can be used in transition roles, state/flow queryRoles, and Master schema field-level visibility.</p>
<blockquote>
<p><strong>Reference:</strong> <a href="https://github.com/burgan-tech/vnext/issues/396" target="_blank" rel="noopener noreferrer" class="">#396 - Implement predefined system roles for instance authorization</a></p>
</blockquote>
<hr>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="4-support-remote-view-in-view-function">4. Support Remote View in View Function<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-39#4-support-remote-view-in-view-function" class="hash-link" aria-label="Direct link to 4. Support Remote View in View Function" title="Direct link to 4. Support Remote View in View Function" translate="no">​</a></h3>
<p>Views can now be <strong>referenced and used across domains</strong>. Cross-domain view references allow shared views to be reused, versioned, and distributed in a single place instead of duplicating them per domain.</p>
<p><strong>Behavior:</strong></p>
<ul>
<li class="">View function can resolve and return view content from another domain.</li>
<li class="">Enables central view libraries and consistent UI across domains.</li>
</ul>
<blockquote>
<p><strong>Reference:</strong> <a href="https://github.com/burgan-tech/vnext/issues/431" target="_blank" rel="noopener noreferrer" class="">#431 - Support remote view in View function</a></p>
</blockquote>
<hr>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="5-instance-metadata-in-getinstance--getinstances-response">5. Instance Metadata in GetInstance / GetInstances Response<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-39#5-instance-metadata-in-getinstance--getinstances-response" class="hash-link" aria-label="Direct link to 5. Instance Metadata in GetInstance / GetInstances Response" title="Direct link to 5. Instance Metadata in GetInstance / GetInstances Response" translate="no">​</a></h3>
<p>GetInstance and GetInstances responses now include <strong>instance metadata and audit information</strong> in addition to the instance data. Clients receive a full instance envelope: identity, key, flow, domain, flow version, ETag, tags, metadata (state, status, timestamps, createdBy, modifiedBy, etc.), attributes, and extensions.</p>
<p><strong>Example response shape (v0.0.39+):</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">"id"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"f226a728-9fa7-49ee-ab4e-3e8b84184df6"</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">"key"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"449874961045"</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">"flow"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"account-opening"</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">"domain"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"core"</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">"flowVersion"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"1.0.0"</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">"etag"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"\"01KJZXDY3N8ZKYB4RDHDWWWS7P\""</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">"tags"</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">"test"</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"banking"</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"account-openning"</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"key-test"</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">"metadata"</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">"currentState"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"account-details-input"</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">"effectiveState"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"account-details-input"</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">"status"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"A"</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">"effectiveStateType"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"intermediate"</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">"effectiveStateSubType"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"none"</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">"createdAt"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"2026-03-05T21:10:56.857956Z"</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">"modifiedAt"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"2026-03-05T21:10:58.697809Z"</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">"createdBy"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"46467491018"</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">"createdByBehalfOf"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"34987491018"</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">"modifiedBy"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"46467491018"</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">"modifiedByBehalfOf"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"34987491018"</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">"attributes"</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><span class="token property" style="color:#36acaa">"initial"</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><span class="token property" style="color:#36acaa">"session"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"16"</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><span class="token property" style="color:#36acaa">"accountType"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"demand-deposit"</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> </span><span class="token property" style="color:#36acaa">"userSession"</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><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">"extensions"</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><br></div></code></pre></div></div>
<blockquote>
<p><strong>Reference:</strong> <a href="https://github.com/burgan-tech/vnext/issues/432" target="_blank" rel="noopener noreferrer" class="">#432 - Include instance metadata in GetInstances list response</a></p>
</blockquote>
<hr>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="6-trigger-parent-flow-transition-from-subflow-shared-transition">6. Trigger Parent Flow Transition from Subflow (Shared-Transition)<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-39#6-trigger-parent-flow-transition-from-subflow-shared-transition" class="hash-link" aria-label="Direct link to 6. Trigger Parent Flow Transition from Subflow (Shared-Transition)" title="Direct link to 6. Trigger Parent Flow Transition from Subflow (Shared-Transition)" translate="no">​</a></h3>
<p>When an instance is <strong>in a subflow</strong>, the <strong>parent flow’s</strong> shared transition can now be executed. Previously, only the subflow’s shared transition was available.</p>
<p><strong>Important rule:</strong> If a shared transition is available while the instance is in a subflow, its <strong>target</strong> must be <strong>$self</strong> (so the transition applies to the current—parent—context when invoked from the subflow).</p>
<blockquote>
<p><strong>Reference:</strong> <a href="https://github.com/burgan-tech/vnext/issues/425" target="_blank" rel="noopener noreferrer" class="">#425 - Trigger parent flow transition from subflow (shared-transition policy)</a></p>
</blockquote>
<hr>
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="bug-fixes">Bug Fixes<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-39#bug-fixes" class="hash-link" aria-label="Direct link to Bug Fixes" title="Direct link to Bug Fixes" translate="no">​</a></h2>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="errorboundary-resolve-retry-policy-by-matching-rule-error-aware-retry">ErrorBoundary: Resolve Retry Policy by Matching Rule (Error-Aware Retry)<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-39#errorboundary-resolve-retry-policy-by-matching-rule-error-aware-retry" class="hash-link" aria-label="Direct link to ErrorBoundary: Resolve Retry Policy by Matching Rule (Error-Aware Retry)" title="Direct link to ErrorBoundary: Resolve Retry Policy by Matching Rule (Error-Aware Retry)" translate="no">​</a></h3>
<p>ErrorBoundary execution was updated so that <strong>retry is resolved by matching the error to the correct rule</strong>. Infrastructure-level errors were previously incorrectly included in the boundary; this is fixed and retry behavior is now rule-based (error-aware).</p>
<blockquote>
<p><strong>Reference:</strong> <a href="https://github.com/burgan-tech/vnext/issues/421" target="_blank" rel="noopener noreferrer" class="">#421 - ErrorBoundary: Resolve retry policy by matching rule (error-aware retry)</a></p>
</blockquote>
<hr>
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="tasks--improvements">Tasks / Improvements<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-39#tasks--improvements" class="hash-link" aria-label="Direct link to Tasks / Improvements" title="Direct link to Tasks / Improvements" translate="no">​</a></h2>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="flow-version-on-instance">Flow Version on Instance<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-39#flow-version-on-instance" class="hash-link" aria-label="Direct link to Flow Version on Instance" title="Direct link to Flow Version on Instance" translate="no">​</a></h3>
<p>The <strong>flow version</strong> with which an instance was started is now <strong>stored on the instance</strong> and used for transitions. This ensures the instance continues on the same flow version it was started with. Runtime runs an <strong>automatic migration</strong> per flow schema; no manual migration step is required.</p>
<blockquote>
<p><strong>Reference:</strong> <a href="https://github.com/burgan-tech/vnext/issues/428" target="_blank" rel="noopener noreferrer" class="">#428 - Hotfix: Store flow version on instance and use it for transitions</a></p>
</blockquote>
<hr>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="view-function-content-typed-by-view-type">View Function Content Typed by View Type<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-39#view-function-content-typed-by-view-type" class="hash-link" aria-label="Direct link to View Function Content Typed by View Type" title="Direct link to View Function Content Typed by View Type" translate="no">​</a></h3>
<p>The View function <strong>content</strong> is now returned with a type that matches the view type:</p>
<ul>
<li class=""><strong>type === "Json"</strong> → <code>content</code> is an <strong>object or array</strong> (JSON).</li>
<li class=""><strong>type === "Html"</strong> (and similar) → <code>content</code> is a <strong>string</strong> (in JSON).</li>
</ul>
<p>Clients can parse and use the response without re-parsing JSON strings for Json views.</p>
<blockquote>
<p><strong>Reference:</strong> <a href="https://github.com/burgan-tech/vnext/issues/429" target="_blank" rel="noopener noreferrer" class="">#429 - View function should return content typed by view type (JSON vs string)</a></p>
</blockquote>
<hr>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="hasview-and-hasschema-in-state-function-response">hasView and hasSchema in State Function Response<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-39#hasview-and-hasschema-in-state-function-response" class="hash-link" aria-label="Direct link to hasView and hasSchema in State Function Response" title="Direct link to hasView and hasSchema in State Function Response" translate="no">​</a></h3>
<p>The State function response now includes <strong>hasView</strong> and <strong>hasSchema</strong> where applicable (e.g. on the root <code>view</code> object and on each transition’s <code>view</code> and <code>schema</code>). Clients can avoid unnecessary view or schema requests and reduce 404s by checking these flags before calling the view or schema endpoints.</p>
<p><strong>Example (excerpt):</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">"view"</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><span class="token property" style="color:#36acaa">"hasView"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token boolean" style="color:#36acaa">true</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> </span><span class="token property" style="color:#36acaa">"loadData"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token boolean" style="color:#36acaa">true</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> </span><span class="token property" style="color:#36acaa">"href"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"..."</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 property" style="color:#36acaa">"transitions"</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 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">"name"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"select-demand-deposit"</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">"view"</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><span class="token property" style="color:#36acaa">"hasView"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token boolean" style="color:#36acaa">false</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> </span><span class="token property" style="color:#36acaa">"loadData"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token boolean" style="color:#36acaa">true</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> </span><span class="token property" style="color:#36acaa">"href"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"..."</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 property" style="color:#36acaa">"schema"</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><span class="token property" style="color:#36acaa">"hasSchema"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token boolean" style="color:#36acaa">true</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> </span><span class="token property" style="color:#36acaa">"href"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"..."</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 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>
<blockquote>
<p><strong>Reference:</strong> <a href="https://github.com/burgan-tech/vnext/issues/430" target="_blank" rel="noopener noreferrer" class="">#430 - Add hasView to state function response to avoid unnecessary view requests</a></p>
</blockquote>
<hr>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="view-definition-type-dependent-content-field-schema">View Definition: Type-Dependent Content Field (Schema)<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-39#view-definition-type-dependent-content-field-schema" class="hash-link" aria-label="Direct link to View Definition: Type-Dependent Content Field (Schema)" title="Direct link to View Definition: Type-Dependent Content Field (Schema)" translate="no">​</a></h3>
<p>The view definition schema now allows <strong>content</strong> to be <strong>string or JSON</strong> depending on view type (e.g. Json → object/array, Html → string). This improves conflict handling in version control and design tools while remaining backward compatible.</p>
<blockquote>
<p><strong>Reference:</strong> <a href="https://github.com/burgan-tech/vnext-schema/issues/85" target="_blank" rel="noopener noreferrer" class="">vnext-schema #85 - View definition: type-dependent content field (string | JSON) with backward compatibility</a></p>
</blockquote>
<hr>
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="configuration-updates">Configuration Updates<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-39#configuration-updates" class="hash-link" aria-label="Direct link to Configuration Updates" title="Direct link to Configuration Updates" translate="no">​</a></h2>
<p>Configuration for v0.0.39:</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">"runtimeVersion"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"0.0.39"</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">"schemaVersion"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"0.0.37"</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>
<blockquote>
<p><strong>Note:</strong> This version includes a <strong>database migration</strong>. The runtime runs it automatically for each flow schema. Schema version is <strong>0.0.37</strong>; ensure your configuration and tooling use the updated schema.</p>
</blockquote>
<hr>
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="issues-referenced">Issues Referenced<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-39#issues-referenced" class="hash-link" aria-label="Direct link to Issues Referenced" title="Direct link to Issues Referenced" translate="no">​</a></h2>
<ul>
<li class=""><a href="https://github.com/burgan-tech/vnext/issues/396" target="_blank" rel="noopener noreferrer" class="">#396 - Implement predefined system roles for instance authorization ($InstanceStarter, $PreviousUser)</a></li>
<li class=""><a href="https://github.com/burgan-tech/vnext/issues/397" target="_blank" rel="noopener noreferrer" class="">#397 - Filter state-function transitions by transition role grants</a></li>
<li class=""><a href="https://github.com/burgan-tech/vnext/issues/402" target="_blank" rel="noopener noreferrer" class="">#402 - Implement master schema field-level visibility with x-roles for function responses</a></li>
<li class=""><a href="https://github.com/burgan-tech/vnext/issues/421" target="_blank" rel="noopener noreferrer" class="">#421 - ErrorBoundary: Resolve retry policy by matching rule (error-aware retry)</a></li>
<li class=""><a href="https://github.com/burgan-tech/vnext/issues/425" target="_blank" rel="noopener noreferrer" class="">#425 - Trigger parent flow transition from subflow (shared-transition policy)</a></li>
<li class=""><a href="https://github.com/burgan-tech/vnext/issues/428" target="_blank" rel="noopener noreferrer" class="">#428 - Hotfix: Store flow version on instance and use it for transitions</a></li>
<li class=""><a href="https://github.com/burgan-tech/vnext/issues/429" target="_blank" rel="noopener noreferrer" class="">#429 - View function should return content typed by view type (JSON vs string)</a></li>
<li class=""><a href="https://github.com/burgan-tech/vnext/issues/430" target="_blank" rel="noopener noreferrer" class="">#430 - Add hasView to state function response to avoid unnecessary view requests</a></li>
<li class=""><a href="https://github.com/burgan-tech/vnext/issues/431" target="_blank" rel="noopener noreferrer" class="">#431 - Support remote view in View function</a></li>
<li class=""><a href="https://github.com/burgan-tech/vnext/issues/432" target="_blank" rel="noopener noreferrer" class="">#432 - Include instance metadata in GetInstances list response</a></li>
<li class=""><a href="https://github.com/burgan-tech/vnext-schema/issues/85" target="_blank" rel="noopener noreferrer" class="">vnext-schema #85 - View definition: type-dependent content field</a></li>
</ul>
<hr>
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="summary">Summary<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-39#summary" class="hash-link" aria-label="Direct link to Summary" title="Direct link to Summary" translate="no">​</a></h2>
<p>With this release:</p>
<ul>
<li class=""><strong>State function</strong> returns only transitions allowed by role grants (including $InstanceStarter and $PreviousUser) and exposes <strong>hasView</strong> / <strong>hasSchema</strong> to avoid unnecessary requests.</li>
<li class=""><strong>Master schema</strong> supports <strong>field-level visibility</strong> via roleGrant (x-roles); Data function and data endpoints return only authorized fields.</li>
<li class=""><strong>System roles</strong> <strong>$InstanceStarter</strong> and <strong>$PreviousUser</strong> are available for authorization and visibility.</li>
<li class=""><strong>View function</strong> supports <strong>remote (cross-domain) views</strong> and returns <strong>content</strong> typed by view type (JSON vs string).</li>
<li class=""><strong>GetInstance / GetInstances</strong> include <strong>instance metadata</strong> and audit fields in the response.</li>
<li class=""><strong>Shared transitions</strong> can run on the <strong>parent flow</strong> when the instance is in a subflow; <strong>target</strong> must be <strong>$self</strong> in that case.</li>
<li class=""><strong>ErrorBoundary</strong> retry is <strong>rule-based</strong> (error-aware); infrastructure errors are no longer incorrectly handled by the boundary.</li>
<li class=""><strong>Flow version</strong> is stored on the instance and used for transitions; runtime performs automatic migration.</li>
<li class=""><strong>View definition</strong> schema allows type-dependent <strong>content</strong> (string | JSON) with backward compatibility.</li>
</ul>
<hr>
<p><strong>vNext Runtime Platform Team</strong><br>
<!-- -->March 9, 2026</p>]]></content:encoded>
            <category>release</category>
        </item>
        <item>
            <title><![CDATA[Release v0.0.37]]></title>
            <link>https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-37</link>
            <guid>https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-37</guid>
            <pubDate>Tue, 17 Feb 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[{/ truncate /}]]></description>
            <content:encoded><![CDATA[
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="overview">Overview<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-37#overview" class="hash-link" aria-label="Direct link to Overview" title="Direct link to Overview" translate="no">​</a></h2>
<p>This release adds Master Schema validation for workflow definitions, CurrentTransition in ScriptContext for transition data access in mappings, a full Authorization mechanism (roles and queryRoles) with permissions and authorize endpoints, and OrderBy support for instance queries. It also includes bug fixes for status/state filtering, function execution validation, and GroupBy with filter support (with a breaking change: filter array format removed).</p>
<hr>
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="features">Features<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-37#features" class="hash-link" aria-label="Direct link to Features" title="Direct link to Features" translate="no">​</a></h2>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="1-master-schema-for-workflow-definitions">1. Master Schema for Workflow Definitions<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-37#1-master-schema-for-workflow-definitions" class="hash-link" aria-label="Direct link to 1. Master Schema for Workflow Definitions" title="Direct link to 1. Master Schema for Workflow Definitions" translate="no">​</a></h3>
<p>Flow definitions can reference a <strong>master schema</strong> that validates all instance data throughout the instance lifecycle. When a master schema is defined, every write to instance data is validated against it; if validation fails, the instance is stopped.</p>
<p><strong>Flow definition example:</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">"schema"</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">"key"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"token-master"</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">"domain"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"morph-idm"</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">"version"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"1.0.0"</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">"flow"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"sys-schemas"</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>Behavior:</strong></p>
<ul>
<li class="">If a flow has a master schema reference, all data added to instance data during the instance lifetime is validated against that schema.</li>
<li class="">Invalid data causes the instance to be terminated.</li>
</ul>
<blockquote>
<p><strong>Reference:</strong> <a href="https://github.com/burgan-tech/vnext/issues/110" target="_blank" rel="noopener noreferrer" class="">#110 - Master Schema for Workflow Definitions</a></p>
</blockquote>
<hr>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="2-currenttransition-property-on-scriptcontext">2. CurrentTransition Property on ScriptContext<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-37#2-currenttransition-property-on-scriptcontext" class="hash-link" aria-label="Direct link to 2. CurrentTransition Property on ScriptContext" title="Direct link to 2. CurrentTransition Property on ScriptContext" translate="no">​</a></h3>
<p>Input and transition mappings can now access the <strong>original transition request</strong> (body and headers) via <code>ScriptContext.CurrentTransition</code>. This allows using transition data in mappings without writing it to instance data.</p>
<p><strong>Usage:</strong></p>
<div class="language-csharp codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-csharp 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">context</span><span class="token punctuation" style="color:#393A34">.</span><span class="token plain">CurrentTransition</span><span class="token punctuation" style="color:#393A34">.</span><span class="token plain">Data   </span><span class="token comment" style="color:#999988;font-style:italic">// dynamic - original transition request body</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">context</span><span class="token punctuation" style="color:#393A34">.</span><span class="token plain">CurrentTransition</span><span class="token punctuation" style="color:#393A34">.</span><span class="token plain">Header </span><span class="token comment" style="color:#999988;font-style:italic">// dynamic - original transition request headers (lowercase keys)</span><br></div></code></pre></div></div>
<p>Use transition mapping to process data you do not want in instance data; the original transition payload remains available via <code>CurrentTransition</code> for the rest of the mapping pipeline.</p>
<blockquote>
<p><strong>Reference:</strong> <a href="https://github.com/burgan-tech/vnext/issues/385" target="_blank" rel="noopener noreferrer" class="">#385 - Add CurrentTransition property to ScriptContext</a></p>
</blockquote>
<hr>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="3-authorization-mechanism-roles-and-queryroles">3. Authorization Mechanism (Roles and QueryRoles)<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-37#3-authorization-mechanism-roles-and-queryroles" class="hash-link" aria-label="Direct link to 3. Authorization Mechanism (Roles and QueryRoles)" title="Direct link to 3. Authorization Mechanism (Roles and QueryRoles)" translate="no">​</a></h3>
<p>Function, flow, state, and transition definitions support <strong>roles</strong> and <strong>queryRoles</strong> for authorization. The following system function endpoints expose permissions and authorization checks.</p>
<p><strong>Function definition with roles:</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">"name"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"calculateFee"</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">"roles"</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 punctuation" style="color:#393A34">{</span><span class="token plain"> </span><span class="token property" style="color:#36acaa">"role"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"morph-idm.maker"</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> </span><span class="token property" style="color:#36acaa">"grant"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"allow"</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><span class="token property" style="color:#36acaa">"role"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"morph-idm.viewer"</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> </span><span class="token property" style="color:#36acaa">"grant"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"allow"</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 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>Transition roles:</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">"key"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"submit"</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">"target"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"pending"</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">"roles"</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 punctuation" style="color:#393A34">{</span><span class="token plain"> </span><span class="token property" style="color:#36acaa">"role"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"morph-idm.maker"</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> </span><span class="token property" style="color:#36acaa">"grant"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"allow"</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><span class="token property" style="color:#36acaa">"role"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"morph-idm.initiator"</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> </span><span class="token property" style="color:#36acaa">"grant"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"allow"</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 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>Flow and state queryRoles:</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">"workflow"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"payment-approval"</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">"queryRoles"</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 punctuation" style="color:#393A34">{</span><span class="token plain"> </span><span class="token property" style="color:#36acaa">"role"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"morph-idm.viewer"</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> </span><span class="token property" style="color:#36acaa">"grant"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"allow"</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 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">"states"</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 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">"key"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"draft"</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">"queryRoles"</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 punctuation" style="color:#393A34">{</span><span class="token plain"> </span><span class="token property" style="color:#36acaa">"role"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"morph-idm.maker"</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> </span><span class="token property" style="color:#36acaa">"grant"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"allow"</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><span class="token property" style="color:#36acaa">"role"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"morph-idm.viewer"</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> </span><span class="token property" style="color:#36acaa">"grant"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"deny"</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 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 plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token property" style="color:#36acaa">"key"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"approved"</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">"type"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"finish"</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">"queryRoles"</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><strong>Endpoints:</strong></p>
<table><thead><tr><th>Endpoint</th><th>Description</th></tr></thead><tbody><tr><td><strong>Get Flow Permissions</strong></td><td>Returns roles and queryRoles defined for the flow.</td></tr><tr><td><strong>Get Instance Permissions</strong></td><td>Same as flow; when the instance is in a subflow, returns the subflow’s permissions.</td></tr><tr><td><strong>Flow Authorize</strong></td><td>Checks transition/function roles for the flow (by transition key or function key and role).</td></tr><tr><td><strong>Instance Authorize</strong></td><td>Same as flow; with <code>queryRoles=true</code>, checks flow and state queryRoles for the instance’s current state (or subflow instance).</td></tr></tbody></table>
<p><strong>Get Flow Permissions</strong></p>
<div class="language-http codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-http 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">GET /api/v1/core/workflows/account-opening/functions/permissions</span><br></div></code></pre></div></div>
<p><strong>Example response:</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">"workflow"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"account-opening"</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">"queryRoles"</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 punctuation" style="color:#393A34">{</span><span class="token plain"> </span><span class="token property" style="color:#36acaa">"role"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"morph-idm.viewer"</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> </span><span class="token property" style="color:#36acaa">"grant"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"allow"</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 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">"states"</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 punctuation" style="color:#393A34">{</span><span class="token plain"> </span><span class="token property" style="color:#36acaa">"key"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"account-type-selection"</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> </span><span class="token property" style="color:#36acaa">"queryRoles"</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><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 property" style="color:#36acaa">"key"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"account-details-input"</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">"queryRoles"</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 punctuation" style="color:#393A34">{</span><span class="token plain"> </span><span class="token property" style="color:#36acaa">"role"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"morph-idm.maker"</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> </span><span class="token property" style="color:#36acaa">"grant"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"allow"</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><span class="token property" style="color:#36acaa">"role"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"morph-idm.viewer"</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> </span><span class="token property" style="color:#36acaa">"grant"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"deny"</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 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 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">"transitions"</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 punctuation" style="color:#393A34">{</span><span class="token plain"> </span><span class="token property" style="color:#36acaa">"key"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"initiate-account-opening"</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> </span><span class="token property" style="color:#36acaa">"target"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"account-type-selection"</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> </span><span class="token property" style="color:#36acaa">"roles"</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><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 property" style="color:#36acaa">"key"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"select-demand-deposit"</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">"target"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"account-details-input"</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">"roles"</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 punctuation" style="color:#393A34">{</span><span class="token plain"> </span><span class="token property" style="color:#36acaa">"role"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"morph-idm.maker"</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> </span><span class="token property" style="color:#36acaa">"grant"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"allow"</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><span class="token property" style="color:#36acaa">"role"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"morph-idm.initiator"</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> </span><span class="token property" style="color:#36acaa">"grant"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"allow"</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 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 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">"functions"</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><br></div></code></pre></div></div>
<p><strong>Get Instance Permissions</strong></p>
<div class="language-http codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-http 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">GET /api/v1/core/workflows/account-opening/instances/{instanceId}/functions/permissions</span><br></div></code></pre></div></div>
<p>Returns the same structure as Get Flow Permissions; for instances in a subflow, returns the active subflow’s permissions.</p>
<p><strong>Flow Authorize</strong></p>
<p>Checks whether the given role is allowed for the given transition (or function) on the flow. Optional <code>version</code>; if omitted, latest is used.</p>
<div class="language-http codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-http 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">GET /api/v1/core/workflows/account-opening/functions/authorize?transitionKey=submit-account-details&amp;role=morph-idm.maker&amp;version=1.0.0</span><br></div></code></pre></div></div>
<p><strong>Response 200:</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><span class="token property" style="color:#36acaa">"allowed"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token boolean" style="color:#36acaa">true</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">}</span><br></div></code></pre></div></div>
<p><strong>Response 403:</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><span class="token property" style="color:#36acaa">"allowed"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token boolean" style="color:#36acaa">false</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">}</span><br></div></code></pre></div></div>
<p><strong>Instance Authorize</strong></p>
<div class="language-http codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-http 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">GET /api/v1/core/workflows/account-opening/instances/{instanceId}/functions/authorize?queryRoles=true&amp;role=morph-idm.viewer</span><br></div></code></pre></div></div>
<p>Same response shape as Flow Authorize. With <code>queryRoles=true</code>, permission is evaluated against the instance’s current state (and flow/state queryRoles); for subflows, the active subflow instance is used.</p>
<p><strong>Authorize query parameters:</strong></p>
<table><thead><tr><th>Parameter</th><th>Description</th></tr></thead><tbody><tr><td><code>role</code></td><td>Role to check.</td></tr><tr><td><code>version</code></td><td>Optional. Flow version; default is latest.</td></tr><tr><td><code>transitionKey</code></td><td>Transition to check (transition-level roles).</td></tr><tr><td><code>functionKey</code></td><td>Function to check (function-level roles).</td></tr><tr><td><code>queryRoles</code></td><td>When true, check flow and state queryRoles for the instance’s current state (and subflow context if applicable).</td></tr></tbody></table>
<blockquote>
<p><strong>Reference:</strong> <a href="https://github.com/burgan-tech/vnext/issues/382" target="_blank" rel="noopener noreferrer" class="">#382 - Authorization Mechanism</a></p>
</blockquote>
<hr>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="4-orderby-support-for-instance-queries">4. OrderBy Support for Instance Queries<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-37#4-orderby-support-for-instance-queries" class="hash-link" aria-label="Direct link to 4. OrderBy Support for Instance Queries" title="Direct link to 4. OrderBy Support for Instance Queries" translate="no">​</a></h3>
<p>Instance list and data endpoints support <strong>sorting</strong> via <code>sort</code> or <code>orderBy</code> query parameters.</p>
<p><strong>Single field:</strong></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">?sort={"field":"createdAt","direction":"desc"}</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">?orderBy={"field":"status","direction":"asc"}</span><br></div></code></pre></div></div>
<p><strong>Multiple fields:</strong></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">?sort={"fields":[{"field":"status","direction":"asc"},{"field":"createdAt","direction":"desc"}]}</span><br></div></code></pre></div></div>
<ul>
<li class=""><strong>direction:</strong> <code>"asc"</code> or <code>"desc"</code> (case-insensitive). Defaults to <code>"asc"</code> if omitted.</li>
</ul>
<p><strong>Sortable fields:</strong></p>
<table><thead><tr><th>Field</th><th>Notes</th></tr></thead><tbody><tr><td><code>createdAt</code></td><td>Creation timestamp</td></tr><tr><td><code>modifiedAt</code></td><td>Modification timestamp</td></tr><tr><td><code>completedAt</code></td><td>Completion timestamp</td></tr><tr><td><code>status</code></td><td>Instance status</td></tr><tr><td><code>key</code></td><td>Instance key</td></tr><tr><td><code>currentState</code> / <code>state</code></td><td>Current state (<code>state</code> is alias)</td></tr><tr><td><code>attributes.fieldName</code></td><td>JSON path into instance data; nested paths supported (e.g. <code>attributes.nested.path</code>)</td></tr></tbody></table>
<p>Instance columns are applied in the database; <code>attributes.*</code> ordering uses the latest instance data JSON and is subject to the same schema/security as filtering.</p>
<blockquote>
<p><strong>Reference:</strong> <a href="https://github.com/burgan-tech/vnext/issues/381" target="_blank" rel="noopener noreferrer" class="">#381 - Order By Support Implementation</a></p>
</blockquote>
<hr>
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="bug-fixes">Bug Fixes<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-37#bug-fixes" class="hash-link" aria-label="Direct link to Bug Fixes" title="Direct link to Bug Fixes" translate="no">​</a></h2>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="1-status-and-state-filter">1. Status and State Filter<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-37#1-status-and-state-filter" class="hash-link" aria-label="Direct link to 1. Status and State Filter" title="Direct link to 1. Status and State Filter" translate="no">​</a></h3>
<p>Filtering on <code>status</code> and <code>state</code> (currentState) now works correctly in instance queries.</p>
<blockquote>
<p><strong>Reference:</strong> <a href="https://github.com/burgan-tech/vnext/issues/389" target="_blank" rel="noopener noreferrer" class="">#389 - Filter status property not working</a></p>
</blockquote>
<hr>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="2-function-execution-validation">2. Function Execution Validation<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-37#2-function-execution-validation" class="hash-link" aria-label="Direct link to 2. Function Execution Validation" title="Direct link to 2. Function Execution Validation" translate="no">​</a></h3>
<p>The runtime now validates that a function is defined in the workflow’s functions collection before execution. Executing an undefined function returns an error.</p>
<blockquote>
<p><strong>Reference:</strong> <a href="https://github.com/burgan-tech/vnext/issues/180" target="_blank" rel="noopener noreferrer" class="">#180 - Function execution should validate function is defined in workflow's functions collection</a></p>
</blockquote>
<hr>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="3-groupby-and-filter-together-breaking-change">3. GroupBy and Filter Together (Breaking Change)<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-37#3-groupby-and-filter-together-breaking-change" class="hash-link" aria-label="Direct link to 3. GroupBy and Filter Together (Breaking Change)" title="Direct link to 3. GroupBy and Filter Together (Breaking Change)" translate="no">​</a></h3>
<p>GroupBy and filter can now be used together in the same query. As part of this fix, the filter format has been standardized and the previous array form is no longer supported.</p>
<p><strong>Breaking change:</strong></p>
<ul>
<li class=""><strong>Before:</strong> <code>"filter": ["expr1", "expr2"]</code> (array) was supported.</li>
<li class=""><strong>After:</strong> Only a single expression is supported: <code>"filter": "expr"</code> (string). The GraphQL-style filter format is now the single standard.</li>
</ul>
<p>If you currently pass <code>filter</code> as an array, update to a single expression (e.g. combine conditions with <code>and</code>/<code>or</code> in one expression).</p>
<blockquote>
<p><strong>Reference:</strong> <a href="https://github.com/burgan-tech/vnext/issues/392" target="_blank" rel="noopener noreferrer" class="">#392 - GroupBy and Filtering queries not working together</a></p>
</blockquote>
<hr>
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="configuration-updates">Configuration Updates<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-37#configuration-updates" class="hash-link" aria-label="Direct link to Configuration Updates" title="Direct link to Configuration Updates" translate="no">​</a></h2>
<p>Configuration for v0.0.37:</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">"runtimeVersion"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"0.0.37"</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">"schemaVersion"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"0.0.36"</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>
<blockquote>
<p><strong>Note:</strong> Schema version remains at 0.0.36; runtime v0.0.37 is backward compatible with schema v0.0.36.</p>
</blockquote>
<hr>
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="issues-referenced">Issues Referenced<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-37#issues-referenced" class="hash-link" aria-label="Direct link to Issues Referenced" title="Direct link to Issues Referenced" translate="no">​</a></h2>
<ul>
<li class=""><a href="https://github.com/burgan-tech/vnext/issues/110" target="_blank" rel="noopener noreferrer" class="">#110 - Master Schema for Workflow Definitions</a></li>
<li class=""><a href="https://github.com/burgan-tech/vnext/issues/385" target="_blank" rel="noopener noreferrer" class="">#385 - Add CurrentTransition property to ScriptContext</a></li>
<li class=""><a href="https://github.com/burgan-tech/vnext/issues/382" target="_blank" rel="noopener noreferrer" class="">#382 - Authorization Mechanism</a></li>
<li class=""><a href="https://github.com/burgan-tech/vnext/issues/381" target="_blank" rel="noopener noreferrer" class="">#381 - Order By Support Implementation</a></li>
<li class=""><a href="https://github.com/burgan-tech/vnext/issues/389" target="_blank" rel="noopener noreferrer" class="">#389 - Filter status property not working</a></li>
<li class=""><a href="https://github.com/burgan-tech/vnext/issues/180" target="_blank" rel="noopener noreferrer" class="">#180 - Function execution should validate function is defined in workflow's functions collection</a></li>
<li class=""><a href="https://github.com/burgan-tech/vnext/issues/392" target="_blank" rel="noopener noreferrer" class="">#392 - GroupBy and Filtering queries not working together</a></li>
</ul>
<hr>
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="summary">Summary<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-37#summary" class="hash-link" aria-label="Direct link to Summary" title="Direct link to Summary" translate="no">​</a></h2>
<p>With this release:</p>
<ul>
<li class="">Master Schema validates all instance data for flows that reference it; invalid data stops the instance.</li>
<li class="">ScriptContext.CurrentTransition provides access to the original transition body and headers in mappings.</li>
<li class="">Authorization supports roles and queryRoles on functions, flows, states, and transitions, with permissions and authorize endpoints.</li>
<li class="">Instance queries support OrderBy/sort with single or multiple fields and a defined set of sortable fields.</li>
<li class="">Status and state filtering works correctly; function execution is validated against the workflow’s functions; GroupBy and filter work together, with filter standardized to a single expression (breaking change for filter array usage).</li>
</ul>
<hr>
<p><strong>vNext Runtime Platform Team</strong><br>
<!-- -->February 17, 2026</p>]]></content:encoded>
            <category>release</category>
        </item>
        <item>
            <title><![CDATA[Release v0.0.36]]></title>
            <link>https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-36</link>
            <guid>https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-36</guid>
            <pubDate>Fri, 06 Feb 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[{/ truncate /}]]></description>
            <content:encoded><![CDATA[
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="overview">Overview<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-36#overview" class="hash-link" aria-label="Direct link to Overview" title="Direct link to Overview" translate="no">​</a></h2>
<p>This release includes critical hotfixes, bug fixes, and a new incident retry feature. Key highlights include gateway base URL support for cross-domain routing, domain replacement fixes in init service, task execution pipeline improvements, and a new retry endpoint for faulted instances.</p>
<hr>
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="hotfixes">Hotfixes<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-36#hotfixes" class="hash-link" aria-label="Direct link to Hotfixes" title="Direct link to Hotfixes" translate="no">​</a></h2>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="1-support-gateway-base-url-in-instanceurltemplates-for-cross-domain-routing">1. Support Gateway Base URL in InstanceUrlTemplates for Cross-Domain Routing<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-36#1-support-gateway-base-url-in-instanceurltemplates-for-cross-domain-routing" class="hash-link" aria-label="Direct link to 1. Support Gateway Base URL in InstanceUrlTemplates for Cross-Domain Routing" title="Direct link to 1. Support Gateway Base URL in InstanceUrlTemplates for Cross-Domain Routing" translate="no">​</a></h3>
<p>Added support for configurable URL templates in Hateoas-style responses when using a gateway. This enables proper URL generation in gateway-based deployments.</p>
<p><strong>Configuration:</strong></p>
<p>Add the following configuration to your <code>appsettings.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">"UrlTemplates"</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">"Start"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"/api/{0}/workflows/{1}/instances/start"</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">"Transition"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"/api/{0}/workflows/{1}/instances/{2}/transitions/{3}"</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">"FunctionList"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"/api/{0}/workflows/{1}/functions/{2}"</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">"InstanceList"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"/api/{0}/workflows/{1}/instances"</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">"Instance"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"/api/{0}/workflows/{1}/instances/{2}"</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">"InstanceHistory"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"/api/{0}/workflows/{1}/instances/{2}/transitions"</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">"Data"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"/api/{0}/workflows/{1}/instances/{2}/functions/data"</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">"View"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"/api/{0}/workflows/{1}/instances/{2}/functions/view"</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">"Schema"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"/api/{0}/workflows/{1}/instances/{2}/functions/schema?transitionKey={3}"</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>Template Parameters:</strong></p>
<ul>
<li class=""><code>{0}</code> - Domain</li>
<li class=""><code>{1}</code> - Workflow/Flow name</li>
<li class=""><code>{2}</code> - Instance ID</li>
<li class=""><code>{3}</code> - Transition key or other context-specific parameter</li>
</ul>
<p><strong>Use Case:</strong>
When using an API gateway in front of the vNext platform, configure these templates to match your gateway's routing rules.</p>
<p><strong>Documentation Updated:</strong></p>
<ul>
<li class=""><code>doc/en/services/init-service.md</code></li>
<li class=""><code>doc/tr/services/init-service.md</code></li>
</ul>
<blockquote>
<p><strong>Reference:</strong> <a href="https://github.com/burgan-tech/vnext/issues/327" target="_blank" rel="noopener noreferrer" class="">#327 - Support gateway base URL in InstanceUrlTemplates for cross-domain routing</a></p>
</blockquote>
<hr>
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="bug-fixes">Bug Fixes<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-36#bug-fixes" class="hash-link" aria-label="Direct link to Bug Fixes" title="Direct link to Bug Fixes" translate="no">​</a></h2>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="1-preserve-config-and-process-objects-during-domain-replacement-in-package-api-server">1. Preserve Config and Process Objects During Domain Replacement in Package-API-Server<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-36#1-preserve-config-and-process-objects-during-domain-replacement-in-package-api-server" class="hash-link" aria-label="Direct link to 1. Preserve Config and Process Objects During Domain Replacement in Package-API-Server" title="Direct link to 1. Preserve Config and Process Objects During Domain Replacement in Package-API-Server" translate="no">​</a></h3>
<p>Fixed an issue where the domain replacement operation in the init service was incorrectly replacing domain values within nested component data such as "process" and "config" objects during package deployment.</p>
<p><strong>Issue:</strong>
When deploying components via init service, the domain control and replacement operation was too aggressive, replacing domain references in nested component configurations where they should have been preserved.</p>
<p><strong>Fix:</strong>
Domain replacement now correctly preserves "process" and "config" sub-component data integrity during deployment.</p>
<blockquote>
<p><strong>Reference:</strong> <a href="https://github.com/burgan-tech/vnext/issues/373" target="_blank" rel="noopener noreferrer" class="">#373 - fix: Preserve config and process objects during domain replacement in package-api-server</a></p>
</blockquote>
<hr>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="2-task-execution-pipeline-and-cache-synchronization-improvements">2. Task Execution Pipeline and Cache Synchronization Improvements<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-36#2-task-execution-pipeline-and-cache-synchronization-improvements" class="hash-link" aria-label="Direct link to 2. Task Execution Pipeline and Cache Synchronization Improvements" title="Direct link to 2. Task Execution Pipeline and Cache Synchronization Improvements" translate="no">​</a></h3>
<p>Multiple improvements to the task execution pipeline and cache synchronization:</p>
<p><strong>Changes:</strong></p>
<ol>
<li class="">
<p><strong>SubProcess Header Handling Fix</strong><br>
<!-- -->Resolved an error in subprocess startup caused by incorrect header usage.</p>
</li>
<li class="">
<p><strong>TriggerTask Extensions</strong><br>
<!-- -->Added <code>Headers</code> and <code>TimeoutSeconds</code> fields to all TriggerTask types:</p>
<ul>
<li class="">StartTask (Type 11)</li>
<li class="">DirectTriggerTask (Type 12)</li>
<li class="">GetInstanceDataTask (Type 13)</li>
<li class="">SubProcessTask (Type 14)</li>
</ul>
</li>
<li class="">
<p><strong>Cache Invalidation Consistency</strong><br>
<!-- -->Fixed inconsistencies in cache invalidation after publish operations.</p>
</li>
<li class="">
<p><strong>Task Error Logging Fix</strong><br>
<!-- -->Corrected error logging issues in task execution.</p>
</li>
<li class="">
<p><strong>Minor Improvements</strong><br>
<!-- -->Various other minor enhancements and refinements.</p>
</li>
</ol>
<p><strong>Documentation Updated:</strong></p>
<ul>
<li class=""><code>doc/en/flow/tasks/trigger-task.md</code></li>
<li class=""><code>doc/tr/flow/tasks/trigger-task.md</code></li>
</ul>
<blockquote>
<p><strong>Reference:</strong> <a href="https://github.com/burgan-tech/vnext/issues/377" target="_blank" rel="noopener noreferrer" class="">#377 - Refactor: Task Execution Pipeline and Cache Synchronization Improvements</a></p>
</blockquote>
<hr>
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="features">Features<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-36#features" class="hash-link" aria-label="Direct link to Features" title="Direct link to Features" translate="no">​</a></h2>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="1-incident-retry-endpoint-resume-from-failed-task">1. Incident Retry Endpoint (Resume from Failed Task)<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-36#1-incident-retry-endpoint-resume-from-failed-task" class="hash-link" aria-label="Direct link to 1. Incident Retry Endpoint (Resume from Failed Task)" title="Direct link to 1. Incident Retry Endpoint (Resume from Failed Task)" translate="no">​</a></h3>
<p>Added a new retry endpoint that allows resuming workflow instances that have entered a "Faulted" state. This endpoint enables recovery from failed tasks by retrying from the point of failure.</p>
<p><strong>Endpoint:</strong></p>
<div class="language-http codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-http 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">POST /api/v1/{domain}/workflows/{workflow}/instances/{instanceId}/retry?version={version}&amp;sync={sync}</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">Content-Type: application/json</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><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  "key": "",</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  "tags": [],</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  "attributes": {}</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">}</span><br></div></code></pre></div></div>
<p><strong>Parameters:</strong></p>
<table><thead><tr><th>Parameter</th><th>Type</th><th>Required</th><th>Description</th></tr></thead><tbody><tr><td><code>domain</code></td><td>string (path)</td><td>✅</td><td>Workflow domain</td></tr><tr><td><code>workflow</code></td><td>string (path)</td><td>✅</td><td>Workflow name</td></tr><tr><td><code>instanceId</code></td><td>string (path)</td><td>✅</td><td>Instance ID</td></tr><tr><td><code>version</code></td><td>string (query)</td><td>❌</td><td>Workflow version (e.g., "1.0.0")</td></tr><tr><td><code>sync</code></td><td>boolean (query)</td><td>❌</td><td>Synchronous execution (default: false)</td></tr></tbody></table>
<p><strong>Request Body:</strong></p>
<p>All fields are optional and follow the standard instance payload schema:</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">"key"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">""</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain">           </span><span class="token comment" style="color:#999988;font-style:italic">// Instance key (optional)</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">"tags"</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 punctuation" style="color:#393A34">,</span><span class="token plain">          </span><span class="token comment" style="color:#999988;font-style:italic">// Instance tags (optional)</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">"attributes"</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><span class="token comment" style="color:#999988;font-style:italic">// Additional data to merge with instance state (optional)</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>Requirements:</strong></p>
<ul>
<li class="">✅ Instance must be in <strong>"Faulted"</strong> state</li>
<li class="">✅ Only available for faulted instances</li>
<li class="">❌ Cannot be used on instances in other states (Active, Completed, etc.)</li>
</ul>
<p><strong>Example Request:</strong></p>
<div class="language-http codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-http 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">POST /api/v1/ecommerce/workflows/payment-processing/instances/18075ad5-e5b2-4437-b884-21d733339113/retry?version=1.0.0&amp;sync=true</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">Content-Type: application/json</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><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  "tags": ["retry-attempt-1"],</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  "attributes": {</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    "retryReason": "Network timeout recovered",</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    "retriedBy": "system-admin",</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    "retryTimestamp": "2026-02-06T10:30:00Z"</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>
<p><strong>Example Response (Success):</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">"id"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"18075ad5-e5b2-4437-b884-21d733339113"</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">"status"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"A"</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>Error Scenarios:</strong></p>
<p><strong>Not Faulted:</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">"type"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"https://httpstatuses.com/400"</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">"title"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"Bad Request"</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">"status"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token number" style="color:#36acaa">400</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">"detail"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"Instance is not in Faulted state. Current state: Active"</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">"instance"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"/api/v1/ecommerce/workflows/payment-processing/instances/18075ad5-e5b2-4437-b884-21d733339113/retry"</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>Instance Not Found:</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">"type"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"https://httpstatuses.com/404"</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">"title"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"Not Found"</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">"status"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token number" style="color:#36acaa">404</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">"detail"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"Instance not found"</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">"instance"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"/api/v1/ecommerce/workflows/payment-processing/instances/18075ad5-e5b2-4437-b884-21d733339113/retry"</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>Use Cases:</strong></p>
<ol>
<li class="">
<p><strong>Transient Failure Recovery</strong><br>
<!-- -->Retry after temporary infrastructure issues (network timeout, service unavailable)</p>
</li>
<li class="">
<p><strong>Data Correction and Retry</strong><br>
<!-- -->Fix data issues and retry the failed task</p>
</li>
<li class="">
<p><strong>Manual Intervention</strong><br>
<!-- -->Allow operators to manually resume workflows after investigating failures</p>
</li>
<li class="">
<p><strong>Automated Retry Strategies</strong><br>
<!-- -->Implement retry logic in external monitoring systems</p>
</li>
</ol>
<p><strong>Documentation Updated:</strong></p>
<ul>
<li class=""><code>doc/en/how-to/start-instance.md</code></li>
<li class=""><code>doc/tr/how-to/start-instance.md</code></li>
</ul>
<blockquote>
<p><strong>Reference:</strong> <a href="https://github.com/burgan-tech/vnext/issues/290" target="_blank" rel="noopener noreferrer" class="">#290 - Incident Retry Endpoint (Resume from Failed Task)</a></p>
</blockquote>
<hr>
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="configuration-updates">Configuration Updates<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-36#configuration-updates" class="hash-link" aria-label="Direct link to Configuration Updates" title="Direct link to Configuration Updates" translate="no">​</a></h2>
<p>Configuration for v0.0.36:</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">"runtimeVersion"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"0.0.36"</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">"schemaVersion"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"0.0.35"</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>
<blockquote>
<p><strong>Note:</strong> Schema version remains unchanged from v0.0.35 (v0.0.36 runtime is backward compatible with schema v0.0.35).</p>
</blockquote>
<hr>
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="issues-referenced">Issues Referenced<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-36#issues-referenced" class="hash-link" aria-label="Direct link to Issues Referenced" title="Direct link to Issues Referenced" translate="no">​</a></h2>
<ul>
<li class=""><a href="https://github.com/burgan-tech/vnext/issues/327" target="_blank" rel="noopener noreferrer" class="">#327 - Support gateway base URL in InstanceUrlTemplates for cross-domain routing</a></li>
<li class=""><a href="https://github.com/burgan-tech/vnext/issues/373" target="_blank" rel="noopener noreferrer" class="">#373 - fix: Preserve config and process objects during domain replacement in package-api-server</a></li>
<li class=""><a href="https://github.com/burgan-tech/vnext/issues/377" target="_blank" rel="noopener noreferrer" class="">#377 - Refactor: Task Execution Pipeline and Cache Synchronization Improvements</a></li>
<li class=""><a href="https://github.com/burgan-tech/vnext/issues/290" target="_blank" rel="noopener noreferrer" class="">#290 - Incident Retry Endpoint (Resume from Failed Task)</a></li>
</ul>
<hr>
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="summary">Summary<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-36#summary" class="hash-link" aria-label="Direct link to Summary" title="Direct link to Summary" translate="no">​</a></h2>
<p>With this release:</p>
<ul>
<li class="">✅ Added gateway base URL support for cross-domain routing via configurable URL templates</li>
<li class="">✅ Fixed domain replacement issues in init service during package deployment</li>
<li class="">✅ Enhanced TriggerTask types with Headers and TimeoutSeconds support</li>
<li class="">✅ Improved cache invalidation consistency and task error logging</li>
<li class="">✅ Added new retry endpoint for recovering faulted workflow instances</li>
</ul>
<hr>
<p><strong>vNext Runtime Platform Team</strong><br>
<!-- -->February 6, 2026</p>]]></content:encoded>
            <category>release</category>
        </item>
        <item>
            <title><![CDATA[Release v0.0.34-35]]></title>
            <link>https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-34-35</link>
            <guid>https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-34-35</guid>
            <pubDate>Tue, 03 Feb 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[{/ truncate /}]]></description>
            <content:encoded><![CDATA[
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="overview">Overview<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-34-35#overview" class="hash-link" aria-label="Direct link to Overview" title="Direct link to Overview" translate="no">​</a></h2>
<p>This combined release document covers <strong>v0.0.34</strong> and <strong>v0.0.35</strong>. It includes cache invalidation synchronization improvements across pods via a broadcast pub/sub pattern, deterministic handling for non-blocking task failures across the transition pipeline, and a new <code>sync</code> configuration flag for <code>SubProcessTask</code>.</p>
<hr>
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="v0034">v0.0.34<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-34-35#v0034" class="hash-link" aria-label="Direct link to v0.0.34" title="Direct link to v0.0.34" translate="no">​</a></h2>
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="bug-fixes">Bug Fixes<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-34-35#bug-fixes" class="hash-link" aria-label="Direct link to Bug Fixes" title="Direct link to Bug Fixes" translate="no">​</a></h2>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="1-prevent-out-of-flow-state-transition-triggering">1. Prevent Out-of-Flow State Transition Triggering<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-34-35#1-prevent-out-of-flow-state-transition-triggering" class="hash-link" aria-label="Direct link to 1. Prevent Out-of-Flow State Transition Triggering" title="Direct link to 1. Prevent Out-of-Flow State Transition Triggering" translate="no">​</a></h3>
<p>Fixed a bug where a state transition could be triggered independently from any point, allowing the flow state to be moved to an unintended stage.</p>
<blockquote>
<p><strong>Reference:</strong> <a href="https://github.com/burgan-tech/vnext/issues/342" target="_blank" rel="noopener noreferrer" class="">#342 - The state transition can be triggered independently from any point, allowing the flow state to be moved to a different stage</a></p>
</blockquote>
<hr>
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="v0035">v0.0.35<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-34-35#v0035" class="hash-link" aria-label="Direct link to v0.0.35" title="Direct link to v0.0.35" translate="no">​</a></h2>
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="hotfixes">Hotfixes<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-34-35#hotfixes" class="hash-link" aria-label="Direct link to Hotfixes" title="Direct link to Hotfixes" translate="no">​</a></h2>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="1-cache-invalidation-broadcast-cross-pod-synchronization">1. Cache Invalidation Broadcast (Cross-Pod Synchronization)<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-34-35#1-cache-invalidation-broadcast-cross-pod-synchronization" class="hash-link" aria-label="Direct link to 1. Cache Invalidation Broadcast (Cross-Pod Synchronization)" title="Direct link to 1. Cache Invalidation Broadcast (Cross-Pod Synchronization)" translate="no">​</a></h3>
<p>Implemented a broadcast-based cache invalidation approach so cache refresh events can be received by all pods (instead of only the pod that received the request).</p>
<p><strong>Runtime configuration (Dapr):</strong></p>
<ul>
<li class=""><code>vnext-pubsub-broadcast</code> component is available on orchestration/execution/workers.</li>
<li class="">Orchestration subscribes to the invalidation topic and routes it to the utility endpoint.</li>
</ul>
<p><strong>Dapr component:</strong></p>
<div class="language-yaml codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-yaml codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#393A34"><span class="token key atrule" style="color:#00a4db">apiVersion</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> dapr.io/v1alpha1</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token key atrule" style="color:#00a4db">kind</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> Component</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token key atrule" style="color:#00a4db">metadata</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 key atrule" style="color:#00a4db">name</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> vnext</span><span class="token punctuation" style="color:#393A34">-</span><span class="token plain">pubsub</span><span class="token punctuation" style="color:#393A34">-</span><span class="token plain">broadcast</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token key atrule" style="color:#00a4db">spec</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 key atrule" style="color:#00a4db">type</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> pubsub.redis</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token key atrule" style="color:#00a4db">metadata</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><span class="token key atrule" style="color:#00a4db">name</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> redisHost</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token key atrule" style="color:#00a4db">value</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> vnext</span><span class="token punctuation" style="color:#393A34">-</span><span class="token plain">redis</span><span class="token punctuation" style="color:#393A34">:</span><span class="token number" style="color:#36acaa">6379</span><br></div></code></pre></div></div>
<p><strong>Dapr subscription (orchestration):</strong></p>
<div class="language-yaml codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-yaml codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#393A34"><span class="token key atrule" style="color:#00a4db">apiVersion</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> dapr.io/v1alpha1</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token key atrule" style="color:#00a4db">kind</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> Subscription</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token key atrule" style="color:#00a4db">metadata</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 key atrule" style="color:#00a4db">name</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> vnext</span><span class="token punctuation" style="color:#393A34">-</span><span class="token plain">invalidate</span><span class="token punctuation" style="color:#393A34">-</span><span class="token plain">cache</span><span class="token punctuation" style="color:#393A34">-</span><span class="token plain">subscription</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token key atrule" style="color:#00a4db">spec</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 key atrule" style="color:#00a4db">topic</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> development.vnext.invalidate</span><span class="token punctuation" style="color:#393A34">-</span><span class="token plain">cache</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token key atrule" style="color:#00a4db">route</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> /api/v1/utilities/invalidate</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token key atrule" style="color:#00a4db">pubsubname</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> vnext</span><span class="token punctuation" style="color:#393A34">-</span><span class="token plain">pubsub</span><span class="token punctuation" style="color:#393A34">-</span><span class="token plain">broadcast</span><br></div></code></pre></div></div>
<blockquote>
<p><strong>Reference:</strong> <a href="https://github.com/burgan-tech/vnext/issues/356" target="_blank" rel="noopener noreferrer" class="">#356 - Cache Invalidation Broadcast System Implementation</a></p>
</blockquote>
<hr>
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="enhancements">Enhancements<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-34-35#enhancements" class="hash-link" aria-label="Direct link to Enhancements" title="Direct link to Enhancements" translate="no">​</a></h2>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="1-deterministic-handling-for-non-blocking-task-failures-transition-pipeline">1. Deterministic Handling for Non-Blocking Task Failures (Transition Pipeline)<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-34-35#1-deterministic-handling-for-non-blocking-task-failures-transition-pipeline" class="hash-link" aria-label="Direct link to 1. Deterministic Handling for Non-Blocking Task Failures (Transition Pipeline)" title="Direct link to 1. Deterministic Handling for Non-Blocking Task Failures (Transition Pipeline)" translate="no">​</a></h3>
<p>Enhanced the transition pipeline to consistently capture business-level, non-blocking task failures (i.e., failures not handled by ErrorBoundary) and ensure they are either:</p>
<ul>
<li class="">routed/handled via AutoTransitions, or</li>
<li class="">faulted with a clear consolidated error when unhandled (e.g., epilogue skipped, no auto transitions available, or no winner).</li>
</ul>
<blockquote>
<p><strong>Reference:</strong> <a href="https://github.com/burgan-tech/vnext/issues/369" target="_blank" rel="noopener noreferrer" class="">#369 - Handle non-blocking task failures across transition pipeline + add SubProcess sync flag</a></p>
</blockquote>
<hr>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="2-subprocesstask-sync-configuration-v0035">2. <code>SubProcessTask</code> <code>sync</code> Configuration (v0.0.35+)<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-34-35#2-subprocesstask-sync-configuration-v0035" class="hash-link" aria-label="Direct link to 2-subprocesstask-sync-configuration-v0035" title="Direct link to 2-subprocesstask-sync-configuration-v0035" translate="no">​</a></h3>
<p><code>SubProcessTask</code> now supports a <strong><code>sync</code></strong> flag in its config. This value is propagated end-to-end and sent explicitly as the <code>sync=true|false</code> query parameter in the subprocess start request.</p>
<p><strong>Example:</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">"type"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"14"</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">"config"</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">"domain"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"audit"</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">"key"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"transaction-audit"</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">"version"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"1.0.0"</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">"sync"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token boolean" style="color:#36acaa">false</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>Documentation updated:</strong></p>
<ul>
<li class=""><code>doc/en/flow/tasks/trigger-task.md</code></li>
<li class=""><code>doc/tr/flow/tasks/trigger-task.md</code></li>
</ul>
<blockquote>
<p><strong>Reference:</strong> <a href="https://github.com/burgan-tech/vnext/issues/369" target="_blank" rel="noopener noreferrer" class="">#369 - Handle non-blocking task failures across transition pipeline + add SubProcess sync flag</a></p>
</blockquote>
<hr>
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="configuration-updates">Configuration Updates<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-34-35#configuration-updates" class="hash-link" aria-label="Direct link to Configuration Updates" title="Direct link to Configuration Updates" translate="no">​</a></h2>
<p>Configuration for v0.0.35:</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">"runtimeVersion"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"0.0.35"</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">"schemaVersion"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"0.0.34"</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>
<blockquote>
<p><strong>Note:</strong> Schema version remains unchanged from v0.0.34 (v0.0.35 runtime is backward compatible with schema v0.0.34).</p>
</blockquote>
<hr>
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="issues-referenced">Issues Referenced<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-34-35#issues-referenced" class="hash-link" aria-label="Direct link to Issues Referenced" title="Direct link to Issues Referenced" translate="no">​</a></h2>
<ul>
<li class=""><a href="https://github.com/burgan-tech/vnext/issues/342" target="_blank" rel="noopener noreferrer" class="">#342 - The state transition can be triggered independently from any point, allowing the flow state to be moved to a different stage</a></li>
<li class=""><a href="https://github.com/burgan-tech/vnext/issues/356" target="_blank" rel="noopener noreferrer" class="">#356 - Cache Invalidation Broadcast System Implementation</a></li>
<li class=""><a href="https://github.com/burgan-tech/vnext/issues/369" target="_blank" rel="noopener noreferrer" class="">#369 - Handle non-blocking task failures across transition pipeline + add SubProcess sync flag</a></li>
</ul>
<hr>
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="summary">Summary<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-34-35#summary" class="hash-link" aria-label="Direct link to Summary" title="Direct link to Summary" translate="no">​</a></h2>
<p>With this release:</p>
<ul>
<li class="">Fixed unintended out-of-flow state transition triggering</li>
<li class="">Added a broadcast pub/sub pattern for cache invalidation across pods</li>
<li class="">Improved deterministic propagation/handling of non-blocking task failures in transition pipeline</li>
<li class="">Added <code>SubProcessTask</code> <code>sync</code> flag and updated documentation accordingly</li>
</ul>
<hr>
<p><strong>vNext Runtime Platform Team</strong><br>
<!-- -->February 3, 2026</p>]]></content:encoded>
            <category>release</category>
        </item>
        <item>
            <title><![CDATA[Release v0.0.33]]></title>
            <link>https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-33</link>
            <guid>https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-33</guid>
            <pubDate>Mon, 26 Jan 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[{/ truncate /}]]></description>
            <content:encoded><![CDATA[
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="overview">Overview<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-33#overview" class="hash-link" aria-label="Direct link to Overview" title="Direct link to Overview" translate="no">​</a></h2>
<p>This release introduces multi-domain support for local development environments, upgrades to .NET 10 LTS, and enhances state tracking with HumanTask support. Additionally, important improvements to Service Discovery validation, TriggerTask SSL configuration, and instance filtering capabilities have been implemented.</p>
<hr>
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="new-features">New Features<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-33#new-features" class="hash-link" aria-label="Direct link to New Features" title="Direct link to New Features" translate="no">​</a></h2>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="1-multi-domain-support-in-vnext-runtime">1. Multi-Domain Support in vNext Runtime<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-33#1-multi-domain-support-in-vnext-runtime" class="hash-link" aria-label="Direct link to 1. Multi-Domain Support in vNext Runtime" title="Direct link to 1. Multi-Domain Support in vNext Runtime" translate="no">​</a></h3>
<p>Added comprehensive multi-domain support for local development environments, allowing teams to run isolated domain environments simultaneously.</p>
<p><strong>Details:</strong></p>
<ul>
<li class="">Run multiple domains (e.g., <code>core</code>, <code>sales</code>, <code>hr</code>) on the same infrastructure</li>
<li class="">Shared PostgreSQL, Redis, Vault, and Dapr services</li>
<li class="">Domain-specific port allocation with configurable offsets</li>
<li class="">Template-based domain creation from <code>vnext/docker/templates/</code></li>
<li class="">Automatic database name generation (e.g., <code>core</code> → <code>vNext_Core</code>)</li>
</ul>
<p><strong>Features:</strong></p>
<ul>
<li class="">Pre-configured <code>core</code> (offset 0) and <code>discovery</code> (offset 5) domains included</li>
<li class="">Create custom domains with <code>make create-domain DOMAIN=mydom PORT_OFFSET=10</code></li>
<li class="">Manage individual domains independently</li>
<li class="">View all running domains with <code>make status-all-domains</code></li>
<li class="">Domain-specific environment files and configurations</li>
<li class="">Reserved offsets (0 and 5) prevent conflicts with system domains</li>
</ul>
<p><strong>Example Workflow:</strong></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 shared infrastructure</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">make</span><span class="token plain"> up-infra</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"># Pre-configured domains (core and discovery) are ready to use</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">make</span><span class="token plain"> up-vnext </span><span class="token assign-left variable" style="color:#36acaa">DOMAIN</span><span class="token operator" style="color:#393A34">=</span><span class="token plain">core</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token function" style="color:#d73a49">make</span><span class="token plain"> up-vnext </span><span class="token assign-left variable" style="color:#36acaa">DOMAIN</span><span class="token operator" style="color:#393A34">=</span><span class="token plain">discovery</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"># Create and start your custom domain (use offset 10 or higher)</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">make</span><span class="token plain"> create-domain </span><span class="token assign-left variable" style="color:#36acaa">DOMAIN</span><span class="token operator" style="color:#393A34">=</span><span class="token plain">sales </span><span class="token assign-left variable" style="color:#36acaa">PORT_OFFSET</span><span class="token operator" style="color:#393A34">=</span><span class="token number" style="color:#36acaa">10</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">make</span><span class="token plain"> db-create </span><span class="token assign-left variable" style="color:#36acaa">DOMAIN</span><span class="token operator" style="color:#393A34">=</span><span class="token plain">sales</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token function" style="color:#d73a49">make</span><span class="token plain"> up-vnext </span><span class="token assign-left variable" style="color:#36acaa">DOMAIN</span><span class="token operator" style="color:#393A34">=</span><span class="token plain">sales</span><br></div></code></pre></div></div>
<p><strong>Port Allocation:</strong></p>
<table><thead><tr><th>Offset</th><th>Domain (Example)</th><th>App Port</th><th>Execution</th><th>Inbox</th><th>Outbox</th><th>Init</th></tr></thead><tbody><tr><td>0</td><td>core (reserved)</td><td>4201</td><td>4202</td><td>4203</td><td>4204</td><td>3005</td></tr><tr><td>5</td><td>discovery (reserved)</td><td>4206</td><td>4207</td><td>4208</td><td>4209</td><td>3010</td></tr><tr><td>10</td><td>sales</td><td>4211</td><td>4212</td><td>4213</td><td>4214</td><td>3015</td></tr><tr><td>20</td><td>hr</td><td>4221</td><td>4222</td><td>4223</td><td>4224</td><td>3025</td></tr><tr><td>30</td><td>finance</td><td>4231</td><td>4232</td><td>4233</td><td>4234</td><td>3035</td></tr></tbody></table>
<blockquote>
<p><strong>⚠️ Reserved Offsets:</strong> The <code>core</code> and <code>discovery</code> domains are provided as pre-configured domains with offsets <strong>0</strong> and <strong>5</strong> respectively. <strong>Do not use these offsets</strong> for your custom domains. Start with offset 10 or higher for new domains.</p>
</blockquote>
<blockquote>
<p><strong>Note:</strong> For complete documentation, see the Multi-Domain Support section in README.md</p>
</blockquote>
<hr>
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="enhancements">Enhancements<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-33#enhancements" class="hash-link" aria-label="Direct link to Enhancements" title="Direct link to Enhancements" translate="no">​</a></h2>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="1-upgrade-to-net-10-lts">1. Upgrade to .NET 10 (LTS)<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-33#1-upgrade-to-net-10-lts" class="hash-link" aria-label="Direct link to 1. Upgrade to .NET 10 (LTS)" title="Direct link to 1. Upgrade to .NET 10 (LTS)" translate="no">​</a></h3>
<p>Upgraded the entire platform to .NET 10 LTS for improved performance, security, and access to latest framework features.</p>
<p><strong>Benefits:</strong></p>
<ul>
<li class="">Enhanced performance and memory management</li>
<li class="">Latest language features and APIs</li>
<li class="">Long-term support for production deployments</li>
<li class="">Improved diagnostics and tooling</li>
</ul>
<blockquote>
<p><strong>Reference:</strong> <a href="https://github.com/burgan-tech/vnext/issues/168" target="_blank" rel="noopener noreferrer" class="">#168 - Upgrade to .NET 10 (LTS)</a></p>
</blockquote>
<hr>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="2-humantask-state-tracking-for-pending-instance-queries">2. HumanTask State Tracking for Pending Instance Queries<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-33#2-humantask-state-tracking-for-pending-instance-queries" class="hash-link" aria-label="Direct link to 2. HumanTask State Tracking for Pending Instance Queries" title="Direct link to 2. HumanTask State Tracking for Pending Instance Queries" translate="no">​</a></h3>
<p>Implemented comprehensive state tracking for human task workflows with new state subtypes and instance-level fields.</p>
<p><strong>Details:</strong></p>
<ul>
<li class="">New State SubTypes: <code>Busy</code> (code: 5) and <code>Human</code> (code: 6)</li>
<li class="">New Instance fields: <code>EffectiveStateType</code> and <code>EffectiveStateSubType</code></li>
<li class="">Enhanced filtering capabilities for pending instance queries</li>
<li class="">Automatic database migration on startup</li>
</ul>
<p><strong>State SubType Mapping:</strong></p>
<table><thead><tr><th>SubType</th><th>Code</th><th>Description</th></tr></thead><tbody><tr><td>None</td><td>0</td><td>No specific subtype</td></tr><tr><td>Success</td><td>1</td><td>Successful completion</td></tr><tr><td>Error</td><td>2</td><td>Error condition</td></tr><tr><td>Terminated</td><td>3</td><td>Manually terminated</td></tr><tr><td>Suspended</td><td>4</td><td>Temporarily suspended</td></tr><tr><td><strong>Busy</strong></td><td><strong>5</strong></td><td>Processing in progress (NEW)</td></tr><tr><td><strong>Human</strong></td><td><strong>6</strong></td><td>Human interaction required (NEW)</td></tr></tbody></table>
<p><strong>Instance Fields:</strong></p>
<ul>
<li class=""><code>EffectiveStateType</code>: Current effective state type</li>
<li class=""><code>EffectiveStateSubType</code>: Current effective state subtype</li>
</ul>
<p><strong>Use Cases:</strong></p>
<ul>
<li class="">Query all instances awaiting human interaction</li>
<li class="">Filter workflows in processing state</li>
<li class="">Track human task queues across workflows</li>
<li class="">Generate workload reports by state type</li>
</ul>
<p><strong>Filter Example:</strong></p>
<div class="language-http codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-http 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">GET /core/workflows/approval-flow/instances?filter={"effectiveStateSubType":{"eq":"6"}}</span><br></div></code></pre></div></div>
<blockquote>
<p><strong>Migration:</strong> The database migration for new columns is applied automatically on startup.</p>
</blockquote>
<blockquote>
<p><strong>Reference:</strong> <a href="https://github.com/burgan-tech/vnext/issues/328" target="_blank" rel="noopener noreferrer" class="">#328 - Add HumanTask state tracking for pending instance queries</a></p>
</blockquote>
<hr>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="3-persist-inputhandler-result-to-instancetaskrequest">3. Persist InputHandler Result to InstanceTask.Request<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-33#3-persist-inputhandler-result-to-instancetaskrequest" class="hash-link" aria-label="Direct link to 3. Persist InputHandler Result to InstanceTask.Request" title="Direct link to 3. Persist InputHandler Result to InstanceTask.Request" translate="no">​</a></h3>
<p>InputHandler results are now persisted to the <code>InstanceTask.Request</code> field for complete task audit trail.</p>
<p><strong>Details:</strong></p>
<ul>
<li class="">Input handler transformation results are stored</li>
<li class="">Enables full task execution audit trail</li>
<li class="">Supports debugging and compliance requirements</li>
<li class="">Request data available for historical analysis</li>
</ul>
<p><strong>Benefits:</strong></p>
<ul>
<li class="">Complete visibility into task input data</li>
<li class="">Track data transformations across task execution</li>
<li class="">Support for compliance and audit requirements</li>
<li class="">Enhanced debugging capabilities</li>
</ul>
<blockquote>
<p><strong>Reference:</strong> <a href="https://github.com/burgan-tech/vnext/issues/309" target="_blank" rel="noopener noreferrer" class="">#309 - Persist InputHandler result to InstanceTask.Request</a></p>
</blockquote>
<hr>
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="bug-fixes">Bug Fixes<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-33#bug-fixes" class="hash-link" aria-label="Direct link to Bug Fixes" title="Direct link to Bug Fixes" translate="no">​</a></h2>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="1-cannot-select-self-as-target-value-in-cancel-transitions">1. Cannot Select $self as Target Value in Cancel Transitions<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-33#1-cannot-select-self-as-target-value-in-cancel-transitions" class="hash-link" aria-label="Direct link to 1. Cannot Select $self as Target Value in Cancel Transitions" title="Direct link to 1. Cannot Select $self as Target Value in Cancel Transitions" translate="no">​</a></h3>
<p>Fixed issue where <code>$self</code> could not be used as a target in cancel transitions.</p>
<p><strong>Problem:</strong></p>
<ul>
<li class="">Cancel transitions couldn't use <code>$self</code> as target</li>
<li class="">Schema validation prevented valid use cases</li>
</ul>
<p><strong>Solution:</strong></p>
<ul>
<li class="">Added <code>$self</code> target support in vnext-schema for cancel transitions</li>
<li class="">Enables workflows to cancel and remain in current state</li>
</ul>
<blockquote>
<p><strong>Reference:</strong> <a href="https://github.com/burgan-tech/vnext/issues/307" target="_blank" rel="noopener noreferrer" class="">#307 - Cannot select $self as target value in cancel transitions</a></p>
</blockquote>
<hr>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="2-effectivestate-display-issue-from-nested-subflows">2. EffectiveState Display Issue from Nested Subflows<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-33#2-effectivestate-display-issue-from-nested-subflows" class="hash-link" aria-label="Direct link to 2. EffectiveState Display Issue from Nested Subflows" title="Direct link to 2. EffectiveState Display Issue from Nested Subflows" translate="no">​</a></h3>
<p>Fixed EffectiveState calculation error when displaying state from deeply nested subflow structures.</p>
<p><strong>Problem:</strong></p>
<ul>
<li class="">EffectiveState showed incorrect values for nested subflows</li>
<li class="">Bottom-up state propagation had calculation errors</li>
</ul>
<p><strong>Solution:</strong></p>
<ul>
<li class="">Corrected bottom-up effective state display algorithm</li>
<li class="">Ensures accurate state representation across nested workflows</li>
</ul>
<blockquote>
<p><strong>Reference:</strong> <a href="https://github.com/burgan-tech/vnext/issues/316" target="_blank" rel="noopener noreferrer" class="">#316 - EffectiveState aktif son state gösterme sorunu</a></p>
</blockquote>
<hr>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="3-align-triggerinvokers-httpclient-configuration-with-httptaskinvoker">3. Align TriggerInvokers HttpClient Configuration with HttpTaskInvoker<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-33#3-align-triggerinvokers-httpclient-configuration-with-httptaskinvoker" class="hash-link" aria-label="Direct link to 3. Align TriggerInvokers HttpClient Configuration with HttpTaskInvoker" title="Direct link to 3. Align TriggerInvokers HttpClient Configuration with HttpTaskInvoker" translate="no">​</a></h3>
<p>Centralized and standardized HttpClient Factory configuration across all TriggerTask types.</p>
<p><strong>Details:</strong></p>
<ul>
<li class="">Unified HttpClient Factory behavior for StartTask, DirectTriggerTask, GetInstanceDataTask, and SubProcessTask</li>
<li class="">Added <code>validateSsl</code> attribute to TriggerTask configuration</li>
<li class="">Consistent SSL validation across all task types</li>
</ul>
<p><strong>New Configuration:</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">"type"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"11"</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">"config"</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">"domain"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"core"</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">"flow"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"my-flow"</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">"validateSsl"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token boolean" style="color:#36acaa">true</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>validateSsl Attribute:</strong></p>
<table><thead><tr><th>Value</th><th>Behavior</th></tr></thead><tbody><tr><td><code>true</code> (default)</td><td>SSL certificate validation enabled</td></tr><tr><td><code>false</code></td><td>SSL certificate validation disabled</td></tr></tbody></table>
<blockquote>
<p><strong>Warning:</strong> Disable SSL validation only in development or trusted internal environments.</p>
</blockquote>
<blockquote>
<p><strong>Reference:</strong> <a href="https://github.com/burgan-tech/vnext/issues/320" target="_blank" rel="noopener noreferrer" class="">#320 - Align TriggerInvokers HttpClient Configuration with HttpTaskInvoker</a></p>
</blockquote>
<hr>
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="hotfixes">Hotfixes<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-33#hotfixes" class="hash-link" aria-label="Direct link to Hotfixes" title="Direct link to Hotfixes" translate="no">​</a></h2>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="1-notificationmapping-does-not-handle-subflow-data-returned-from-state-endpoint">1. NotificationMapping Does Not Handle Subflow Data Returned from State Endpoint<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-33#1-notificationmapping-does-not-handle-subflow-data-returned-from-state-endpoint" class="hash-link" aria-label="Direct link to 1. NotificationMapping Does Not Handle Subflow Data Returned from State Endpoint" title="Direct link to 1. NotificationMapping Does Not Handle Subflow Data Returned from State Endpoint" translate="no">​</a></h3>
<p>Fixed notification mapping to correctly handle subflow data from state endpoints.</p>
<p><strong>Problem:</strong></p>
<ul>
<li class="">NotificationMapping didn't align with current state behavior for subflow data</li>
<li class="">Subflow state information missing in notifications</li>
</ul>
<p><strong>Solution:</strong></p>
<ul>
<li class="">Updated notification mapping to match current state behavior</li>
<li class="">Ensures consistent subflow data handling across all endpoints</li>
</ul>
<blockquote>
<p><strong>Reference:</strong> <a href="https://github.com/burgan-tech/vnext/issues/283" target="_blank" rel="noopener noreferrer" class="">#283 - NotificationMapping.csx does not handle subflow data returned from state endpoint</a></p>
</blockquote>
<hr>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="2-fail-fast-when-vnextapi-points-to-localhost-in-production">2. Fail Fast When vNextApi<!-- -->:BaseUrl<!-- --> Points to Localhost in Production<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-33#2-fail-fast-when-vnextapi-points-to-localhost-in-production" class="hash-link" aria-label="Direct link to 2-fail-fast-when-vnextapi-points-to-localhost-in-production" title="Direct link to 2-fail-fast-when-vnextapi-points-to-localhost-in-production" translate="no">​</a></h3>
<p>Implemented validation to prevent localhost addresses in production Service Discovery configuration.</p>
<p><strong>Details:</strong></p>
<ul>
<li class="">Application validates <code>vNextApi:BaseUrl</code> setting on startup</li>
<li class="">Localhost addresses (<code>localhost</code>, <code>127.0.0.1</code>) are blocked in production environments</li>
<li class="">Fail-fast behavior prevents deployment with incorrect configuration</li>
</ul>
<p><strong>Validation Rules:</strong></p>
<ul>
<li class="">Development environment: Localhost allowed</li>
<li class="">Production environment: Localhost blocked and application fails to start</li>
</ul>
<p><strong>Error Example:</strong></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">FATAL: Service Discovery configuration error - </span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">vNextApi:BaseUrl cannot point to localhost in production environment.</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">Current value: http://localhost:4201</span><br></div></code></pre></div></div>
<p><strong>Configuration:</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">"vNextApi"</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">"BaseUrl"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"https://api.production.com"</span><span class="token plain">  </span><span class="token comment" style="color:#999988;font-style:italic">// Must be resolvable address</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>
<blockquote>
<p><strong>Reference:</strong> <a href="https://github.com/burgan-tech/vnext/issues/313" target="_blank" rel="noopener noreferrer" class="">#313 - Fail fast when vNextApi<!-- -->:BaseUrl<!-- --> points to localhost in production</a></p>
</blockquote>
<hr>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="3-service-discovery-registration-failure-crash">3. Service Discovery Registration Failure Crash<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-33#3-service-discovery-registration-failure-crash" class="hash-link" aria-label="Direct link to 3. Service Discovery Registration Failure Crash" title="Direct link to 3. Service Discovery Registration Failure Crash" translate="no">​</a></h3>
<p>Application now crashes immediately when Service Discovery is enabled but registration fails.</p>
<p><strong>Details:</strong></p>
<ul>
<li class="">Fail-fast behavior when Service Discovery registration fails</li>
<li class="">Prevents silent failures in service mesh environments</li>
<li class="">Ensures deployment issues are detected immediately</li>
</ul>
<p><strong>Behavior:</strong></p>
<ul>
<li class="">Service Discovery enabled + Registration successful: Normal operation</li>
<li class="">Service Discovery enabled + Registration failed: Application crash</li>
<li class="">Service Discovery disabled: No validation</li>
</ul>
<p><strong>Error Handling:</strong></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">FATAL: Service Discovery registration failed.</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">Cannot proceed without successful service registration.</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">Check network connectivity and Service Discovery endpoint configuration.</span><br></div></code></pre></div></div>
<blockquote>
<p><strong>Note:</strong> This ensures that microservice deployments with Service Discovery don't run in a partially configured state.</p>
</blockquote>
<blockquote>
<p><strong>Reference:</strong> <a href="https://github.com/burgan-tech/vnext/issues/325" target="_blank" rel="noopener noreferrer" class="">#325 - Refactor: Move service discovery enable check into RegisterDomainAsync and add failure handling</a></p>
</blockquote>
<hr>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="4-fail-fast-extension-execution-with-error-target-details">4. Fail-Fast Extension Execution with Error Target Details<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-33#4-fail-fast-extension-execution-with-error-target-details" class="hash-link" aria-label="Direct link to 4. Fail-Fast Extension Execution with Error Target Details" title="Direct link to 4. Fail-Fast Extension Execution with Error Target Details" translate="no">​</a></h3>
<p>Extension tasks now fail immediately with detailed error information when errors occur.</p>
<p><strong>Details:</strong></p>
<ul>
<li class="">Extension errors terminate request immediately</li>
<li class="">Error target details logged for troubleshooting</li>
<li class="">Detailed error response returned to client</li>
</ul>
<p><strong>Error Response:</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">"type"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"https://httpstatuses.com/500/extension-error"</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">"title"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"Extension Execution Failed"</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">"status"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token number" style="color:#36acaa">500</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">"detail"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"Extension 'validate-customer' failed during execution"</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">"errorTarget"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"CustomerValidationExtension"</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">"targetEndpoint"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"https://extensions.api.com/validate"</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">"traceId"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"00-abc123-def456-01"</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>Benefits:</strong></p>
<ul>
<li class="">Fast failure detection</li>
<li class="">Detailed error context for debugging</li>
<li class="">Prevents cascade failures</li>
</ul>
<blockquote>
<p><strong>Reference:</strong> <a href="https://github.com/burgan-tech/vnext/issues/306" target="_blank" rel="noopener noreferrer" class="">#306 - Fail-fast extension execution with error target details</a></p>
</blockquote>
<hr>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="5-add-effectivestate-column-and-update-alias-handling">5. Add EffectiveState Column and Update Alias Handling<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-33#5-add-effectivestate-column-and-update-alias-handling" class="hash-link" aria-label="Direct link to 5. Add EffectiveState Column and Update Alias Handling" title="Direct link to 5. Add EffectiveState Column and Update Alias Handling" translate="no">​</a></h3>
<p>Enhanced instance filtering with EffectiveState field support.</p>
<p><strong>Details:</strong></p>
<ul>
<li class="">EffectiveState information added to instance filtering queries</li>
<li class="">Improved alias handling for state-related fields</li>
<li class="">Better query performance for state-based searches</li>
</ul>
<p><strong>Filterable Fields:</strong></p>
<ul>
<li class=""><code>effectiveState</code>: Current effective state</li>
<li class=""><code>effectiveStateType</code>: Current effective state type</li>
<li class=""><code>effectiveStateSubType</code>: Current effective state subtype</li>
</ul>
<blockquote>
<p><strong>Reference:</strong> <a href="https://github.com/burgan-tech/vnext/pull/317" target="_blank" rel="noopener noreferrer" class="">#317 - Add EffectiveState column and update alias handling</a></p>
</blockquote>
<hr>
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="other-changes">Other Changes<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-33#other-changes" class="hash-link" aria-label="Direct link to Other Changes" title="Direct link to Other Changes" translate="no">​</a></h2>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="1-documentation-reorganization">1. Documentation Reorganization<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-33#1-documentation-reorganization" class="hash-link" aria-label="Direct link to 1. Documentation Reorganization" title="Direct link to 1. Documentation Reorganization" translate="no">​</a></h3>
<p>Reorganized and improved vNext technical documentation structure for better discoverability and maintainability.</p>
<p><strong>Improvements:</strong></p>
<ul>
<li class="">Enhanced documentation structure</li>
<li class="">Improved navigation and organization</li>
<li class="">Better categorization of topics</li>
<li class="">Updated examples and guides</li>
</ul>
<blockquote>
<p><strong>Reference:</strong> <a href="https://github.com/burgan-tech/vnext/issues/310" target="_blank" rel="noopener noreferrer" class="">#310 - Reorganize documentation structure for improved discoverability and maintainability</a></p>
</blockquote>
<hr>
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="configuration-updates">Configuration Updates<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-33#configuration-updates" class="hash-link" aria-label="Direct link to Configuration Updates" title="Direct link to Configuration Updates" translate="no">​</a></h2>
<p>Configuration for v0.0.33:</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">"runtimeVersion"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"0.0.32"</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">"schemaVersion"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"0.0.33"</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">"componentVersion"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"0.0.18"</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>
<hr>
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="issues-referenced">Issues Referenced<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-33#issues-referenced" class="hash-link" aria-label="Direct link to Issues Referenced" title="Direct link to Issues Referenced" translate="no">​</a></h2>
<p><strong>New Features:</strong></p>
<ul>
<li class=""><a href="https://github.com/burgan-tech/vnext/issues/168" target="_blank" rel="noopener noreferrer" class="">#168 - Upgrade to .NET 10 (LTS)</a></li>
<li class="">vnext-runtime multi-domain support (README.md documentation)</li>
</ul>
<p><strong>Enhancements:</strong></p>
<ul>
<li class=""><a href="https://github.com/burgan-tech/vnext/issues/309" target="_blank" rel="noopener noreferrer" class="">#309 - Persist InputHandler result to InstanceTask.Request</a></li>
<li class=""><a href="https://github.com/burgan-tech/vnext/issues/328" target="_blank" rel="noopener noreferrer" class="">#328 - Add HumanTask state tracking for pending instance queries</a></li>
</ul>
<p><strong>Bug Fixes:</strong></p>
<ul>
<li class=""><a href="https://github.com/burgan-tech/vnext/issues/307" target="_blank" rel="noopener noreferrer" class="">#307 - Cannot select $self as target value in cancel transitions</a></li>
<li class=""><a href="https://github.com/burgan-tech/vnext/issues/316" target="_blank" rel="noopener noreferrer" class="">#316 - EffectiveState aktif son state gösterme sorunu</a></li>
<li class=""><a href="https://github.com/burgan-tech/vnext/issues/320" target="_blank" rel="noopener noreferrer" class="">#320 - Align TriggerInvokers HttpClient Configuration with HttpTaskInvoker</a></li>
</ul>
<p><strong>Hotfixes:</strong></p>
<ul>
<li class=""><a href="https://github.com/burgan-tech/vnext/issues/283" target="_blank" rel="noopener noreferrer" class="">#283 - NotificationMapping.csx does not handle subflow data returned from state endpoint</a></li>
<li class=""><a href="https://github.com/burgan-tech/vnext/issues/306" target="_blank" rel="noopener noreferrer" class="">#306 - Fail-fast extension execution with error target details</a></li>
<li class=""><a href="https://github.com/burgan-tech/vnext/issues/313" target="_blank" rel="noopener noreferrer" class="">#313 - Fail fast when vNextApi<!-- -->:BaseUrl<!-- --> points to localhost in production</a></li>
<li class=""><a href="https://github.com/burgan-tech/vnext/pull/317" target="_blank" rel="noopener noreferrer" class="">#317 - Add EffectiveState column and update alias handling</a></li>
<li class=""><a href="https://github.com/burgan-tech/vnext/issues/325" target="_blank" rel="noopener noreferrer" class="">#325 - Refactor: Move service discovery enable check into RegisterDomainAsync and add failure handling</a></li>
</ul>
<p><strong>Other:</strong></p>
<ul>
<li class=""><a href="https://github.com/burgan-tech/vnext/issues/310" target="_blank" rel="noopener noreferrer" class="">#310 - Reorganize documentation structure for improved discoverability and maintainability</a></li>
</ul>
<hr>
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="summary">Summary<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-33#summary" class="hash-link" aria-label="Direct link to Summary" title="Direct link to Summary" translate="no">​</a></h2>
<p>With this release:</p>
<ul>
<li class="">Multi-domain support for local development environments added</li>
<li class="">.NET 10 LTS upgrade completed</li>
<li class="">HumanTask state tracking with EffectiveStateType and EffectiveStateSubType fields implemented</li>
<li class="">InputHandler results now persisted to InstanceTask.Request</li>
<li class="">Cancel transitions support $self target</li>
<li class="">EffectiveState display issue for nested subflows fixed</li>
<li class="">TriggerTask types now support validateSsl attribute</li>
<li class="">NotificationMapping aligned with current state behavior</li>
<li class="">Service Discovery localhost validation in production implemented</li>
<li class="">Service Discovery registration failure now causes immediate crash</li>
<li class="">Extension tasks fail-fast with detailed error information</li>
<li class="">EffectiveState column added to instance filtering</li>
<li class="">Documentation structure reorganized</li>
</ul>
<hr>
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="upgrade-path">Upgrade Path<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-33#upgrade-path" class="hash-link" aria-label="Direct link to Upgrade Path" title="Direct link to Upgrade Path" translate="no">​</a></h2>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="from-v0031-to-v0033">From v0.0.31 to v0.0.33:<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-33#from-v0031-to-v0033" class="hash-link" aria-label="Direct link to From v0.0.31 to v0.0.33:" title="Direct link to From v0.0.31 to v0.0.33:" translate="no">​</a></h3>
<ol>
<li class="">
<p><strong>Update Runtime:</strong></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">git</span><span class="token plain"> pull origin master</span><br></div></code></pre></div></div>
</li>
<li class="">
<p><strong>Update Configuration:</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">"runtimeVersion"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"0.0.32"</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">"schemaVersion"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"0.0.33"</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">"componentVersion"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"0.0.18"</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>
</li>
<li class="">
<p><strong>Database Migration:</strong>
The <code>EffectiveStateType</code> and <code>EffectiveStateSubType</code> field migrations are applied automatically on startup.</p>
</li>
<li class="">
<p><strong>Review Service Discovery Configuration:</strong>
If using Service Discovery, ensure <code>vNextApi:BaseUrl</code> does not point to localhost in production environments.</p>
</li>
<li class="">
<p><strong>Review TriggerTask Configurations:</strong>
If you have custom TriggerTask configurations, you can now optionally add the <code>validateSsl</code> attribute (defaults to <code>true</code>).</p>
</li>
<li class="">
<p><strong>(Optional) Explore Multi-Domain Support:</strong>
For local development, explore the new multi-domain capabilities:</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 infrastructure and pre-configured domains</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">make</span><span class="token plain"> up-infra</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token function" style="color:#d73a49">make</span><span class="token plain"> up-vnext </span><span class="token assign-left variable" style="color:#36acaa">DOMAIN</span><span class="token operator" style="color:#393A34">=</span><span class="token plain">core</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token function" style="color:#d73a49">make</span><span class="token plain"> up-vnext </span><span class="token assign-left variable" style="color:#36acaa">DOMAIN</span><span class="token operator" style="color:#393A34">=</span><span class="token plain">discovery</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"># Create custom domains (use offset 10 or higher)</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">make</span><span class="token plain"> create-domain </span><span class="token assign-left variable" style="color:#36acaa">DOMAIN</span><span class="token operator" style="color:#393A34">=</span><span class="token plain">mydom </span><span class="token assign-left variable" style="color:#36acaa">PORT_OFFSET</span><span class="token operator" style="color:#393A34">=</span><span class="token number" style="color:#36acaa">10</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">make</span><span class="token plain"> db-create </span><span class="token assign-left variable" style="color:#36acaa">DOMAIN</span><span class="token operator" style="color:#393A34">=</span><span class="token plain">mydom</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token function" style="color:#d73a49">make</span><span class="token plain"> up-vnext </span><span class="token assign-left variable" style="color:#36acaa">DOMAIN</span><span class="token operator" style="color:#393A34">=</span><span class="token plain">mydom</span><br></div></code></pre></div></div>
<blockquote>
<p><strong>Note:</strong> Offsets 0 and 5 are reserved for <code>core</code> and <code>discovery</code> domains.</p>
</blockquote>
</li>
</ol>
<hr>
<p><strong>vNext Runtime Platform Team</strong><br>
<!-- -->January 26, 2026</p>]]></content:encoded>
            <category>release</category>
        </item>
        <item>
            <title><![CDATA[Release v0.0.31]]></title>
            <link>https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-31</link>
            <guid>https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-31</guid>
            <pubDate>Tue, 13 Jan 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[{/ truncate /}]]></description>
            <content:encoded><![CDATA[
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="overview">Overview<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-31#overview" class="hash-link" aria-label="Direct link to Overview" title="Direct link to Overview" translate="no">​</a></h2>
<p>This release introduces significant new features including the GetInstances Task for cross-workflow data fetching, Subflow State Change Events with EffectiveState field, and Update Parent Data Transition for SubFlow-to-parent communication. Additionally, important bug fixes for HTTP request size limits, extension query string formatting, array merge behavior, and correlation conflict handling have been implemented.</p>
<hr>
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="new-features">New Features<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-31#new-features" class="hash-link" aria-label="Direct link to New Features" title="Direct link to New Features" translate="no">​</a></h2>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="1-getinstances-task">1. GetInstances Task<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-31#1-getinstances-task" class="hash-link" aria-label="Direct link to 1. GetInstances Task" title="Direct link to 1. GetInstances Task" translate="no">​</a></h3>
<p>Added a new task type for fetching instance data from other workflows with pagination and filtering support.</p>
<p><strong>Details:</strong></p>
<ul>
<li class="">Task Type: <code>15</code></li>
<li class="">Enables cross-workflow data queries</li>
<li class="">Supports pagination with <code>page</code> and <code>pageSize</code> parameters</li>
<li class="">Supports sorting with <code>sort</code> parameter (e.g., <code>-CreatedAt</code> for descending)</li>
<li class="">Supports filtering with <code>filter</code> array parameter</li>
<li class="">Optional Dapr service invocation support</li>
</ul>
<p><strong>Task Configuration:</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">"key"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"fetch-orders"</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">"version"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"1.0.0"</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">"domain"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"core"</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">"flow"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"sys-tasks"</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">"flowVersion"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"1.0.0"</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">"tags"</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">"data-fetch"</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"workflow-communication"</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">"attributes"</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">"type"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"15"</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">"config"</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">"domain"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"core"</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">"flow"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"order-flow"</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">"page"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token number" style="color:#36acaa">1</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">"pageSize"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token number" style="color:#36acaa">10</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">"sort"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"-CreatedAt"</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>Config Parameters:</strong></p>
<table><thead><tr><th>Parameter</th><th>Type</th><th>Required</th><th>Default</th><th>Description</th></tr></thead><tbody><tr><td><code>domain</code></td><td>string</td><td>Yes</td><td>-</td><td>Target workflow domain</td></tr><tr><td><code>flow</code></td><td>string</td><td>Yes</td><td>-</td><td>Target workflow name</td></tr><tr><td><code>page</code></td><td>int</td><td>No</td><td>1</td><td>Page number (1-based)</td></tr><tr><td><code>pageSize</code></td><td>int</td><td>No</td><td>10</td><td>Number of items per page</td></tr><tr><td><code>sort</code></td><td>string</td><td>No</td><td>-</td><td>Sort field and direction (prefix with <code>-</code> for descending)</td></tr><tr><td><code>filter</code></td><td>string[]</td><td>No</td><td>-</td><td>Filter expressions array</td></tr><tr><td><code>useDapr</code></td><td>bool</td><td>No</td><td>false</td><td>Use Dapr service invocation instead of direct HTTP</td></tr></tbody></table>
<blockquote>
<p><strong>Reference:</strong> <a href="https://github.com/burgan-tech/vnext/issues/272" target="_blank" rel="noopener noreferrer" class="">#272 - Add Filter Support to GetInstances Task</a></p>
</blockquote>
<hr>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="2-subflow-state-change-event-implementation">2. Subflow State Change Event Implementation<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-31#2-subflow-state-change-event-implementation" class="hash-link" aria-label="Direct link to 2. Subflow State Change Event Implementation" title="Direct link to 2. Subflow State Change Event Implementation" translate="no">​</a></h3>
<p>Implemented <code>InstanceSubStateChangedEvent</code> that fires when a subflow instance changes state, updating the parent's correlation and exposing EffectiveState.</p>
<p><strong>Details:</strong></p>
<ul>
<li class="">New <code>EffectiveState</code> field on Instance entity</li>
<li class="">Automatically tracks subflow state in parent correlation</li>
<li class="">Enables accurate long-polling state display</li>
<li class="">Migration automatically applied</li>
</ul>
<p><strong>Behavior:</strong></p>
<ul>
<li class="">If an instance has an active subflow, <code>EffectiveState</code> reflects the subflow's current state</li>
<li class="">If an instance has no subflow dependency, <code>EffectiveState</code> reflects its own state</li>
<li class="">Parent instance receives state change events from subflows</li>
</ul>
<p><strong>Architecture:</strong></p>
<!-- -->
<blockquote>
<p><strong>Reference:</strong> <a href="https://github.com/burgan-tech/vnext/issues/297" target="_blank" rel="noopener noreferrer" class="">#297 - Subflow State Change Event Implementation</a></p>
</blockquote>
<hr>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="3-update-parent-data-transition">3. Update Parent Data Transition<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-31#3-update-parent-data-transition" class="hash-link" aria-label="Direct link to 3. Update Parent Data Transition" title="Direct link to 3. Update Parent Data Transition" translate="no">​</a></h3>
<p>Added a special transition type for updating parent workflow instance data from SubFlow states.</p>
<p><strong>Details:</strong></p>
<ul>
<li class="">Special transition for SubFlow states only</li>
<li class="">Target is always <code>$self</code> (no state change)</li>
<li class="">Updates parent instance data without advancing the flow</li>
<li class="">Uses <code>update-parent-data</code> well-known transition key</li>
</ul>
<p><strong>Workflow Configuration:</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">"updateData"</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">"key"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"update-parent"</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">"target"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"$self"</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">"triggerType"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token number" style="color:#36acaa">0</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">"versionStrategy"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"None"</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">"labels"</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 punctuation" style="color:#393A34">{</span><span class="token plain"> </span><span class="token property" style="color:#36acaa">"language"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"en"</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> </span><span class="token property" style="color:#36acaa">"label"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"Update Parent Data"</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><span class="token property" style="color:#36acaa">"language"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"tr"</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> </span><span class="token property" style="color:#36acaa">"label"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"Parent Veri Güncelle"</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 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>What It Does:</strong></p>
<ul>
<li class="">Data mapping (according to transition data mapping rules)</li>
<li class="">Instance data update</li>
<li class="">Instance key validation and setting</li>
<li class="">Transition record creation</li>
<li class="">Tag addition (if any)</li>
</ul>
<p><strong>What It Does NOT Do:</strong></p>
<ul>
<li class="">State change (target is <code>$self</code>)</li>
<li class="">SubFlow advancement</li>
<li class="">Auto transition invocation</li>
<li class="">OnExit/OnEntry task execution</li>
<li class="">State change event publishing</li>
</ul>
<blockquote>
<p><strong>Reference:</strong> <a href="https://github.com/burgan-tech/vnext/issues/238" target="_blank" rel="noopener noreferrer" class="">#238 - Direct Trigger Task for Parent Transition</a></p>
</blockquote>
<hr>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="4-graphql-style-filtering-for-instance-data">4. GraphQL-Style Filtering for Instance Data<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-31#4-graphql-style-filtering-for-instance-data" class="hash-link" aria-label="Direct link to 4. GraphQL-Style Filtering for Instance Data" title="Direct link to 4. GraphQL-Style Filtering for Instance Data" translate="no">​</a></h3>
<p>Implemented comprehensive GraphQL-style filtering support for instance data queries.</p>
<p><strong>Features:</strong></p>
<ul>
<li class="">Filter on Instance columns (<code>key</code>, <code>status</code>, <code>state</code>, <code>createdAt</code>, etc.)</li>
<li class="">Filter on JSON data fields using <code>attributes</code> prefix</li>
<li class="">13 comparison operators (<code>eq</code>, <code>ne</code>, <code>gt</code>, <code>ge</code>, <code>lt</code>, <code>le</code>, <code>between</code>, <code>like</code>, <code>startswith</code>, <code>endswith</code>, <code>in</code>, <code>nin</code>, <code>isnull</code>)</li>
<li class="">Logical operators (<code>AND</code>, <code>OR</code>, <code>NOT</code>)</li>
<li class="">Group By with aggregations (<code>count</code>, <code>sum</code>, <code>avg</code>, <code>min</code>, <code>max</code>)</li>
</ul>
<p><strong>Supported Routes:</strong></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">GET /{domain}/workflows/{workflow}/functions/data?filter={...}</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">GET /{domain}/workflows/{workflow}/instances?filter={...}</span><br></div></code></pre></div></div>
<p><strong>Example - Filter by Status and Amount:</strong></p>
<div class="language-http codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-http 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">GET /banking/workflows/payment/functions/data?filter={"status":{"eq":"Active"},"attributes":{"amount":{"gt":"1000"}}}</span><br></div></code></pre></div></div>
<p><strong>Example - Logical OR:</strong></p>
<div class="language-http codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-http 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">GET /banking/workflows/payment/functions/data?filter={"or":[{"status":{"eq":"Active"}},{"status":{"eq":"Busy"}}]}</span><br></div></code></pre></div></div>
<blockquote>
<p><strong>Documentation:</strong> <a class="" href="https://burgan-tech.github.io/vnext-docs/en/docs/how-to/instance-filtering">Instance Filtering Guide</a><br>
<strong>Reference:</strong> <a href="https://github.com/burgan-tech/vnext/issues/202" target="_blank" rel="noopener noreferrer" class="">#202 - Implement GraphQL-Style Filtering for Instance Data</a></p>
</blockquote>
<hr>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="5-flexible-version-resolution-in-references">5. Flexible Version Resolution in References<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-31#5-flexible-version-resolution-in-references" class="hash-link" aria-label="Direct link to 5. Flexible Version Resolution in References" title="Direct link to 5. Flexible Version Resolution in References" translate="no">​</a></h3>
<p>Version references now support multiple resolution strategies for component versions.</p>
<p><strong>Supported Formats:</strong></p>
<table><thead><tr><th>Format</th><th>Description</th><th>Example Result</th></tr></thead><tbody><tr><td><code>"latest"</code></td><td>Always resolves to the newest version</td><td>Latest published</td></tr><tr><td><code>"1.0.0"</code></td><td>Exact version match</td><td>1.0.0</td></tr><tr><td><code>"1.0"</code></td><td>Resolves to highest patch in Major.Minor series</td><td>1.0.5</td></tr><tr><td><code>"1"</code></td><td>Resolves to highest version in Major series</td><td>1.9.3</td></tr></tbody></table>
<p><strong>Example Usage:</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">"key"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"validate-client"</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">"domain"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"core"</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">"version"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"latest"</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">"flow"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"sys-tasks"</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>
<blockquote>
<p><strong>Documentation:</strong> <a class="" href="https://burgan-tech.github.io/vnext-docs/en/architecture/patterns/references#versiyon-stratejileri">Reference Schema - Version Strategies</a><br>
<strong>Reference:</strong> <a href="https://github.com/burgan-tech/vnext/issues/209" target="_blank" rel="noopener noreferrer" class="">#209 - Support "latest" String Value in References</a></p>
</blockquote>
<hr>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="6-enhanced-error-handling-system-errorboundary">6. Enhanced Error Handling System (ErrorBoundary)<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-31#6-enhanced-error-handling-system-errorboundary" class="hash-link" aria-label="Direct link to 6. Enhanced Error Handling System (ErrorBoundary)" title="Direct link to 6. Enhanced Error Handling System (ErrorBoundary)" translate="no">​</a></h3>
<p>Implemented comprehensive error handling with multi-level error resolution and priority-based execution.</p>
<p><strong>Features:</strong></p>
<ul>
<li class="">Multi-level error boundaries (Global, State, Task)</li>
<li class="">Priority-based rule evaluation (lower number = higher priority)</li>
<li class="">6 error actions: Abort, Retry, Rollback, Ignore, Notify, Log</li>
<li class="">Retry policies with exponential backoff and jitter</li>
<li class="">Error filtering by type and code</li>
</ul>
<p><strong>Error Resolution Hierarchy:</strong></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">Task-level → State-level → Global-level → System Default</span><br></div></code></pre></div></div>
<p><strong>Example Configuration:</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">"errorBoundary"</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">"onError"</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 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">"action"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token number" style="color:#36acaa">1</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">"errorCodes"</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">"Task:503"</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"Task:504"</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">"priority"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token number" style="color:#36acaa">10</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">"retryPolicy"</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">"maxRetries"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token number" style="color:#36acaa">3</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">"initialDelay"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"PT5S"</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">"backoffType"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token number" style="color:#36acaa">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><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 plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">        </span><span class="token property" style="color:#36acaa">"action"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token number" style="color:#36acaa">0</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">"errorCodes"</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">"*"</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">"transition"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"error-state"</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">"priority"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token number" style="color:#36acaa">999</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>
<blockquote>
<p><strong>Note:</strong> <code>onTimeout</code> property exists in schema but is not yet implemented.</p>
</blockquote>
<blockquote>
<p><strong>Documentation:</strong> <a class="" href="https://burgan-tech.github.io/vnext-docs/en/docs/how-to/error-handling">Error Boundary Guide</a><br>
<strong>Reference:</strong> <a href="https://github.com/burgan-tech/vnext/issues/88" target="_blank" rel="noopener noreferrer" class="">#88 - Enhanced Error Handling System</a></p>
</blockquote>
<hr>
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="bug-fixes">Bug Fixes<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-31#bug-fixes" class="hash-link" aria-label="Direct link to Bug Fixes" title="Direct link to Bug Fixes" translate="no">​</a></h2>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="1-request-size-issue-fix">1. Request Size Issue Fix<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-31#1-request-size-issue-fix" class="hash-link" aria-label="Direct link to 1. Request Size Issue Fix" title="Direct link to 1. Request Size Issue Fix" translate="no">​</a></h3>
<p>Fixed HTTP client and handler size limits to prevent failures when handling large request and response payloads.</p>
<p><strong>Problem:</strong></p>
<ul>
<li class="">Large HTTP request/response payloads caused failures due to buffer limits</li>
</ul>
<p><strong>Solution:</strong></p>
<ul>
<li class="">Increased HTTP client buffering and header limits to accommodate larger payloads</li>
</ul>
<blockquote>
<p><strong>Reference:</strong> <a href="https://github.com/burgan-tech/vnext/pull/303" target="_blank" rel="noopener noreferrer" class="">#303 - Request size issue fix</a></p>
</blockquote>
<hr>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="2-extension-query-string-formatting-fix">2. Extension Query String Formatting Fix<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-31#2-extension-query-string-formatting-fix" class="hash-link" aria-label="Direct link to 2. Extension Query String Formatting Fix" title="Direct link to 2. Extension Query String Formatting Fix" translate="no">​</a></h3>
<p>Fixed incorrect query string formatting for extensions parameter.</p>
<p><strong>Problem:</strong></p>
<ul>
<li class="">Multiple extensions were incorrectly combined with commas in a single parameter</li>
<li class="">Current behavior: <code>?extensions=ext1,ext2,ext3</code></li>
</ul>
<p><strong>Solution:</strong></p>
<ul>
<li class="">Each extension is now added as a separate query parameter</li>
<li class="">Correct behavior:</li>
</ul>
<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">?extensions=ext1</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">&amp;extensions=ext2</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">&amp;extensions=ext3</span><br></div></code></pre></div></div>
<blockquote>
<p><strong>Reference:</strong> <a href="https://github.com/burgan-tech/vnext/issues/273" target="_blank" rel="noopener noreferrer" class="">#273 - Incorrect query string formatting for extensions parameter</a></p>
</blockquote>
<hr>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="3-array-merge-behavior-change">3. Array Merge Behavior Change<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-31#3-array-merge-behavior-change" class="hash-link" aria-label="Direct link to 3. Array Merge Behavior Change" title="Direct link to 3. Array Merge Behavior Change" translate="no">​</a></h3>
<p>Changed InstanceData merge logic to replace arrays instead of merging them.</p>
<p><strong>Problem:</strong></p>
<ul>
<li class="">Deep merge for arrays caused unintended behavior</li>
<li class="">Removing items from arrays was not possible</li>
<li class="">Array updates were non-deterministic</li>
</ul>
<p><strong>Solution:</strong></p>
<ul>
<li class="">Arrays are now fully replaced (not merged)</li>
<li class="">Objects continue to use deep merge behavior</li>
<li class="">Primitives continue to be replaced</li>
</ul>
<p><strong>Merge Behavior:</strong></p>
<table><thead><tr><th>Type</th><th>Behavior</th></tr></thead><tbody><tr><td>Array</td><td>Replace</td></tr><tr><td>Object</td><td>Merge</td></tr><tr><td>Primitive</td><td>Replace</td></tr></tbody></table>
<p><strong>Example:</strong></p>
<p>Current data:</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><span class="token property" style="color:#36acaa">"items"</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><span class="token property" style="color:#36acaa">"id"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token number" style="color:#36acaa">1</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><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"> </span><span class="token property" style="color:#36acaa">"id"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token number" style="color:#36acaa">2</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><span class="token punctuation" style="color:#393A34">}</span><br></div></code></pre></div></div>
<p>Incoming payload:</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><span class="token property" style="color:#36acaa">"items"</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><span class="token property" style="color:#36acaa">"id"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token number" style="color:#36acaa">2</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><span class="token punctuation" style="color:#393A34">}</span><br></div></code></pre></div></div>
<p>Result (before - incorrect):</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><span class="token property" style="color:#36acaa">"items"</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><span class="token property" style="color:#36acaa">"id"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token number" style="color:#36acaa">1</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><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"> </span><span class="token property" style="color:#36acaa">"id"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token number" style="color:#36acaa">2</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><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"> </span><span class="token property" style="color:#36acaa">"id"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token number" style="color:#36acaa">2</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><span class="token punctuation" style="color:#393A34">}</span><br></div></code></pre></div></div>
<p>Result (after - correct):</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><span class="token property" style="color:#36acaa">"items"</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><span class="token property" style="color:#36acaa">"id"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token number" style="color:#36acaa">2</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><span class="token punctuation" style="color:#393A34">}</span><br></div></code></pre></div></div>
<blockquote>
<p><strong>Reference:</strong> <a href="https://github.com/burgan-tech/vnext/issues/294" target="_blank" rel="noopener noreferrer" class="">#294 - Change merge behavior to replace arrays instead of merging</a></p>
</blockquote>
<hr>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="4-correlation-instanceid-conflict-handling">4. Correlation InstanceId Conflict Handling<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-31#4-correlation-instanceid-conflict-handling" class="hash-link" aria-label="Direct link to 4. Correlation InstanceId Conflict Handling" title="Direct link to 4. Correlation InstanceId Conflict Handling" translate="no">​</a></h3>
<p>Fixed correlation instanceId mismatch when subflow returns a different instanceId due to idempotency.</p>
<p><strong>Problem:</strong></p>
<ul>
<li class="">Parent flow creates correlation with a generated instanceId</li>
<li class="">Subflow detects an active instance with the same key</li>
<li class="">Due to idempotency, subflow returns existing instanceId</li>
<li class="">Correlation and actual subflow instance become inconsistent</li>
</ul>
<p><strong>Solution:</strong></p>
<ul>
<li class="">Client requests maintain idempotency behavior</li>
<li class="">Service-to-service platform calls now return <code>409 Conflict</code></li>
<li class="">Prevents incorrect sub-correlation creation</li>
</ul>
<blockquote>
<p><strong>Reference:</strong> <a href="https://github.com/burgan-tech/vnext/issues/274" target="_blank" rel="noopener noreferrer" class="">#274 - Correlation instanceId is not updated when subflow returns a different instanceId due to idempotency</a></p>
</blockquote>
<hr>
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="hotfixes">Hotfixes<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-31#hotfixes" class="hash-link" aria-label="Direct link to Hotfixes" title="Direct link to Hotfixes" translate="no">​</a></h2>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="1-workflow-instance-busyactive-status-management">1. Workflow Instance Busy/Active Status Management<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-31#1-workflow-instance-busyactive-status-management" class="hash-link" aria-label="Direct link to 1. Workflow Instance Busy/Active Status Management" title="Direct link to 1. Workflow Instance Busy/Active Status Management" translate="no">​</a></h3>
<p>Implemented proper Busy/Available status management for workflow instances.</p>
<p><strong>Details:</strong></p>
<ul>
<li class="">Instance is "Busy" during transition processing</li>
<li class="">Instance becomes "Available" when processing completes and target state has only manual transitions</li>
<li class="">Same rules apply to both main flow and subflow instances</li>
</ul>
<p><strong>Status Flow:</strong></p>
<!-- -->
<p><strong>Status Meanings:</strong></p>
<table><thead><tr><th>Status</th><th>Meaning</th></tr></thead><tbody><tr><td>Busy</td><td>Processing in progress, cannot accept new transitions</td></tr><tr><td>Available</td><td>Ready for client to trigger manual transition</td></tr><tr><td>Completed</td><td>Workflow finished</td></tr><tr><td>Faulted</td><td>Error state</td></tr></tbody></table>
<blockquote>
<p><strong>Reference:</strong> <a href="https://github.com/burgan-tech/vnext/issues/288" target="_blank" rel="noopener noreferrer" class="">#288 - Workflow Instance Busy/Active Status Management</a></p>
</blockquote>
<hr>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="2-publish-component-timeout-fix">2. Publish Component Timeout Fix<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-31#2-publish-component-timeout-fix" class="hash-link" aria-label="Direct link to 2. Publish Component Timeout Fix" title="Direct link to 2. Publish Component Timeout Fix" translate="no">​</a></h3>
<p>Resolved timeout issues for long-running publish component operations in init-service.</p>
<p><strong>Problem:</strong></p>
<ul>
<li class="">Publishing components can take a long time due to runtime waiting, package downloading, and file processing</li>
<li class="">HTTP requests timeout before completion</li>
</ul>
<p><strong>Solution:</strong></p>
<ul>
<li class="">Added configurable server timeout environment variables</li>
<li class="">Default timeout increased to 10 minutes</li>
</ul>
<p><strong>New Environment Variables:</strong></p>
<table><thead><tr><th>Variable</th><th>Description</th><th>Default</th></tr></thead><tbody><tr><td><code>SERVER_TIMEOUT_MS</code></td><td>Total request timeout in milliseconds</td><td><code>600000</code> (10 min)</td></tr><tr><td><code>SERVER_KEEP_ALIVE_TIMEOUT_MS</code></td><td>Keep-alive connection timeout</td><td><code>600000</code> (10 min)</td></tr><tr><td><code>SERVER_HEADERS_TIMEOUT_MS</code></td><td>Headers timeout (must be &gt; keep-alive)</td><td><code>610000</code> (10 min + 10 sec)</td></tr></tbody></table>
<p><strong>Example Configuration (30 minutes):</strong></p>
<div class="language-yaml codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-yaml codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#393A34"><span class="token key atrule" style="color:#00a4db">services</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 key atrule" style="color:#00a4db">vnext-init</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 key atrule" style="color:#00a4db">environment</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 key atrule" style="color:#00a4db">SERVER_TIMEOUT_MS</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token number" style="color:#36acaa">1800000</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token key atrule" style="color:#00a4db">SERVER_KEEP_ALIVE_TIMEOUT_MS</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token number" style="color:#36acaa">1800000</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token key atrule" style="color:#00a4db">SERVER_HEADERS_TIMEOUT_MS</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token number" style="color:#36acaa">1810000</span><br></div></code></pre></div></div>
<blockquote>
<p><strong>Reference:</strong> <a href="https://github.com/burgan-tech/vnext/issues/268" target="_blank" rel="noopener noreferrer" class="">#268 - Publish component request times out for long-running operations</a></p>
</blockquote>
<hr>
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="improvements">Improvements<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-31#improvements" class="hash-link" aria-label="Direct link to Improvements" title="Direct link to Improvements" translate="no">​</a></h2>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="1-c-12-script-engine-support">1. C# 12 Script Engine Support<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-31#1-c-12-script-engine-support" class="hash-link" aria-label="Direct link to 1. C# 12 Script Engine Support" title="Direct link to 1. C# 12 Script Engine Support" translate="no">​</a></h3>
<p>The script engine compiler now supports C# 12 features for mapping scripts.</p>
<p><strong>Benefits:</strong></p>
<ul>
<li class="">Collection expressions</li>
<li class="">Primary constructors</li>
<li class="">Inline arrays</li>
<li class="">Optional parameters in lambda expressions</li>
</ul>
<hr>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="2-systemtextjson-default-using">2. System.Text.Json Default Using<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-31#2-systemtextjson-default-using" class="hash-link" aria-label="Direct link to 2. System.Text.Json Default Using" title="Direct link to 2. System.Text.Json Default Using" translate="no">​</a></h3>
<p><code>System.Text.Json</code> namespace is now included in default usings for script mappings.</p>
<p><strong>Before:</strong></p>
<div class="language-csharp codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-csharp 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">using</span><span class="token plain"> </span><span class="token namespace" style="opacity:0.7">System</span><span class="token namespace punctuation" style="opacity:0.7;color:#393A34">.</span><span class="token namespace" style="opacity:0.7">Text</span><span class="token namespace punctuation" style="opacity:0.7;color:#393A34">.</span><span class="token namespace" style="opacity:0.7">Json</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 comment" style="color:#999988;font-style:italic">// ... then use JsonSerializer</span><br></div></code></pre></div></div>
<p><strong>After:</strong></p>
<div class="language-csharp codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-csharp 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">// JsonSerializer is available directly</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token class-name keyword" style="color:#00009f">var</span><span class="token plain"> json </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> JsonSerializer</span><span class="token punctuation" style="color:#393A34">.</span><span class="token function" style="color:#d73a49">Serialize</span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain">data</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">;</span><br></div></code></pre></div></div>
<hr>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="3-automatic-cache-invalidation-after-deploy">3. Automatic Cache Invalidation After Deploy<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-31#3-automatic-cache-invalidation-after-deploy" class="hash-link" aria-label="Direct link to 3. Automatic Cache Invalidation After Deploy" title="Direct link to 3. Automatic Cache Invalidation After Deploy" translate="no">​</a></h3>
<p>Cache is now automatically cleared after each component deployment to ensure consistency.</p>
<p><strong>Details:</strong></p>
<ul>
<li class="">Re-initialize is triggered after every deploy operation</li>
<li class="">Guarantees that cached definitions are refreshed</li>
<li class="">Prevents stale cache issues after component updates</li>
</ul>
<hr>
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="configuration-updates">Configuration Updates<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-31#configuration-updates" class="hash-link" aria-label="Direct link to Configuration Updates" title="Direct link to Configuration Updates" translate="no">​</a></h2>
<p>Configuration for v0.0.31:</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">"runtimeVersion"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"0.0.31"</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">"schemaVersion"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"0.0.30"</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">"componentVersion"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"0.0.18"</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>
<hr>
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="issues-referenced">Issues Referenced<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-31#issues-referenced" class="hash-link" aria-label="Direct link to Issues Referenced" title="Direct link to Issues Referenced" translate="no">​</a></h2>
<p><strong>Features:</strong></p>
<ul>
<li class=""><a href="https://github.com/burgan-tech/vnext/issues/88" target="_blank" rel="noopener noreferrer" class="">#88 - Enhanced Error Handling System</a></li>
<li class=""><a href="https://github.com/burgan-tech/vnext/issues/202" target="_blank" rel="noopener noreferrer" class="">#202 - Implement GraphQL-Style Filtering for Instance Data</a></li>
<li class=""><a href="https://github.com/burgan-tech/vnext/issues/209" target="_blank" rel="noopener noreferrer" class="">#209 - Support "latest" String Value in References</a></li>
<li class=""><a href="https://github.com/burgan-tech/vnext/issues/238" target="_blank" rel="noopener noreferrer" class="">#238 - Direct Trigger Task for Parent Transition</a></li>
<li class=""><a href="https://github.com/burgan-tech/vnext/issues/272" target="_blank" rel="noopener noreferrer" class="">#272 - Add Filter Support to GetInstances Task</a></li>
<li class=""><a href="https://github.com/burgan-tech/vnext/issues/297" target="_blank" rel="noopener noreferrer" class="">#297 - Subflow State Change Event Implementation</a></li>
</ul>
<p><strong>Bug Fixes:</strong></p>
<ul>
<li class=""><a href="https://github.com/burgan-tech/vnext/issues/273" target="_blank" rel="noopener noreferrer" class="">#273 - Incorrect query string formatting for extensions parameter</a></li>
<li class=""><a href="https://github.com/burgan-tech/vnext/issues/274" target="_blank" rel="noopener noreferrer" class="">#274 - Correlation instanceId conflict handling</a></li>
<li class=""><a href="https://github.com/burgan-tech/vnext/issues/294" target="_blank" rel="noopener noreferrer" class="">#294 - Change merge behavior to replace arrays instead of merging</a></li>
<li class=""><a href="https://github.com/burgan-tech/vnext/pull/303" target="_blank" rel="noopener noreferrer" class="">#303 - Request size issue fix</a></li>
</ul>
<p><strong>Hotfixes:</strong></p>
<ul>
<li class=""><a href="https://github.com/burgan-tech/vnext/issues/268" target="_blank" rel="noopener noreferrer" class="">#268 - Publish component request times out for long-running operations</a></li>
<li class=""><a href="https://github.com/burgan-tech/vnext/issues/288" target="_blank" rel="noopener noreferrer" class="">#288 - Workflow Instance Busy/Active Status Management</a></li>
</ul>
<hr>
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="summary">Summary<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-31#summary" class="hash-link" aria-label="Direct link to Summary" title="Direct link to Summary" translate="no">​</a></h2>
<p>With this release:</p>
<ul>
<li class="">GetInstances Task for cross-workflow data fetching implemented</li>
<li class="">Subflow State Change Events with EffectiveState field added</li>
<li class="">Update Parent Data Transition for SubFlow-to-parent communication implemented</li>
<li class="">GraphQL-style filtering for instance data added</li>
<li class="">Flexible version resolution ("latest", Major, Major.Minor) in references added</li>
<li class="">Enhanced Error Handling System (ErrorBoundary) with multi-level error boundaries</li>
<li class="">HTTP request size limits increased</li>
<li class="">Extension query string formatting fixed</li>
<li class="">Array merge behavior changed to replace mode</li>
<li class="">Correlation conflict handling improved with 409 response</li>
<li class="">Instance Busy/Available status management implemented</li>
<li class="">Init-service timeout configuration added</li>
<li class="">Automatic cache invalidation after deploy added</li>
<li class="">C# 12 script engine support added</li>
<li class="">System.Text.Json added to default usings</li>
</ul>
<hr>
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="upgrade-path">Upgrade Path<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-31#upgrade-path" class="hash-link" aria-label="Direct link to Upgrade Path" title="Direct link to Upgrade Path" translate="no">​</a></h2>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="from-v0030-to-v0031">From v0.0.30 to v0.0.31:<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-31#from-v0030-to-v0031" class="hash-link" aria-label="Direct link to From v0.0.30 to v0.0.31:" title="Direct link to From v0.0.30 to v0.0.31:" translate="no">​</a></h3>
<ol>
<li class="">
<p><strong>Update Runtime:</strong></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">git</span><span class="token plain"> pull origin master</span><br></div></code></pre></div></div>
</li>
<li class="">
<p><strong>Update Configuration:</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">"runtimeVersion"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"0.0.31"</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">"schemaVersion"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"0.0.31"</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">"componentVersion"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"0.0.18"</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>
</li>
<li class="">
<p><strong>(Optional) Configure Init-Service Timeouts:</strong>
If you experience timeout issues during package publishing, configure the timeout environment variables:</p>
<div class="language-yaml codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-yaml codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#393A34"><span class="token key atrule" style="color:#00a4db">SERVER_TIMEOUT_MS</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token number" style="color:#36acaa">1800000</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token key atrule" style="color:#00a4db">SERVER_KEEP_ALIVE_TIMEOUT_MS</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token number" style="color:#36acaa">1800000</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token key atrule" style="color:#00a4db">SERVER_HEADERS_TIMEOUT_MS</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token number" style="color:#36acaa">1810000</span><br></div></code></pre></div></div>
</li>
<li class="">
<p><strong>Database Migration:</strong>
The <code>EffectiveState</code> field migration is applied automatically on startup.</p>
</li>
</ol>
<hr>
<p><strong>vNext Runtime Platform Team</strong><br>
<!-- -->January 13, 2026</p>]]></content:encoded>
            <category>release</category>
        </item>
        <item>
            <title><![CDATA[Release v0.0.29]]></title>
            <link>https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-29</link>
            <guid>https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-29</guid>
            <pubDate>Sun, 04 Jan 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[{/ truncate /}]]></description>
            <content:encoded><![CDATA[
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="-overview">🧭 Overview<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-29#-overview" class="hash-link" aria-label="Direct link to 🧭 Overview" title="Direct link to 🧭 Overview" translate="no">​</a></h2>
<p>This release introduces significant new features including Service Discovery for cross-domain communication, Default Auto Transition support, "latest" version resolution, and a new Transition Schema API endpoint. Additionally, important bug fixes for subflow extensions, sequential task initialization, and publish component timeouts have been implemented.</p>
<blockquote>
<p>⚠️ <strong>New Feature Alert:</strong> Service Discovery requires additional setup. See the Service Discovery section below for configuration details.</p>
</blockquote>
<hr>
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="-new-features">🚀 New Features<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-29#-new-features" class="hash-link" aria-label="Direct link to 🚀 New Features" title="Direct link to 🚀 New Features" translate="no">​</a></h2>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="1-service-discovery-for-cross-domain-communication">1. Service Discovery for Cross-Domain Communication<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-29#1-service-discovery-for-cross-domain-communication" class="hash-link" aria-label="Direct link to 1. Service Discovery for Cross-Domain Communication" title="Direct link to 1. Service Discovery for Cross-Domain Communication" translate="no">​</a></h3>
<p>Implemented service discovery to enable communication between different domains.</p>
<p><strong>Details:</strong></p>
<ul>
<li class="">Domains can now discover and communicate with services in other domains</li>
<li class="">Requires <code>vnext-domain-discovery</code> runtime installation (one per environment recommended)</li>
<li class="">Core domain structure for service registration and discovery</li>
</ul>
<p><strong>Configuration:</strong>
Add the following to your <code>appsettings.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">"ServiceDiscovery"</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">"Enabled"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token boolean" style="color:#36acaa">false</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">"BaseUrl"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"http://localhost:3001/api/v1"</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">"ValidateSsl"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token boolean" style="color:#36acaa">false</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">"Domain"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"discovery"</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">"RegistryFlow"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"domain-registration"</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">"TimeoutSeconds"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token number" style="color:#36acaa">30</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">"MaxRetryAttempts"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token number" style="color:#36acaa">3</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">"RetryDelayMilliseconds"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token number" style="color:#36acaa">1000</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">"CircuitBreakerFailureThreshold"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token number" style="color:#36acaa">5</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">"CircuitBreakerTimeoutSeconds"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token number" style="color:#36acaa">30</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">"DiscoveryCacheSeconds"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token number" style="color:#36acaa">300</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">"DiscoveryEndpointTemplate"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"/discovery/workflows/domain/instances/{0}/functions/data"</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>
<blockquote>
<p>⚠️ <strong>Note:</strong> Keep Service Discovery disabled in development environments. Enable it only in production environments.</p>
</blockquote>
<blockquote>
<p><strong>Reference:</strong> <a href="https://github.com/burgan-tech/vnext/issues/188" target="_blank" rel="noopener noreferrer" class="">#188 - Use Service Discovery Domain to Resolve URLs for Other Domains</a><br>
<strong>Repository:</strong> <a href="https://github.com/burgan-tech/vnext-domain-discovery" target="_blank" rel="noopener noreferrer" class="">vnext-domain-discovery</a></p>
</blockquote>
<hr>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="2-default-auto-transition-support">2. Default Auto Transition Support<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-29#2-default-auto-transition-support" class="hash-link" aria-label="Direct link to 2. Default Auto Transition Support" title="Direct link to 2. Default Auto Transition Support" translate="no">​</a></h3>
<p>Added support for default transitions when no auto transition conditions are met.</p>
<p><strong>Details:</strong></p>
<ul>
<li class="">When no auto transition condition is satisfied, a default transition can now be triggered</li>
<li class="">Uses <code>triggerKind: 10</code> for default auto transition</li>
</ul>
<p><strong>Configuration:</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">"triggerKind"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token number" style="color:#36acaa">10</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>TriggerKind Values:</strong></p>
<table><thead><tr><th>Value</th><th>Description</th></tr></thead><tbody><tr><td>0</td><td>Not applicable</td></tr><tr><td>10</td><td>Default Auto Transition</td></tr></tbody></table>
<blockquote>
<p><strong>Reference:</strong> <a href="https://github.com/burgan-tech/vnext/issues/199" target="_blank" rel="noopener noreferrer" class="">#199 - Implement Default Auto Transition for Failed Auto Transition Conditions</a></p>
</blockquote>
<hr>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="3-latest-version-resolution-in-references">3. "Latest" Version Resolution in References<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-29#3-latest-version-resolution-in-references" class="hash-link" aria-label="Direct link to 3. &quot;Latest&quot; Version Resolution in References" title="Direct link to 3. &quot;Latest&quot; Version Resolution in References" translate="no">​</a></h3>
<p>Version references now support "latest" string value for automatic latest version resolution.</p>
<p><strong>Details:</strong></p>
<ul>
<li class="">Use <code>"version": "latest"</code> to automatically resolve to the newest version</li>
<li class="">Major and Minor version references also resolve to the latest matching version</li>
</ul>
<p><strong>Examples:</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">"key"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"component-123"</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">"version"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"latest"</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>
<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">"key"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"component-123"</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">"version"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"1.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>
<blockquote>
<p><strong>Reference:</strong> <a href="https://github.com/burgan-tech/vnext/issues/209" target="_blank" rel="noopener noreferrer" class="">#209 - Support "latest" String Value in References for Latest Version Resolution</a></p>
</blockquote>
<hr>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="4-transition-schema-api-endpoint">4. Transition Schema API Endpoint<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-29#4-transition-schema-api-endpoint" class="hash-link" aria-label="Direct link to 4. Transition Schema API Endpoint" title="Direct link to 4. Transition Schema API Endpoint" translate="no">​</a></h3>
<p>Added a new API endpoint to fetch transition schema content.</p>
<p><strong>Details:</strong></p>
<ul>
<li class="">New function definition to retrieve schema content defined on transitions</li>
<li class="">Returns schema content if a transition schema definition exists</li>
</ul>
<p><strong>Endpoint:</strong></p>
<div class="language-http codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-http 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">GET /api/v1/{domain}/workflows/{workflow}/instances/{instance}/functions/schema?transitionKey={transition}</span><br></div></code></pre></div></div>
<blockquote>
<p><strong>Reference:</strong> <a href="https://github.com/burgan-tech/vnext/issues/216" target="_blank" rel="noopener noreferrer" class="">#216 - Add API Endpoint to Fetch Transition Schema</a></p>
</blockquote>
<hr>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="5-idempotent-workflow-start">5. Idempotent Workflow Start<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-29#5-idempotent-workflow-start" class="hash-link" aria-label="Direct link to 5. Idempotent Workflow Start" title="Direct link to 5. Idempotent Workflow Start" translate="no">​</a></h3>
<p>Implemented idempotent behavior for workflow start requests with the same key.</p>
<p><strong>Details:</strong></p>
<ul>
<li class="">When starting a workflow with a key that already exists, the system now returns the existing instance information instead of an error</li>
<li class="">Previous behavior: Returns <code>409 Conflict</code> (InstanceAlreadyExists) error</li>
<li class="">New behavior: Returns the existing instance's current status and ID</li>
</ul>
<p><strong>Previous Response (409 Error):</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">"error"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"InstanceAlreadyExists"</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">"message"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"An instance with key 'ORDER-123' already exists"</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>New Response (Idempotent):</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">"id"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"18075ad5-e5b2-4437-b884-21d733339113"</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">"status"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"A"</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>Benefits:</strong></p>
<ul>
<li class="">Safe retry scenarios for network failures</li>
<li class="">Clients can retrieve original start response on repeated calls</li>
<li class="">No need for separate "check if exists" calls before starting</li>
</ul>
<blockquote>
<p><strong>Reference:</strong> <a href="https://github.com/burgan-tech/vnext/issues/200" target="_blank" rel="noopener noreferrer" class="">#200 - Implement Idempotent Workflow Start - Return Same Response for Repeated Calls with Same Key</a></p>
</blockquote>
<hr>
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="️-bug-fixes">🛠️ Bug Fixes<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-29#%EF%B8%8F-bug-fixes" class="hash-link" aria-label="Direct link to 🛠️ Bug Fixes" title="Direct link to 🛠️ Bug Fixes" translate="no">​</a></h2>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="1-subflow-extension-invocation-bug">1. Subflow Extension Invocation Bug<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-29#1-subflow-extension-invocation-bug" class="hash-link" aria-label="Direct link to 1. Subflow Extension Invocation Bug" title="Direct link to 1. Subflow Extension Invocation Bug" translate="no">​</a></h3>
<p>Fixed an issue where extension calls within subflows were not returning correctly.</p>
<p><strong>Problem:</strong></p>
<ul>
<li class="">When a main flow transitioned to a subflow, the data endpoint only returned main flow data</li>
<li class="">Extensions from subflows were not included in the response</li>
</ul>
<p><strong>Solution:</strong></p>
<ul>
<li class="">Data endpoint now returns main flow data and appends subflow extensions to its response</li>
</ul>
<blockquote>
<p><strong>Reference:</strong> <a href="https://github.com/burgan-tech/vnext/issues/250" target="_blank" rel="noopener noreferrer" class="">#250 - Subflow içinde extension çağırımı</a></p>
</blockquote>
<hr>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="2-logger-initialization-in-sequential-tasks">2. Logger Initialization in Sequential Tasks<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-29#2-logger-initialization-in-sequential-tasks" class="hash-link" aria-label="Direct link to 2. Logger Initialization in Sequential Tasks" title="Direct link to 2. Logger Initialization in Sequential Tasks" translate="no">​</a></h3>
<p>Fixed initialization errors occurring during sequential task execution.</p>
<p><strong>Problem:</strong></p>
<ul>
<li class="">Logger, Dapr, or Configuration initialization errors occurred during sequential task execution</li>
<li class="">"Logger is not initialized" error in script output handler</li>
</ul>
<p><strong>Solution:</strong></p>
<ul>
<li class="">Logger, Dapr, and Configuration initialization is now performed separately for each task in sequential execution</li>
</ul>
<blockquote>
<p><strong>Reference:</strong> <a href="https://github.com/burgan-tech/vnext/issues/265" target="_blank" rel="noopener noreferrer" class="">#265 - Script output handler failed – Logger is not initialized</a></p>
</blockquote>
<hr>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="3-extension-response-mapping-bug">3. Extension Response Mapping Bug<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-29#3-extension-response-mapping-bug" class="hash-link" aria-label="Direct link to 3. Extension Response Mapping Bug" title="Direct link to 3. Extension Response Mapping Bug" translate="no">​</a></h3>
<p>Fixed response mapping issues in Extension HTTP task requests.</p>
<p><strong>Problem:</strong></p>
<ul>
<li class="">Response mapping in HTTP task requests within Extensions was not working correctly</li>
</ul>
<p><strong>Solution:</strong></p>
<ul>
<li class="">Corrected the response mapping logic for HTTP task requests in Extensions</li>
</ul>
<blockquote>
<p><strong>Reference:</strong> <a href="https://github.com/burgan-tech/vnext/issues/239" target="_blank" rel="noopener noreferrer" class="">#239 - Extension Response Bug</a></p>
</blockquote>
<hr>
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="-hotfixes">🔥 Hotfixes<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-29#-hotfixes" class="hash-link" aria-label="Direct link to 🔥 Hotfixes" title="Direct link to 🔥 Hotfixes" translate="no">​</a></h2>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="1-publish-component-timeout-fix">1. Publish Component Timeout Fix<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-29#1-publish-component-timeout-fix" class="hash-link" aria-label="Direct link to 1. Publish Component Timeout Fix" title="Direct link to 1. Publish Component Timeout Fix" translate="no">​</a></h3>
<p>Resolved timeout issues for long-running publish component operations.</p>
<p><strong>Problem:</strong></p>
<ul>
<li class="">Timeout inconsistency in init-service caused publish component requests to fail</li>
</ul>
<p><strong>Solution:</strong></p>
<ul>
<li class="">Increased timeout duration to 10 minutes for publish component requests</li>
<li class="">Server timeout configurations updated:</li>
</ul>
<div class="language-yaml codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-yaml codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#393A34"><span class="token key atrule" style="color:#00a4db">SERVER_TIMEOUT_MS</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token number" style="color:#36acaa">1800000</span><span class="token plain">        </span><span class="token comment" style="color:#999988;font-style:italic"># 30 minutes</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token key atrule" style="color:#00a4db">SERVER_KEEP_ALIVE_TIMEOUT_MS</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token number" style="color:#36acaa">1800000</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token key atrule" style="color:#00a4db">SERVER_HEADERS_TIMEOUT_MS</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token number" style="color:#36acaa">1810000</span><br></div></code></pre></div></div>
<blockquote>
<p><strong>Reference:</strong> <a href="https://github.com/burgan-tech/vnext/issues/268" target="_blank" rel="noopener noreferrer" class="">#268 - Publish component request times out for long-running operations</a><br>
<strong>Documentation:</strong> <a href="https://github.com/burgan-tech/vnext/tree/master/init/VNext.Init.Host#server-timeout-configuration" target="_blank" rel="noopener noreferrer" class="">Server Timeout Configuration</a></p>
</blockquote>
<hr>
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="-improvements">🔄 Improvements<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-29#-improvements" class="hash-link" aria-label="Direct link to 🔄 Improvements" title="Direct link to 🔄 Improvements" translate="no">​</a></h2>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="1-transition-pipeline-locking-refactoring">1. Transition Pipeline Locking Refactoring<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-29#1-transition-pipeline-locking-refactoring" class="hash-link" aria-label="Direct link to 1. Transition Pipeline Locking Refactoring" title="Direct link to 1. Transition Pipeline Locking Refactoring" translate="no">​</a></h3>
<p>Refactored transition pipeline locking mechanism to resolve deadlock issues.</p>
<p><strong>Changes:</strong></p>
<ul>
<li class="">Scope-based lifecycle management for pipeline locking</li>
<li class="">Sync dispatcher support added</li>
<li class="">Local and remote gateway structure implemented</li>
<li class="">Processes within the same domain use local gateway</li>
<li class="">Cross-domain processes use remote gateway</li>
</ul>
<blockquote>
<p><strong>Reference:</strong> <a href="https://github.com/burgan-tech/vnext/issues/256" target="_blank" rel="noopener noreferrer" class="">#256 - Refactor Transition Pipeline Locking to Scope-Based Lifecycle with Sync Dispatcher Support</a></p>
</blockquote>
<hr>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="2-schema-refactoring">2. Schema Refactoring<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-29#2-schema-refactoring" class="hash-link" aria-label="Direct link to 2. Schema Refactoring" title="Direct link to 2. Schema Refactoring" translate="no">​</a></h3>
<p>Fixed missing and incorrect schema definitions in vnext-schema repository.</p>
<p><strong>Changes:</strong></p>
<ul>
<li class="">Corrected missing schema definitions</li>
<li class="">Fixed incorrect schema definitions</li>
<li class="">Synchronized schema validator</li>
</ul>
<blockquote>
<p><strong>Reference:</strong> <a href="https://github.com/burgan-tech/vnext-schema/issues/60" target="_blank" rel="noopener noreferrer" class="">vnext-schema #60 - Schema Refactoring: Fix Missing &amp; Incorrect Definitions, Validator Sync</a></p>
</blockquote>
<hr>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="3-new-makefile-command-change-domain">3. New Makefile Command: change-domain<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-29#3-new-makefile-command-change-domain" class="hash-link" aria-label="Direct link to 3. New Makefile Command: change-domain" title="Direct link to 3. New Makefile Command: change-domain" translate="no">​</a></h3>
<p>Added <code>change-domain</code> command to Makefile for quick domain configuration.</p>
<p><strong>Usage:</strong></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">make</span><span class="token plain"> change-domain</span><br></div></code></pre></div></div>
<p>This command allows you to quickly configure your development environment infrastructure for a specific domain.</p>
<hr>
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="-configuration-updates">🔧 Configuration Updates<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-29#-configuration-updates" class="hash-link" aria-label="Direct link to 🔧 Configuration Updates" title="Direct link to 🔧 Configuration Updates" translate="no">​</a></h2>
<p>Configuration for v0.0.29:</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">"runtimeVersion"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"0.0.29"</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">"schemaVersion"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"0.0.29"</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">"componentVersion"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"0.0.18"</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>
<hr>
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="-issues-referenced">🧱 Issues Referenced<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-29#-issues-referenced" class="hash-link" aria-label="Direct link to 🧱 Issues Referenced" title="Direct link to 🧱 Issues Referenced" translate="no">​</a></h2>
<p><strong>Features:</strong></p>
<ul>
<li class=""><a href="https://github.com/burgan-tech/vnext/issues/188" target="_blank" rel="noopener noreferrer" class="">#188 - Use Service Discovery Domain to Resolve URLs for Other Domains</a></li>
<li class=""><a href="https://github.com/burgan-tech/vnext/issues/199" target="_blank" rel="noopener noreferrer" class="">#199 - Implement Default Auto Transition for Failed Auto Transition Conditions</a></li>
<li class=""><a href="https://github.com/burgan-tech/vnext/issues/200" target="_blank" rel="noopener noreferrer" class="">#200 - Implement Idempotent Workflow Start</a></li>
<li class=""><a href="https://github.com/burgan-tech/vnext/issues/209" target="_blank" rel="noopener noreferrer" class="">#209 - Support "latest" String Value in References for Latest Version Resolution</a></li>
<li class=""><a href="https://github.com/burgan-tech/vnext/issues/216" target="_blank" rel="noopener noreferrer" class="">#216 - Add API Endpoint to Fetch Transition Schema</a></li>
</ul>
<p><strong>Bug Fixes:</strong></p>
<ul>
<li class=""><a href="https://github.com/burgan-tech/vnext/issues/239" target="_blank" rel="noopener noreferrer" class="">#239 - Extension Response Bug</a></li>
<li class=""><a href="https://github.com/burgan-tech/vnext/issues/250" target="_blank" rel="noopener noreferrer" class="">#250 - Subflow içinde extension çağırımı</a></li>
<li class=""><a href="https://github.com/burgan-tech/vnext/issues/265" target="_blank" rel="noopener noreferrer" class="">#265 - Script output handler failed – Logger is not initialized</a></li>
</ul>
<p><strong>Hotfixes:</strong></p>
<ul>
<li class=""><a href="https://github.com/burgan-tech/vnext/issues/268" target="_blank" rel="noopener noreferrer" class="">#268 - Publish component request times out for long-running operations</a></li>
</ul>
<p><strong>Improvements:</strong></p>
<ul>
<li class=""><a href="https://github.com/burgan-tech/vnext/issues/256" target="_blank" rel="noopener noreferrer" class="">#256 - Refactor Transition Pipeline Locking to Scope-Based Lifecycle with Sync Dispatcher Support</a></li>
<li class=""><a href="https://github.com/burgan-tech/vnext-schema/issues/60" target="_blank" rel="noopener noreferrer" class="">vnext-schema #60 - Schema Refactoring</a></li>
</ul>
<hr>
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="-summary">🧠 Summary<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-29#-summary" class="hash-link" aria-label="Direct link to 🧠 Summary" title="Direct link to 🧠 Summary" translate="no">​</a></h2>
<p>With this release:
✅ Service Discovery for cross-domain communication implemented<br>
<!-- -->✅ Default Auto Transition support added<br>
<!-- -->✅ "Latest" version resolution in references supported<br>
<!-- -->✅ Transition Schema API endpoint added<br>
<!-- -->✅ Idempotent workflow start behavior implemented<br>
<!-- -->✅ Subflow extension invocation bug fixed<br>
<!-- -->✅ Logger initialization in sequential tasks fixed<br>
<!-- -->✅ Extension response mapping corrected<br>
<!-- -->✅ Publish component timeout issues resolved<br>
<!-- -->✅ Transition pipeline locking refactored with gateway support<br>
<!-- -->✅ Schema definitions corrected and synchronized<br>
<!-- -->✅ New <code>change-domain</code> Makefile command added</p>
<hr>
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="-upgrade-path">🔄 Upgrade Path<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-29#-upgrade-path" class="hash-link" aria-label="Direct link to 🔄 Upgrade Path" title="Direct link to 🔄 Upgrade Path" translate="no">​</a></h2>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="from-v0028-to-v0029">From v0.0.28 to v0.0.29:<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-29#from-v0028-to-v0029" class="hash-link" aria-label="Direct link to From v0.0.28 to v0.0.29:" title="Direct link to From v0.0.28 to v0.0.29:" translate="no">​</a></h3>
<ol>
<li class="">
<p><strong>Update Runtime:</strong></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">git</span><span class="token plain"> pull origin master</span><br></div></code></pre></div></div>
</li>
<li class="">
<p><strong>Update Configuration:</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">"runtimeVersion"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"0.0.29"</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">"schemaVersion"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"0.0.29"</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">"componentVersion"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"0.0.18"</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>
</li>
<li class="">
<p><strong>(Optional) Configure Service Discovery:</strong>
If you want to enable cross-domain communication, add the Service Discovery configuration to your <code>appsettings.json</code> and set up the <code>vnext-domain-discovery</code> runtime.</p>
</li>
</ol>
<hr>
<p><strong>vNext Runtime Platform Team</strong><br>
<!-- -->January 4, 2026</p>]]></content:encoded>
            <category>release</category>
        </item>
        <item>
            <title><![CDATA[Release v0.0.27]]></title>
            <link>https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-27</link>
            <guid>https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-27</guid>
            <pubDate>Fri, 19 Dec 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[{/ truncate /}]]></description>
            <content:encoded><![CDATA[
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="-overview">🧭 Overview<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-27#-overview" class="hash-link" aria-label="Direct link to 🧭 Overview" title="Direct link to 🧭 Overview" translate="no">​</a></h2>
<p>This release focuses on bug fixes and stability improvements. Key fixes include Extension response mapping, HttpTask status code handling, memory leak resolution in Roslyn, and init-service response improvements.</p>
<blockquote>
<p>✅ <strong>No Breaking Changes:</strong> This release is fully backward compatible with v0.0.26. No migration steps required.</p>
</blockquote>
<hr>
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="️-bug-fixes">🛠️ Bug Fixes<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-27#%EF%B8%8F-bug-fixes" class="hash-link" aria-label="Direct link to 🛠️ Bug Fixes" title="Direct link to 🛠️ Bug Fixes" translate="no">​</a></h2>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="1-extension-response-mapping-bug">1. Extension Response Mapping Bug<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-27#1-extension-response-mapping-bug" class="hash-link" aria-label="Direct link to 1. Extension Response Mapping Bug" title="Direct link to 1. Extension Response Mapping Bug" translate="no">​</a></h3>
<p>Fixed an issue where response mapping was not working correctly on Extension.</p>
<p><strong>Problem:</strong></p>
<ul>
<li class="">Response mapping on Extension was producing incorrect results</li>
</ul>
<p><strong>Solution:</strong></p>
<ul>
<li class="">Fixed the response mapping logic to handle Extension responses correctly</li>
</ul>
<blockquote>
<p><strong>Reference:</strong> <a href="https://github.com/burgan-tech/vnext/issues/239" target="_blank" rel="noopener noreferrer" class="">#239 - Extension Response Bug</a></p>
</blockquote>
<hr>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="2-httptask-statuscode-override-bug">2. HttpTask StatusCode Override Bug<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-27#2-httptask-statuscode-override-bug" class="hash-link" aria-label="Direct link to 2. HttpTask StatusCode Override Bug" title="Direct link to 2. HttpTask StatusCode Override Bug" translate="no">​</a></h3>
<p>Fixed an issue where status code values were being overwritten incorrectly in HttpTask and Dapr Service Invocations.</p>
<p><strong>Problem:</strong></p>
<ul>
<li class="">HttpTask was overriding status code 500 incorrectly</li>
<li class="">Dapr Service Invocation status codes were also affected</li>
</ul>
<p><strong>Solution:</strong></p>
<ul>
<li class="">Status code values are now preserved correctly throughout the request pipeline</li>
</ul>
<blockquote>
<p><strong>Reference:</strong> <a href="https://github.com/burgan-tech/vnext/issues/240" target="_blank" rel="noopener noreferrer" class="">#240 - HttpTask StatusCode 500 override hatası</a></p>
</blockquote>
<hr>
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="-hotfixes">🔥 Hotfixes<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-27#-hotfixes" class="hash-link" aria-label="Direct link to 🔥 Hotfixes" title="Direct link to 🔥 Hotfixes" translate="no">​</a></h2>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="1-memory-leak-fix-in-roslyn">1. Memory Leak Fix in Roslyn<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-27#1-memory-leak-fix-in-roslyn" class="hash-link" aria-label="Direct link to 1. Memory Leak Fix in Roslyn" title="Direct link to 1. Memory Leak Fix in Roslyn" translate="no">​</a></h3>
<p>Resolved a memory leak issue in the Roslyn script compilation engine.</p>
<p><strong>Impact:</strong></p>
<ul>
<li class="">Improved memory management during script execution</li>
<li class="">Better resource cleanup for long-running workflows</li>
</ul>
<blockquote>
<p><strong>Reference:</strong> <a href="https://github.com/burgan-tech/vnext/pull/237" target="_blank" rel="noopener noreferrer" class="">PR #237 - fix memory leak issue</a></p>
</blockquote>
<hr>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="2-init-service-response-fix">2. Init-Service Response Fix<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-27#2-init-service-response-fix" class="hash-link" aria-label="Direct link to 2. Init-Service Response Fix" title="Direct link to 2. Init-Service Response Fix" translate="no">​</a></h3>
<p>Fixed issues in init-service response handling for success status and message parts.</p>
<p><strong>Changes:</strong></p>
<ul>
<li class="">Corrected success flag handling</li>
<li class="">Improved message formatting in responses</li>
</ul>
<blockquote>
<p><strong>Reference:</strong> <a href="https://github.com/burgan-tech/vnext/pull/236" target="_blank" rel="noopener noreferrer" class="">PR #236 - fix init-service for response</a></p>
</blockquote>
<hr>
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="-configuration-updates">🔧 Configuration Updates<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-27#-configuration-updates" class="hash-link" aria-label="Direct link to 🔧 Configuration Updates" title="Direct link to 🔧 Configuration Updates" translate="no">​</a></h2>
<p>Configuration for v0.0.27:</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">"runtimeVersion"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"0.0.27"</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">"schemaVersion"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"0.0.28"</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">"componentVersion"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"0.0.18"</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>
<blockquote>
<p><strong>Note:</strong> Schema version remains unchanged from v0.0.26.</p>
</blockquote>
<hr>
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="-issues-referenced">🧱 Issues Referenced<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-27#-issues-referenced" class="hash-link" aria-label="Direct link to 🧱 Issues Referenced" title="Direct link to 🧱 Issues Referenced" translate="no">​</a></h2>
<ul>
<li class=""><a href="https://github.com/burgan-tech/vnext/issues/239" target="_blank" rel="noopener noreferrer" class="">#239 - Extension Response Bug</a></li>
<li class=""><a href="https://github.com/burgan-tech/vnext/issues/240" target="_blank" rel="noopener noreferrer" class="">#240 - HttpTask StatusCode 500 override hatası</a></li>
<li class=""><a href="https://github.com/burgan-tech/vnext/pull/237" target="_blank" rel="noopener noreferrer" class="">PR #237 - fix memory leak issue</a></li>
<li class=""><a href="https://github.com/burgan-tech/vnext/pull/236" target="_blank" rel="noopener noreferrer" class="">PR #236 - fix init-service for response</a></li>
</ul>
<hr>
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="-summary">🧠 Summary<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-27#-summary" class="hash-link" aria-label="Direct link to 🧠 Summary" title="Direct link to 🧠 Summary" translate="no">​</a></h2>
<p>With this release:
✅ Extension response mapping bug fixed<br>
<!-- -->✅ HttpTask and Dapr Service Invocation status code handling fixed<br>
<!-- -->✅ Memory leak in Roslyn resolved<br>
<!-- -->✅ Init-service response handling improved</p>
<hr>
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="-upgrade-path">🔄 Upgrade Path<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-27#-upgrade-path" class="hash-link" aria-label="Direct link to 🔄 Upgrade Path" title="Direct link to 🔄 Upgrade Path" translate="no">​</a></h2>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="from-v0026-to-v0027">From v0.0.26 to v0.0.27:<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-27#from-v0026-to-v0027" class="hash-link" aria-label="Direct link to From v0.0.26 to v0.0.27:" title="Direct link to From v0.0.26 to v0.0.27:" translate="no">​</a></h3>
<ol>
<li class="">
<p><strong>Update Runtime:</strong></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">git</span><span class="token plain"> pull origin master</span><br></div></code></pre></div></div>
</li>
<li class="">
<p><strong>Update Configuration:</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">"runtimeVersion"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"0.0.27"</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">"schemaVersion"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"0.0.28"</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">"componentVersion"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"0.0.18"</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>
</li>
</ol>
<p>No additional migration steps required.</p>
<hr>
<p><strong>vNext Runtime Platform Team</strong><br>
<!-- -->December 19, 2025</p>]]></content:encoded>
            <category>release</category>
        </item>
        <item>
            <title><![CDATA[Release v0.0.23-26]]></title>
            <link>https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-23-26</link>
            <guid>https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-23-26</guid>
            <pubDate>Tue, 16 Dec 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[🔴 Important Notice: Version 0.0.23 and 0.0.24 contained critical bugs and has been superseded by version 0.0.26. If you are using v0.0.23, please upgrade to v0.0.26 immediately. All references to v0.0.23 should be considered as v0.0.26.]]></description>
            <content:encoded><![CDATA[<blockquote>
<p>🔴 <strong>Important Notice:</strong> Version 0.0.23 and 0.0.24 contained critical bugs and has been superseded by version 0.0.26. If you are using v0.0.23, please upgrade to v0.0.26 immediately. All references to v0.0.23 should be considered as v0.0.26.</p>
</blockquote>
<!-- -->
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="-overview">🧭 Overview<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-23-26#-overview" class="hash-link" aria-label="Direct link to 🧭 Overview" title="Direct link to 🧭 Overview" translate="no">​</a></h2>
<p>This release introduces significant architectural changes including <strong>optional key field</strong> for workflow instances, <strong>Native C# code support</strong> in mappings (NAT encoding), <strong>input mapping migration</strong> from Execution to Orchestrator, and a <strong>new versioning strategy</strong> for component publishing. Additionally, enhanced <strong>TriggerTask</strong> capabilities, <strong>Event Hook</strong> feature, and various bug fixes for transition data handling, async transactions, and logging improvements are included.</p>
<blockquote>
<p>⚠️ <strong>Breaking Changes:</strong> This release contains multiple breaking changes affecting transition payloads, start instance requests, mapping schema format, and component publishing strategy. Please review the Breaking Changes section carefully before upgrading.</p>
</blockquote>
<hr>
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="-major-updates">🚀 Major Updates<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-23-26#-major-updates" class="hash-link" aria-label="Direct link to 🚀 Major Updates" title="Direct link to 🚀 Major Updates" translate="no">​</a></h2>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="1-remove-mandatory-constraint-on-key-field-in-workflow-instance">1. Remove Mandatory Constraint on Key Field in Workflow Instance<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-23-26#1-remove-mandatory-constraint-on-key-field-in-workflow-instance" class="hash-link" aria-label="Direct link to 1. Remove Mandatory Constraint on Key Field in Workflow Instance" title="Direct link to 1. Remove Mandatory Constraint on Key Field in Workflow Instance" translate="no">​</a></h3>
<p>The <code>key</code> field in workflow instances is no longer mandatory. This provides more flexibility in instance creation and allows key assignment during transitions.</p>
<p><strong>Previous Behavior:</strong></p>
<ul>
<li class=""><code>key</code> field was mandatory in start instance requests</li>
<li class="">Transition payload directly received transition data</li>
</ul>
<p><strong>New Behavior:</strong></p>
<ul>
<li class=""><code>key</code> field is now optional in start instance requests</li>
<li class="">New transition payload schema with structured format</li>
<li class="">Key can be set during transition if instance key is empty</li>
</ul>
<p><strong>New Transition Payload Schema:</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">"key"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">""</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">"tags"</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 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">"attributes"</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><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>All fields are optional.</p>
<p><strong>Key Assignment Rules:</strong></p>
<ul>
<li class="">If <code>key</code> value is provided and current instance key is empty, it will be saved</li>
<li class="">During validation, the operation proceeds only if no active instance exists with that key</li>
</ul>
<p><strong>Example - Start Instance (Key Optional):</strong></p>
<div class="language-http codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-http 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">POST /ecommerce/workflows/order-processing/instances/start?sync=true</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">Content-Type: application/json</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><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    "tags": ["priority", "express"],</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    "attributes": {</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">        "userId": 123,</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">        "amount": 5000</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>
<p><strong>Example - Set Key During Transition:</strong></p>
<div class="language-http codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-http 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">PATCH /ecommerce/workflows/order-processing/instances/{instanceId}/transitions/assign-key?sync=true</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">Content-Type: application/json</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><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    "key": "ORDER-2024-001",</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    "attributes": {</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">        "assignedBy": "system"</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>
<blockquote>
<p><strong>Reference:</strong> <a href="https://github.com/burgan-tech/vnext/issues/184" target="_blank" rel="noopener noreferrer" class="">#184 - Remove Mandatory Constraint on key Field in Workflow Instance</a></p>
</blockquote>
<hr>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="2-convert-mapping-to-embedded-format-with-native-code-support">2. Convert Mapping to Embedded Format with Native Code Support<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-23-26#2-convert-mapping-to-embedded-format-with-native-code-support" class="hash-link" aria-label="Direct link to 2. Convert Mapping to Embedded Format with Native Code Support" title="Direct link to 2. Convert Mapping to Embedded Format with Native Code Support" translate="no">​</a></h3>
<p>Mapping definitions now support embedded code format with native C# code support (NAT encoding), eliminating the need for separate files and BASE64 encoding.</p>
<p><strong>Encoding Options:</strong></p>
<ul>
<li class=""><code>B64</code>: BASE64 encoded code (<code>location</code> field required)</li>
<li class=""><code>NAT</code>: Native C# code (<code>location</code> field not required)</li>
</ul>
<p><strong>Key Changes:</strong></p>
<ul>
<li class="">✅ <code>encoding</code> property added to specify code format</li>
<li class="">✅ Native C# code support for better readability and development experience</li>
<li class="">✅ <code>location</code> property is optional for NAT encoding (still required for B64)</li>
</ul>
<p><strong>Example with BASE64 Encoding (B64):</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">"mapping"</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">"location"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"./task-mapping.csx"</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">"code"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"cmV0dXJuIG5ldyB7IHVzZXJJZCA9IGNvbnRleHQuQm9keS5pZCB9Ow=="</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">"encoding"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"B64"</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>Example with Native Encoding (NAT):</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">"key"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"process-payment"</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">"mapping"</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">"code"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"public class PaymentMapping : ScriptBase, IMapping\n{\n    public Task&lt;ScriptResponse&gt; InputHandler(WorkflowTask task, ScriptContext context)\n    {\n        var amount = context.Body?.amount;\n        return Task.FromResult(new ScriptResponse { Data = new { amount } });\n    }\n\n    public Task&lt;ScriptResponse&gt; OutputHandler(ScriptContext context)\n    {\n        return Task.FromResult(new ScriptResponse());\n    }\n}"</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">"encoding"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"NAT"</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>
<blockquote>
<p><strong>Reference:</strong> <a href="https://github.com/burgan-tech/vnext/issues/79" target="_blank" rel="noopener noreferrer" class="">#79 - Convert Mapping to Embedded Format</a></p>
</blockquote>
<hr>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="3-move-input-mappings-from-execution-to-orchestrator">3. Move Input Mappings from Execution to Orchestrator<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-23-26#3-move-input-mappings-from-execution-to-orchestrator" class="hash-link" aria-label="Direct link to 3. Move Input Mappings from Execution to Orchestrator" title="Direct link to 3. Move Input Mappings from Execution to Orchestrator" translate="no">​</a></h3>
<p>Input and output mapping operations have been migrated from Execution to Orchestrator for better separation of concerns and performance optimization.</p>
<p><strong>Architecture Changes:</strong></p>
<ul>
<li class="">✅ Execution is now only responsible for task invocation</li>
<li class="">✅ Input mapping operations performed on Orchestrator side</li>
<li class="">✅ Output mapping operations performed on Orchestrator side</li>
<li class="">✅ Resilience and retry mechanisms are consistent between Orchestrator and Execution</li>
</ul>
<p><strong>Performance Optimization:</strong></p>
<ul>
<li class="">TriggerTasks in the same domain now execute locally instead of invocation</li>
<li class="">Local execution includes built-in retry mechanism</li>
</ul>
<p><strong>Benefits:</strong></p>
<ul>
<li class="">Clear separation of responsibilities</li>
<li class="">Execution focuses purely on task execution</li>
<li class="">Orchestrator handles data management and workflow logic</li>
<li class="">Improved performance for same-domain trigger tasks</li>
<li class="">Better error handling and retry consistency</li>
</ul>
<blockquote>
<p><strong>Reference:</strong> <a href="https://github.com/burgan-tech/vnext/issues/191" target="_blank" rel="noopener noreferrer" class="">#191 - Move Input Mappings from Execution to Orchestrator and Send Only Required Data</a></p>
</blockquote>
<hr>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="4-new-versioning-strategy-with-package-support">4. New Versioning Strategy with Package Support<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-23-26#4-new-versioning-strategy-with-package-support" class="hash-link" aria-label="Direct link to 4. New Versioning Strategy with Package Support" title="Direct link to 4. New Versioning Strategy with Package Support" translate="no">​</a></h3>
<p>Component publishing method has been completely redesigned with a new versioning strategy that includes package version and name information.</p>
<p><strong>Previous Behavior:</strong></p>
<ul>
<li class="">System components loaded via <code>/admin/publish</code> endpoint with init image</li>
<li class="">Other components managed through sys-flows</li>
<li class="">Limited versioning and sustainability</li>
</ul>
<p><strong>New Behavior:</strong></p>
<ul>
<li class="">All components managed via <code>/definitions/publish</code> endpoint</li>
<li class="">New semantic versioning format with package metadata</li>
</ul>
<p><strong>Version Format:</strong></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">MAJOR.MINOR.PATCH-pkg.PKG_VERSION+PKG_NAME</span><br></div></code></pre></div></div>
<p><strong>Example:</strong> <code>1.0.0-pkg.1.17.0+account</code></p>
<p><strong>Format Components:</strong></p>
<ul>
<li class=""><code>1.0.0</code> → Artifact version (version from component file)</li>
<li class=""><code>-pkg.1.17.0</code> → Package version (affects SemVer sorting: <code>1.0.0-pkg.1.18.0 &gt; 1.0.0-pkg.1.17.0</code>)</li>
<li class=""><code>+account</code> → Build metadata (package name, doesn't affect sorting but carries identity/distribution info)</li>
</ul>
<p><strong>Version Examples:</strong></p>
<table><thead><tr><th>Version</th><th>Description</th></tr></thead><tbody><tr><td><code>1.0.0-pkg.1.17.0+account</code></td><td>Account package, core 1.0.0, package 1.17.0</td></tr><tr><td><code>2.1.3-pkg.2.5.1+customer</code></td><td>Customer package, core 2.1.3, package 2.5.1</td></tr><tr><td><code>1.0.0-alpha.1-pkg.1.17.0+account</code></td><td>Alpha pre-release version</td></tr><tr><td><code>1.0.0-pkg.1.17.0+account+build.123</code></td><td>With build metadata</td></tr></tbody></table>
<p><strong>Client Behavior:</strong></p>
<ul>
<li class="">No changes in version request behavior from client side</li>
</ul>
<blockquote>
<p><strong>Reference:</strong> <a href="https://github.com/burgan-tech/vnext/issues/208" target="_blank" rel="noopener noreferrer" class="">#208 - Support No-Action Transitions with External Version Management</a></p>
</blockquote>
<hr>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="5-triggertask-enhancements">5. TriggerTask Enhancements<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-23-26#5-triggertask-enhancements" class="hash-link" aria-label="Direct link to 5. TriggerTask Enhancements" title="Direct link to 5. TriggerTask Enhancements" translate="no">​</a></h3>
<p>TriggerTask types have been enhanced with new properties and capabilities for better flexibility and control.</p>
<h4 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="directtrigger">DirectTrigger<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-23-26#directtrigger" class="hash-link" aria-label="Direct link to DirectTrigger" title="Direct link to DirectTrigger" translate="no">​</a></h4>
<p>New properties added:</p>
<ul>
<li class=""><code>domain</code> (required)</li>
<li class=""><code>flow</code> (required)</li>
<li class=""><code>transitionName</code> (required)</li>
<li class=""><code>instanceId</code> (optional)</li>
<li class=""><code>key</code> (optional)</li>
<li class=""><code>async</code> (optional)</li>
<li class=""><code>version</code> (optional)</li>
<li class=""><code>tags</code> (optional)</li>
<li class=""><code>body</code> (optional)</li>
</ul>
<blockquote>
<p><strong>Note:</strong> Either <code>instanceId</code> or <code>key</code> must be provided at runtime.</p>
</blockquote>
<p><strong>Previous Behavior:</strong></p>
<ul>
<li class="">Only <code>key</code> value was used as <code>flow</code></li>
</ul>
<h4 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="start">Start<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-23-26#start" class="hash-link" aria-label="Direct link to Start" title="Direct link to Start" translate="no">​</a></h4>
<p>New properties:</p>
<ul>
<li class=""><code>domain</code> (required)</li>
<li class=""><code>flow</code> (required)</li>
<li class=""><code>key</code> (optional)</li>
<li class=""><code>async</code> (optional)</li>
<li class=""><code>version</code> (optional)</li>
<li class=""><code>tags</code> (optional)</li>
<li class=""><code>body</code> (optional)</li>
</ul>
<h4 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="subprocess">SubProcess<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-23-26#subprocess" class="hash-link" aria-label="Direct link to SubProcess" title="Direct link to SubProcess" translate="no">​</a></h4>
<p>New properties:</p>
<ul>
<li class=""><code>domain</code> (required)</li>
<li class=""><code>flow</code> (required)</li>
<li class=""><code>key</code> (optional)</li>
<li class=""><code>version</code> (optional)</li>
<li class=""><code>tags</code> (optional)</li>
<li class=""><code>body</code> (optional)</li>
</ul>
<blockquote>
<p><strong>Note:</strong> SubProcess always runs asynchronously.</p>
</blockquote>
<p><strong>Response in Output Mapping:</strong>
All Direct, Start, and SubProcess trigger tasks now include response in the output mapping context.</p>
<hr>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="6-transition-schema-api-endpoint">6. Transition Schema API Endpoint<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-23-26#6-transition-schema-api-endpoint" class="hash-link" aria-label="Direct link to 6. Transition Schema API Endpoint" title="Direct link to 6. Transition Schema API Endpoint" translate="no">​</a></h3>
<p>A new API endpoint has been added to fetch the schema for a specific transition. This enables clients to dynamically build forms, validate data before submission, and generate UI components based on schema definitions.</p>
<p><strong>Endpoint:</strong></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">GET /:domain/workflows/:flow/instances/:instance/functions/schema?transitionKey=:transitionKey</span><br></div></code></pre></div></div>
<p><strong>Features:</strong></p>
<ul>
<li class="">✅ Returns schema definition for a transition in the active state</li>
<li class="">✅ System-provided <code>schema</code> function - no custom implementation needed</li>
<li class="">✅ Enables dynamic form generation</li>
<li class="">✅ Supports client-side validation before submission</li>
<li class="">✅ JSON Schema (draft/2020-12) compatible response</li>
</ul>
<p><strong>Example Request:</strong></p>
<div class="language-http codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-http 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">GET /banking/workflows/account-opening/instances/18075ad5-e5b2-4437-b884-21d733339113/functions/schema?transitionKey=account-type-selection</span><br></div></code></pre></div></div>
<p><strong>Example Response:</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">"key"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"account-type-selection"</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">"type"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"workflow"</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">"schema"</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">"$id"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"https://schemas.vnext.com/banking/account-type-selection.json"</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">"type"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"object"</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">"title"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"Account Type Selection Schema"</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">"$schema"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"https://json-schema.org/draft/2020-12/schema"</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">"required"</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 string" style="color:#e3116c">"accountType"</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">"properties"</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">"accountType"</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">"type"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"string"</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">"oneOf"</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 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">"const"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"demand-deposit"</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">"description"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"Vadesiz Hesap - Demand Deposit Account"</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 plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">                        </span><span class="token property" style="color:#36acaa">"const"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"time-deposit"</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">"description"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"Vadeli Hesap - Time Deposit Account"</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 plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">                        </span><span class="token property" style="color:#36acaa">"const"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"investment-account"</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">"description"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"Fonlu Hesap - Investment Account"</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 plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">                        </span><span class="token property" style="color:#36acaa">"const"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"savings-account"</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">"description"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"Tasarruf Hesabı - Savings Account"</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">"title"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"Account Type"</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">"description"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"Type of account to be opened"</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">"description"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"Schema for account type selection input"</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">"additionalProperties"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token boolean" style="color:#36acaa">false</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>Use Cases:</strong></p>
<ul>
<li class="">Dynamic form rendering based on transition requirements</li>
<li class="">Client-side validation before submitting transitions</li>
<li class="">Understanding required/optional fields for a transition</li>
<li class="">Generating UI components automatically from schema</li>
</ul>
<blockquote>
<p><strong>Reference:</strong> <a href="https://github.com/burgan-tech/vnext/issues/216" target="_blank" rel="noopener noreferrer" class="">#216 - Add API Endpoint to Fetch Transition Schema</a></p>
</blockquote>
<hr>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="7-event-hook-feature">7. Event Hook Feature<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-23-26#7-event-hook-feature" class="hash-link" aria-label="Direct link to 7. Event Hook Feature" title="Direct link to 7. Event Hook Feature" translate="no">​</a></h3>
<p>New Event Hook capability has been added for event publishing with automatic fallback to outbox.</p>
<p><strong>Behavior:</strong></p>
<ol>
<li class="">Before publishing an event, the hook is executed first</li>
<li class="">If hook execution fails, the event is placed in outbox</li>
<li class="">Retry mechanism attempts to deliver from outbox</li>
</ol>
<p><strong>Benefits:</strong></p>
<ul>
<li class="">Improved event delivery reliability</li>
<li class="">Automatic fallback mechanism</li>
<li class="">Built-in retry support</li>
</ul>
<hr>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="8-inbox-and-outbox-services-activation">8. Inbox and Outbox Services Activation<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-23-26#8-inbox-and-outbox-services-activation" class="hash-link" aria-label="Direct link to 8. Inbox and Outbox Services Activation" title="Direct link to 8. Inbox and Outbox Services Activation" translate="no">​</a></h3>
<p>Inbox and Outbox services have been activated for reliable message processing.</p>
<p><strong>Features:</strong></p>
<ul>
<li class="">Message persistence for reliability</li>
<li class="">Automatic retry for failed deliveries</li>
<li class="">Integration with Event Hook feature</li>
</ul>
<hr>
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="️-breaking-changes">⚠️ Breaking Changes<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-23-26#%EF%B8%8F-breaking-changes" class="hash-link" aria-label="Direct link to ⚠️ Breaking Changes" title="Direct link to ⚠️ Breaking Changes" translate="no">​</a></h2>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="1-transition-and-start-instance-payload-schema-change">1. Transition and Start Instance Payload Schema Change<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-23-26#1-transition-and-start-instance-payload-schema-change" class="hash-link" aria-label="Direct link to 1. Transition and Start Instance Payload Schema Change" title="Direct link to 1. Transition and Start Instance Payload Schema Change" translate="no">​</a></h3>
<p><strong>Impact:</strong> All transition and start instance requests</p>
<p><strong>Required Action:</strong></p>
<ul>
<li class="">Update all transition request payloads to use new schema</li>
<li class=""><code>key</code> field is now optional in start instance requests</li>
<li class="">Review existing integrations that depend on old payload structure</li>
</ul>
<p><strong>New Schema:</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">"key"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">""</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">"tags"</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 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">"attributes"</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><br></div></code></pre></div></div>
<blockquote>
<p><strong>Reference:</strong> <a href="https://github.com/burgan-tech/vnext/issues/184" target="_blank" rel="noopener noreferrer" class="">#184</a></p>
</blockquote>
<hr>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="2-mapping-schema-format-change">2. Mapping Schema Format Change<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-23-26#2-mapping-schema-format-change" class="hash-link" aria-label="Direct link to 2. Mapping Schema Format Change" title="Direct link to 2. Mapping Schema Format Change" translate="no">​</a></h3>
<p><strong>Impact:</strong> All mapping definitions in workflows</p>
<p><strong>Required Action:</strong></p>
<ul>
<li class="">Add <code>encoding</code> property (<code>B64</code> or <code>NAT</code>)</li>
<li class="">For B64 encoding: keep <code>location</code> property</li>
<li class="">For NAT encoding: <code>location</code> property is not required</li>
<li class="">Update build/publish scripts accordingly</li>
</ul>
<p><strong>Migration Example (B64 - keep location):</strong></p>
<p>Before:</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">"mapping"</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">"location"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"./task-mapping.csx"</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">"code"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"BASE64_ENCODED_CODE"</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>After:</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">"mapping"</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">"location"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"./task-mapping.csx"</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">"code"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"BASE64_ENCODED_CODE"</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">"encoding"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"B64"</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>New Option (NAT - no location needed):</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">"mapping"</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">"code"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"public class MyMapping : ScriptBase, IMapping { ... }"</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">"encoding"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"NAT"</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>
<blockquote>
<p><strong>Reference:</strong> <a href="https://github.com/burgan-tech/vnext/issues/79" target="_blank" rel="noopener noreferrer" class="">#79</a></p>
</blockquote>
<hr>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="3-directtrigger-property-changes">3. DirectTrigger Property Changes<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-23-26#3-directtrigger-property-changes" class="hash-link" aria-label="Direct link to 3. DirectTrigger Property Changes" title="Direct link to 3. DirectTrigger Property Changes" translate="no">​</a></h3>
<p><strong>Impact:</strong> All DirectTrigger task definitions</p>
<p><strong>Required Action:</strong></p>
<ul>
<li class="">Update DirectTrigger definitions with new required properties</li>
<li class="">Add <code>domain</code>, <code>flow</code>, and <code>transitionName</code> properties</li>
<li class="">Provide either <code>instanceId</code> or <code>key</code> at runtime</li>
</ul>
<blockquote>
<p><strong>Reference:</strong> See TriggerTask Enhancements section</p>
</blockquote>
<hr>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="4-component-publishing-strategy-change">4. Component Publishing Strategy Change<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-23-26#4-component-publishing-strategy-change" class="hash-link" aria-label="Direct link to 4. Component Publishing Strategy Change" title="Direct link to 4. Component Publishing Strategy Change" translate="no">​</a></h3>
<p><strong>Impact:</strong> Component deployment and versioning</p>
<p><strong>Required Action:</strong></p>
<ul>
<li class="">Use new <code>/definitions/publish</code> endpoint</li>
<li class="">Update versioning to new format</li>
<li class="">Review CI/CD pipelines</li>
</ul>
<blockquote>
<p><strong>Reference:</strong> <a href="https://github.com/burgan-tech/vnext/issues/208" target="_blank" rel="noopener noreferrer" class="">#208</a></p>
</blockquote>
<hr>
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="️-bug-fixes">🛠️ Bug Fixes<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-23-26#%EF%B8%8F-bug-fixes" class="hash-link" aria-label="Direct link to 🛠️ Bug Fixes" title="Direct link to 🛠️ Bug Fixes" translate="no">​</a></h2>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="1-transition-data-overwriting-fix">1. Transition Data Overwriting Fix<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-23-26#1-transition-data-overwriting-fix" class="hash-link" aria-label="Direct link to 1. Transition Data Overwriting Fix" title="Direct link to 1. Transition Data Overwriting Fix" translate="no">​</a></h3>
<p>Fixed an issue where transition data was being overwritten incorrectly during workflow progression.</p>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="2-async-transaction-issues">2. Async Transaction Issues<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-23-26#2-async-transaction-issues" class="hash-link" aria-label="Direct link to 2. Async Transaction Issues" title="Direct link to 2. Async Transaction Issues" translate="no">​</a></h3>
<p>Resolved transaction issues in async requests that were causing transition pipeline execution problems.</p>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="3-mapping-and-task-error-handling">3. Mapping and Task Error Handling<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-23-26#3-mapping-and-task-error-handling" class="hash-link" aria-label="Direct link to 3. Mapping and Task Error Handling" title="Direct link to 3. Mapping and Task Error Handling" translate="no">​</a></h3>
<p>Fixed issues where errors in mappings and tasks were not properly stopping the pipeline execution.</p>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="4-logging-cleanup">4. Logging Cleanup<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-23-26#4-logging-cleanup" class="hash-link" aria-label="Direct link to 4. Logging Cleanup" title="Direct link to 4. Logging Cleanup" translate="no">​</a></h3>
<ul>
<li class="">Cleaned up logging structure to reduce noise</li>
<li class="">Fixed deep error logging issues where errors in pipeline were getting lost</li>
<li class="">Improved error visibility and traceability</li>
</ul>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="5-tracing-spans">5. Tracing Spans<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-23-26#5-tracing-spans" class="hash-link" aria-label="Direct link to 5. Tracing Spans" title="Direct link to 5. Tracing Spans" translate="no">​</a></h3>
<p>Organized and improved tracing spans for better observability.</p>
<hr>
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="-configuration-updates">🔧 Configuration Updates<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-23-26#-configuration-updates" class="hash-link" aria-label="Direct link to 🔧 Configuration Updates" title="Direct link to 🔧 Configuration Updates" translate="no">​</a></h2>
<p>Configuration for v0.0.26:</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">"runtimeVersion"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"0.0.26"</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">"schemaVersion"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"0.0.28"</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">"componentVersion"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"0.0.18"</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>
<hr>
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="-tool-updates">🆕 Tool Updates<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-23-26#-tool-updates" class="hash-link" aria-label="Direct link to 🆕 Tool Updates" title="Direct link to 🆕 Tool Updates" translate="no">​</a></h2>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="vnext-workflow-cli-updates">vnext-workflow-cli Updates<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-23-26#vnext-workflow-cli-updates" class="hash-link" aria-label="Direct link to vnext-workflow-cli Updates" title="Direct link to vnext-workflow-cli Updates" translate="no">​</a></h3>
<ul>
<li class="">Added <code>vnext.config.json</code> configuration file for project management</li>
<li class="">Project configuration now includes <code>domain</code>, <code>version</code>, and <code>paths</code> for component directories</li>
<li class="">Fixed CSX update issue with scanning all reference files</li>
<li class="">Updated publish command for new publish endpoint</li>
<li class="">Improved logging with more detail</li>
</ul>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="vnext-template-cli--template-project">vnext-template CLI &amp; Template Project<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-23-26#vnext-template-cli--template-project" class="hash-link" aria-label="Direct link to vnext-template CLI &amp; Template Project" title="Direct link to vnext-template CLI &amp; Template Project" translate="no">​</a></h3>
<ul>
<li class="">Added template project creation command</li>
<li class="">Added schema validation and build commands</li>
<li class="">Commands added to project package.json for CI/CD integration</li>
<li class="">Simplified project validation and build processes</li>
</ul>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="vnext-example-updates">vNext-example Updates<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-23-26#vnext-example-updates" class="hash-link" aria-label="Direct link to vNext-example Updates" title="Direct link to vNext-example Updates" translate="no">​</a></h3>
<ul>
<li class="">Added contract flow example with subprocess and direct trigger usage</li>
<li class="">Added task-test flow with all task types and mapping examples</li>
<li class="">Updated project structure using vnext-template</li>
<li class="">Added Context7 MCP integration</li>
<li class="">Added AI .mdc file for cursor rules</li>
</ul>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="general">General<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-23-26#general" class="hash-link" aria-label="Direct link to General" title="Direct link to General" translate="no">​</a></h3>
<ul>
<li class="">vNext-runtime documentation added to Context7 MCP for AI-based documentation search</li>
</ul>
<hr>
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="-issues-referenced">🧱 Issues Referenced<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-23-26#-issues-referenced" class="hash-link" aria-label="Direct link to 🧱 Issues Referenced" title="Direct link to 🧱 Issues Referenced" translate="no">​</a></h2>
<ul>
<li class=""><a href="https://github.com/burgan-tech/vnext/issues/184" target="_blank" rel="noopener noreferrer" class="">#184 - Remove Mandatory Constraint on key Field in Workflow Instance</a></li>
<li class=""><a href="https://github.com/burgan-tech/vnext/issues/79" target="_blank" rel="noopener noreferrer" class="">#79 - Convert Mapping to Embedded Format</a></li>
<li class=""><a href="https://github.com/burgan-tech/vnext/issues/191" target="_blank" rel="noopener noreferrer" class="">#191 - Move Input Mappings from Execution to Orchestrator</a></li>
<li class=""><a href="https://github.com/burgan-tech/vnext/issues/208" target="_blank" rel="noopener noreferrer" class="">#208 - Support No-Action Transitions with External Version Management</a></li>
<li class=""><a href="https://github.com/burgan-tech/vnext/issues/216" target="_blank" rel="noopener noreferrer" class="">#216 - Add API Endpoint to Fetch Transition Schema</a></li>
</ul>
<hr>
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="-developer-notes">📘 Developer Notes<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-23-26#-developer-notes" class="hash-link" aria-label="Direct link to 📘 Developer Notes" title="Direct link to 📘 Developer Notes" translate="no">​</a></h2>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="migration-checklist">Migration Checklist<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-23-26#migration-checklist" class="hash-link" aria-label="Direct link to Migration Checklist" title="Direct link to Migration Checklist" translate="no">​</a></h3>
<ul class="contains-task-list containsTaskList_mC6p">
<li class="task-list-item"><input type="checkbox" disabled=""> <strong>⚠️ Breaking Change:</strong> Update transition payloads to new schema</li>
<li class="task-list-item"><input type="checkbox" disabled=""> <strong>⚠️ Breaking Change:</strong> Update mapping definitions (add <code>encoding</code> field; <code>location</code> required for B64, optional for NAT)</li>
<li class="task-list-item"><input type="checkbox" disabled=""> <strong>⚠️ Breaking Change:</strong> Update DirectTrigger task definitions with new properties</li>
<li class="task-list-item"><input type="checkbox" disabled=""> <strong>⚠️ Breaking Change:</strong> Update component publishing to use new endpoint and versioning</li>
<li class="task-list-item"><input type="checkbox" disabled=""> <!-- -->Review start instance calls - <code>key</code> is now optional</li>
<li class="task-list-item"><input type="checkbox" disabled=""> <!-- -->Test TriggerTask enhancements in your workflows</li>
<li class="task-list-item"><input type="checkbox" disabled=""> <!-- -->Update vnext.config.json in your projects</li>
<li class="task-list-item"><input type="checkbox" disabled=""> <!-- -->Verify async operations after transaction fixes</li>
<li class="task-list-item"><input type="checkbox" disabled=""> <!-- -->Update to schema version 0.0.28</li>
</ul>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="new-capabilities-to-explore">New Capabilities to Explore<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-23-26#new-capabilities-to-explore" class="hash-link" aria-label="Direct link to New Capabilities to Explore" title="Direct link to New Capabilities to Explore" translate="no">​</a></h3>
<ul>
<li class=""><strong>Native Code Mappings:</strong> Use <code>encoding: "NAT"</code> for readable C# code in mappings</li>
<li class=""><strong>Flexible Key Assignment:</strong> Assign keys during transitions instead of at start</li>
<li class=""><strong>Enhanced TriggerTasks:</strong> Leverage new properties for better control</li>
<li class=""><strong>Event Hooks:</strong> Implement reliable event publishing with automatic fallback</li>
<li class=""><strong>Context7 Integration:</strong> Use AI-powered documentation search</li>
</ul>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="migration-guide">Migration Guide<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-23-26#migration-guide" class="hash-link" aria-label="Direct link to Migration Guide" title="Direct link to Migration Guide" translate="no">​</a></h3>
<p>For detailed migration steps, see the Migration section in sprint-25.md:</p>
<ol>
<li class="">Install vnext-template CLI: <code>npm i -g @burgan-tech/vnext-template</code></li>
<li class="">Create new project: <code>vnext-template &lt;domain-name&gt;</code></li>
<li class="">Copy existing component files to new project structure</li>
<li class="">Configure <code>vnext.config.json</code> with domain and paths</li>
<li class="">Set <code>schemaVersion</code> and <code>runtimeVersion</code> for your vNext platform version</li>
<li class="">Run <code>npm install</code> to install schema package</li>
<li class="">Run <code>npm validate</code> and <code>npm build</code> for validation and build</li>
</ol>
<hr>
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="-summary">🧠 Summary<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-23-26#-summary" class="hash-link" aria-label="Direct link to 🧠 Summary" title="Direct link to 🧠 Summary" translate="no">​</a></h2>
<blockquote>
<p>🔴 <strong>Version Note:</strong> v0.0.23 was released with critical bugs and was immediately patched as v0.0.24. Please use v0.0.24 for production deployments.</p>
</blockquote>
<p>With this release:
⚠️ <strong>Breaking Change:</strong> Transition and start instance payload schema changed<br>
<!-- -->⚠️ <strong>Breaking Change:</strong> Mapping schema format changed (encoding field added)<br>
<!-- -->⚠️ <strong>Breaking Change:</strong> DirectTrigger properties expanded<br>
<!-- -->⚠️ <strong>Breaking Change:</strong> Component publishing strategy and versioning changed<br>
<!-- -->✅ Key field now optional in workflow instances<br>
<!-- -->✅ Native C# code support in mappings (NAT encoding)<br>
<!-- -->✅ Input mappings moved to Orchestrator for better architecture<br>
<!-- -->✅ TriggerTask enhancements with new properties<br>
<!-- -->✅ Transition Schema API endpoint for dynamic form generation<br>
<!-- -->✅ Event Hook feature for reliable event publishing<br>
<!-- -->✅ Inbox and Outbox services activated<br>
<!-- -->✅ Transition data overwriting bug fixed<br>
<!-- -->✅ Async transaction issues resolved<br>
<!-- -->✅ Logging and tracing improvements<br>
<!-- -->✅ vnext-workflow-cli and template updates<br>
<!-- -->✅ Context7 MCP documentation integration</p>
<hr>
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="-upgrade-path">🔄 Upgrade Path<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-23-26#-upgrade-path" class="hash-link" aria-label="Direct link to 🔄 Upgrade Path" title="Direct link to 🔄 Upgrade Path" translate="no">​</a></h2>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="from-v0022-to-v0026">From v0.0.22 to v0.0.26:<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-23-26#from-v0022-to-v0026" class="hash-link" aria-label="Direct link to From v0.0.22 to v0.0.26:" title="Direct link to From v0.0.22 to v0.0.26:" translate="no">​</a></h3>
<ol>
<li class="">
<p><strong>Update Runtime:</strong></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">git</span><span class="token plain"> pull origin master</span><br></div></code></pre></div></div>
</li>
<li class="">
<p><strong>Update Configuration:</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">"runtimeVersion"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"0.0.26"</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">"schemaVersion"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"0.0.28"</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">"componentVersion"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"0.0.18"</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>
</li>
<li class="">
<p><strong>Update Transition Payloads:</strong></p>
<ul>
<li class="">Review all transition requests</li>
<li class="">Update to new schema format with <code>key</code>, <code>tags</code>, <code>attributes</code></li>
</ul>
</li>
<li class="">
<p><strong>Update Mapping Definitions:</strong></p>
<ul>
<li class="">Add <code>encoding</code> property (<code>B64</code> or <code>NAT</code>)</li>
<li class="">For B64: keep <code>location</code> property (required)</li>
<li class="">For NAT: <code>location</code> property is optional</li>
<li class="">Consider migrating to NAT encoding for better readability</li>
</ul>
</li>
<li class="">
<p><strong>Update DirectTrigger Tasks:</strong></p>
<ul>
<li class="">Add required <code>domain</code>, <code>flow</code>, <code>transitionName</code> properties</li>
<li class="">Ensure <code>instanceId</code> or <code>key</code> is provided at runtime</li>
</ul>
</li>
<li class="">
<p><strong>Update Component Publishing:</strong></p>
<ul>
<li class="">Switch to <code>/definitions/publish</code> endpoint</li>
<li class="">Use new versioning format</li>
</ul>
</li>
<li class="">
<p><strong>Run Validation:</strong></p>
<ul>
<li class="">Use vnext-template CLI for schema validation</li>
<li class="">Run <code>npm validate</code> to check definitions</li>
</ul>
</li>
</ol>
<hr>
<p><strong>vNext Runtime Platform Team</strong><br>
<!-- -->December 16, 2025</p>]]></content:encoded>
            <category>release</category>
        </item>
        <item>
            <title><![CDATA[Release v0.0.22]]></title>
            <link>https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-22</link>
            <guid>https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-22</guid>
            <pubDate>Wed, 03 Dec 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[{/ truncate /}]]></description>
            <content:encoded><![CDATA[
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="-overview">🧭 Overview<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-22#-overview" class="hash-link" aria-label="Direct link to 🧭 Overview" title="Direct link to 🧭 Overview" translate="no">​</a></h2>
<p>This release introduces the powerful <strong>Cascade Cancel</strong> feature for subflows, enabling automatic cancellation of all related active jobs, tasks, and correlations when a main instance is canceled. Additionally, this release includes <strong>Inbox and Outbox Worker</strong> infrastructure, enhanced <strong>Function Filter</strong> capabilities, <strong>Instance ID and Key support</strong> across all endpoints, and significant improvements to <strong>Aspect/Trace/Logging</strong> architecture. Critical bug fixes for async validation and nested JSON path filtering are also included.</p>
<blockquote>
<p>⚠️ <strong>Breaking Change:</strong> The <code>subType</code> property has been added to the state schema. You need to update your existing workflows.</p>
</blockquote>
<hr>
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="-major-updates">🚀 Major Updates<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-22#-major-updates" class="hash-link" aria-label="Direct link to 🚀 Major Updates" title="Direct link to 🚀 Major Updates" translate="no">​</a></h2>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="1-cascade-cancel-for-subflows-on-main-instance-cancellation">1. Cascade Cancel for Subflows on Main Instance Cancellation<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-22#1-cascade-cancel-for-subflows-on-main-instance-cancellation" class="hash-link" aria-label="Direct link to 1. Cascade Cancel for Subflows on Main Instance Cancellation" title="Direct link to 1. Cascade Cancel for Subflows on Main Instance Cancellation" translate="no">​</a></h3>
<p>A new <code>cancel</code> transition definition has been introduced for workflows. When a cancel transition is executed, all active jobs, tasks, and correlations associated with the flow are automatically canceled in a cascading manner.</p>
<p><strong>Key Features:</strong></p>
<ul>
<li class="">✅ Automatic cancellation of all active subflows when main instance is canceled</li>
<li class="">✅ Recursive cancellation for nested subflows</li>
<li class="">✅ Idempotent operation (safe for repeated cancel requests)</li>
<li class="">✅ Proper status propagation across workflow hierarchy</li>
<li class="">✅ Incident and error tracking for cascade cancellation events</li>
</ul>
<p><strong>Cancel Transition Definition:</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">"cancel"</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">"key"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"cancel-account-opening"</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">"target"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"cancelled"</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">"triggerType"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token number" style="color:#36acaa">0</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">"versionStrategy"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"Minor"</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">"labels"</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 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">"language"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"en-US"</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">"label"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"Cancel Account Opening"</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">"onExecutionTasks"</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 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">"availableIn"</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><br></div></code></pre></div></div>
<p><strong>Cancellation Flow:</strong></p>
<ol>
<li class="">Main instance receives cancel request</li>
<li class="">All active subflows are identified</li>
<li class="">Cancel propagates recursively to nested subflows</li>
<li class="">Related tasks and correlations are canceled</li>
<li class="">Status updates are tracked for auditing</li>
</ol>
<p><strong>Benefits:</strong></p>
<ul>
<li class="">Ensures workflow consistency by preventing orphaned flows</li>
<li class="">Aligns with expected workflow lifecycle management</li>
<li class="">Provides comprehensive audit trail for cancellation events</li>
<li class="">Simplifies cleanup of complex workflow hierarchies</li>
</ul>
<blockquote>
<p><strong>Documentation:</strong> See <a class="" href="https://burgan-tech.github.io/vnext-docs/en/docs/components/workflow#cancel-transition">Cascade Cancel for Subflows</a> for detailed implementation guide.</p>
</blockquote>
<blockquote>
<p><strong>Reference:</strong> <a href="https://github.com/burgan-tech/vnext/issues/62" target="_blank" rel="noopener noreferrer" class="">#62 - Feature: Cascade Cancel for Subflows on Main Instance Cancellation</a></p>
</blockquote>
<hr>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="2-inbox-and-outbox-worker-images-new---infra">2. Inbox and Outbox Worker Images (NEW - INFRA)<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-22#2-inbox-and-outbox-worker-images-new---infra" class="hash-link" aria-label="Direct link to 2. Inbox and Outbox Worker Images (NEW - INFRA)" title="Direct link to 2. Inbox and Outbox Worker Images (NEW - INFRA)" translate="no">​</a></h3>
<p>New worker images have been introduced for better message processing, performance optimization, data loss prevention, and unified contract-based system operations.</p>
<p><strong>Architecture Overview:</strong></p>
<ul>
<li class=""><strong>Dapr PubSub Integration</strong>: Provides infrastructure isolation</li>
<li class=""><strong>Smart Message Routing</strong>: Attempts PubSub delivery first; falls back to message box on failure</li>
<li class=""><strong>Custom Hook Support</strong>: Execute hooks before PubSub; skip PubSub on successful hook completion (critical for sync processes)</li>
</ul>
<p><strong>Message Flow Strategy:</strong></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">│                    Message Processing Flow                   │</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">│  1. Check for custom hook definition                        │</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">│     ├── If hook exists → Execute hook                       │</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">│     │   ├── Success → Skip PubSub (return)                 │</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">│     │   └── Failure → Continue to PubSub                   │</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">│  2. Attempt PubSub delivery                                 │</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">│     ├── Success → Message delivered                         │</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">│     └── Failure → Write to message box for retry           │</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">└─────────────────────────────────────────────────────────────┘</span><br></div></code></pre></div></div>
<p><strong>Benefits:</strong></p>
<ul>
<li class="">Improved message delivery reliability</li>
<li class="">Better handling of synchronous processes</li>
<li class="">Infrastructure isolation through Dapr PubSub</li>
<li class="">Automatic retry mechanism via message box</li>
</ul>
<hr>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="3-function-filter-enhancements">3. Function Filter Enhancements<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-22#3-function-filter-enhancements" class="hash-link" aria-label="Direct link to 3. Function Filter Enhancements" title="Direct link to 3. Function Filter Enhancements" translate="no">​</a></h3>
<p>Extended Function endpoint with advanced filtering capabilities similar to the Data endpoint. All filter inputs are optional to ensure backward compatibility.</p>
<p><strong>Key Improvements:</strong></p>
<ul>
<li class="">✅ Advanced filtering support on Function endpoint</li>
<li class="">✅ Optional filter inputs for backward compatibility</li>
<li class="">✅ Consistent filter syntax across endpoints</li>
</ul>
<blockquote>
<p><strong>Reference:</strong> <a href="https://github.com/burgan-tech/vnext/issues/54" target="_blank" rel="noopener noreferrer" class="">#54 - Function Filter Enhancements</a></p>
</blockquote>
<hr>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="4-support-instance-id-and-key-in-all-instance-endpoints">4. Support Instance ID and Key in All Instance Endpoints<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-22#4-support-instance-id-and-key-in-all-instance-endpoints" class="hash-link" aria-label="Direct link to 4. Support Instance ID and Key in All Instance Endpoints" title="Direct link to 4. Support Instance ID and Key in All Instance Endpoints" translate="no">​</a></h3>
<p>All instance endpoints now accept both <code>InstanceId</code> and <code>Key</code> for instance identification, providing more flexibility in API interactions.</p>
<p><strong>Previous Behavior:</strong></p>
<ul>
<li class="">Only <code>InstanceId</code> (UUID) was accepted</li>
</ul>
<p><strong>New Behavior:</strong></p>
<ul>
<li class=""><code>InstanceId</code> OR <code>Key</code> can be used interchangeably</li>
</ul>
<p><strong>Example Usage:</strong></p>
<p><strong>Using Instance ID:</strong></p>
<div class="language-http codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-http 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">GET /core/workflows/order/instances/18075ad5-e5b2-4437-b884-21d733339113/data</span><br></div></code></pre></div></div>
<p><strong>Using Instance Key:</strong></p>
<div class="language-http codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-http 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">GET /core/workflows/order/instances/ORDER-2024-001/data</span><br></div></code></pre></div></div>
<p><strong>Benefits:</strong></p>
<ul>
<li class="">More readable and meaningful API calls</li>
<li class="">Easier integration with external systems using business keys</li>
<li class="">Consistent behavior across all instance-related endpoints</li>
</ul>
<blockquote>
<p><strong>Reference:</strong> <a href="https://github.com/burgan-tech/vnext/issues/140" target="_blank" rel="noopener noreferrer" class="">#140 - Support Instance ID and Key in All Instance Endpoints</a></p>
</blockquote>
<hr>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="5-support-for-_comment-property-in-visual-editors">5. Support for _comment Property in Visual Editors<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-22#5-support-for-_comment-property-in-visual-editors" class="hash-link" aria-label="Direct link to 5. Support for _comment Property in Visual Editors" title="Direct link to 5. Support for _comment Property in Visual Editors" translate="no">​</a></h3>
<p>The <code>_comment</code> property is now supported in both schema and runtime, enabling better documentation within workflow definitions for visual editors.</p>
<p><strong>Example Usage:</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">"key"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"process-payment"</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">"_comment"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"This state handles payment processing and validation"</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">"stateType"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token number" style="color:#36acaa">1</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">"transitions"</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><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>Benefits:</strong></p>
<ul>
<li class="">Enhanced workflow documentation</li>
<li class="">Better collaboration in visual editors</li>
<li class="">Self-documenting workflow definitions</li>
</ul>
<blockquote>
<p><strong>Reference:</strong> <a href="https://github.com/burgan-tech/vnext/issues/145" target="_blank" rel="noopener noreferrer" class="">#145 - Support for _comment Property in Visual Editors</a></p>
</blockquote>
<hr>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="6-aspecttracelogging-improvements">6. Aspect/Trace/Logging Improvements<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-22#6-aspecttracelogging-improvements" class="hash-link" aria-label="Direct link to 6. Aspect/Trace/Logging Improvements" title="Direct link to 6. Aspect/Trace/Logging Improvements" translate="no">​</a></h3>
<p>Significant architectural improvements have been made to code maintainability, refactoring, and organization through aspect-oriented architecture.</p>
<p><strong>Key Improvements:</strong></p>
<ul>
<li class="">✅ Migration to aspect-oriented architecture for better code maintenance</li>
<li class="">✅ Span correlation in traces for better observability</li>
<li class="">✅ Reduced unnecessary log noise</li>
</ul>
<hr>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="7-runtime-metadata-endpoint">7. Runtime Metadata Endpoint<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-22#7-runtime-metadata-endpoint" class="hash-link" aria-label="Direct link to 7. Runtime Metadata Endpoint" title="Direct link to 7. Runtime Metadata Endpoint" translate="no">​</a></h3>
<p>A new endpoint has been added to expose runtime metadata for vnext tools and other system integrations.</p>
<p><strong>Endpoint:</strong></p>
<div class="language-http codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-http 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">GET api/v1/config</span><br></div></code></pre></div></div>
<p><strong>Response:</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">"version"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"0.0.22"</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">"domain"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"core"</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">"schemas"</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">"sys-flows"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"sys_flows"</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><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>Benefits:</strong></p>
<ul>
<li class="">Easy integration with vnext tools</li>
<li class="">Runtime version discovery</li>
<li class="">Schema information access</li>
</ul>
<hr>
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="️-breaking-changes">⚠️ Breaking Changes<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-22#%EF%B8%8F-breaking-changes" class="hash-link" aria-label="Direct link to ⚠️ Breaking Changes" title="Direct link to ⚠️ Breaking Changes" translate="no">​</a></h2>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="state-schema---subtype-property-added">State Schema - subType Property Added<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-22#state-schema---subtype-property-added" class="hash-link" aria-label="Direct link to State Schema - subType Property Added" title="Direct link to State Schema - subType Property Added" translate="no">​</a></h3>
<p>The <code>subType</code> property has been added to the state schema. This change may affect your existing workflows.</p>
<p><strong>Required Action:</strong></p>
<ul>
<li class="">Review state definitions in your existing workflows</li>
<li class="">Update <code>subType</code> definitions according to the documentation</li>
</ul>
<p><strong>Example Usage:</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">"key"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"waiting-approval"</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">"stateType"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token number" style="color:#36acaa">1</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">"subType"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token number" style="color:#36acaa">1</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">"_comment"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"Waiting for approval state"</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>
<blockquote>
<p><strong>Documentation:</strong> <a class="" href="https://burgan-tech.github.io/vnext-docs/en/docs/components/workflow">Workflow</a> - Please update your workflows according to this documentation.</p>
</blockquote>
<hr>
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="️-hotfix">🛠️ Hotfix<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-22#%EF%B8%8F-hotfix" class="hash-link" aria-label="Direct link to 🛠️ Hotfix" title="Direct link to 🛠️ Hotfix" translate="no">​</a></h2>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="remove-live-and-ready-endpoints-from-opentelemetry-traces">Remove Live and Ready Endpoints from OpenTelemetry Traces<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-22#remove-live-and-ready-endpoints-from-opentelemetry-traces" class="hash-link" aria-label="Direct link to Remove Live and Ready Endpoints from OpenTelemetry Traces" title="Direct link to Remove Live and Ready Endpoints from OpenTelemetry Traces" translate="no">​</a></h3>
<p>Health check endpoints (<code>/live</code> and <code>/ready</code>) are now excluded from OpenTelemetry traces to reduce noise in trace data.</p>
<p><strong>Problem Resolved:</strong></p>
<ul>
<li class="">Health and metric endpoints were creating unnecessary trace noise</li>
<li class="">Frequent calls from orchestration systems (Kubernetes, Docker) added no business value to traces</li>
<li class="">Increased trace volume and storage costs</li>
</ul>
<p><strong>Solution:</strong></p>
<ul>
<li class="">Health, metric, and similar endpoints are now excluded from trace monitoring</li>
</ul>
<blockquote>
<p><strong>Reference:</strong> <a href="https://github.com/burgan-tech/vnext/issues/134" target="_blank" rel="noopener noreferrer" class="">#134 - Remove Live and Ready Endpoints from OpenTelemetry Traces</a></p>
</blockquote>
<hr>
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="-bug-fixes">🧩 Bug Fixes<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-22#-bug-fixes" class="hash-link" aria-label="Direct link to 🧩 Bug Fixes" title="Direct link to 🧩 Bug Fixes" translate="no">​</a></h2>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="1-async-operations-validation-fix-170">1. Async Operations Validation Fix (#170)<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-22#1-async-operations-validation-fix-170" class="hash-link" aria-label="Direct link to 1. Async Operations Validation Fix (#170)" title="Direct link to 1. Async Operations Validation Fix (#170)" translate="no">​</a></h3>
<p>Fixed validation issues in async operations that prevented proper workflow progression.</p>
<p><strong>Problem Resolved:</strong></p>
<ul>
<li class="">Validation problems in async operations caused workflow progression issues</li>
<li class="">Lock mechanism has been improved for better reliability</li>
</ul>
<p><strong>Impact:</strong></p>
<ul>
<li class="">Improved workflow execution reliability in async scenarios</li>
<li class="">Enhanced lock mechanism performance</li>
</ul>
<blockquote>
<p><strong>Reference:</strong> <a href="https://github.com/burgan-tech/vnext/issues/170" target="_blank" rel="noopener noreferrer" class="">#170 - Bug sync=true</a></p>
</blockquote>
<hr>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="2-nested-json-path-filtering-and-queryparameter-propagation-203">2. Nested JSON Path Filtering and QueryParameter Propagation (#203)<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-22#2-nested-json-path-filtering-and-queryparameter-propagation-203" class="hash-link" aria-label="Direct link to 2. Nested JSON Path Filtering and QueryParameter Propagation (#203)" title="Direct link to 2. Nested JSON Path Filtering and QueryParameter Propagation (#203)" translate="no">​</a></h3>
<p>Fixed issues with nested JSON path filtering and QueryParameter propagation to tasks.</p>
<p><strong>Problem Resolved:</strong></p>
<ul>
<li class="">Nested JSON path filtering was not working correctly</li>
<li class="">QueryParameters were not properly propagated to tasks</li>
</ul>
<p><strong>Impact:</strong></p>
<ul>
<li class="">Correct filtering on nested JSON paths</li>
<li class="">Proper QueryParameter propagation across task executions</li>
</ul>
<blockquote>
<p><strong>Reference:</strong> <a href="https://github.com/burgan-tech/vnext/issues/203" target="_blank" rel="noopener noreferrer" class="">#203 - Fix nested JSON path filtering and QueryParameter propagation to tasks</a></p>
</blockquote>
<hr>
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="-configuration-updates">🔧 Configuration Updates<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-22#-configuration-updates" class="hash-link" aria-label="Direct link to 🔧 Configuration Updates" title="Direct link to 🔧 Configuration Updates" translate="no">​</a></h2>
<p>Configuration for v0.0.22:</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">"runtimeVersion"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"0.0.22"</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">"schemaVersion"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"0.0.27"</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>
<hr>
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="-other-developments">🆕 Other Developments<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-22#-other-developments" class="hash-link" aria-label="Direct link to 🆕 Other Developments" title="Direct link to 🆕 Other Developments" translate="no">​</a></h2>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="multi-platform-support">Multi-Platform Support<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-22#multi-platform-support" class="hash-link" aria-label="Direct link to Multi-Platform Support" title="Direct link to Multi-Platform Support" translate="no">​</a></h3>
<ul>
<li class="">Added multi-platform support for vnext-runtime (Podman, Docker, OrbStack, etc.)</li>
</ul>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="vnext-cli-deprecation">vnext-cli Deprecation<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-22#vnext-cli-deprecation" class="hash-link" aria-label="Direct link to vnext-cli Deprecation" title="Direct link to vnext-cli Deprecation" translate="no">​</a></h3>
<ul>
<li class=""><code>vnext-cli</code> tool has been moved to Legacy/Archived status</li>
<li class="">New projects should use <a href="https://github.com/burgan-tech/vnext-template/tree/master" target="_blank" rel="noopener noreferrer" class="">vnext-template</a></li>
<li class="">Existing projects need migration for CI/CD and vnext tool compatibility</li>
</ul>
<blockquote>
<p><strong>Migration Guide:</strong> See <a href="https://docs.flowlara.com/docs/migration/migrating-from-vnext-cli-to-vnext-template" target="_blank" rel="noopener noreferrer" class="">Migrating from vnext-cli to vnext-template</a></p>
</blockquote>
<hr>
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="-issues-referenced">🧱 Issues Referenced<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-22#-issues-referenced" class="hash-link" aria-label="Direct link to 🧱 Issues Referenced" title="Direct link to 🧱 Issues Referenced" translate="no">​</a></h2>
<ul>
<li class=""><a href="https://github.com/burgan-tech/vnext/issues/62" target="_blank" rel="noopener noreferrer" class="">#62 - Feature: Cascade Cancel for Subflows on Main Instance Cancellation</a></li>
<li class=""><a href="https://github.com/burgan-tech/vnext/issues/54" target="_blank" rel="noopener noreferrer" class="">#54 - Function Filter Enhancements</a></li>
<li class=""><a href="https://github.com/burgan-tech/vnext/issues/134" target="_blank" rel="noopener noreferrer" class="">#134 - Remove Live and Ready Endpoints from OpenTelemetry Traces</a></li>
<li class=""><a href="https://github.com/burgan-tech/vnext/issues/140" target="_blank" rel="noopener noreferrer" class="">#140 - Support Instance ID and Key in All Instance Endpoints</a></li>
<li class=""><a href="https://github.com/burgan-tech/vnext/issues/145" target="_blank" rel="noopener noreferrer" class="">#145 - Support for _comment Property in Visual Editors</a></li>
<li class=""><a href="https://github.com/burgan-tech/vnext/issues/170" target="_blank" rel="noopener noreferrer" class="">#170 - Bug sync=true</a></li>
<li class=""><a href="https://github.com/burgan-tech/vnext/issues/203" target="_blank" rel="noopener noreferrer" class="">#203 - Fix nested JSON path filtering and QueryParameter propagation to tasks</a></li>
</ul>
<hr>
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="-developer-notes">📘 Developer Notes<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-22#-developer-notes" class="hash-link" aria-label="Direct link to 📘 Developer Notes" title="Direct link to 📘 Developer Notes" translate="no">​</a></h2>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="migration-checklist">Migration Checklist<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-22#migration-checklist" class="hash-link" aria-label="Direct link to Migration Checklist" title="Direct link to Migration Checklist" translate="no">​</a></h3>
<ul class="contains-task-list containsTaskList_mC6p">
<li class="task-list-item"><input type="checkbox" disabled=""> <strong>⚠️ Breaking Change:</strong> Update <code>subType</code> property in state definitions</li>
<li class="task-list-item"><input type="checkbox" disabled=""> <!-- -->Review workflows for cascade cancel implementation opportunities</li>
<li class="task-list-item"><input type="checkbox" disabled=""> <!-- -->Implement cancel transitions where workflow cleanup is needed</li>
<li class="task-list-item"><input type="checkbox" disabled=""> <!-- -->Update API calls to use Instance Key where appropriate for better readability</li>
<li class="task-list-item"><input type="checkbox" disabled=""> <!-- -->Consider using <code>_comment</code> property for workflow documentation</li>
<li class="task-list-item"><input type="checkbox" disabled=""> <!-- -->Migrate from vnext-cli to vnext-template for new projects</li>
<li class="task-list-item"><input type="checkbox" disabled=""> <!-- -->Update workflow definitions to schema version 0.0.27</li>
<li class="task-list-item"><input type="checkbox" disabled=""> <!-- -->Review and test async operations after lock mechanism improvements</li>
</ul>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="new-capabilities-to-explore">New Capabilities to Explore<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-22#new-capabilities-to-explore" class="hash-link" aria-label="Direct link to New Capabilities to Explore" title="Direct link to New Capabilities to Explore" translate="no">​</a></h3>
<ul>
<li class=""><strong>Cascade Cancel:</strong> Implement proper workflow cleanup with automatic subflow cancellation</li>
<li class=""><strong>Inbox/Outbox Workers:</strong> Leverage new message processing infrastructure for reliable delivery</li>
<li class=""><strong>Instance Key Usage:</strong> Switch to business keys for more readable API interactions</li>
<li class=""><strong>Runtime Metadata:</strong> Integrate with vnext tools using the new config endpoint</li>
<li class=""><strong>Multi-Platform:</strong> Deploy on Podman, OrbStack, or other container platforms</li>
</ul>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="infrastructure-updates">Infrastructure Updates<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-22#infrastructure-updates" class="hash-link" aria-label="Direct link to Infrastructure Updates" title="Direct link to Infrastructure Updates" translate="no">​</a></h3>
<ul>
<li class=""><strong>New Worker Images:</strong> inbox and outbox worker images are now available</li>
<li class=""><strong>Platform Support:</strong> Runtime now supports multiple container platforms beyond Docker</li>
</ul>
<hr>
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="-summary">🧠 Summary<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-22#-summary" class="hash-link" aria-label="Direct link to 🧠 Summary" title="Direct link to 🧠 Summary" translate="no">​</a></h2>
<p>With this release:
⚠️ <strong>Breaking Change:</strong> <code>subType</code> property added to state schema - existing workflows need revision<br>
<!-- -->✅ Cascade cancel ensures automatic cleanup of subflows and related resources<br>
<!-- -->✅ New inbox and outbox worker infrastructure for reliable message processing<br>
<!-- -->✅ Function filter enhancements with backward compatibility<br>
<!-- -->✅ Instance ID and Key support across all instance endpoints<br>
<!-- -->✅ _comment property support for better workflow documentation<br>
<!-- -->✅ Aspect-oriented architecture for improved code maintainability<br>
<!-- -->✅ Health endpoints excluded from OpenTelemetry traces<br>
<!-- -->✅ Async validation and nested JSON path filtering bugs fixed<br>
<!-- -->✅ Multi-platform container support (Podman, Docker, OrbStack)<br>
<!-- -->✅ Runtime metadata endpoint for tool integrations<br>
<!-- -->✅ vnext-template as the new standard for project setup</p>
<hr>
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="-upgrade-path">🔄 Upgrade Path<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-22#-upgrade-path" class="hash-link" aria-label="Direct link to 🔄 Upgrade Path" title="Direct link to 🔄 Upgrade Path" translate="no">​</a></h2>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="from-v0021-to-v0022">From v0.0.21 to v0.0.22:<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-22#from-v0021-to-v0022" class="hash-link" aria-label="Direct link to From v0.0.21 to v0.0.22:" title="Direct link to From v0.0.21 to v0.0.22:" translate="no">​</a></h3>
<ol>
<li class="">
<p><strong>Update Runtime:</strong></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"># Update to v0.0.22</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">git</span><span class="token plain"> pull origin master</span><br></div></code></pre></div></div>
</li>
<li class="">
<p><strong>Update Configuration:</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">"runtimeVersion"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"0.0.22"</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">"schemaVersion"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"0.0.27"</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>
</li>
<li class="">
<p><strong>Implement Cascade Cancel (Optional):</strong></p>
<ul>
<li class="">Add cancel transition definitions to workflows that need cleanup capabilities</li>
<li class="">Define target state for canceled instances</li>
<li class="">Configure labels and available states for cancel transition</li>
</ul>
</li>
<li class="">
<p><strong>Migrate from vnext-cli (If Applicable):</strong></p>
<ul>
<li class="">Follow the <a href="https://docs.flowlara.com/docs/migration/migrating-from-vnext-cli-to-vnext-template" target="_blank" rel="noopener noreferrer" class="">migration guide</a></li>
<li class="">Update CI/CD pipelines for vnext-template compatibility</li>
</ul>
</li>
<li class="">
<p><strong>Test Async Operations:</strong></p>
<ul>
<li class="">Verify async workflow operations after lock mechanism improvements</li>
<li class="">Test nested JSON path filtering scenarios</li>
<li class="">Validate QueryParameter propagation in task executions</li>
</ul>
</li>
<li class="">
<p><strong>Deploy Worker Images (If Using Message Processing):</strong></p>
<ul>
<li class="">Deploy new inbox and outbox worker images</li>
<li class="">Configure Dapr PubSub components</li>
<li class="">Set up message box for retry scenarios</li>
</ul>
</li>
</ol>
<hr>
<p><strong>vNext Runtime Platform Team</strong><br>
<!-- -->December 3, 2025</p>]]></content:encoded>
            <category>release</category>
        </item>
        <item>
            <title><![CDATA[Release v0.0.21]]></title>
            <link>https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-21</link>
            <guid>https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-21</guid>
            <pubDate>Thu, 27 Nov 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[{/ truncate /}]]></description>
            <content:encoded><![CDATA[
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="-overview">🧭 Overview<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-21#-overview" class="hash-link" aria-label="Direct link to 🧭 Overview" title="Direct link to 🧭 Overview" translate="no">​</a></h2>
<p>This release introduces significant improvements to workflow instance management with the refactoring of Trigger Tasks into four distinct task types, enhanced Function API filtering capabilities, QueryParameters support in mapping context, and flexible instance identification using business keys. These changes improve developer experience, API usability, and cross-workflow orchestration capabilities.</p>
<hr>
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="-major-updates">🚀 Major Updates<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-21#-major-updates" class="hash-link" aria-label="Direct link to 🚀 Major Updates" title="Direct link to 🚀 Major Updates" translate="no">​</a></h2>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="1-trigger-task-refactoring---separate-task-types">1. Trigger Task Refactoring - Separate Task Types<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-21#1-trigger-task-refactoring---separate-task-types" class="hash-link" aria-label="Direct link to 1. Trigger Task Refactoring - Separate Task Types" title="Direct link to 1. Trigger Task Refactoring - Separate Task Types" translate="no">​</a></h3>
<p>The unified TriggerTransitionTask (Type 11) has been refactored into four distinct, specialized task types for better clarity and type safety. Each task type now has its own dedicated type number and clear purpose.</p>
<p><strong>New Task Types:</strong></p>
<table><thead><tr><th>Task Type</th><th>Type Number</th><th>Purpose</th></tr></thead><tbody><tr><td><strong>StartTask</strong></td><td>"11"</td><td>Start new workflow instances</td></tr><tr><td><strong>DirectTriggerTask</strong></td><td>"12"</td><td>Trigger transitions on existing instances</td></tr><tr><td><strong>GetInstanceDataTask</strong></td><td>"13"</td><td>Retrieve instance data with extensions</td></tr><tr><td><strong>SubProcessTask</strong></td><td>"14"</td><td>Launch independent subprocess instances</td></tr></tbody></table>
<p><strong>Key Benefits:</strong></p>
<ul>
<li class="">✅ Clear type distinction for different operations</li>
<li class="">✅ Improved type safety and validation</li>
<li class="">✅ Better developer experience with dedicated methods</li>
<li class="">✅ Simplified error handling per task type</li>
<li class="">✅ Enhanced code readability and maintainability</li>
</ul>
<h4 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="migration-guide">Migration Guide<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-21#migration-guide" class="hash-link" aria-label="Direct link to Migration Guide" title="Direct link to Migration Guide" translate="no">​</a></h4>
<p><strong>Old Structure (TriggerTransitionTask):</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">"type"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"11"</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">"config"</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">"type"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"Start"</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">"domain"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"approvals"</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">"flow"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"approval-flow"</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>New Structure (StartTask):</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">"type"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"11"</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">"config"</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">"domain"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"approvals"</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">"flow"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"approval-flow"</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>Migration Matrix:</strong></p>
<table><thead><tr><th>Old Config</th><th>New Task Type</th><th>New Type Number</th><th>Changes Required</th></tr></thead><tbody><tr><td><code>type: "Start"</code></td><td>StartTask</td><td>"11"</td><td>Remove nested <code>type</code> field</td></tr><tr><td><code>type: "Trigger"</code></td><td>DirectTriggerTask</td><td>"12"</td><td>Change type to "12", remove nested <code>type</code></td></tr><tr><td><code>type: "GetInstanceData"</code></td><td>GetInstanceDataTask</td><td>"13"</td><td>Change type to "13", remove nested <code>type</code></td></tr><tr><td><code>type: "SubProcess"</code></td><td>SubProcessTask</td><td>"14"</td><td>Change type to "14", remove nested <code>type</code></td></tr></tbody></table>
<p><strong>Code Changes:</strong></p>
<div class="language-csharp codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-csharp 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">// Old approach</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token class-name keyword" style="color:#00009f">var</span><span class="token plain"> triggerTask </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> task </span><span class="token keyword" style="color:#00009f">as</span><span class="token plain"> </span><span class="token class-name">TriggerTransitionTask</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">triggerTask</span><span class="token punctuation" style="color:#393A34">.</span><span class="token function" style="color:#d73a49">SetTriggerType</span><span class="token punctuation" style="color:#393A34">(</span><span class="token string" style="color:#e3116c">"Start"</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" 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">// New approach</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token class-name keyword" style="color:#00009f">var</span><span class="token plain"> startTask </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> task </span><span class="token keyword" style="color:#00009f">as</span><span class="token plain"> </span><span class="token class-name">StartTask</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 comment" style="color:#999988;font-style:italic">// No need to set type - it's implicit</span><br></div></code></pre></div></div>
<blockquote>
<p><strong>Documentation:</strong> See <a class="" href="https://burgan-tech.github.io/vnext-docs/en/docs/components/tasks/trigger">Trigger Task Types</a> for complete usage examples and best practices.</p>
</blockquote>
<hr>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="2-function-data-filtering">2. Function Data Filtering<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-21#2-function-data-filtering" class="hash-link" aria-label="Direct link to 2. Function Data Filtering" title="Direct link to 2. Function Data Filtering" translate="no">​</a></h3>
<p>The Data Function now supports powerful filtering capabilities to query workflow instances based on their attributes. This enables efficient data retrieval and search operations directly through the Function API.</p>
<p><strong>Filter Syntax:</strong></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">GET /{domain}/workflows/{workflow}/instances/{instance}/functions/data?filter=attributes={field}={operator}:{value}</span><br></div></code></pre></div></div>
<p><strong>Available Operators:</strong></p>
<table><thead><tr><th>Operator</th><th>Description</th><th>Example</th></tr></thead><tbody><tr><td><code>eq</code></td><td>Equal to</td><td><code>filter=attributes=status=eq:active</code></td></tr><tr><td><code>ne</code></td><td>Not equal to</td><td><code>filter=attributes=status=ne:completed</code></td></tr><tr><td><code>gt</code></td><td>Greater than</td><td><code>filter=attributes=amount=gt:1000</code></td></tr><tr><td><code>ge</code></td><td>Greater than or equal</td><td><code>filter=attributes=score=ge:80</code></td></tr><tr><td><code>lt</code></td><td>Less than</td><td><code>filter=attributes=count=lt:10</code></td></tr><tr><td><code>le</code></td><td>Less than or equal</td><td><code>filter=attributes=age=le:65</code></td></tr><tr><td><code>between</code></td><td>Between two values</td><td><code>filter=attributes=amount=between:100,500</code></td></tr><tr><td><code>like</code></td><td>Contains substring</td><td><code>filter=attributes=name=like:john</code></td></tr><tr><td><code>startswith</code></td><td>Starts with</td><td><code>filter=attributes=email=startswith:test</code></td></tr><tr><td><code>endswith</code></td><td>Ends with</td><td><code>filter=attributes=email=endswith:.com</code></td></tr><tr><td><code>in</code></td><td>Value in list</td><td><code>filter=attributes=status=in:active,pending</code></td></tr><tr><td><code>nin</code></td><td>Value not in list</td><td><code>filter=attributes=type=nin:test,debug</code></td></tr></tbody></table>
<p><strong>Example Usage:</strong></p>
<div class="language-http codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-http 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"># Single filter</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">GET /core/workflows/payment/instances/123/functions/data?filter=attributes=amount=gt:1000</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"># Multiple filters (AND logic)</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">GET /core/workflows/order/instances/456/functions/data?filter=attributes=status=eq:active&amp;filter=attributes=priority=eq:high</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"># Range filtering</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">GET /core/workflows/transaction/instances/789/functions/data?filter=attributes=amount=between:100,500</span><br></div></code></pre></div></div>
<p><strong>Benefits:</strong></p>
<ul>
<li class="">Efficient instance data querying without custom endpoints</li>
<li class="">Support for complex filter combinations</li>
<li class="">Consistent filter syntax across the platform</li>
<li class="">Optimized for large datasets with pagination</li>
</ul>
<blockquote>
<p><strong>Note:</strong> Filtering is only available on the Data Function endpoint and works on instance attributes.</p>
</blockquote>
<blockquote>
<p><strong>Documentation:</strong> See <a class="" href="https://burgan-tech.github.io/vnext-docs/en/docs/components/functions/built-in#instance-verilerini-filtreleme">Function APIs</a> for complete filtering documentation.</p>
</blockquote>
<hr>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="3-queryparameters-support-in-scriptcontext">3. QueryParameters Support in ScriptContext<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-21#3-queryparameters-support-in-scriptcontext" class="hash-link" aria-label="Direct link to 3. QueryParameters Support in ScriptContext" title="Direct link to 3. QueryParameters Support in ScriptContext" translate="no">​</a></h3>
<p>The <code>ScriptContext</code> class now includes a <code>QueryParameters</code> property, enabling access to query parameters in Function task handlers. This property is <strong>specific to Function tasks</strong> and provides access to query string parameters passed to function endpoints.</p>
<p><strong>New Property:</strong></p>
<div class="language-csharp codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-csharp 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">public</span><span class="token plain"> </span><span class="token keyword" style="color:#00009f">sealed</span><span class="token plain"> </span><span class="token keyword" style="color:#00009f">class</span><span class="token plain"> </span><span class="token class-name">ScriptContext</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 keyword" style="color:#00009f">public</span><span class="token plain"> </span><span class="token return-type class-name keyword" style="color:#00009f">dynamic</span><span class="token return-type class-name punctuation" style="color:#393A34">?</span><span class="token plain"> QueryParameters </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"> </span><span class="token keyword" style="color:#00009f">get</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"> </span><span class="token keyword" style="color:#00009f">private</span><span class="token plain"> </span><span class="token keyword" style="color:#00009f">set</span><span class="token punctuation" 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 comment" style="color:#999988;font-style:italic">// ... other properties</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>Usage Example:</strong></p>
<div class="language-csharp codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-csharp 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">public</span><span class="token plain"> </span><span class="token keyword" style="color:#00009f">class</span><span class="token plain"> </span><span class="token class-name">FunctionTaskMapping</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token type-list class-name">IMapping</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 keyword" style="color:#00009f">public</span><span class="token plain"> </span><span class="token return-type class-name">Task</span><span class="token return-type class-name punctuation" style="color:#393A34">&lt;</span><span class="token return-type class-name">ScriptResponse</span><span class="token return-type class-name punctuation" style="color:#393A34">&gt;</span><span class="token plain"> </span><span class="token function" style="color:#d73a49">InputHandler</span><span class="token punctuation" style="color:#393A34">(</span><span class="token class-name">WorkflowTask</span><span class="token plain"> task</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> </span><span class="token class-name">ScriptContext</span><span class="token plain"> context</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 comment" style="color:#999988;font-style:italic">// Access query parameters using indexer syntax</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">        </span><span class="token class-name keyword" style="color:#00009f">var</span><span class="token plain"> userId </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> context</span><span class="token punctuation" style="color:#393A34">.</span><span class="token plain">QueryParameters</span><span class="token punctuation" style="color:#393A34">?.</span><span class="token punctuation" style="color:#393A34">[</span><span class="token string" style="color:#e3116c">"userId"</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 class-name keyword" style="color:#00009f">var</span><span class="token plain"> cityId </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> context</span><span class="token punctuation" style="color:#393A34">.</span><span class="token plain">QueryParameters</span><span class="token punctuation" style="color:#393A34">?.</span><span class="token punctuation" style="color:#393A34">[</span><span class="token string" style="color:#e3116c">"cityId"</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 class-name keyword" style="color:#00009f">var</span><span class="token plain"> page </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> context</span><span class="token punctuation" style="color:#393A34">.</span><span class="token plain">QueryParameters</span><span class="token punctuation" style="color:#393A34">?.</span><span class="token punctuation" style="color:#393A34">[</span><span class="token string" style="color:#e3116c">"page"</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 class-name keyword" style="color:#00009f">var</span><span class="token plain"> filter </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> context</span><span class="token punctuation" style="color:#393A34">.</span><span class="token plain">QueryParameters</span><span class="token punctuation" style="color:#393A34">?.</span><span class="token punctuation" style="color:#393A34">[</span><span class="token string" style="color:#e3116c">"filter"</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><br></div><div class="token-line" style="color:#393A34"><span class="token plain">        </span><span class="token comment" style="color:#999988;font-style:italic">// Use in function logic</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">LogInformation</span><span class="token punctuation" style="color:#393A34">(</span><span class="token string" style="color:#e3116c">"Processing function for userId: {0}, cityId: {1}"</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 named-parameter punctuation" style="color:#393A34">args</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token keyword" style="color:#00009f">new</span><span class="token plain"> </span><span class="token constructor-invocation class-name keyword" style="color:#00009f">object</span><span class="token constructor-invocation class-name punctuation" style="color:#393A34">?</span><span class="token constructor-invocation class-name punctuation" style="color:#393A34">[</span><span class="token constructor-invocation class-name punctuation" style="color:#393A34">]</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"> userId</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> cityId </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><span class="token plain"></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><span class="token keyword" style="color:#00009f">return</span><span class="token plain"> Task</span><span class="token punctuation" style="color:#393A34">.</span><span class="token function" style="color:#d73a49">FromResult</span><span class="token punctuation" style="color:#393A34">(</span><span class="token keyword" style="color:#00009f">new</span><span class="token plain"> </span><span class="token constructor-invocation class-name">ScriptResponse</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><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>Common Use Cases:</strong></p>
<ul>
<li class="">Accessing custom query parameters in Function task handlers</li>
<li class="">Reading filter parameters passed to functions</li>
<li class="">Getting pagination parameters from function calls</li>
<li class="">Extracting user-specific identifiers from query strings</li>
</ul>
<p><strong>Benefits:</strong></p>
<ul>
<li class="">Direct access to function query parameters in mapping handlers</li>
<li class="">Consistent with existing Headers and Body properties</li>
<li class="">Indexer-based access for flexible parameter retrieval</li>
<li class="">Available in InputHandler for Function tasks</li>
</ul>
<blockquote>
<p><strong>Documentation:</strong> See <a class="" href="https://burgan-tech.github.io/vnext-docs/en/docs/components/mappings#queryparameters">Mapping Guide</a> for complete usage examples.</p>
</blockquote>
<hr>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="4-instance-key-support-in-transitions">4. Instance Key Support in Transitions<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-21#4-instance-key-support-in-transitions" class="hash-link" aria-label="Direct link to 4. Instance Key Support in Transitions" title="Direct link to 4. Instance Key Support in Transitions" translate="no">​</a></h3>
<p>All transition endpoints now support using the instance Key as an alternative to the instance ID (UUID). This enables more readable and meaningful instance references using business identifiers.</p>
<p><strong>Updated Endpoint:</strong></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">PATCH /:domain/workflows/:flow/instances/:instanceIdOrKey/transitions/:transition</span><br></div></code></pre></div></div>
<p><strong>The <code>:instanceIdOrKey</code> parameter accepts:</strong></p>
<ul>
<li class=""><strong>Instance ID</strong>: UUID returned at instance creation (e.g., <code>18075ad5-e5b2-4437-b884-21d733339113</code>)</li>
<li class=""><strong>Instance Key</strong>: Business key provided during creation (e.g., <code>ORDER-2024-001</code>, <code>CUST-12345</code>)</li>
</ul>
<p><strong>Example Usage:</strong></p>
<p><strong>Using Instance ID:</strong></p>
<div class="language-http codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-http 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">PATCH /ecommerce/workflows/order/instances/18075ad5-e5b2-4437-b884-21d733339113/transitions/approve</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">Content-Type: application/json</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><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  "approvedBy": "manager",</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  "approvalDate": "2025-11-27T10:00:00Z"</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">}</span><br></div></code></pre></div></div>
<p><strong>Using Instance Key:</strong></p>
<div class="language-http codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-http 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">PATCH /ecommerce/workflows/order/instances/ORDER-2024-001/transitions/approve</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">Content-Type: application/json</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><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  "approvedBy": "manager",</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  "approvalDate": "2025-11-27T10:00:00Z"</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">}</span><br></div></code></pre></div></div>
<p><strong>Benefits:</strong></p>
<ul>
<li class="">More readable and meaningful API calls</li>
<li class="">Easier integration with external systems using business keys</li>
<li class="">No need to store and manage UUIDs separately</li>
<li class="">Consistent with instance creation <code>key</code> parameter</li>
<li class="">Works with ALL transition endpoints</li>
</ul>
<p><strong>Applies to:</strong></p>
<ul>
<li class="">All PATCH transition endpoints</li>
<li class="">GET instance status endpoints</li>
<li class="">Function API endpoints (state, data, view)</li>
</ul>
<blockquote>
<p><strong>Documentation:</strong> See <a class="" href="https://burgan-tech.github.io/vnext-docs/en/docs/concepts/instance-data">Instance Data</a> for complete examples.</p>
</blockquote>
<hr>
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="-complete-feature-list">📋 Complete Feature List<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-21#-complete-feature-list" class="hash-link" aria-label="Direct link to 📋 Complete Feature List" title="Direct link to 📋 Complete Feature List" translate="no">​</a></h2>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="trigger-task-types">Trigger Task Types<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-21#trigger-task-types" class="hash-link" aria-label="Direct link to Trigger Task Types" title="Direct link to Trigger Task Types" translate="no">​</a></h3>
<ul>
<li class="">✅ StartTask (Type 11) - Start new workflow instances</li>
<li class="">✅ DirectTriggerTask (Type 12) - Trigger transitions on existing instances</li>
<li class="">✅ GetInstanceDataTask (Type 13) - Retrieve instance data with extensions</li>
<li class="">✅ SubProcessTask (Type 14) - Launch independent subprocess instances</li>
<li class="">✅ Dedicated setter methods for each task type</li>
<li class="">✅ Clear response structures per task type</li>
<li class="">✅ Improved error messages and handling</li>
<li class="">✅ Migration guide from old TriggerTransitionTask</li>
</ul>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="function-data-filtering">Function Data Filtering<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-21#function-data-filtering" class="hash-link" aria-label="Direct link to Function Data Filtering" title="Direct link to Function Data Filtering" translate="no">​</a></h3>
<ul>
<li class="">✅ 12 filter operators (eq, ne, gt, ge, lt, le, between, like, startswith, endswith, in, nin)</li>
<li class="">✅ Multiple filter support with AND logic</li>
<li class="">✅ Efficient querying on instance attributes</li>
<li class="">✅ Compatible with pagination</li>
<li class="">✅ Consistent filter syntax</li>
</ul>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="queryparameters-support">QueryParameters Support<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-21#queryparameters-support" class="hash-link" aria-label="Direct link to QueryParameters Support" title="Direct link to QueryParameters Support" translate="no">​</a></h3>
<ul>
<li class="">✅ New QueryParameters property in ScriptContext</li>
<li class="">✅ Available in Function task InputHandler methods</li>
<li class="">✅ Access to function query parameters via indexer syntax</li>
<li class="">✅ Dynamic type for flexible parameter access</li>
<li class="">✅ Consistent with Headers and Body properties</li>
</ul>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="instance-key-support">Instance Key Support<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-21#instance-key-support" class="hash-link" aria-label="Direct link to Instance Key Support" title="Direct link to Instance Key Support" translate="no">​</a></h3>
<ul>
<li class="">✅ Support for business keys in all transition endpoints</li>
<li class="">✅ Support in GET instance endpoints</li>
<li class="">✅ Support in Function API endpoints</li>
<li class="">✅ Backward compatible with UUID-based access</li>
<li class="">✅ Improved API readability</li>
</ul>
<hr>
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="-configuration-updates">🔧 Configuration Updates<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-21#-configuration-updates" class="hash-link" aria-label="Direct link to 🔧 Configuration Updates" title="Direct link to 🔧 Configuration Updates" translate="no">​</a></h2>
<p>Configuration for v0.0.21:</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">"runtimeVersion"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"0.0.21"</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">"schemaVersion"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"0.0.26"</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>
<hr>
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="-developer-notes">📘 Developer Notes<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-21#-developer-notes" class="hash-link" aria-label="Direct link to 📘 Developer Notes" title="Direct link to 📘 Developer Notes" translate="no">​</a></h2>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="migration-checklist">Migration Checklist<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-21#migration-checklist" class="hash-link" aria-label="Direct link to Migration Checklist" title="Direct link to Migration Checklist" translate="no">​</a></h3>
<ul class="contains-task-list containsTaskList_mC6p">
<li class="task-list-item"><input type="checkbox" disabled=""> <!-- -->Review and update TriggerTransitionTask definitions to new task types</li>
<li class="task-list-item"><input type="checkbox" disabled=""> <!-- -->Update task type numbers: Trigger→12, GetInstanceData→13, SubProcess→14</li>
<li class="task-list-item"><input type="checkbox" disabled=""> <!-- -->Remove nested <code>type</code> field from task configurations</li>
<li class="task-list-item"><input type="checkbox" disabled=""> <!-- -->Update task casting in mapping handlers (TriggerTransitionTask → specific task types)</li>
<li class="task-list-item"><input type="checkbox" disabled=""> <!-- -->Consider using instance Keys for more readable API calls</li>
<li class="task-list-item"><input type="checkbox" disabled=""> <!-- -->Explore Function data filtering for instance queries</li>
<li class="task-list-item"><input type="checkbox" disabled=""> <!-- -->Update Function task mapping handlers to leverage QueryParameters when needed</li>
<li class="task-list-item"><input type="checkbox" disabled=""> <!-- -->Update workflow definitions to schema version 0.0.26</li>
</ul>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="breaking-changes">Breaking Changes<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-21#breaking-changes" class="hash-link" aria-label="Direct link to Breaking Changes" title="Direct link to Breaking Changes" translate="no">​</a></h3>
<p><strong>Task Type Changes:</strong></p>
<ul>
<li class="">DirectTriggerTask, GetInstanceDataTask, and SubProcessTask now require different type numbers</li>
<li class="">Old TriggerTransitionTask with nested type field is deprecated</li>
<li class="">Mapping code needs to be updated to use specific task classes</li>
</ul>
<p><strong>Backward Compatibility:</strong></p>
<ul>
<li class="">Instance ID-based endpoints continue to work unchanged</li>
<li class="">Existing StartTask (Type 11) behavior is preserved</li>
<li class="">ETag pattern and existing Function API behavior unchanged</li>
</ul>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="new-capabilities">New Capabilities<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-21#new-capabilities" class="hash-link" aria-label="Direct link to New Capabilities" title="Direct link to New Capabilities" translate="no">​</a></h3>
<p><strong>Enhanced Workflow Orchestration:</strong></p>
<ul>
<li class="">Use specific task types for clearer workflow definitions</li>
<li class="">Leverage instance Keys for business-friendly identifiers</li>
<li class="">Filter instance data directly through Function API</li>
<li class="">Access query parameters in Function task mapping handlers for dynamic behavior</li>
</ul>
<p><strong>Better Developer Experience:</strong></p>
<ul>
<li class="">Type-safe task definitions with dedicated classes</li>
<li class="">More readable API calls using business keys</li>
<li class="">Powerful filtering without custom endpoints</li>
<li class="">Clearer error messages per task type</li>
</ul>
<hr>
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="-upgrade-path">🔄 Upgrade Path<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-21#-upgrade-path" class="hash-link" aria-label="Direct link to 🔄 Upgrade Path" title="Direct link to 🔄 Upgrade Path" translate="no">​</a></h2>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="from-v0020-to-v0021">From v0.0.20 to v0.0.21:<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-21#from-v0020-to-v0021" class="hash-link" aria-label="Direct link to From v0.0.20 to v0.0.21:" title="Direct link to From v0.0.20 to v0.0.21:" translate="no">​</a></h3>
<ol>
<li class="">
<p><strong>Update Runtime:</strong></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"># Update to v0.0.21</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">git</span><span class="token plain"> pull origin master</span><br></div></code></pre></div></div>
</li>
<li class="">
<p><strong>Update Configuration:</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">"runtimeVersion"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"0.0.21"</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">"schemaVersion"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"0.0.26"</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>
</li>
<li class="">
<p><strong>Migrate Trigger Tasks:</strong></p>
<ul>
<li class="">Identify all TriggerTransitionTask definitions (Type 11 with nested type)</li>
<li class="">Update type numbers: Trigger→12, GetInstanceData→13, SubProcess→14</li>
<li class="">Remove nested <code>type</code> field from configurations</li>
<li class="">Update mapping code to use specific task classes:<!-- -->
<div class="language-csharp codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-csharp 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">// Old</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token class-name keyword" style="color:#00009f">var</span><span class="token plain"> triggerTask </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> task </span><span class="token keyword" style="color:#00009f">as</span><span class="token plain"> </span><span class="token class-name">TriggerTransitionTask</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 comment" style="color:#999988;font-style:italic">// New</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token class-name keyword" style="color:#00009f">var</span><span class="token plain"> startTask </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> task </span><span class="token keyword" style="color:#00009f">as</span><span class="token plain"> </span><span class="token class-name">StartTask</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain">              </span><span class="token comment" style="color:#999988;font-style:italic">// Type 11</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token class-name keyword" style="color:#00009f">var</span><span class="token plain"> directTriggerTask </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> task </span><span class="token keyword" style="color:#00009f">as</span><span class="token plain"> </span><span class="token class-name">DirectTriggerTask</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain">    </span><span class="token comment" style="color:#999988;font-style:italic">// Type 12</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token class-name keyword" style="color:#00009f">var</span><span class="token plain"> getDataTask </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> task </span><span class="token keyword" style="color:#00009f">as</span><span class="token plain"> </span><span class="token class-name">GetInstanceDataTask</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain">        </span><span class="token comment" style="color:#999988;font-style:italic">// Type 13</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token class-name keyword" style="color:#00009f">var</span><span class="token plain"> subProcessTask </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> task </span><span class="token keyword" style="color:#00009f">as</span><span class="token plain"> </span><span class="token class-name">SubProcessTask</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain">          </span><span class="token comment" style="color:#999988;font-style:italic">// Type 14</span><br></div></code></pre></div></div>
</li>
</ul>
</li>
<li class="">
<p><strong>Test Existing Workflows:</strong></p>
<ul>
<li class="">Verify task executions work correctly</li>
<li class="">Check error handling with new task types</li>
<li class="">Test instance identification with both ID and Key</li>
</ul>
</li>
<li class="">
<p><strong>Explore New Features:</strong></p>
<ul>
<li class="">Implement Function data filtering for instance queries</li>
<li class="">Use QueryParameters in Function task mapping handlers</li>
<li class="">Switch to instance Keys where appropriate for better readability</li>
</ul>
</li>
</ol>
<hr>
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="-documentation-updates">📚 Documentation Updates<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-21#-documentation-updates" class="hash-link" aria-label="Direct link to 📚 Documentation Updates" title="Direct link to 📚 Documentation Updates" translate="no">​</a></h2>
<ul>
<li class=""><a class="" href="https://burgan-tech.github.io/vnext-docs/en/docs/components/tasks/trigger">Trigger Task Types</a> - Complete guide for all four task types</li>
<li class=""><a class="" href="https://burgan-tech.github.io/vnext-docs/en/docs/components/functions/built-in#instance-verilerini-filtreleme">Function APIs - Filtering</a> - Data function filtering documentation</li>
<li class=""><a class="" href="https://burgan-tech.github.io/vnext-docs/en/docs/components/mappings#queryparameters">Mapping Guide - QueryParameters</a> - QueryParameters usage in ScriptContext</li>
<li class=""><a class="" href="https://burgan-tech.github.io/vnext-docs/en/docs/concepts/instance-data">Instance Data</a> - Instance Key support in transitions</li>
</ul>
<p>Turkish documentation:</p>
<ul>
<li class=""><a class="" href="https://burgan-tech.github.io/vnext-docs/en/docs/components/tasks/trigger">Trigger Task Türleri</a></li>
<li class=""><a class="" href="https://burgan-tech.github.io/vnext-docs/en/docs/components/functions/built-in#instance-verilerini-filtreleme">Function API'leri - Filtreleme</a></li>
<li class=""><a class="" href="https://burgan-tech.github.io/vnext-docs/en/docs/components/mappings#queryparameters">Mapping Rehberi - QueryParameters</a></li>
<li class=""><a class="" href="https://burgan-tech.github.io/vnext-docs/en/docs/concepts/instance-data">Instance Data</a></li>
</ul>
<hr>
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="-summary">🧠 Summary<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-21#-summary" class="hash-link" aria-label="Direct link to 🧠 Summary" title="Direct link to 🧠 Summary" translate="no">​</a></h2>
<p>With this release:
✅ Four distinct task types for clearer workflow orchestration<br>
<!-- -->✅ Function data filtering with 12 powerful operators<br>
<!-- -->✅ QueryParameters support in Function task mapping handlers<br>
<!-- -->✅ Instance Key support in all transition endpoints<br>
<!-- -->✅ Improved type safety and error handling<br>
<!-- -->✅ Better developer experience with dedicated task classes<br>
<!-- -->✅ Enhanced API readability with business keys<br>
<!-- -->✅ Backward compatibility maintained for existing workflows</p>
<hr>
<p><strong>vNext Runtime Platform Team</strong><br>
<!-- -->November 27, 2025</p>]]></content:encoded>
            <category>release</category>
        </item>
        <item>
            <title><![CDATA[Release v0.0.20]]></title>
            <link>https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-20</link>
            <guid>https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-20</guid>
            <pubDate>Wed, 19 Nov 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[{/ truncate /}]]></description>
            <content:encoded><![CDATA[
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="-overview">🧭 Overview<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-20#-overview" class="hash-link" aria-label="Direct link to 🧭 Overview" title="Direct link to 🧭 Overview" translate="no">​</a></h2>
<p>This release introduces a powerful new <strong>TriggerTask</strong> capability that unifies instance management operations, alongside critical bug fixes for <strong>InstanceData immutability</strong> and <strong>subflow pipeline progression</strong>. The new TriggerTask enables workflows to start instances, trigger transitions, launch subprocesses, and fetch instance data—all within the workflow execution context.</p>
<hr>
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="-major-updates">🚀 Major Updates<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-20#-major-updates" class="hash-link" aria-label="Direct link to 🚀 Major Updates" title="Direct link to 🚀 Major Updates" translate="no">​</a></h2>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="1-triggertask---unified-instance-management-task-type-11">1. TriggerTask - Unified Instance Management (Task Type 11)<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-20#1-triggertask---unified-instance-management-task-type-11" class="hash-link" aria-label="Direct link to 1. TriggerTask - Unified Instance Management (Task Type 11)" title="Direct link to 1. TriggerTask - Unified Instance Management (Task Type 11)" translate="no">​</a></h3>
<p>A new versatile task type that provides comprehensive workflow instance control directly from within workflow execution. TriggerTask consolidates four distinct operation types into a single, flexible task definition.</p>
<p><strong>Key Capabilities:</strong></p>
<ul>
<li class=""><strong>Start New Instances</strong>: Launch new workflow instances with custom data</li>
<li class=""><strong>Trigger Transitions</strong>: Execute transitions on existing instances (direct or correlation-based)</li>
<li class=""><strong>Launch SubProcesses</strong>: Start independent subprocess instances</li>
<li class=""><strong>Fetch Instance Data</strong>: Retrieve instance data with extension support</li>
</ul>
<p><strong>Task Type:</strong> <code>11</code> (TaskType.TriggerTransition)</p>
<h4 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="trigger-types">Trigger Types<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-20#trigger-types" class="hash-link" aria-label="Direct link to Trigger Types" title="Direct link to Trigger Types" translate="no">​</a></h4>
<h5 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="1-start-instance-triggertype-start--1">1. Start Instance (TriggerType: Start = 1)<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-20#1-start-instance-triggertype-start--1" class="hash-link" aria-label="Direct link to 1. Start Instance (TriggerType: Start = 1)" title="Direct link to 1. Start Instance (TriggerType: Start = 1)" translate="no">​</a></h5>
<p>Creates a new workflow instance within the workflow execution flow.</p>
<p><strong>Example Task Definition:</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">"key"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"start-approval-workflow"</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">"domain"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"core"</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">"version"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"1.0.0"</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">"flow"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"sys-tasks"</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">"tags"</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">"workflow"</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"instance"</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"start"</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">"attributes"</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">"type"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"11"</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">"config"</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">"type"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"Start"</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">"domain"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"approvals"</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">"flow"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"approval-flow"</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">"key"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"document-approval"</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">"version"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"1.0.0"</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>Example Mapping:</strong></p>
<div class="language-csharp codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-csharp 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">using</span><span class="token plain"> </span><span class="token namespace" style="opacity:0.7">System</span><span class="token namespace punctuation" style="opacity:0.7;color:#393A34">.</span><span class="token namespace" style="opacity:0.7">Threading</span><span class="token namespace punctuation" style="opacity:0.7;color:#393A34">.</span><span class="token namespace" style="opacity:0.7">Tasks</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">using</span><span class="token plain"> </span><span class="token namespace" style="opacity:0.7">BBT</span><span class="token namespace punctuation" style="opacity:0.7;color:#393A34">.</span><span class="token namespace" style="opacity:0.7">Workflow</span><span class="token namespace punctuation" style="opacity:0.7;color:#393A34">.</span><span class="token namespace" style="opacity:0.7">Scripting</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">using</span><span class="token plain"> </span><span class="token namespace" style="opacity:0.7">BBT</span><span class="token namespace punctuation" style="opacity:0.7;color:#393A34">.</span><span class="token namespace" style="opacity:0.7">Workflow</span><span class="token namespace punctuation" style="opacity:0.7;color:#393A34">.</span><span class="token namespace" style="opacity:0.7">Definitions</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">public</span><span class="token plain"> </span><span class="token keyword" style="color:#00009f">class</span><span class="token plain"> </span><span class="token class-name">StartApprovalMapping</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token type-list class-name">IMapping</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 keyword" style="color:#00009f">public</span><span class="token plain"> </span><span class="token return-type class-name">Task</span><span class="token return-type class-name punctuation" style="color:#393A34">&lt;</span><span class="token return-type class-name">ScriptResponse</span><span class="token return-type class-name punctuation" style="color:#393A34">&gt;</span><span class="token plain"> </span><span class="token function" style="color:#d73a49">InputHandler</span><span class="token punctuation" style="color:#393A34">(</span><span class="token class-name">WorkflowTask</span><span class="token plain"> task</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> </span><span class="token class-name">ScriptContext</span><span class="token plain"> context</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 class-name keyword" style="color:#00009f">var</span><span class="token plain"> triggerTask </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> task </span><span class="token keyword" style="color:#00009f">as</span><span class="token plain"> </span><span class="token class-name">TriggerTransitionTask</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><br></div><div class="token-line" style="color:#393A34"><span class="token plain">        </span><span class="token comment" style="color:#999988;font-style:italic">// Set the workflow to start</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">        triggerTask</span><span class="token punctuation" style="color:#393A34">.</span><span class="token function" style="color:#d73a49">SetDomain</span><span class="token punctuation" style="color:#393A34">(</span><span class="token string" style="color:#e3116c">"approvals"</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">        triggerTask</span><span class="token punctuation" style="color:#393A34">.</span><span class="token function" style="color:#d73a49">SetFlow</span><span class="token punctuation" style="color:#393A34">(</span><span class="token string" style="color:#e3116c">"approval-flow"</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">        triggerTask</span><span class="token punctuation" style="color:#393A34">.</span><span class="token function" style="color:#d73a49">SetKey</span><span class="token punctuation" style="color:#393A34">(</span><span class="token string" style="color:#e3116c">"document-approval"</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">        triggerTask</span><span class="token punctuation" style="color:#393A34">.</span><span class="token function" style="color:#d73a49">SetTriggerType</span><span class="token punctuation" style="color:#393A34">(</span><span class="token string" style="color:#e3116c">"Start"</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><br></div><div class="token-line" style="color:#393A34"><span class="token plain">        </span><span class="token comment" style="color:#999988;font-style:italic">// Prepare initialization data</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">        triggerTask</span><span class="token punctuation" style="color:#393A34">.</span><span class="token function" style="color:#d73a49">SetBody</span><span class="token punctuation" style="color:#393A34">(</span><span class="token keyword" style="color:#00009f">new</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">            documentId </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> context</span><span class="token punctuation" style="color:#393A34">.</span><span class="token plain">Instance</span><span class="token punctuation" style="color:#393A34">.</span><span class="token plain">Data</span><span class="token punctuation" style="color:#393A34">.</span><span class="token plain">documentId</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">            requestedBy </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> context</span><span class="token punctuation" style="color:#393A34">.</span><span class="token plain">Instance</span><span class="token punctuation" style="color:#393A34">.</span><span class="token plain">Data</span><span class="token punctuation" style="color:#393A34">.</span><span class="token plain">userId</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">            approvalLevel </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"L1"</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">            priority </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"HIGH"</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">            requestedAt </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> DateTime</span><span class="token punctuation" style="color:#393A34">.</span><span class="token plain">UtcNow</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><span class="token plain"></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><span class="token keyword" style="color:#00009f">return</span><span class="token plain"> Task</span><span class="token punctuation" style="color:#393A34">.</span><span class="token function" style="color:#d73a49">FromResult</span><span class="token punctuation" style="color:#393A34">(</span><span class="token keyword" style="color:#00009f">new</span><span class="token plain"> </span><span class="token constructor-invocation class-name">ScriptResponse</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">            Data </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> context</span><span class="token punctuation" style="color:#393A34">.</span><span class="token plain">Instance</span><span class="token punctuation" style="color:#393A34">.</span><span class="token plain">Data</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><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" 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">public</span><span class="token plain"> </span><span class="token keyword" style="color:#00009f">async</span><span class="token plain"> </span><span class="token return-type class-name">Task</span><span class="token return-type class-name punctuation" style="color:#393A34">&lt;</span><span class="token return-type class-name">ScriptResponse</span><span class="token return-type class-name punctuation" style="color:#393A34">&gt;</span><span class="token plain"> </span><span class="token function" style="color:#d73a49">OutputHandler</span><span class="token punctuation" style="color:#393A34">(</span><span class="token class-name">ScriptContext</span><span class="token plain"> context</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 class-name keyword" style="color:#00009f">var</span><span class="token plain"> response </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> </span><span class="token keyword" style="color:#00009f">new</span><span class="token plain"> </span><span class="token constructor-invocation class-name">ScriptResponse</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><span class="token plain"></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><span class="token keyword" style="color:#00009f">if</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain">context</span><span class="token punctuation" style="color:#393A34">.</span><span class="token plain">Body</span><span class="token punctuation" style="color:#393A34">.</span><span class="token plain">isSuccess</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">            response</span><span class="token punctuation" style="color:#393A34">.</span><span class="token plain">Data </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> </span><span class="token keyword" style="color:#00009f">new</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">                approvalInstanceId </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> context</span><span class="token punctuation" style="color:#393A34">.</span><span class="token plain">Body</span><span class="token punctuation" style="color:#393A34">.</span><span class="token plain">data</span><span class="token punctuation" style="color:#393A34">.</span><span class="token plain">instanceId</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">                approvalStarted </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> </span><span class="token boolean" style="color:#36acaa">true</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">                startedAt </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> DateTime</span><span class="token punctuation" style="color:#393A34">.</span><span class="token plain">UtcNow</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 plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">        </span><span class="token keyword" style="color:#00009f">else</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">            response</span><span class="token punctuation" style="color:#393A34">.</span><span class="token plain">Data </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> </span><span class="token keyword" style="color:#00009f">new</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">                approvalStarted </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> </span><span class="token boolean" style="color:#36acaa">false</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">                error </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> context</span><span class="token punctuation" style="color:#393A34">.</span><span class="token plain">Body</span><span class="token punctuation" style="color:#393A34">.</span><span class="token plain">errorMessage </span><span class="token operator" style="color:#393A34">??</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"Failed to start approval workflow"</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 plain"></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><span class="token keyword" style="color:#00009f">return</span><span class="token plain"> response</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>
<h5 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="2-trigger-transition-triggertype-trigger--2">2. Trigger Transition (TriggerType: Trigger = 2)<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-20#2-trigger-transition-triggertype-trigger--2" class="hash-link" aria-label="Direct link to 2. Trigger Transition (TriggerType: Trigger = 2)" title="Direct link to 2. Trigger Transition (TriggerType: Trigger = 2)" translate="no">​</a></h5>
<p>Executes a specific transition on an existing workflow instance.</p>
<p><strong>Example Task Definition:</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">"key"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"trigger-approval-action"</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">"domain"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"core"</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">"version"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"1.0.0"</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">"flow"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"sys-tasks"</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">"tags"</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">"transition"</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"trigger"</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">"attributes"</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">"type"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"11"</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">"config"</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">"type"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"Trigger"</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">"domain"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"approvals"</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">"flow"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"approval-flow"</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">"transitionName"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"approve"</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>Example Mapping:</strong></p>
<div class="language-csharp codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-csharp 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">using</span><span class="token plain"> </span><span class="token namespace" style="opacity:0.7">System</span><span class="token namespace punctuation" style="opacity:0.7;color:#393A34">.</span><span class="token namespace" style="opacity:0.7">Threading</span><span class="token namespace punctuation" style="opacity:0.7;color:#393A34">.</span><span class="token namespace" style="opacity:0.7">Tasks</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">using</span><span class="token plain"> </span><span class="token namespace" style="opacity:0.7">BBT</span><span class="token namespace punctuation" style="opacity:0.7;color:#393A34">.</span><span class="token namespace" style="opacity:0.7">Workflow</span><span class="token namespace punctuation" style="opacity:0.7;color:#393A34">.</span><span class="token namespace" style="opacity:0.7">Scripting</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">using</span><span class="token plain"> </span><span class="token namespace" style="opacity:0.7">BBT</span><span class="token namespace punctuation" style="opacity:0.7;color:#393A34">.</span><span class="token namespace" style="opacity:0.7">Workflow</span><span class="token namespace punctuation" style="opacity:0.7;color:#393A34">.</span><span class="token namespace" style="opacity:0.7">Definitions</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">public</span><span class="token plain"> </span><span class="token keyword" style="color:#00009f">class</span><span class="token plain"> </span><span class="token class-name">TriggerApprovalMapping</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token type-list class-name">IMapping</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 keyword" style="color:#00009f">public</span><span class="token plain"> </span><span class="token return-type class-name">Task</span><span class="token return-type class-name punctuation" style="color:#393A34">&lt;</span><span class="token return-type class-name">ScriptResponse</span><span class="token return-type class-name punctuation" style="color:#393A34">&gt;</span><span class="token plain"> </span><span class="token function" style="color:#d73a49">InputHandler</span><span class="token punctuation" style="color:#393A34">(</span><span class="token class-name">WorkflowTask</span><span class="token plain"> task</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> </span><span class="token class-name">ScriptContext</span><span class="token plain"> context</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 class-name keyword" style="color:#00009f">var</span><span class="token plain"> triggerTask </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> task </span><span class="token keyword" style="color:#00009f">as</span><span class="token plain"> </span><span class="token class-name">TriggerTransitionTask</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><br></div><div class="token-line" style="color:#393A34"><span class="token plain">        </span><span class="token comment" style="color:#999988;font-style:italic">// Set target instance and transition</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">        triggerTask</span><span class="token punctuation" style="color:#393A34">.</span><span class="token function" style="color:#d73a49">SetInstance</span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain">context</span><span class="token punctuation" style="color:#393A34">.</span><span class="token plain">Instance</span><span class="token punctuation" style="color:#393A34">.</span><span class="token plain">Data</span><span class="token punctuation" style="color:#393A34">.</span><span class="token plain">approvalInstanceId</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">        triggerTask</span><span class="token punctuation" style="color:#393A34">.</span><span class="token function" style="color:#d73a49">SetTriggerType</span><span class="token punctuation" style="color:#393A34">(</span><span class="token string" style="color:#e3116c">"Trigger"</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><br></div><div class="token-line" style="color:#393A34"><span class="token plain">        </span><span class="token comment" style="color:#999988;font-style:italic">// Prepare transition data</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">        triggerTask</span><span class="token punctuation" style="color:#393A34">.</span><span class="token function" style="color:#d73a49">SetBody</span><span class="token punctuation" style="color:#393A34">(</span><span class="token keyword" style="color:#00009f">new</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">            approvedBy </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> context</span><span class="token punctuation" style="color:#393A34">.</span><span class="token plain">Instance</span><span class="token punctuation" style="color:#393A34">.</span><span class="token plain">Data</span><span class="token punctuation" style="color:#393A34">.</span><span class="token plain">currentUser</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">            approvalDate </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> DateTime</span><span class="token punctuation" style="color:#393A34">.</span><span class="token plain">UtcNow</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">            comments </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> context</span><span class="token punctuation" style="color:#393A34">.</span><span class="token plain">Instance</span><span class="token punctuation" style="color:#393A34">.</span><span class="token plain">Data</span><span class="token punctuation" style="color:#393A34">.</span><span class="token plain">approvalComments </span><span class="token operator" style="color:#393A34">??</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"Approved"</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">            status </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"APPROVED"</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><span class="token plain"></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><span class="token keyword" style="color:#00009f">return</span><span class="token plain"> Task</span><span class="token punctuation" style="color:#393A34">.</span><span class="token function" style="color:#d73a49">FromResult</span><span class="token punctuation" style="color:#393A34">(</span><span class="token keyword" style="color:#00009f">new</span><span class="token plain"> </span><span class="token constructor-invocation class-name">ScriptResponse</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">            Data </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> context</span><span class="token punctuation" style="color:#393A34">.</span><span class="token plain">Instance</span><span class="token punctuation" style="color:#393A34">.</span><span class="token plain">Data</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><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" 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">public</span><span class="token plain"> </span><span class="token keyword" style="color:#00009f">async</span><span class="token plain"> </span><span class="token return-type class-name">Task</span><span class="token return-type class-name punctuation" style="color:#393A34">&lt;</span><span class="token return-type class-name">ScriptResponse</span><span class="token return-type class-name punctuation" style="color:#393A34">&gt;</span><span class="token plain"> </span><span class="token function" style="color:#d73a49">OutputHandler</span><span class="token punctuation" style="color:#393A34">(</span><span class="token class-name">ScriptContext</span><span class="token plain"> context</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 class-name keyword" style="color:#00009f">var</span><span class="token plain"> response </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> </span><span class="token keyword" style="color:#00009f">new</span><span class="token plain"> </span><span class="token constructor-invocation class-name">ScriptResponse</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><span class="token plain"></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><span class="token keyword" style="color:#00009f">if</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain">context</span><span class="token punctuation" style="color:#393A34">.</span><span class="token plain">Body</span><span class="token punctuation" style="color:#393A34">.</span><span class="token plain">isSuccess</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">            response</span><span class="token punctuation" style="color:#393A34">.</span><span class="token plain">Data </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> </span><span class="token keyword" style="color:#00009f">new</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">                transitionTriggered </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> </span><span class="token boolean" style="color:#36acaa">true</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">                triggeredAt </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> DateTime</span><span class="token punctuation" style="color:#393A34">.</span><span class="token plain">UtcNow</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 plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">        </span><span class="token keyword" style="color:#00009f">else</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">            response</span><span class="token punctuation" style="color:#393A34">.</span><span class="token plain">Data </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> </span><span class="token keyword" style="color:#00009f">new</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">                transitionTriggered </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> </span><span class="token boolean" style="color:#36acaa">false</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">                error </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> context</span><span class="token punctuation" style="color:#393A34">.</span><span class="token plain">Body</span><span class="token punctuation" style="color:#393A34">.</span><span class="token plain">errorMessage</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 plain"></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><span class="token keyword" style="color:#00009f">return</span><span class="token plain"> response</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>
<h5 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="3-launch-subprocess-triggertype-subprocess--3">3. Launch SubProcess (TriggerType: SubProcess = 3)<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-20#3-launch-subprocess-triggertype-subprocess--3" class="hash-link" aria-label="Direct link to 3. Launch SubProcess (TriggerType: SubProcess = 3)" title="Direct link to 3. Launch SubProcess (TriggerType: SubProcess = 3)" translate="no">​</a></h5>
<p>Starts an independent subprocess instance that runs in parallel with the main workflow.</p>
<p><strong>Example Task Definition:</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">"key"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"start-audit-subprocess"</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">"domain"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"core"</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">"version"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"1.0.0"</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">"flow"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"sys-tasks"</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">"tags"</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">"subprocess"</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"audit"</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">"attributes"</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">"type"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"11"</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">"config"</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">"type"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"SubProcess"</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">"domain"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"audit"</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">"flow"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"audit-flow"</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">"key"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"transaction-audit"</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">"version"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"1.0.0"</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>Example Mapping:</strong></p>
<div class="language-csharp codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-csharp 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">using</span><span class="token plain"> </span><span class="token namespace" style="opacity:0.7">System</span><span class="token namespace punctuation" style="opacity:0.7;color:#393A34">.</span><span class="token namespace" style="opacity:0.7">Threading</span><span class="token namespace punctuation" style="opacity:0.7;color:#393A34">.</span><span class="token namespace" style="opacity:0.7">Tasks</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">using</span><span class="token plain"> </span><span class="token namespace" style="opacity:0.7">BBT</span><span class="token namespace punctuation" style="opacity:0.7;color:#393A34">.</span><span class="token namespace" style="opacity:0.7">Workflow</span><span class="token namespace punctuation" style="opacity:0.7;color:#393A34">.</span><span class="token namespace" style="opacity:0.7">Scripting</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">using</span><span class="token plain"> </span><span class="token namespace" style="opacity:0.7">BBT</span><span class="token namespace punctuation" style="opacity:0.7;color:#393A34">.</span><span class="token namespace" style="opacity:0.7">Workflow</span><span class="token namespace punctuation" style="opacity:0.7;color:#393A34">.</span><span class="token namespace" style="opacity:0.7">Definitions</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">public</span><span class="token plain"> </span><span class="token keyword" style="color:#00009f">class</span><span class="token plain"> </span><span class="token class-name">StartAuditSubProcessMapping</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token type-list class-name">IMapping</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 keyword" style="color:#00009f">public</span><span class="token plain"> </span><span class="token return-type class-name">Task</span><span class="token return-type class-name punctuation" style="color:#393A34">&lt;</span><span class="token return-type class-name">ScriptResponse</span><span class="token return-type class-name punctuation" style="color:#393A34">&gt;</span><span class="token plain"> </span><span class="token function" style="color:#d73a49">InputHandler</span><span class="token punctuation" style="color:#393A34">(</span><span class="token class-name">WorkflowTask</span><span class="token plain"> task</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> </span><span class="token class-name">ScriptContext</span><span class="token plain"> context</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 class-name keyword" style="color:#00009f">var</span><span class="token plain"> triggerTask </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> task </span><span class="token keyword" style="color:#00009f">as</span><span class="token plain"> </span><span class="token class-name">TriggerTransitionTask</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><br></div><div class="token-line" style="color:#393A34"><span class="token plain">        </span><span class="token comment" style="color:#999988;font-style:italic">// Configure subprocess</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">        triggerTask</span><span class="token punctuation" style="color:#393A34">.</span><span class="token function" style="color:#d73a49">SetDomain</span><span class="token punctuation" style="color:#393A34">(</span><span class="token string" style="color:#e3116c">"audit"</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">        triggerTask</span><span class="token punctuation" style="color:#393A34">.</span><span class="token function" style="color:#d73a49">SetFlow</span><span class="token punctuation" style="color:#393A34">(</span><span class="token string" style="color:#e3116c">"audit-flow"</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">        triggerTask</span><span class="token punctuation" style="color:#393A34">.</span><span class="token function" style="color:#d73a49">SetKey</span><span class="token punctuation" style="color:#393A34">(</span><span class="token string" style="color:#e3116c">"transaction-audit"</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">        triggerTask</span><span class="token punctuation" style="color:#393A34">.</span><span class="token function" style="color:#d73a49">SetTriggerType</span><span class="token punctuation" style="color:#393A34">(</span><span class="token string" style="color:#e3116c">"SubProcess"</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><br></div><div class="token-line" style="color:#393A34"><span class="token plain">        </span><span class="token comment" style="color:#999988;font-style:italic">// Prepare subprocess data</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">        triggerTask</span><span class="token punctuation" style="color:#393A34">.</span><span class="token function" style="color:#d73a49">SetBody</span><span class="token punctuation" style="color:#393A34">(</span><span class="token keyword" style="color:#00009f">new</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">            transactionId </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> context</span><span class="token punctuation" style="color:#393A34">.</span><span class="token plain">Instance</span><span class="token punctuation" style="color:#393A34">.</span><span class="token plain">Data</span><span class="token punctuation" style="color:#393A34">.</span><span class="token plain">transactionId</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">            userId </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> context</span><span class="token punctuation" style="color:#393A34">.</span><span class="token plain">Instance</span><span class="token punctuation" style="color:#393A34">.</span><span class="token plain">Data</span><span class="token punctuation" style="color:#393A34">.</span><span class="token plain">userId</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">            action </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> context</span><span class="token punctuation" style="color:#393A34">.</span><span class="token plain">Instance</span><span class="token punctuation" style="color:#393A34">.</span><span class="token plain">Data</span><span class="token punctuation" style="color:#393A34">.</span><span class="token plain">action</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">            timestamp </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> DateTime</span><span class="token punctuation" style="color:#393A34">.</span><span class="token plain">UtcNow</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">            parentInstanceId </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> context</span><span class="token punctuation" style="color:#393A34">.</span><span class="token plain">Instance</span><span class="token punctuation" style="color:#393A34">.</span><span class="token plain">Id</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">            correlationId </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> context</span><span class="token punctuation" style="color:#393A34">.</span><span class="token plain">Instance</span><span class="token punctuation" style="color:#393A34">.</span><span class="token plain">CorrelationId</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><span class="token plain"></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><span class="token keyword" style="color:#00009f">return</span><span class="token plain"> Task</span><span class="token punctuation" style="color:#393A34">.</span><span class="token function" style="color:#d73a49">FromResult</span><span class="token punctuation" style="color:#393A34">(</span><span class="token keyword" style="color:#00009f">new</span><span class="token plain"> </span><span class="token constructor-invocation class-name">ScriptResponse</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">            Data </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> context</span><span class="token punctuation" style="color:#393A34">.</span><span class="token plain">Instance</span><span class="token punctuation" style="color:#393A34">.</span><span class="token plain">Data</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><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" 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">public</span><span class="token plain"> </span><span class="token keyword" style="color:#00009f">async</span><span class="token plain"> </span><span class="token return-type class-name">Task</span><span class="token return-type class-name punctuation" style="color:#393A34">&lt;</span><span class="token return-type class-name">ScriptResponse</span><span class="token return-type class-name punctuation" style="color:#393A34">&gt;</span><span class="token plain"> </span><span class="token function" style="color:#d73a49">OutputHandler</span><span class="token punctuation" style="color:#393A34">(</span><span class="token class-name">ScriptContext</span><span class="token plain"> context</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 class-name keyword" style="color:#00009f">var</span><span class="token plain"> response </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> </span><span class="token keyword" style="color:#00009f">new</span><span class="token plain"> </span><span class="token constructor-invocation class-name">ScriptResponse</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><span class="token plain"></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><span class="token comment" style="color:#999988;font-style:italic">// SubProcess is fire-and-forget, just track that it was initiated</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">        response</span><span class="token punctuation" style="color:#393A34">.</span><span class="token plain">Data </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> </span><span class="token keyword" style="color:#00009f">new</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">            auditSubProcessId </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> context</span><span class="token punctuation" style="color:#393A34">.</span><span class="token plain">Body</span><span class="token punctuation" style="color:#393A34">.</span><span class="token plain">data</span><span class="token punctuation" style="color:#393A34">?.</span><span class="token plain">instanceId</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">            auditInitiated </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> </span><span class="token boolean" style="color:#36acaa">true</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">            initiatedAt </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> DateTime</span><span class="token punctuation" style="color:#393A34">.</span><span class="token plain">UtcNow</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><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"> response</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>
<h5 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="4-get-instance-data-triggertype-getinstancedata--4">4. Get Instance Data (TriggerType: GetInstanceData = 4)<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-20#4-get-instance-data-triggertype-getinstancedata--4" class="hash-link" aria-label="Direct link to 4. Get Instance Data (TriggerType: GetInstanceData = 4)" title="Direct link to 4. Get Instance Data (TriggerType: GetInstanceData = 4)" translate="no">​</a></h5>
<p>Retrieves instance data from another workflow, with optional extension support.</p>
<p><strong>Example Task Definition:</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">"key"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"get-user-profile-data"</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">"domain"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"core"</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">"version"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"1.0.0"</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">"flow"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"sys-tasks"</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">"tags"</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">"instance"</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"data"</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"fetch"</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">"attributes"</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">"type"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"11"</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">"config"</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">"type"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"GetInstanceData"</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">"domain"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"users"</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">"flow"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"user-profile"</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">"extensions"</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">"profile"</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"preferences"</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"security"</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>Example Mapping:</strong></p>
<div class="language-csharp codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-csharp 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">using</span><span class="token plain"> </span><span class="token namespace" style="opacity:0.7">System</span><span class="token namespace punctuation" style="opacity:0.7;color:#393A34">.</span><span class="token namespace" style="opacity:0.7">Threading</span><span class="token namespace punctuation" style="opacity:0.7;color:#393A34">.</span><span class="token namespace" style="opacity:0.7">Tasks</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">using</span><span class="token plain"> </span><span class="token namespace" style="opacity:0.7">BBT</span><span class="token namespace punctuation" style="opacity:0.7;color:#393A34">.</span><span class="token namespace" style="opacity:0.7">Workflow</span><span class="token namespace punctuation" style="opacity:0.7;color:#393A34">.</span><span class="token namespace" style="opacity:0.7">Scripting</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">using</span><span class="token plain"> </span><span class="token namespace" style="opacity:0.7">BBT</span><span class="token namespace punctuation" style="opacity:0.7;color:#393A34">.</span><span class="token namespace" style="opacity:0.7">Workflow</span><span class="token namespace punctuation" style="opacity:0.7;color:#393A34">.</span><span class="token namespace" style="opacity:0.7">Definitions</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">public</span><span class="token plain"> </span><span class="token keyword" style="color:#00009f">class</span><span class="token plain"> </span><span class="token class-name">GetUserProfileDataMapping</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token type-list class-name">IMapping</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 keyword" style="color:#00009f">public</span><span class="token plain"> </span><span class="token return-type class-name">Task</span><span class="token return-type class-name punctuation" style="color:#393A34">&lt;</span><span class="token return-type class-name">ScriptResponse</span><span class="token return-type class-name punctuation" style="color:#393A34">&gt;</span><span class="token plain"> </span><span class="token function" style="color:#d73a49">InputHandler</span><span class="token punctuation" style="color:#393A34">(</span><span class="token class-name">WorkflowTask</span><span class="token plain"> task</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> </span><span class="token class-name">ScriptContext</span><span class="token plain"> context</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 class-name keyword" style="color:#00009f">var</span><span class="token plain"> triggerTask </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> task </span><span class="token keyword" style="color:#00009f">as</span><span class="token plain"> </span><span class="token class-name">TriggerTransitionTask</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><br></div><div class="token-line" style="color:#393A34"><span class="token plain">        </span><span class="token comment" style="color:#999988;font-style:italic">// Set target instance to fetch data from</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">        triggerTask</span><span class="token punctuation" style="color:#393A34">.</span><span class="token function" style="color:#d73a49">SetInstance</span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain">context</span><span class="token punctuation" style="color:#393A34">.</span><span class="token plain">Instance</span><span class="token punctuation" style="color:#393A34">.</span><span class="token plain">Data</span><span class="token punctuation" style="color:#393A34">.</span><span class="token plain">userProfileInstanceId</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">        triggerTask</span><span class="token punctuation" style="color:#393A34">.</span><span class="token function" style="color:#d73a49">SetTriggerType</span><span class="token punctuation" style="color:#393A34">(</span><span class="token string" style="color:#e3116c">"GetInstanceData"</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><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"> Task</span><span class="token punctuation" style="color:#393A34">.</span><span class="token function" style="color:#d73a49">FromResult</span><span class="token punctuation" style="color:#393A34">(</span><span class="token keyword" style="color:#00009f">new</span><span class="token plain"> </span><span class="token constructor-invocation class-name">ScriptResponse</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">            Data </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> context</span><span class="token punctuation" style="color:#393A34">.</span><span class="token plain">Instance</span><span class="token punctuation" style="color:#393A34">.</span><span class="token plain">Data</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><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" 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">public</span><span class="token plain"> </span><span class="token keyword" style="color:#00009f">async</span><span class="token plain"> </span><span class="token return-type class-name">Task</span><span class="token return-type class-name punctuation" style="color:#393A34">&lt;</span><span class="token return-type class-name">ScriptResponse</span><span class="token return-type class-name punctuation" style="color:#393A34">&gt;</span><span class="token plain"> </span><span class="token function" style="color:#d73a49">OutputHandler</span><span class="token punctuation" style="color:#393A34">(</span><span class="token class-name">ScriptContext</span><span class="token plain"> context</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 class-name keyword" style="color:#00009f">var</span><span class="token plain"> response </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> </span><span class="token keyword" style="color:#00009f">new</span><span class="token plain"> </span><span class="token constructor-invocation class-name">ScriptResponse</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><span class="token plain"></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><span class="token keyword" style="color:#00009f">if</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain">context</span><span class="token punctuation" style="color:#393A34">.</span><span class="token plain">Body</span><span class="token punctuation" style="color:#393A34">.</span><span class="token plain">isSuccess</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 class-name keyword" style="color:#00009f">var</span><span class="token plain"> instanceData </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> context</span><span class="token punctuation" style="color:#393A34">.</span><span class="token plain">Body</span><span class="token punctuation" style="color:#393A34">.</span><span class="token plain">data</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><br></div><div class="token-line" style="color:#393A34"><span class="token plain">            response</span><span class="token punctuation" style="color:#393A34">.</span><span class="token plain">Data </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> </span><span class="token keyword" style="color:#00009f">new</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">                userProfile </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> </span><span class="token keyword" style="color:#00009f">new</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">                    name </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> instanceData</span><span class="token punctuation" style="color:#393A34">.</span><span class="token plain">profile</span><span class="token punctuation" style="color:#393A34">?.</span><span class="token plain">name</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">                    email </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> instanceData</span><span class="token punctuation" style="color:#393A34">.</span><span class="token plain">profile</span><span class="token punctuation" style="color:#393A34">?.</span><span class="token plain">email</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">                    preferences </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> instanceData</span><span class="token punctuation" style="color:#393A34">.</span><span class="token plain">preferences</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">                    securitySettings </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> instanceData</span><span class="token punctuation" style="color:#393A34">.</span><span class="token plain">security</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">                dataFetchedAt </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> DateTime</span><span class="token punctuation" style="color:#393A34">.</span><span class="token plain">UtcNow</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 plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">        </span><span class="token keyword" style="color:#00009f">else</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">            response</span><span class="token punctuation" style="color:#393A34">.</span><span class="token plain">Data </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> </span><span class="token keyword" style="color:#00009f">new</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">                error </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"Failed to fetch user profile data"</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">                errorMessage </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> context</span><span class="token punctuation" style="color:#393A34">.</span><span class="token plain">Body</span><span class="token punctuation" style="color:#393A34">.</span><span class="token plain">errorMessage</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 plain"></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><span class="token keyword" style="color:#00009f">return</span><span class="token plain"> response</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>
<h4 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="triggertask-properties">TriggerTask Properties<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-20#triggertask-properties" class="hash-link" aria-label="Direct link to TriggerTask Properties" title="Direct link to TriggerTask Properties" translate="no">​</a></h4>
<table><thead><tr><th>Property</th><th>Type</th><th>Description</th></tr></thead><tbody><tr><td><code>TransitionName</code></td><td>string?</td><td>Transition name to execute (required for Trigger type)</td></tr><tr><td><code>Body</code></td><td>JsonElement?</td><td>Body data to send with the request</td></tr><tr><td><code>TriggerDomain</code></td><td>string</td><td>Domain of the target workflow (required)</td></tr><tr><td><code>TriggerFlow</code></td><td>string</td><td>Flow name of the target workflow (required)</td></tr><tr><td><code>TriggerKey</code></td><td>string?</td><td>Flow key of the target workflow</td></tr><tr><td><code>TriggerInstanceId</code></td><td>string?</td><td>InstanceId of the target workflow</td></tr><tr><td><code>TriggerType</code></td><td>TriggerTransitionType</td><td>Type of trigger operation</td></tr><tr><td><code>TriggerVersion</code></td><td>string?</td><td>SubFlow version (optional)</td></tr><tr><td><code>Extensions</code></td><td>string[]?</td><td>Extensions to request for GetInstanceData (optional)</td></tr></tbody></table>
<h4 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="triggertask-methods">TriggerTask Methods<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-20#triggertask-methods" class="hash-link" aria-label="Direct link to TriggerTask Methods" title="Direct link to TriggerTask Methods" translate="no">​</a></h4>
<div class="language-csharp codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-csharp codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#393A34"><span class="token return-type class-name keyword" style="color:#00009f">void</span><span class="token plain"> </span><span class="token function" style="color:#d73a49">SetBody</span><span class="token punctuation" style="color:#393A34">(</span><span class="token class-name keyword" style="color:#00009f">dynamic</span><span class="token plain"> body</span><span class="token punctuation" style="color:#393A34">)</span><span class="token plain">              </span><span class="token comment" style="color:#999988;font-style:italic">// Set request body data</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token return-type class-name keyword" style="color:#00009f">void</span><span class="token plain"> </span><span class="token function" style="color:#d73a49">SetInstance</span><span class="token punctuation" style="color:#393A34">(</span><span class="token class-name keyword" style="color:#00009f">string</span><span class="token plain"> instanceId</span><span class="token punctuation" style="color:#393A34">)</span><span class="token plain">     </span><span class="token comment" style="color:#999988;font-style:italic">// Set target instance ID</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token return-type class-name keyword" style="color:#00009f">void</span><span class="token plain"> </span><span class="token function" style="color:#d73a49">SetKey</span><span class="token punctuation" style="color:#393A34">(</span><span class="token class-name keyword" style="color:#00009f">string</span><span class="token plain"> key</span><span class="token punctuation" style="color:#393A34">)</span><span class="token plain">                 </span><span class="token comment" style="color:#999988;font-style:italic">// Set workflow key</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token return-type class-name keyword" style="color:#00009f">void</span><span class="token plain"> </span><span class="token function" style="color:#d73a49">SetDomain</span><span class="token punctuation" style="color:#393A34">(</span><span class="token class-name keyword" style="color:#00009f">string</span><span class="token plain"> domain</span><span class="token punctuation" style="color:#393A34">)</span><span class="token plain">           </span><span class="token comment" style="color:#999988;font-style:italic">// Set workflow domain</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token return-type class-name keyword" style="color:#00009f">void</span><span class="token plain"> </span><span class="token function" style="color:#d73a49">SetFlow</span><span class="token punctuation" style="color:#393A34">(</span><span class="token class-name keyword" style="color:#00009f">string</span><span class="token plain"> flow</span><span class="token punctuation" style="color:#393A34">)</span><span class="token plain">               </span><span class="token comment" style="color:#999988;font-style:italic">// Set workflow flow name</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token return-type class-name keyword" style="color:#00009f">void</span><span class="token plain"> </span><span class="token function" style="color:#d73a49">SetTriggerType</span><span class="token punctuation" style="color:#393A34">(</span><span class="token class-name keyword" style="color:#00009f">string</span><span class="token plain"> type</span><span class="token punctuation" style="color:#393A34">)</span><span class="token plain">        </span><span class="token comment" style="color:#999988;font-style:italic">// Set trigger type</span><br></div></code></pre></div></div>
<blockquote>
<p><strong>Reference:</strong> <a href="https://github.com/burgan-tech/vnext/issues/101" target="_blank" rel="noopener noreferrer" class="">#101 - Transition Triggering Task Development</a></p>
<p><strong>Reference:</strong> <a href="https://github.com/burgan-tech/vnext/issues/100" target="_blank" rel="noopener noreferrer" class="">#100 - Multiple SubProcess Launch Task Development</a></p>
<p><strong>Reference:</strong> <a href="https://github.com/burgan-tech/vnext/issues/101" target="_blank" rel="noopener noreferrer" class="">#142 - Instance Start and Get Instance Data Task Development</a></p>
</blockquote>
<hr>
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="-bug-fixes">🧩 Bug Fixes<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-20#-bug-fixes" class="hash-link" aria-label="Direct link to 🧩 Bug Fixes" title="Direct link to 🧩 Bug Fixes" translate="no">​</a></h2>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="1-instancedata-immutability-and-merge-logic-160">1. InstanceData Immutability and Merge Logic (#160)<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-20#1-instancedata-immutability-and-merge-logic-160" class="hash-link" aria-label="Direct link to 1. InstanceData Immutability and Merge Logic (#160)" title="Direct link to 1. InstanceData Immutability and Merge Logic (#160)" translate="no">​</a></h3>
<p>Fixed critical issue where the <code>AddData</code> method in workflow instances could break immutability assumptions and create data inconsistencies.</p>
<p><strong>Problem Resolved:</strong></p>
<ul>
<li class="">When <code>lastData</code> exists and <code>versionStrategy</code> is null, the method was creating a new <code>InstanceData</code> with the same version as <code>lastData</code></li>
<li class="">This effectively mutated the latest state without producing a proper new version, violating immutability and history integrity</li>
<li class="">No database-level protection existed to prevent duplicate/latest collisions</li>
</ul>
<p><strong>Technical Implementation:</strong></p>
<ul>
<li class="">Modified <code>AddData</code> to always call <code>lastData.NewVersion()</code> when <code>lastData</code> exists and incoming data differs</li>
<li class="">Default behavior now uses <code>VersionStrategy.IncreaseMinor</code> when no explicit strategy is provided</li>
<li class="">Added unique index on <code>(InstanceId, Version, HistorySequence, IsLatest)</code> to guarantee consistency at database level</li>
</ul>
<p><strong>Before (Problematic Code):</strong></p>
<div class="language-csharp codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-csharp 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">newData </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> versionStrategy </span><span class="token keyword" style="color:#00009f">is</span><span class="token plain"> </span><span class="token keyword" style="color:#00009f">null</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><span class="token keyword" style="color:#00009f">new</span><span class="token plain"> </span><span class="token constructor-invocation class-name">InstanceData</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">        id</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">        Id</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">        lastData</span><span class="token punctuation" style="color:#393A34">.</span><span class="token plain">Version</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain">        </span><span class="token comment" style="color:#999988;font-style:italic">// Same version - breaks immutability!</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">        inputData</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 boolean" style="color:#36acaa">true</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 function" style="color:#d73a49">GetNextHistorySequence</span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain">lastData</span><span class="token punctuation" style="color:#393A34">.</span><span class="token plain">Version</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"> lastData</span><span class="token punctuation" style="color:#393A34">.</span><span class="token function" style="color:#d73a49">NewVersion</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">        id</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">        inputData</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">        versionStrategy </span><span class="token operator" style="color:#393A34">??</span><span class="token plain"> VersionStrategy</span><span class="token punctuation" style="color:#393A34">.</span><span class="token plain">IncreaseMinor</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 number" style="color:#36acaa">0</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><br></div></code></pre></div></div>
<p><strong>After (Fixed Code):</strong></p>
<div class="language-csharp codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-csharp 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">// Always use NewVersion when lastData exists to maintain immutability</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">newData </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> lastData</span><span class="token punctuation" style="color:#393A34">.</span><span class="token function" style="color:#d73a49">NewVersion</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">    id</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">    inputData</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">    versionStrategy </span><span class="token operator" style="color:#393A34">??</span><span class="token plain"> VersionStrategy</span><span class="token punctuation" style="color:#393A34">.</span><span class="token plain">IncreaseMinor</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 number" style="color:#36acaa">0</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><br></div></code></pre></div></div>
<p><strong>Impact:</strong></p>
<ul>
<li class="">Proper version history maintenance for all instance data changes</li>
<li class="">Prevention of data corruption through database constraints</li>
<li class="">Consistent behavior across all data update scenarios</li>
<li class="">Improved data integrity and audit trail reliability</li>
</ul>
<blockquote>
<p><strong>Reference:</strong> <a href="https://github.com/burgan-tech/vnext/issues/160" target="_blank" rel="noopener noreferrer" class="">#160 - AddData should always call NewVersion when lastData exists</a></p>
</blockquote>
<hr>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="2-subflow-manual-transition-pipeline-progression-161">2. Subflow Manual Transition Pipeline Progression (#161)<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-20#2-subflow-manual-transition-pipeline-progression-161" class="hash-link" aria-label="Direct link to 2. Subflow Manual Transition Pipeline Progression (#161)" title="Direct link to 2. Subflow Manual Transition Pipeline Progression (#161)" translate="no">​</a></h3>
<p>Fixed issue where the main workflow pipeline would halt after a subflow completes when a manual transition is executed within the subflow.</p>
<p><strong>Problem Resolved:</strong></p>
<ul>
<li class="">When a subflow finishes and notifies the parent flow, the parent pipeline was unable to resume if no transition was explicitly defined</li>
<li class="">The pipeline resume process assumed a transition was mandatory for progression</li>
<li class="">The main flow remained stuck at the subflow state indefinitely</li>
</ul>
<p><strong>Technical Implementation:</strong></p>
<ul>
<li class="">Updated pipeline resume logic to make transitions optional after subflow completion</li>
<li class="">When no transition exists and the state has completed successfully, the pipeline:<!-- -->
<ul>
<li class="">Marks the subflow state as completed</li>
<li class="">Continues pipeline execution automatically from the next logical step</li>
<li class="">Preserves existing behavior for states with explicitly defined transitions</li>
</ul>
</li>
</ul>
<p><strong>Expected Behavior:</strong></p>
<ol>
<li class="">Main flow enters a subflow state</li>
<li class="">Subflow executes and completes successfully</li>
<li class="">Subflow notifies main flow</li>
<li class="">Main flow resumes automatically (even without explicit transition)</li>
<li class="">Main flow continues normal execution</li>
</ol>
<p><strong>Actual Behavior (Fixed):</strong></p>
<ul>
<li class="">Resume process no longer fails when transition is missing after subflow completion</li>
<li class="">Main flow continues automatically when subflow state completes</li>
<li class="">Explicit transitions still work as before (backward compatible)</li>
</ul>
<p><strong>Use Case Example:</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">"key"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"process-order-state"</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">"stateType"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token number" style="color:#36acaa">4</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">"subFlowReference"</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">"domain"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"payments"</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">"flow"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"payment-processing"</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">"key"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"process-payment"</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">"transitions"</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><span class="token comment" style="color:#999988;font-style:italic">// No transition needed - auto-continues after subflow</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>Impact:</strong></p>
<ul>
<li class="">Simplified subflow state definitions (transitions now optional)</li>
<li class="">Automatic flow continuation after subflow completion</li>
<li class="">Better workflow execution reliability</li>
<li class="">Backward compatible with existing explicit transitions</li>
</ul>
<blockquote>
<p><strong>Reference:</strong> <a href="https://github.com/burgan-tech/vnext/issues/161" target="_blank" rel="noopener noreferrer" class="">#161 - Subflow Manual Transition Pipeline Progression Fix</a></p>
</blockquote>
<hr>
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="-configuration-updates">🔧 Configuration Updates<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-20#-configuration-updates" class="hash-link" aria-label="Direct link to 🔧 Configuration Updates" title="Direct link to 🔧 Configuration Updates" translate="no">​</a></h2>
<p>Configuration for v0.0.20:</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">"runtimeVersion"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"0.0.20"</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">"schemaVersion"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"0.0.25"</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>
<hr>
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="-issues-referenced">🧱 Issues Referenced<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-20#-issues-referenced" class="hash-link" aria-label="Direct link to 🧱 Issues Referenced" title="Direct link to 🧱 Issues Referenced" translate="no">​</a></h2>
<ul>
<li class=""><a href="https://github.com/burgan-tech/vnext/issues/101" target="_blank" rel="noopener noreferrer" class="">#101 - Transition Triggering Task Development</a></li>
<li class=""><a href="https://github.com/burgan-tech/vnext/issues/100" target="_blank" rel="noopener noreferrer" class="">#100 - Multiple SubProcess Launch Task Development</a></li>
<li class=""><a href="https://github.com/burgan-tech/vnext/issues/101" target="_blank" rel="noopener noreferrer" class="">#142 - Instance Start and Get Instance Data Task Development</a></li>
<li class=""><a href="https://github.com/burgan-tech/vnext/issues/160" target="_blank" rel="noopener noreferrer" class="">#160 - AddData should always call NewVersion when lastData exists</a></li>
<li class=""><a href="https://github.com/burgan-tech/vnext/issues/161" target="_blank" rel="noopener noreferrer" class="">#161 - Subflow Manual Transition Pipeline Progression Fix</a></li>
</ul>
<hr>
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="-developer-notes">📘 Developer Notes<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-20#-developer-notes" class="hash-link" aria-label="Direct link to 📘 Developer Notes" title="Direct link to 📘 Developer Notes" translate="no">​</a></h2>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="new-task-type-triggertask">New Task Type: TriggerTask<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-20#new-task-type-triggertask" class="hash-link" aria-label="Direct link to New Task Type: TriggerTask" title="Direct link to New Task Type: TriggerTask" translate="no">​</a></h3>
<p>TriggerTask (Type 11) is now available for workflow orchestration. This unified task type enables:</p>
<ul>
<li class=""><strong>Instance Lifecycle Management</strong>: Start new instances programmatically</li>
<li class=""><strong>Workflow Orchestration</strong>: Trigger transitions across instances</li>
<li class=""><strong>Parallel Processing</strong>: Launch independent subprocesses</li>
<li class=""><strong>Data Retrieval</strong>: Fetch instance data with extension support</li>
</ul>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="migration-checklist">Migration Checklist<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-20#migration-checklist" class="hash-link" aria-label="Direct link to Migration Checklist" title="Direct link to Migration Checklist" translate="no">​</a></h3>
<ul class="contains-task-list containsTaskList_mC6p">
<li class="task-list-item"><input type="checkbox" disabled=""> <!-- -->Review workflows for potential TriggerTask usage opportunities</li>
<li class="task-list-item"><input type="checkbox" disabled=""> <!-- -->Update instance data management code if relying on version behavior</li>
<li class="task-list-item"><input type="checkbox" disabled=""> <!-- -->Test subflow completions that previously required explicit transitions</li>
<li class="task-list-item"><input type="checkbox" disabled=""> <!-- -->Verify database migrations for InstanceData unique constraint</li>
<li class="task-list-item"><input type="checkbox" disabled=""> <!-- -->Update workflow definitions to schema version 0.0.25</li>
</ul>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="new-capabilities-to-explore">New Capabilities to Explore<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-20#new-capabilities-to-explore" class="hash-link" aria-label="Direct link to New Capabilities to Explore" title="Direct link to New Capabilities to Explore" translate="no">​</a></h3>
<ul>
<li class=""><strong>Workflow Composition:</strong> Use TriggerTask to build complex multi-workflow processes</li>
<li class=""><strong>Dynamic Workflow Execution:</strong> Start instances based on runtime conditions</li>
<li class=""><strong>Cross-Workflow Communication:</strong> Trigger transitions in external instances</li>
<li class=""><strong>Subprocess Orchestration:</strong> Launch multiple parallel subprocesses with different configurations</li>
<li class=""><strong>Instance Data Federation:</strong> Aggregate data from multiple workflow instances</li>
</ul>
<hr>
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="-summary">🧠 Summary<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-20#-summary" class="hash-link" aria-label="Direct link to 🧠 Summary" title="Direct link to 🧠 Summary" translate="no">​</a></h2>
<p>With this release:
✅ TriggerTask provides unified workflow instance management capabilities<br>
<!-- -->✅ Four distinct trigger types support diverse orchestration scenarios<br>
<!-- -->✅ InstanceData immutability and version history properly maintained<br>
<!-- -->✅ Subflow pipeline progression works reliably without mandatory transitions<br>
<!-- -->✅ Database constraints ensure data integrity<br>
<!-- -->✅ Backward compatibility preserved for existing workflows</p>
<hr>
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="-upgrade-path">🔄 Upgrade Path<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-20#-upgrade-path" class="hash-link" aria-label="Direct link to 🔄 Upgrade Path" title="Direct link to 🔄 Upgrade Path" translate="no">​</a></h2>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="from-v0019-to-v0020">From v0.0.19 to v0.0.20:<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-20#from-v0019-to-v0020" class="hash-link" aria-label="Direct link to From v0.0.19 to v0.0.20:" title="Direct link to From v0.0.19 to v0.0.20:" translate="no">​</a></h3>
<ol>
<li class="">
<p><strong>Update Runtime:</strong></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"># Update to v0.0.20</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">git</span><span class="token plain"> pull origin master</span><br></div></code></pre></div></div>
</li>
<li class="">
<p><strong>Database Migration:</strong></p>
<ul>
<li class="">Apply unique index on InstanceData table:</li>
</ul>
<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql 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">CREATE</span><span class="token plain"> </span><span class="token keyword" style="color:#00009f">UNIQUE</span><span class="token plain"> </span><span class="token keyword" style="color:#00009f">INDEX</span><span class="token plain"> IX_InstanceData_InstanceId_Version_HistorySequence_IsLatest </span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token keyword" style="color:#00009f">ON</span><span class="token plain"> InstanceData </span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain">InstanceId</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> Version</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> HistorySequence</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> IsLatest</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">;</span><br></div></code></pre></div></div>
</li>
<li class="">
<p><strong>Update Configuration:</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">"runtimeVersion"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"0.0.20"</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">"schemaVersion"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"0.0.25"</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>
</li>
<li class="">
<p><strong>Explore TriggerTask:</strong></p>
<ul>
<li class="">Review workflow orchestration needs</li>
<li class="">Implement TriggerTask for cross-workflow operations</li>
<li class="">Test instance management scenarios</li>
</ul>
</li>
<li class="">
<p><strong>Verify Subflow Behavior:</strong></p>
<ul>
<li class="">Test subflow completions in existing workflows</li>
<li class="">Remove unnecessary transitions after subflow states (optional)</li>
<li class="">Validate automatic continuation behavior</li>
</ul>
</li>
</ol>
<hr>
<p><strong>vNext Runtime Platform Team</strong><br>
<!-- -->November 19, 2025</p>]]></content:encoded>
            <category>release</category>
        </item>
        <item>
            <title><![CDATA[Release v0.0.19]]></title>
            <link>https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-19</link>
            <guid>https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-19</guid>
            <pubDate>Tue, 11 Nov 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[{/ truncate /}]]></description>
            <content:encoded><![CDATA[
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="-overview">🧭 Overview<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-19#-overview" class="hash-link" aria-label="Direct link to 🧭 Overview" title="Direct link to 🧭 Overview" translate="no">​</a></h2>
<p>This release introduces significant enhancements to the <strong>vNext Runtime Platform</strong>, focusing on improved flexibility in transition handling, enhanced header propagation in service-to-service communication, and important refinements to the view extension system.<br>
<!-- -->Key features include <strong>transition input mapping</strong>, <strong>$self target support for shared transitions</strong>, and critical fixes for <strong>DaprServiceTask header handling</strong>.</p>
<hr>
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="-major-updates">🚀 Major Updates<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-19#-major-updates" class="hash-link" aria-label="Direct link to 🚀 Major Updates" title="Direct link to 🚀 Major Updates" translate="no">​</a></h2>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="1-transition-input-mapping-support">1. Transition Input Mapping Support<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-19#1-transition-input-mapping-support" class="hash-link" aria-label="Direct link to 1. Transition Input Mapping Support" title="Direct link to 1. Transition Input Mapping Support" translate="no">​</a></h3>
<p>Transitions now support input mapping configuration, enabling data transformation before state transitions. This enhancement provides the same mapping capabilities as task mappings.</p>
<p><strong>Key Benefits:</strong></p>
<ul>
<li class="">Transform input data before state transitions</li>
<li class="">Map external API responses to internal workflow data structures</li>
<li class="">Validate and sanitize input data before processing</li>
<li class="">Apply business logic to input data during transitions</li>
</ul>
<p><strong>Example Usage:</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">"key"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"process-payment-transition"</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">"source"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"payment-validation"</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">"target"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"payment-processing"</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">"labels"</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><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">"mapping"</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">"location"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"./src/PaymentTransitionMapping.csx"</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">"code"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"base64-encoded-csx-content"</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>Mapping Implementation:</strong></p>
<div class="language-csharp codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-csharp 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">using</span><span class="token plain"> </span><span class="token namespace" style="opacity:0.7">System</span><span class="token namespace punctuation" style="opacity:0.7;color:#393A34">.</span><span class="token namespace" style="opacity:0.7">Threading</span><span class="token namespace punctuation" style="opacity:0.7;color:#393A34">.</span><span class="token namespace" style="opacity:0.7">Tasks</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">using</span><span class="token plain"> </span><span class="token namespace" style="opacity:0.7">BBT</span><span class="token namespace punctuation" style="opacity:0.7;color:#393A34">.</span><span class="token namespace" style="opacity:0.7">Workflow</span><span class="token namespace punctuation" style="opacity:0.7;color:#393A34">.</span><span class="token namespace" style="opacity:0.7">Scripting</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">public</span><span class="token plain"> </span><span class="token keyword" style="color:#00009f">class</span><span class="token plain"> </span><span class="token class-name">PaymentTransitionMapping</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token type-list class-name">ITransitionMapping</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 keyword" style="color:#00009f">public</span><span class="token plain"> </span><span class="token keyword" style="color:#00009f">async</span><span class="token plain"> </span><span class="token return-type class-name">Task</span><span class="token return-type class-name punctuation" style="color:#393A34">&lt;</span><span class="token return-type class-name keyword" style="color:#00009f">dynamic</span><span class="token return-type class-name punctuation" style="color:#393A34">&gt;</span><span class="token plain"> </span><span class="token function" style="color:#d73a49">Handler</span><span class="token punctuation" style="color:#393A34">(</span><span class="token class-name">ScriptContext</span><span class="token plain"> context</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 class-name keyword" style="color:#00009f">dynamic</span><span class="token plain"> data </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> </span><span class="token keyword" style="color:#00009f">new</span><span class="token plain"> </span><span class="token constructor-invocation class-name">ExpandoObject</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><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">        data</span><span class="token punctuation" style="color:#393A34">.</span><span class="token plain">amount </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> context</span><span class="token punctuation" style="color:#393A34">.</span><span class="token plain">Body</span><span class="token punctuation" style="color:#393A34">.</span><span class="token plain">amount</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">        data</span><span class="token punctuation" style="color:#393A34">.</span><span class="token plain">currency </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> context</span><span class="token punctuation" style="color:#393A34">.</span><span class="token plain">Body</span><span class="token punctuation" style="color:#393A34">.</span><span class="token plain">currency </span><span class="token operator" style="color:#393A34">??</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"USD"</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">        data</span><span class="token punctuation" style="color:#393A34">.</span><span class="token plain">validatedAt </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> DateTime</span><span class="token punctuation" style="color:#393A34">.</span><span class="token plain">UtcNow</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"> data</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>
<blockquote>
<p><strong>Reference:</strong> <a href="https://github.com/burgan-tech/vnext/issues/98" target="_blank" rel="noopener noreferrer" class="">#98 - Add Input Mapping for Transitions</a></p>
</blockquote>
<hr>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="2-self-target-support-in-shared-transitions">2. $self Target Support in Shared Transitions<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-19#2-self-target-support-in-shared-transitions" class="hash-link" aria-label="Direct link to 2. $self Target Support in Shared Transitions" title="Direct link to 2. $self Target Support in Shared Transitions" translate="no">​</a></h3>
<p>Shared transitions can now use <code>$self</code> as a special target value, allowing transitions to remain in the current state. This is particularly useful for state-internal operations and event handling without state changes.</p>
<p><strong>Key Features:</strong></p>
<ul>
<li class=""><code>$self</code> as a special target value in transitions</li>
<li class="">Enhanced shared transition capabilities</li>
<li class="">Support for operations that remain in the current state</li>
</ul>
<p><strong>Example Usage:</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">"key"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"refresh-data-transition"</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">"target"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"$self"</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">"triggerType"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token number" style="color:#36acaa">0</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">"labels"</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 punctuation" style="color:#393A34">{</span><span class="token property" style="color:#36acaa">"language"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"en-US"</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> </span><span class="token property" style="color:#36acaa">"label"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"Refresh Data"</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 property" style="color:#36acaa">"language"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"tr-TR"</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> </span><span class="token property" style="color:#36acaa">"label"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"Verileri Yenile"</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">"schema"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token null keyword" style="color:#00009f">null</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">"rule"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token null keyword" style="color:#00009f">null</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>
<blockquote>
<p><strong>Reference:</strong> <a href="https://github.com/burgan-tech/vnext/issues/130" target="_blank" rel="noopener noreferrer" class="">#130 - Add Support for $self Target in Shared Transitions</a></p>
</blockquote>
<hr>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="3-daprservicetask-header-mapping-support-hotfix">3. DaprServiceTask Header Mapping Support (Hotfix)<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-19#3-daprservicetask-header-mapping-support-hotfix" class="hash-link" aria-label="Direct link to 3. DaprServiceTask Header Mapping Support (Hotfix)" title="Direct link to 3. DaprServiceTask Header Mapping Support (Hotfix)" translate="no">​</a></h3>
<p>Fixed critical issue where <code>DaprServiceTask</code> headers were not propagated to downstream services. The <code>DaprServiceTaskExecutor</code> now correctly maps headers from the task definition to outgoing Dapr service invocations.</p>
<p><strong>Problem Resolved:</strong></p>
<ul>
<li class="">HTTP requests via Dapr now include user-defined headers</li>
<li class="">Contextual and authorization metadata is preserved during service-to-service communication</li>
<li class="">Headers property is now properly utilized in Dapr invocations</li>
</ul>
<p><strong>Technical Implementation:</strong>
The executor now enumerates headers before Dapr invocation:</p>
<div class="language-csharp codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-csharp 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">if</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain">task</span><span class="token punctuation" style="color:#393A34">.</span><span class="token plain">Headers </span><span class="token keyword" style="color:#00009f">is</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">}</span><span class="token plain"> headers</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 keyword" style="color:#00009f">foreach</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">(</span><span class="token class-name keyword" style="color:#00009f">var</span><span class="token plain"> property </span><span class="token keyword" style="color:#00009f">in</span><span class="token plain"> headers</span><span class="token punctuation" style="color:#393A34">.</span><span class="token plain">Value</span><span class="token punctuation" style="color:#393A34">.</span><span class="token function" style="color:#d73a49">EnumerateObject</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><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">        request</span><span class="token punctuation" style="color:#393A34">.</span><span class="token plain">Headers</span><span class="token punctuation" style="color:#393A34">.</span><span class="token function" style="color:#d73a49">TryAddWithoutValidation</span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain">property</span><span class="token punctuation" style="color:#393A34">.</span><span class="token plain">Name</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> property</span><span class="token punctuation" style="color:#393A34">.</span><span class="token plain">Value</span><span class="token punctuation" style="color:#393A34">.</span><span class="token function" style="color:#d73a49">GetString</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><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>Example Task Definition:</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">"key"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"call-user-service"</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">"domain"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"core"</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">"version"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"1.0.0"</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">"flow"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"sys-tasks"</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">"attributes"</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">"type"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"7"</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">"config"</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">"appId"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"user-service"</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">"methodName"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"api/users"</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">"httpVerb"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"POST"</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>Example Mapping with Headers:</strong></p>
<div class="language-csharp codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-csharp 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">public</span><span class="token plain"> </span><span class="token return-type class-name">Task</span><span class="token return-type class-name punctuation" style="color:#393A34">&lt;</span><span class="token return-type class-name">ScriptResponse</span><span class="token return-type class-name punctuation" style="color:#393A34">&gt;</span><span class="token plain"> </span><span class="token function" style="color:#d73a49">InputHandler</span><span class="token punctuation" style="color:#393A34">(</span><span class="token class-name">WorkflowTask</span><span class="token plain"> task</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> </span><span class="token class-name">ScriptContext</span><span class="token plain"> context</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 class-name keyword" style="color:#00009f">var</span><span class="token plain"> daprTask </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> task </span><span class="token keyword" style="color:#00009f">as</span><span class="token plain"> </span><span class="token class-name">DaprServiceTask</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><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    daprTask</span><span class="token punctuation" style="color:#393A34">.</span><span class="token function" style="color:#d73a49">SetBody</span><span class="token punctuation" style="color:#393A34">(</span><span class="token keyword" style="color:#00009f">new</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">        userId </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> context</span><span class="token punctuation" style="color:#393A34">.</span><span class="token plain">Instance</span><span class="token punctuation" style="color:#393A34">.</span><span class="token plain">Data</span><span class="token punctuation" style="color:#393A34">.</span><span class="token plain">userId</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><span class="token plain"></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><span class="token class-name keyword" style="color:#00009f">var</span><span class="token plain"> headers </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> </span><span class="token keyword" style="color:#00009f">new</span><span class="token plain"> </span><span class="token constructor-invocation class-name">Dictionary</span><span class="token constructor-invocation class-name punctuation" style="color:#393A34">&lt;</span><span class="token constructor-invocation class-name keyword" style="color:#00009f">string</span><span class="token constructor-invocation class-name punctuation" style="color:#393A34">,</span><span class="token constructor-invocation class-name"> </span><span class="token constructor-invocation class-name keyword" style="color:#00009f">string</span><span class="token constructor-invocation class-name punctuation" style="color:#393A34">?</span><span class="token constructor-invocation class-name punctuation" style="color:#393A34">&gt;</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 string" style="color:#e3116c">"X-Request-Id"</span><span class="token punctuation" style="color:#393A34">]</span><span class="token plain"> </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> context</span><span class="token punctuation" style="color:#393A34">.</span><span class="token plain">Headers</span><span class="token punctuation" style="color:#393A34">[</span><span class="token string" style="color:#e3116c">"x-request-id"</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 string" style="color:#e3116c">"Authorization"</span><span class="token punctuation" style="color:#393A34">]</span><span class="token plain"> </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> </span><span class="token interpolation-string string" style="color:#e3116c">$"Bearer </span><span class="token interpolation-string interpolation punctuation" style="color:#393A34">{</span><span class="token interpolation-string interpolation expression language-csharp">context</span><span class="token interpolation-string interpolation expression language-csharp punctuation" style="color:#393A34">.</span><span class="token interpolation-string interpolation expression language-csharp">Instance</span><span class="token interpolation-string interpolation expression language-csharp punctuation" style="color:#393A34">.</span><span class="token interpolation-string interpolation expression language-csharp">Data</span><span class="token interpolation-string interpolation expression language-csharp punctuation" style="color:#393A34">.</span><span class="token interpolation-string interpolation expression language-csharp">token</span><span class="token interpolation-string interpolation punctuation" style="color:#393A34">}</span><span class="token interpolation-string string" style="color:#e3116c">"</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 string" style="color:#e3116c">"X-Correlation-Id"</span><span class="token punctuation" style="color:#393A34">]</span><span class="token plain"> </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> context</span><span class="token punctuation" style="color:#393A34">.</span><span class="token plain">Instance</span><span class="token punctuation" style="color:#393A34">.</span><span class="token plain">CorrelationId</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">    daprTask</span><span class="token punctuation" style="color:#393A34">.</span><span class="token function" style="color:#d73a49">SetHeaders</span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain">headers</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><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"> Task</span><span class="token punctuation" style="color:#393A34">.</span><span class="token function" style="color:#d73a49">FromResult</span><span class="token punctuation" style="color:#393A34">(</span><span class="token keyword" style="color:#00009f">new</span><span class="token plain"> </span><span class="token constructor-invocation class-name">ScriptResponse</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">        Data </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> context</span><span class="token punctuation" style="color:#393A34">.</span><span class="token plain">Instance</span><span class="token punctuation" style="color:#393A34">.</span><span class="token plain">Data</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><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>
<blockquote>
<p><strong>Reference:</strong> <a href="https://github.com/burgan-tech/vnext/issues/155" target="_blank" rel="noopener noreferrer" class="">#155 - Hotfix: Add Header Mapping Support in DaprServiceTask</a></p>
</blockquote>
<hr>
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="-bug-fixes">🧩 Bug Fixes<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-19#-bug-fixes" class="hash-link" aria-label="Direct link to 🧩 Bug Fixes" title="Direct link to 🧩 Bug Fixes" translate="no">​</a></h2>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="view-extension-parameter-consistency">View Extension Parameter Consistency<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-19#view-extension-parameter-consistency" class="hash-link" aria-label="Direct link to View Extension Parameter Consistency" title="Direct link to View Extension Parameter Consistency" translate="no">​</a></h3>
<p>Fixed inconsistency in view URL parameters:</p>
<ul>
<li class="">Changed parameter name from <code>extension</code> to <code>extensions</code> for consistency</li>
<li class="">Properly bound <code>extensions</code> parameter in Long Polling endpoint</li>
<li class="">Properly bound <code>extensions</code> parameter in View endpoint</li>
</ul>
<p><strong>Impact:</strong></p>
<ul>
<li class="">Consistent parameter naming across all view-related endpoints</li>
<li class="">Better alignment with schema definition from v0.0.18</li>
<li class="">Improved API consistency</li>
</ul>
<blockquote>
<p><strong>Reference:</strong> <a href="https://github.com/burgan-tech/vnext/issues/147" target="_blank" rel="noopener noreferrer" class="">#147 - Adding "extensions" parameter in View Url</a></p>
</blockquote>
<hr>
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="️-breaking-changes">⚠️ Breaking Changes<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-19#%EF%B8%8F-breaking-changes" class="hash-link" aria-label="Direct link to ⚠️ Breaking Changes" title="Direct link to ⚠️ Breaking Changes" translate="no">​</a></h2>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="1-daprservicetask-property-rename">1. DaprServiceTask Property Rename<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-19#1-daprservicetask-property-rename" class="hash-link" aria-label="Direct link to 1. DaprServiceTask Property Rename" title="Direct link to 1. DaprServiceTask Property Rename" translate="no">​</a></h3>
<p>The <code>data</code> property in <code>DaprServiceTask</code> has been renamed to <code>body</code> for better semantic clarity and consistency with HTTP terminology.</p>
<p><strong>Migration Required:</strong></p>
<div class="language-csharp codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-csharp 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">// ❌ Old (v0.0.18 and earlier):</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token class-name keyword" style="color:#00009f">var</span><span class="token plain"> daprTask </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> task </span><span class="token keyword" style="color:#00009f">as</span><span class="token plain"> </span><span class="token class-name">DaprServiceTask</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">daprTask</span><span class="token punctuation" style="color:#393A34">.</span><span class="token function" style="color:#d73a49">SetData</span><span class="token punctuation" style="color:#393A34">(</span><span class="token keyword" style="color:#00009f">new</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"> userId </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> </span><span class="token number" style="color:#36acaa">123</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 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 comment" style="color:#999988;font-style:italic">// ✅ New (v0.0.19+):</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token class-name keyword" style="color:#00009f">var</span><span class="token plain"> daprTask </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> task </span><span class="token keyword" style="color:#00009f">as</span><span class="token plain"> </span><span class="token class-name">DaprServiceTask</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">daprTask</span><span class="token punctuation" style="color:#393A34">.</span><span class="token function" style="color:#d73a49">SetBody</span><span class="token punctuation" style="color:#393A34">(</span><span class="token keyword" style="color:#00009f">new</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"> userId </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> </span><span class="token number" style="color:#36acaa">123</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 punctuation" style="color:#393A34">;</span><br></div></code></pre></div></div>
<p><strong>Impact:</strong></p>
<ul>
<li class="">All mapping scripts using <code>SetData</code> must be updated to use <code>SetBody</code></li>
<li class="">The internal property name has changed from <code>data</code> to <code>body</code></li>
<li class="">No changes to task JSON definitions required</li>
</ul>
<hr>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="2-daprhttpendpointtask-headers-removal">2. DaprHttpEndpointTask Headers Removal<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-19#2-daprhttpendpointtask-headers-removal" class="hash-link" aria-label="Direct link to 2. DaprHttpEndpointTask Headers Removal" title="Direct link to 2. DaprHttpEndpointTask Headers Removal" translate="no">​</a></h3>
<p>The <code>headers</code> property has been removed from <code>DaprHttpEndpointTask</code>. Header management is now consolidated in the mapping layer.</p>
<p><strong>Migration Required:</strong></p>
<div class="language-csharp codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-csharp 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">// ❌ Old (v0.0.18 and earlier):</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token class-name keyword" style="color:#00009f">var</span><span class="token plain"> httpTask </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> task </span><span class="token keyword" style="color:#00009f">as</span><span class="token plain"> </span><span class="token class-name">DaprHttpEndpointTask</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">httpTask</span><span class="token punctuation" style="color:#393A34">.</span><span class="token plain">Headers </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> headers</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"> </span><span class="token comment" style="color:#999988;font-style:italic">// No longer available</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 comment" style="color:#999988;font-style:italic">// ✅ New (v0.0.19+):</span><span class="token plain"></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">// Use SetHeaders method in mapping instead</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token class-name keyword" style="color:#00009f">var</span><span class="token plain"> httpTask </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> task </span><span class="token keyword" style="color:#00009f">as</span><span class="token plain"> </span><span class="token class-name">DaprHttpEndpointTask</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">httpTask</span><span class="token punctuation" style="color:#393A34">.</span><span class="token function" style="color:#d73a49">SetHeaders</span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain">headers</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">;</span><br></div></code></pre></div></div>
<p><strong>Rationale:</strong></p>
<ul>
<li class="">Consistent header handling across all task types</li>
<li class="">Better control through mapping layer</li>
<li class="">Simplified task model</li>
</ul>
<hr>
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="-configuration-updates">🔧 Configuration Updates<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-19#-configuration-updates" class="hash-link" aria-label="Direct link to 🔧 Configuration Updates" title="Direct link to 🔧 Configuration Updates" translate="no">​</a></h2>
<p>Configuration remains compatible with v0.0.19:</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">"runtimeVersion"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"0.0.19"</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">"schemaVersion"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"0.0.24"</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>
<hr>
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="-issues-referenced">🧱 Issues Referenced<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-19#-issues-referenced" class="hash-link" aria-label="Direct link to 🧱 Issues Referenced" title="Direct link to 🧱 Issues Referenced" translate="no">​</a></h2>
<ul>
<li class=""><a href="https://github.com/burgan-tech/vnext/issues/155" target="_blank" rel="noopener noreferrer" class="">#155 - Hotfix: Add Header Mapping Support in DaprServiceTask</a></li>
<li class=""><a href="https://github.com/burgan-tech/vnext/issues/98" target="_blank" rel="noopener noreferrer" class="">#98 - Add Input Mapping for Transitions</a></li>
<li class=""><a href="https://github.com/burgan-tech/vnext/issues/130" target="_blank" rel="noopener noreferrer" class="">#130 - Add Support for $self Target in Shared Transitions</a></li>
<li class=""><a href="https://github.com/burgan-tech/vnext/issues/147" target="_blank" rel="noopener noreferrer" class="">#147 - Adding "extensions" parameter in View Url</a></li>
</ul>
<hr>
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="-developer-notes">📘 Developer Notes<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-19#-developer-notes" class="hash-link" aria-label="Direct link to 📘 Developer Notes" title="Direct link to 📘 Developer Notes" translate="no">​</a></h2>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="migration-checklist">Migration Checklist<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-19#migration-checklist" class="hash-link" aria-label="Direct link to Migration Checklist" title="Direct link to Migration Checklist" translate="no">​</a></h3>
<ul class="contains-task-list containsTaskList_mC6p">
<li class="task-list-item"><input type="checkbox" disabled=""> <!-- -->Update all <code>DaprServiceTask</code> mappings: replace <code>SetData</code> with <code>SetBody</code></li>
<li class="task-list-item"><input type="checkbox" disabled=""> <!-- -->Update all <code>DaprHttpEndpointTask</code> mappings: use <code>SetHeaders</code> method</li>
<li class="task-list-item"><input type="checkbox" disabled=""> <!-- -->Review transition definitions for potential input mapping opportunities</li>
<li class="task-list-item"><input type="checkbox" disabled=""> <!-- -->Test header propagation in service-to-service calls</li>
<li class="task-list-item"><input type="checkbox" disabled=""> <!-- -->Update view endpoints to use <code>extensions</code> parameter</li>
<li class="task-list-item"><input type="checkbox" disabled=""> <!-- -->Consider using <code>$self</code> target for in-state operations</li>
</ul>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="new-capabilities-to-explore">New Capabilities to Explore<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-19#new-capabilities-to-explore" class="hash-link" aria-label="Direct link to New Capabilities to Explore" title="Direct link to New Capabilities to Explore" translate="no">​</a></h3>
<ul>
<li class=""><strong>Transition Mapping:</strong> Add data validation and transformation logic to transitions</li>
<li class=""><strong>$self Transitions:</strong> Implement refresh/update operations without state changes</li>
<li class=""><strong>Enhanced Headers:</strong> Utilize proper header propagation for authentication and tracing</li>
</ul>
<hr>
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="-summary">🧠 Summary<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-19#-summary" class="hash-link" aria-label="Direct link to 🧠 Summary" title="Direct link to 🧠 Summary" translate="no">​</a></h2>
<p>With this release:
✅ Transitions now support input mapping for enhanced flexibility<br>
<!-- -->✅ Shared transitions can use <code>$self</code> target for in-state operations<br>
<!-- -->✅ DaprServiceTask now properly propagates headers to downstream services<br>
<!-- -->✅ View endpoint parameters are now consistent (<code>extensions</code>)<br>
<!-- -->✅ Task API improved with <code>SetBody</code> for better semantic clarity<br>
<!-- -->✅ Consolidated header management across task types</p>
<hr>
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="-upgrade-path">🔄 Upgrade Path<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-19#-upgrade-path" class="hash-link" aria-label="Direct link to 🔄 Upgrade Path" title="Direct link to 🔄 Upgrade Path" translate="no">​</a></h2>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="from-v0018-to-v0019">From v0.0.18 to v0.0.19:<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-19#from-v0018-to-v0019" class="hash-link" aria-label="Direct link to From v0.0.18 to v0.0.19:" title="Direct link to From v0.0.18 to v0.0.19:" translate="no">​</a></h3>
<ol>
<li class="">
<p><strong>Update Runtime:</strong></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"># Update to v0.0.19</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">git</span><span class="token plain"> pull origin master</span><br></div></code></pre></div></div>
</li>
<li class="">
<p><strong>Update Mapping Scripts:</strong></p>
<div class="language-csharp codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-csharp 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">// Find and replace in all mapping files</span><span class="token plain"></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">// Old: daprTask.SetData(...)</span><span class="token plain"></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">// New: daprTask.SetBody(...)</span><br></div></code></pre></div></div>
</li>
<li class="">
<p><strong>Update Configuration:</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">"runtimeVersion"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"0.0.19"</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">"schemaVersion"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"0.0.24"</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>
</li>
<li class="">
<p><strong>Test Service Communication:</strong></p>
<ul>
<li class="">Verify headers are properly propagated in Dapr calls</li>
<li class="">Test authentication flows with header-based auth</li>
<li class="">Validate tracing headers (correlation-id, request-id)</li>
</ul>
</li>
</ol>
<hr>
<p><strong>vNext Runtime Platform Team</strong><br>
<!-- -->November 11, 2025</p>]]></content:encoded>
            <category>release</category>
        </item>
        <item>
            <title><![CDATA[Release v0.0.18]]></title>
            <link>https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-18</link>
            <guid>https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-18</guid>
            <pubDate>Thu, 06 Nov 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[{/ truncate /}]]></description>
            <content:encoded><![CDATA[
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="-overview">🧭 Overview<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-18#-overview" class="hash-link" aria-label="Direct link to 🧭 Overview" title="Direct link to 🧭 Overview" translate="no">​</a></h2>
<p>This release brings functional extensions for the <strong>vNext Runtime Platform</strong>, flexible structure in view management, new functions for the script engine, and changes that ensure consistency in schema structure.<br>
<!-- -->Additionally, <code>subFlow</code> view override support, new system tasks, and configuration updates are also provided with this release.</p>
<hr>
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="-major-updates">🚀 Major Updates<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-18#-major-updates" class="hash-link" aria-label="Direct link to 🚀 Major Updates" title="Direct link to 🚀 Major Updates" translate="no">​</a></h2>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="1-schema-enhancements">1. Schema Enhancements<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-18#1-schema-enhancements" class="hash-link" aria-label="Direct link to 1. Schema Enhancements" title="Direct link to 1. Schema Enhancements" translate="no">​</a></h3>
<p>Extensive tightening has been implemented on schemas in this release:</p>
<ul>
<li class=""><code>target</code> has been removed from the <strong>View schema</strong>.</li>
<li class="">Adjustments have been made to common fields such as <code>timer</code>, <code>rule</code>, <code>view</code> in <strong>Workflow</strong> schemas.</li>
<li class=""><strong>New View Schema:</strong></li>
</ul>
<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">"view"</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">"extensions"</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">"ex_1"</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"ex_2"</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">"loadData"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token boolean" style="color:#36acaa">true</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">"view"</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">"key"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">""</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">"version"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">""</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">"domain"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">""</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">"flow"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"sys-views"</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>
<blockquote>
<p>For complete schema details, you can refer to the <a href="https://github.com/burgan-tech/vnext-schema" target="_blank" rel="noopener noreferrer" class=""><code>release-v0.0</code> branch in the <code>vnext-schema</code> repository</a>.</p>
</blockquote>
<hr>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="2-subflow-view-override-support">2. SubFlow View Override Support<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-18#2-subflow-view-override-support" class="hash-link" aria-label="Direct link to 2. SubFlow View Override Support" title="Direct link to 2. SubFlow View Override Support" translate="no">​</a></h3>
<p>Custom view definitions can now be made in subflow calls. This allows customized screens to be used in different subflows.</p>
<p><strong>Example Usage:</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 property" style="color:#36acaa">"subFlow"</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">"type"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"S"</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">"process"</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">"key"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"password-subflow"</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">"domain"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"core"</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">"version"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"1.0.0"</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">"flow"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"sys-flows"</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">"mapping"</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">"location"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"./src/PasswordSubflowMapping.csx"</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">"viewOverides"</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 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">"account-selection-view"</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">"key"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"account-selection-new-view"</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">"domain"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"core"</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">"version"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"1.0.0"</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">"flow"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"sys-views"</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>
<hr>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="3-scriptbase-extensions">3. ScriptBase Extensions<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-18#3-scriptbase-extensions" class="hash-link" aria-label="Direct link to 3. ScriptBase Extensions" title="Direct link to 3. ScriptBase Extensions" translate="no">​</a></h3>
<p>New functions have been added. ScriptBase now provides comprehensive helper methods for both <strong>Dapr Secret Store</strong> and <strong>Configuration</strong> operations.</p>
<p><strong>New Featured Functions:</strong></p>
<ul>
<li class=""><code>GetSecret</code>, <code>GetSecretAsync</code>, <code>GetSecrets</code>, <code>GetSecretsAsync</code></li>
<li class=""><code>LogTrace</code>, <code>LogDebug</code>, <code>LogInformation</code>, <code>LogWarning</code>, <code>LogError</code>, <code>LogCritical</code></li>
<li class=""><code>GetConfigValue</code>, <code>GetConnectionString</code>, <code>ConfigExists</code></li>
</ul>
<p>These functions are located in <code>BBT.Workflow.Scripting.Functions.ScriptBase</code>.</p>
<hr>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="4-system-tasks">4. System Tasks<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-18#4-system-tasks" class="hash-link" aria-label="Direct link to 4. System Tasks" title="Direct link to 4. System Tasks" translate="no">​</a></h3>
<p>Newly added <strong>reusable system tasks</strong>:</p>
<h4 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="script-task">Script Task<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-18#script-task" class="hash-link" aria-label="Direct link to Script Task" title="Direct link to Script Task" translate="no">​</a></h4>
<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">"key"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"script-task"</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">"domain"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"core"</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">"version"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"1.0.0"</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">"flow"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"sys-tasks"</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>
<h4 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="notification-task">Notification Task<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-18#notification-task" class="hash-link" aria-label="Direct link to Notification Task" title="Direct link to Notification Task" translate="no">​</a></h4>
<p>Enables sending notifications through the Hub:</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">"key"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"notification-task"</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">"domain"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"core"</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">"version"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"1.0.0"</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">"flow"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"sys-tasks"</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>
<hr>
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="-bug-fixes">🧩 Bug Fixes<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-18#-bug-fixes" class="hash-link" aria-label="Direct link to 🧩 Bug Fixes" title="Direct link to 🧩 Bug Fixes" translate="no">​</a></h2>
<ul>
<li class=""><strong>Transition Bug:</strong><br>
<!-- -->Fixed the issue where <code>Instance Data</code> could not be written when the payload was empty during transition.</li>
</ul>
<hr>
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="️-breaking-changes">⚠️ Breaking Changes<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-18#%EF%B8%8F-breaking-changes" class="hash-link" aria-label="Direct link to ⚠️ Breaking Changes" title="Direct link to ⚠️ Breaking Changes" translate="no">​</a></h2>
<ul>
<li class=""><strong>View schema</strong> structure has been changed (new <code>extensions</code> and <code>loadData</code> fields).</li>
<li class="">Old extension system components (<code>data</code>, <code>view</code>, <code>available-transition</code>) have been removed.</li>
<li class=""><strong>View endpoint response</strong> structure has been changed:</li>
</ul>
<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 comment" style="color:#999988;font-style:italic">// Old:</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">&lt;returned content directly&gt;</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">// New:</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 property" style="color:#36acaa">"type"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"json"</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">"content"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"...."</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">"key"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"account-creation-view"</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>
<hr>
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="-configuration-updates">🔧 Configuration Updates<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-18#-configuration-updates" class="hash-link" aria-label="Direct link to 🔧 Configuration Updates" title="Direct link to 🔧 Configuration Updates" translate="no">​</a></h2>
<p>New <code>vnext.config.json</code> example:</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">"runtimeVersion"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"0.0.18"</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">"schemaVersion"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"0.0.17"</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>
<hr>
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="-issues-referenced">🧱 Issues Referenced<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-18#-issues-referenced" class="hash-link" aria-label="Direct link to 🧱 Issues Referenced" title="Direct link to 🧱 Issues Referenced" translate="no">​</a></h2>
<ul>
<li class=""><a href="https://github.com/burgan-tech/vnext/issues/58" target="_blank" rel="noopener noreferrer" class="">View Schema Extensions #58</a></li>
<li class=""><a href="https://github.com/burgan-tech/vnext/issues/75" target="_blank" rel="noopener noreferrer" class="">Extension and loadData property for View #75</a></li>
<li class=""><a href="https://github.com/burgan-tech/vnext/issues/76" target="_blank" rel="noopener noreferrer" class="">Implementation into existing SignalR Hub #76</a></li>
<li class=""><a href="https://github.com/burgan-tech/vnext/issues/84" target="_blank" rel="noopener noreferrer" class="">Improvement of viewOverides property in SubItems #84</a></li>
<li class=""><a href="https://github.com/burgan-tech/vnext/issues/97" target="_blank" rel="noopener noreferrer" class="">Versioning and History Management Strategies #97</a></li>
</ul>
<hr>
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="-developer-notes">📘 Developer Notes<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-18#-developer-notes" class="hash-link" aria-label="Direct link to 📘 Developer Notes" title="Direct link to 📘 Developer Notes" translate="no">​</a></h2>
<ul>
<li class="">Before using the new functions, make sure the <code>@burgan-tech/vnext-core-runtime</code> package is updated to <strong>v0.0.18</strong>.</li>
<li class="">Update your <code>vnext.config.json</code> and schemas to be compatible with the new version.</li>
</ul>
<hr>
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="-summary">🧠 Summary<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-18#-summary" class="hash-link" aria-label="Direct link to 🧠 Summary" title="Direct link to 🧠 Summary" translate="no">​</a></h2>
<p>With this release:
✅ View structure has been modernized.<br>
<!-- -->✅ SubFlow view override support has been added.<br>
<!-- -->✅ ScriptBase has become more powerful.<br>
<!-- -->✅ Notification and Script system tasks have been added.<br>
<!-- -->✅ Schema consistency has been improved.</p>
<hr>
<p><strong>vNext Runtime Platform Team</strong><br>
<!-- -->November 6, 2025</p>]]></content:encoded>
            <category>release</category>
        </item>
        <item>
            <title><![CDATA[Release v0.0.14]]></title>
            <link>https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-14</link>
            <guid>https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-14</guid>
            <pubDate>Fri, 24 Oct 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[Overview]]></description>
            <content:encoded><![CDATA[<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="overview">Overview<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-14#overview" class="hash-link" aria-label="Direct link to Overview" title="Direct link to Overview" translate="no">​</a></h2>
<p>This is an intermediate release focusing on infrastructure improvements and bug fixes. The release addresses critical issues with OpenTelemetry configuration, health check reliability, and container image distribution.</p>
<!-- -->
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="-infrastructure-improvements">🔧 Infrastructure Improvements<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-14#-infrastructure-improvements" class="hash-link" aria-label="Direct link to 🔧 Infrastructure Improvements" title="Direct link to 🔧 Infrastructure Improvements" translate="no">​</a></h2>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="container-image-distribution">Container Image Distribution<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-14#container-image-distribution" class="hash-link" aria-label="Direct link to Container Image Distribution" title="Direct link to Container Image Distribution" translate="no">​</a></h3>
<p>The vNext Init component has been migrated from local Docker builds to centralized image registry distribution.</p>
<p><strong>Changes:</strong></p>
<ul>
<li class="">Removed local <code>Dockerfile.vnext-core-init</code></li>
<li class="">Now using pre-built image: <code>ghcr.io/burgan-tech/vnext/init:${VNEXT_INIT_VERSION}</code></li>
<li class="">Added <code>VNEXT_INIT_VERSION=0.0.13</code> environment variable</li>
<li class="">Improved deployment consistency across environments</li>
<li class="">Added npm cache volume for better performance</li>
</ul>
<p><strong>Benefits:</strong></p>
<ul>
<li class="">Faster deployment times</li>
<li class="">Consistent image versions across environments</li>
<li class="">Reduced build complexity</li>
<li class="">Better resource utilization</li>
</ul>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="opentelemetry-grpc-protocol-fix">OpenTelemetry gRPC Protocol Fix<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-14#opentelemetry-grpc-protocol-fix" class="hash-link" aria-label="Direct link to OpenTelemetry gRPC Protocol Fix" title="Direct link to OpenTelemetry gRPC Protocol Fix" translate="no">​</a></h3>
<p>Fixed OpenTelemetry configuration to use proper gRPC protocol instead of HTTP.</p>
<p><strong>Configuration Changes:</strong></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"># Before (HTTP/Protobuf - causing issues)</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token assign-left variable" style="color:#36acaa">Telemetry__Otlp__Endpoint</span><span class="token operator" style="color:#393A34">=</span><span class="token plain">http://otel-collector:4318</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token assign-left variable" style="color:#36acaa">Telemetry__Otlp__Protocol</span><span class="token operator" style="color:#393A34">=</span><span class="token plain">http/protobuf</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"># After (gRPC - stable)</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token assign-left variable" style="color:#36acaa">OTEL_EXPORTER_OTLP_ENDPOINT</span><span class="token operator" style="color:#393A34">=</span><span class="token plain">http://otel-collector:4317</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token assign-left variable" style="color:#36acaa">OTEL_EXPORTER_OTLP_PROTOCOL</span><span class="token operator" style="color:#393A34">=</span><span class="token plain">grpc</span><br></div></code></pre></div></div>
<p><strong>Impact:</strong></p>
<ul>
<li class="">Resolved telemetry data transmission issues</li>
<li class="">Improved observability reliability</li>
<li class="">Better performance with gRPC protocol</li>
<li class="">Consistent with OpenTelemetry best practices</li>
</ul>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="health-check-improvements">Health Check Improvements<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-14#health-check-improvements" class="hash-link" aria-label="Direct link to Health Check Improvements" title="Direct link to Health Check Improvements" translate="no">​</a></h3>
<p>Enhanced health check reliability and service startup coordination.</p>
<p><strong>Makefile Enhancements:</strong></p>
<ul>
<li class="">Added 3-second delay before checking VNext Execution service</li>
<li class="">Improved service coordination during startup</li>
<li class="">Better error handling in health check commands</li>
<li class="">Enhanced user feedback during service verification</li>
</ul>
<p><strong>Docker Compose Health Checks:</strong></p>
<ul>
<li class="">Fixed health check URLs to use container names instead of localhost</li>
<li class=""><code>vnext-app</code>: <code>http://vnext-app:5000/health</code></li>
<li class=""><code>vnext-execution-app</code>: <code>http://vnext-execution-app:5000/health</code></li>
<li class="">Improved container-to-container communication reliability</li>
</ul>
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="-bug-fixes">🐛 Bug Fixes<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-14#-bug-fixes" class="hash-link" aria-label="Direct link to 🐛 Bug Fixes" title="Direct link to 🐛 Bug Fixes" translate="no">​</a></h2>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="service-communication">Service Communication<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-14#service-communication" class="hash-link" aria-label="Direct link to Service Communication" title="Direct link to Service Communication" translate="no">​</a></h3>
<ul>
<li class="">Fixed health check endpoints to use proper container networking</li>
<li class="">Resolved intermittent health check failures</li>
<li class="">Improved service discovery reliability</li>
</ul>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="container-orchestration">Container Orchestration<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-14#container-orchestration" class="hash-link" aria-label="Direct link to Container Orchestration" title="Direct link to Container Orchestration" translate="no">​</a></h3>
<ul>
<li class="">Enhanced service startup sequence</li>
<li class="">Better dependency management between services</li>
<li class="">Improved container restart behavior</li>
</ul>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="telemetry-stability">Telemetry Stability<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-14#telemetry-stability" class="hash-link" aria-label="Direct link to Telemetry Stability" title="Direct link to Telemetry Stability" translate="no">​</a></h3>
<ul>
<li class="">Resolved OpenTelemetry connection issues</li>
<li class="">Fixed trace data export problems</li>
<li class="">Improved monitoring reliability</li>
</ul>
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="-configuration-updates">📋 Configuration Updates<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-14#-configuration-updates" class="hash-link" aria-label="Direct link to 📋 Configuration Updates" title="Direct link to 📋 Configuration Updates" translate="no">​</a></h2>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="environment-variables">Environment Variables<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-14#environment-variables" class="hash-link" aria-label="Direct link to Environment Variables" title="Direct link to Environment Variables" translate="no">​</a></h3>
<p>New and updated environment variables:</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"># New Init Image Version</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token assign-left variable" style="color:#36acaa">VNEXT_INIT_VERSION</span><span class="token operator" style="color:#393A34">=</span><span class="token number" style="color:#36acaa">0.0</span><span class="token plain">.13</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"># Updated OpenTelemetry Configuration</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token assign-left variable" style="color:#36acaa">OTEL_EXPORTER_OTLP_ENDPOINT</span><span class="token operator" style="color:#393A34">=</span><span class="token plain">http://otel-collector:4317</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token assign-left variable" style="color:#36acaa">OTEL_EXPORTER_OTLP_PROTOCOL</span><span class="token operator" style="color:#393A34">=</span><span class="token plain">grpc</span><br></div></code></pre></div></div>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="docker-compose">Docker Compose<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-14#docker-compose" class="hash-link" aria-label="Direct link to Docker Compose" title="Direct link to Docker Compose" translate="no">​</a></h3>
<ul>
<li class="">Added npm cache volume for improved performance</li>
<li class="">Updated health check configurations</li>
<li class="">Enhanced service networking</li>
</ul>
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="-deployment-notes">🚀 Deployment Notes<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-14#-deployment-notes" class="hash-link" aria-label="Direct link to 🚀 Deployment Notes" title="Direct link to 🚀 Deployment Notes" translate="no">​</a></h2>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="upgrade-instructions">Upgrade Instructions<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-14#upgrade-instructions" class="hash-link" aria-label="Direct link to Upgrade Instructions" title="Direct link to Upgrade Instructions" translate="no">​</a></h3>
<ol>
<li class="">Update environment files with new OpenTelemetry configuration</li>
<li class="">Pull latest container images</li>
<li class="">Restart services to apply health check improvements</li>
</ol>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="breaking-changes">Breaking Changes<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-14#breaking-changes" class="hash-link" aria-label="Direct link to Breaking Changes" title="Direct link to Breaking Changes" translate="no">​</a></h3>
<ul>
<li class="">None - this is a backward-compatible release</li>
</ul>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="compatibility">Compatibility<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-14#compatibility" class="hash-link" aria-label="Direct link to Compatibility" title="Direct link to Compatibility" translate="no">​</a></h3>
<ul>
<li class="">Compatible with all existing workflows and configurations</li>
<li class="">No API changes</li>
<li class="">No database schema changes</li>
</ul>
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="-performance-improvements">📊 Performance Improvements<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-14#-performance-improvements" class="hash-link" aria-label="Direct link to 📊 Performance Improvements" title="Direct link to 📊 Performance Improvements" translate="no">​</a></h2>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="container-startup">Container Startup<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-14#container-startup" class="hash-link" aria-label="Direct link to Container Startup" title="Direct link to Container Startup" translate="no">​</a></h3>
<ul>
<li class="">Faster init container deployment</li>
<li class="">Reduced image pull times</li>
<li class="">Better resource utilization</li>
</ul>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="monitoring">Monitoring<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-14#monitoring" class="hash-link" aria-label="Direct link to Monitoring" title="Direct link to Monitoring" translate="no">​</a></h3>
<ul>
<li class="">More reliable telemetry data collection</li>
<li class="">Improved trace data export</li>
<li class="">Better observability coverage</li>
</ul>
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="-technical-details">🔍 Technical Details<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-14#-technical-details" class="hash-link" aria-label="Direct link to 🔍 Technical Details" title="Direct link to 🔍 Technical Details" translate="no">​</a></h2>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="image-registry-migration">Image Registry Migration<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-14#image-registry-migration" class="hash-link" aria-label="Direct link to Image Registry Migration" title="Direct link to Image Registry Migration" translate="no">​</a></h3>
<p>The vnext-init component migration provides:</p>
<ul>
<li class="">Centralized version control</li>
<li class="">Automated security scanning</li>
<li class="">Consistent deployment artifacts</li>
<li class="">Reduced local build dependencies</li>
</ul>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="grpc-protocol-benefits">gRPC Protocol Benefits<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-14#grpc-protocol-benefits" class="hash-link" aria-label="Direct link to gRPC Protocol Benefits" title="Direct link to gRPC Protocol Benefits" translate="no">​</a></h3>
<ul>
<li class="">Lower latency than HTTP/Protobuf</li>
<li class="">Better connection management</li>
<li class="">Improved error handling</li>
<li class="">Native OpenTelemetry support</li>
</ul>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="health-check-reliability">Health Check Reliability<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-14#health-check-reliability" class="hash-link" aria-label="Direct link to Health Check Reliability" title="Direct link to Health Check Reliability" translate="no">​</a></h3>
<ul>
<li class="">Container-aware networking</li>
<li class="">Better startup coordination</li>
<li class="">Reduced false positives</li>
<li class="">Improved monitoring accuracy</li>
</ul>
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="-support">📞 Support<a href="https://burgan-tech.github.io/vnext-docs/en/blog/archive/release-v0-0-14#-support" class="hash-link" aria-label="Direct link to 📞 Support" title="Direct link to 📞 Support" translate="no">​</a></h2>
<p>For technical support and questions, please contact the vNext Runtime Platform team.</p>
<hr>
<p><strong>vNext Runtime Platform Team</strong><br>
<!-- -->October 24, 2025</p>]]></content:encoded>
            <category>release</category>
        </item>
    </channel>
</rss>