<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>cavaliba.com – Pipeline</title>
    <link>http://localhost:1313/docs/52pipeline/</link>
    <description>Recent content in Pipeline on cavaliba.com</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en-us</language>
    
	  <atom:link href="http://localhost:1313/docs/52pipeline/index.xml" rel="self" type="application/rss+xml" />
    
    
      
        
      
    
    
    <item>
      <title>Condition Checkers</title>
      <link>http://localhost:1313/docs/52pipeline/conditions/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>http://localhost:1313/docs/52pipeline/conditions/</guid>
      <description>
        
        
        &lt;p&gt;Conditions are set with &lt;code&gt;set_condition&lt;/code&gt; tasks. Each checker evaluates a field and returns True or False.&lt;/p&gt;
&lt;p&gt;Syntax:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;- set_condition: [COND, checker, field, ...]
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Use &lt;code&gt;!COND&lt;/code&gt; to negate a condition in any task.&lt;/p&gt;
&lt;h2&gt;field_match&lt;span class=&#34;hx-absolute -hx-mt-20&#34; id=&#34;field_match&#34;&gt;&lt;/span&gt;
    &lt;a href=&#34;#field_match&#34; class=&#34;subheading-anchor&#34; aria-label=&#34;Permalink for this section&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&lt;pre&gt;&lt;code&gt;set_condition: [COND, field_match, fieldname, &#39;regexp&#39;]
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;True if &lt;code&gt;fieldname&lt;/code&gt; value matches the regular expression pattern (Python &lt;code&gt;re.search&lt;/code&gt;).&lt;/p&gt;
&lt;p&gt;Example:&lt;/p&gt;
&lt;div class=&#34;hextra-code-block hx-relative hx-mt-6 first:hx-mt-0 hx-group/code&#34;&gt;

&lt;div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nt&#34;&gt;tasks&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;&lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# flag entries whose name starts with &amp;#39;test&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;&lt;/span&gt;- &lt;span class=&#34;nt&#34;&gt;set_condition&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;l&#34;&gt;IS_TEST, field_match, name, &amp;#39;^test&amp;#39;]&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;&lt;/span&gt;- &lt;span class=&#34;nt&#34;&gt;field_set&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;l&#34;&gt;IS_TEST, status, ignored]&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;&lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# discard entries with a status of &amp;#39;deleted&amp;#39; or &amp;#39;obsolete&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;&lt;/span&gt;- &lt;span class=&#34;nt&#34;&gt;set_condition&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;l&#34;&gt;OBSOLETE, field_match, status, &amp;#39;^(deleted|obsolete)$&amp;#39;]&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;&lt;/span&gt;- &lt;span class=&#34;nt&#34;&gt;discard&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;l&#34;&gt;OBSOLETE]&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;hextra-code-copy-btn-container hx-opacity-0 hx-transition group-hover/code:hx-opacity-100 hx-flex hx-gap-1 hx-absolute hx-m-[11px] hx-right-0 hx-top-0&#34;&gt;
  &lt;button
    class=&#34;hextra-code-copy-btn hx-group/copybtn hx-transition-all active:hx-opacity-50 hx-bg-primary-700/5 hx-border hx-border-black/5 hx-text-gray-600 hover:hx-text-gray-900 hx-rounded-md hx-p-1.5 dark:hx-bg-primary-300/10 dark:hx-border-white/10 dark:hx-text-gray-400 dark:hover:hx-text-gray-50&#34;
    title=&#34;Copy code&#34;
  &gt;
    &lt;div class=&#34;copy-icon group-[.copied]/copybtn:hx-hidden hx-pointer-events-none hx-h-4 hx-w-4&#34;&gt;&lt;/div&gt;
    &lt;div class=&#34;success-icon hx-hidden group-[.copied]/copybtn:hx-block hx-pointer-events-none hx-h-4 hx-w-4&#34;&gt;&lt;/div&gt;
  &lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h2&gt;ge, gt, lt, le, eq, ne&lt;span class=&#34;hx-absolute -hx-mt-20&#34; id=&#34;ge-gt-lt-le-eq-ne&#34;&gt;&lt;/span&gt;
    &lt;a href=&#34;#ge-gt-lt-le-eq-ne&#34; class=&#34;subheading-anchor&#34; aria-label=&#34;Permalink for this section&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&lt;pre&gt;&lt;code&gt;set_condition: [COND, ge, field1, field2]
set_condition: [COND, gt, field1, field2]
set_condition: [COND, lt, field1, field2]
set_condition: [COND, le, field1, field2]
set_condition: [COND, eq, field1, field2]
set_condition: [COND, ne, field1, field2]
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Compare two fields. Values are coerced in order: &lt;code&gt;int&lt;/code&gt; → &lt;code&gt;float&lt;/code&gt; → &lt;code&gt;str&lt;/code&gt;.
This means numeric strings compare numerically (&lt;code&gt;&amp;quot;10&amp;quot; &amp;gt; &amp;quot;9&amp;quot;&lt;/code&gt;), and ISO datetime strings (&lt;code&gt;YYYY-MM-DD HH:MM:SS&lt;/code&gt;) compare chronologically.&lt;/p&gt;
&lt;p&gt;Returns &lt;code&gt;False&lt;/code&gt; if either field is missing.&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Operator&lt;/th&gt;
          &lt;th&gt;Meaning&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;ge&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;field1 &amp;gt;= field2&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;gt&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;field1 &amp;gt; field2&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;lt&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;field1 &amp;lt; field2&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;le&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;field1 &amp;lt;= field2&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;eq&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;field1 == field2&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;ne&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;field1 != field2&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Example:&lt;/p&gt;
&lt;div class=&#34;hextra-code-block hx-relative hx-mt-6 first:hx-mt-0 hx-group/code&#34;&gt;

&lt;div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nt&#34;&gt;tasks&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;&lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# disable entries older than a reference date&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;&lt;/span&gt;- &lt;span class=&#34;nt&#34;&gt;set_condition&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;l&#34;&gt;IS_OLD, lt, last_sync, cutoff_date]&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;&lt;/span&gt;- &lt;span class=&#34;nt&#34;&gt;field_set&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;l&#34;&gt;IS_OLD, _action, disable]&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;&lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# flag entries where count exceeded limit&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;&lt;/span&gt;- &lt;span class=&#34;nt&#34;&gt;set_condition&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;l&#34;&gt;OVER_LIMIT, gt, count, max_count]&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;&lt;/span&gt;- &lt;span class=&#34;nt&#34;&gt;field_set&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;l&#34;&gt;OVER_LIMIT, status, exceeded]&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;hextra-code-copy-btn-container hx-opacity-0 hx-transition group-hover/code:hx-opacity-100 hx-flex hx-gap-1 hx-absolute hx-m-[11px] hx-right-0 hx-top-0&#34;&gt;
  &lt;button
    class=&#34;hextra-code-copy-btn hx-group/copybtn hx-transition-all active:hx-opacity-50 hx-bg-primary-700/5 hx-border hx-border-black/5 hx-text-gray-600 hover:hx-text-gray-900 hx-rounded-md hx-p-1.5 dark:hx-bg-primary-300/10 dark:hx-border-white/10 dark:hx-text-gray-400 dark:hover:hx-text-gray-50&#34;
    title=&#34;Copy code&#34;
  &gt;
    &lt;div class=&#34;copy-icon group-[.copied]/copybtn:hx-hidden hx-pointer-events-none hx-h-4 hx-w-4&#34;&gt;&lt;/div&gt;
    &lt;div class=&#34;success-icon hx-hidden group-[.copied]/copybtn:hx-block hx-pointer-events-none hx-h-4 hx-w-4&#34;&gt;&lt;/div&gt;
  &lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h2&gt;exists&lt;span class=&#34;hx-absolute -hx-mt-20&#34; id=&#34;exists&#34;&gt;&lt;/span&gt;
    &lt;a href=&#34;#exists&#34; class=&#34;subheading-anchor&#34; aria-label=&#34;Permalink for this section&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&lt;pre&gt;&lt;code&gt;set_condition: [COND, exists, field]
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Returns &lt;code&gt;True&lt;/code&gt; if &lt;code&gt;field&lt;/code&gt; is present in the current data record, regardless of its value (even empty string). Returns &lt;code&gt;False&lt;/code&gt; if the field is absent.&lt;/p&gt;
&lt;p&gt;Example:&lt;/p&gt;
&lt;div class=&#34;hextra-code-block hx-relative hx-mt-6 first:hx-mt-0 hx-group/code&#34;&gt;

&lt;div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nt&#34;&gt;tasks&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;&lt;/span&gt;- &lt;span class=&#34;nt&#34;&gt;set_condition&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;l&#34;&gt;NO_OWNER, exists, owner]&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;&lt;/span&gt;- &lt;span class=&#34;nt&#34;&gt;field_set&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;!&lt;span class=&#34;l&#34;&gt;NO_OWNER, status, unassigned]&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;hextra-code-copy-btn-container hx-opacity-0 hx-transition group-hover/code:hx-opacity-100 hx-flex hx-gap-1 hx-absolute hx-m-[11px] hx-right-0 hx-top-0&#34;&gt;
  &lt;button
    class=&#34;hextra-code-copy-btn hx-group/copybtn hx-transition-all active:hx-opacity-50 hx-bg-primary-700/5 hx-border hx-border-black/5 hx-text-gray-600 hover:hx-text-gray-900 hx-rounded-md hx-p-1.5 dark:hx-bg-primary-300/10 dark:hx-border-white/10 dark:hx-text-gray-400 dark:hover:hx-text-gray-50&#34;
    title=&#34;Copy code&#34;
  &gt;
    &lt;div class=&#34;copy-icon group-[.copied]/copybtn:hx-hidden hx-pointer-events-none hx-h-4 hx-w-4&#34;&gt;&lt;/div&gt;
    &lt;div class=&#34;success-icon hx-hidden group-[.copied]/copybtn:hx-block hx-pointer-events-none hx-h-4 hx-w-4&#34;&gt;&lt;/div&gt;
  &lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h2&gt;empty&lt;span class=&#34;hx-absolute -hx-mt-20&#34; id=&#34;empty&#34;&gt;&lt;/span&gt;
    &lt;a href=&#34;#empty&#34; class=&#34;subheading-anchor&#34; aria-label=&#34;Permalink for this section&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&lt;pre&gt;&lt;code&gt;set_condition: [COND, empty, field]
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Returns &lt;code&gt;True&lt;/code&gt; if &lt;code&gt;field&lt;/code&gt; exists and its value is empty (empty string or whitespace only). Returns &lt;code&gt;False&lt;/code&gt; if the field is absent or has a non-empty value.&lt;/p&gt;
&lt;p&gt;Example:&lt;/p&gt;
&lt;div class=&#34;hextra-code-block hx-relative hx-mt-6 first:hx-mt-0 hx-group/code&#34;&gt;

&lt;div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nt&#34;&gt;tasks&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;&lt;/span&gt;- &lt;span class=&#34;nt&#34;&gt;set_condition&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;l&#34;&gt;NO_DESC, empty, description]&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;&lt;/span&gt;- &lt;span class=&#34;nt&#34;&gt;field_set&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;l&#34;&gt;NO_DESC, status, incomplete]&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;hextra-code-copy-btn-container hx-opacity-0 hx-transition group-hover/code:hx-opacity-100 hx-flex hx-gap-1 hx-absolute hx-m-[11px] hx-right-0 hx-top-0&#34;&gt;
  &lt;button
    class=&#34;hextra-code-copy-btn hx-group/copybtn hx-transition-all active:hx-opacity-50 hx-bg-primary-700/5 hx-border hx-border-black/5 hx-text-gray-600 hover:hx-text-gray-900 hx-rounded-md hx-p-1.5 dark:hx-bg-primary-300/10 dark:hx-border-white/10 dark:hx-text-gray-400 dark:hover:hx-text-gray-50&#34;
    title=&#34;Copy code&#34;
  &gt;
    &lt;div class=&#34;copy-icon group-[.copied]/copybtn:hx-hidden hx-pointer-events-none hx-h-4 hx-w-4&#34;&gt;&lt;/div&gt;
    &lt;div class=&#34;success-icon hx-hidden group-[.copied]/copybtn:hx-block hx-pointer-events-none hx-h-4 hx-w-4&#34;&gt;&lt;/div&gt;
  &lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h2&gt;not_empty&lt;span class=&#34;hx-absolute -hx-mt-20&#34; id=&#34;not_empty&#34;&gt;&lt;/span&gt;
    &lt;a href=&#34;#not_empty&#34; class=&#34;subheading-anchor&#34; aria-label=&#34;Permalink for this section&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&lt;pre&gt;&lt;code&gt;set_condition: [COND, not_empty, field]
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Returns &lt;code&gt;True&lt;/code&gt; if &lt;code&gt;field&lt;/code&gt; exists and its value is not empty (not empty string, not whitespace only). Returns &lt;code&gt;False&lt;/code&gt; if the field is absent or its value is empty.&lt;/p&gt;
&lt;p&gt;Example:&lt;/p&gt;
&lt;div class=&#34;hextra-code-block hx-relative hx-mt-6 first:hx-mt-0 hx-group/code&#34;&gt;

&lt;div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nt&#34;&gt;tasks&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;&lt;/span&gt;- &lt;span class=&#34;nt&#34;&gt;set_condition&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;l&#34;&gt;HAS_NAME, not_empty, name]&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;&lt;/span&gt;- &lt;span class=&#34;nt&#34;&gt;field_set&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;l&#34;&gt;HAS_NAME, status, active]&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;hextra-code-copy-btn-container hx-opacity-0 hx-transition group-hover/code:hx-opacity-100 hx-flex hx-gap-1 hx-absolute hx-m-[11px] hx-right-0 hx-top-0&#34;&gt;
  &lt;button
    class=&#34;hextra-code-copy-btn hx-group/copybtn hx-transition-all active:hx-opacity-50 hx-bg-primary-700/5 hx-border hx-border-black/5 hx-text-gray-600 hover:hx-text-gray-900 hx-rounded-md hx-p-1.5 dark:hx-bg-primary-300/10 dark:hx-border-white/10 dark:hx-text-gray-400 dark:hover:hx-text-gray-50&#34;
    title=&#34;Copy code&#34;
  &gt;
    &lt;div class=&#34;copy-icon group-[.copied]/copybtn:hx-hidden hx-pointer-events-none hx-h-4 hx-w-4&#34;&gt;&lt;/div&gt;
    &lt;div class=&#34;success-icon hx-hidden group-[.copied]/copybtn:hx-block hx-pointer-events-none hx-h-4 hx-w-4&#34;&gt;&lt;/div&gt;
  &lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h2&gt;is_true&lt;span class=&#34;hx-absolute -hx-mt-20&#34; id=&#34;is_true&#34;&gt;&lt;/span&gt;
    &lt;a href=&#34;#is_true&#34; class=&#34;subheading-anchor&#34; aria-label=&#34;Permalink for this section&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&lt;pre&gt;&lt;code&gt;set_condition: [COND, is_true, field]
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Returns &lt;code&gt;True&lt;/code&gt; if &lt;code&gt;field&lt;/code&gt; exists and its value is in the boolean true list: &lt;code&gt;on&lt;/code&gt;, &lt;code&gt;On&lt;/code&gt;, &lt;code&gt;ON&lt;/code&gt;, &lt;code&gt;yes&lt;/code&gt;, &lt;code&gt;Yes&lt;/code&gt;, &lt;code&gt;YES&lt;/code&gt;, &lt;code&gt;True&lt;/code&gt;, &lt;code&gt;true&lt;/code&gt;, &lt;code&gt;TRUE&lt;/code&gt;, &lt;code&gt;1&lt;/code&gt; (string), &lt;code&gt;1&lt;/code&gt; (int), &lt;code&gt;True&lt;/code&gt; (bool). Returns &lt;code&gt;False&lt;/code&gt; if the field is absent or its value is not in the true list.&lt;/p&gt;
&lt;p&gt;Example:&lt;/p&gt;
&lt;div class=&#34;hextra-code-block hx-relative hx-mt-6 first:hx-mt-0 hx-group/code&#34;&gt;

&lt;div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nt&#34;&gt;tasks&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;&lt;/span&gt;- &lt;span class=&#34;nt&#34;&gt;set_condition&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;l&#34;&gt;IS_ON, is_true, enabled]&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;&lt;/span&gt;- &lt;span class=&#34;nt&#34;&gt;field_set&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;l&#34;&gt;IS_ON, status, active]&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;hextra-code-copy-btn-container hx-opacity-0 hx-transition group-hover/code:hx-opacity-100 hx-flex hx-gap-1 hx-absolute hx-m-[11px] hx-right-0 hx-top-0&#34;&gt;
  &lt;button
    class=&#34;hextra-code-copy-btn hx-group/copybtn hx-transition-all active:hx-opacity-50 hx-bg-primary-700/5 hx-border hx-border-black/5 hx-text-gray-600 hover:hx-text-gray-900 hx-rounded-md hx-p-1.5 dark:hx-bg-primary-300/10 dark:hx-border-white/10 dark:hx-text-gray-400 dark:hover:hx-text-gray-50&#34;
    title=&#34;Copy code&#34;
  &gt;
    &lt;div class=&#34;copy-icon group-[.copied]/copybtn:hx-hidden hx-pointer-events-none hx-h-4 hx-w-4&#34;&gt;&lt;/div&gt;
    &lt;div class=&#34;success-icon hx-hidden group-[.copied]/copybtn:hx-block hx-pointer-events-none hx-h-4 hx-w-4&#34;&gt;&lt;/div&gt;
  &lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h2&gt;is_false&lt;span class=&#34;hx-absolute -hx-mt-20&#34; id=&#34;is_false&#34;&gt;&lt;/span&gt;
    &lt;a href=&#34;#is_false&#34; class=&#34;subheading-anchor&#34; aria-label=&#34;Permalink for this section&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&lt;pre&gt;&lt;code&gt;set_condition: [COND, is_false, field]
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Returns &lt;code&gt;True&lt;/code&gt; if &lt;code&gt;field&lt;/code&gt; exists and its value is &lt;strong&gt;not&lt;/strong&gt; in the boolean true list (i.e. falsy: &lt;code&gt;false&lt;/code&gt;, &lt;code&gt;no&lt;/code&gt;, &lt;code&gt;0&lt;/code&gt;, empty string, etc.). Returns &lt;code&gt;False&lt;/code&gt; if the field is absent.&lt;/p&gt;
&lt;p&gt;Example:&lt;/p&gt;
&lt;div class=&#34;hextra-code-block hx-relative hx-mt-6 first:hx-mt-0 hx-group/code&#34;&gt;

&lt;div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nt&#34;&gt;tasks&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;&lt;/span&gt;- &lt;span class=&#34;nt&#34;&gt;set_condition&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;l&#34;&gt;IS_OFF, is_false, enabled]&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;&lt;/span&gt;- &lt;span class=&#34;nt&#34;&gt;field_set&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;l&#34;&gt;IS_OFF, status, inactive]&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;hextra-code-copy-btn-container hx-opacity-0 hx-transition group-hover/code:hx-opacity-100 hx-flex hx-gap-1 hx-absolute hx-m-[11px] hx-right-0 hx-top-0&#34;&gt;
  &lt;button
    class=&#34;hextra-code-copy-btn hx-group/copybtn hx-transition-all active:hx-opacity-50 hx-bg-primary-700/5 hx-border hx-border-black/5 hx-text-gray-600 hover:hx-text-gray-900 hx-rounded-md hx-p-1.5 dark:hx-bg-primary-300/10 dark:hx-border-white/10 dark:hx-text-gray-400 dark:hover:hx-text-gray-50&#34;
    title=&#34;Copy code&#34;
  &gt;
    &lt;div class=&#34;copy-icon group-[.copied]/copybtn:hx-hidden hx-pointer-events-none hx-h-4 hx-w-4&#34;&gt;&lt;/div&gt;
    &lt;div class=&#34;success-icon hx-hidden group-[.copied]/copybtn:hx-block hx-pointer-events-none hx-h-4 hx-w-4&#34;&gt;&lt;/div&gt;
  &lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h2&gt;is_int&lt;span class=&#34;hx-absolute -hx-mt-20&#34; id=&#34;is_int&#34;&gt;&lt;/span&gt;
    &lt;a href=&#34;#is_int&#34; class=&#34;subheading-anchor&#34; aria-label=&#34;Permalink for this section&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&lt;pre&gt;&lt;code&gt;set_condition: [COND, is_int, field]
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Returns &lt;code&gt;True&lt;/code&gt; if &lt;code&gt;field&lt;/code&gt; exists and its value can be parsed as an integer. Returns &lt;code&gt;False&lt;/code&gt; if the field is absent or the value is not a valid integer (e.g. floats, strings).&lt;/p&gt;
&lt;p&gt;Example:&lt;/p&gt;
&lt;div class=&#34;hextra-code-block hx-relative hx-mt-6 first:hx-mt-0 hx-group/code&#34;&gt;

&lt;div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nt&#34;&gt;tasks&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;&lt;/span&gt;- &lt;span class=&#34;nt&#34;&gt;set_condition&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;l&#34;&gt;VALID, is_int, count]&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;&lt;/span&gt;- &lt;span class=&#34;nt&#34;&gt;field_set&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;!&lt;span class=&#34;l&#34;&gt;VALID, status, error]&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;hextra-code-copy-btn-container hx-opacity-0 hx-transition group-hover/code:hx-opacity-100 hx-flex hx-gap-1 hx-absolute hx-m-[11px] hx-right-0 hx-top-0&#34;&gt;
  &lt;button
    class=&#34;hextra-code-copy-btn hx-group/copybtn hx-transition-all active:hx-opacity-50 hx-bg-primary-700/5 hx-border hx-border-black/5 hx-text-gray-600 hover:hx-text-gray-900 hx-rounded-md hx-p-1.5 dark:hx-bg-primary-300/10 dark:hx-border-white/10 dark:hx-text-gray-400 dark:hover:hx-text-gray-50&#34;
    title=&#34;Copy code&#34;
  &gt;
    &lt;div class=&#34;copy-icon group-[.copied]/copybtn:hx-hidden hx-pointer-events-none hx-h-4 hx-w-4&#34;&gt;&lt;/div&gt;
    &lt;div class=&#34;success-icon hx-hidden group-[.copied]/copybtn:hx-block hx-pointer-events-none hx-h-4 hx-w-4&#34;&gt;&lt;/div&gt;
  &lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h2&gt;is_float&lt;span class=&#34;hx-absolute -hx-mt-20&#34; id=&#34;is_float&#34;&gt;&lt;/span&gt;
    &lt;a href=&#34;#is_float&#34; class=&#34;subheading-anchor&#34; aria-label=&#34;Permalink for this section&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&lt;pre&gt;&lt;code&gt;set_condition: [COND, is_float, field]
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Returns &lt;code&gt;True&lt;/code&gt; if &lt;code&gt;field&lt;/code&gt; exists and its value can be parsed as a float (integers are also valid floats). Returns &lt;code&gt;False&lt;/code&gt; if the field is absent or the value is not numeric.&lt;/p&gt;
&lt;p&gt;Example:&lt;/p&gt;
&lt;div class=&#34;hextra-code-block hx-relative hx-mt-6 first:hx-mt-0 hx-group/code&#34;&gt;

&lt;div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nt&#34;&gt;tasks&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;&lt;/span&gt;- &lt;span class=&#34;nt&#34;&gt;set_condition&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;l&#34;&gt;VALID, is_float, price]&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;&lt;/span&gt;- &lt;span class=&#34;nt&#34;&gt;field_set&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;!&lt;span class=&#34;l&#34;&gt;VALID, status, error]&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;hextra-code-copy-btn-container hx-opacity-0 hx-transition group-hover/code:hx-opacity-100 hx-flex hx-gap-1 hx-absolute hx-m-[11px] hx-right-0 hx-top-0&#34;&gt;
  &lt;button
    class=&#34;hextra-code-copy-btn hx-group/copybtn hx-transition-all active:hx-opacity-50 hx-bg-primary-700/5 hx-border hx-border-black/5 hx-text-gray-600 hover:hx-text-gray-900 hx-rounded-md hx-p-1.5 dark:hx-bg-primary-300/10 dark:hx-border-white/10 dark:hx-text-gray-400 dark:hover:hx-text-gray-50&#34;
    title=&#34;Copy code&#34;
  &gt;
    &lt;div class=&#34;copy-icon group-[.copied]/copybtn:hx-hidden hx-pointer-events-none hx-h-4 hx-w-4&#34;&gt;&lt;/div&gt;
    &lt;div class=&#34;success-icon hx-hidden group-[.copied]/copybtn:hx-block hx-pointer-events-none hx-h-4 hx-w-4&#34;&gt;&lt;/div&gt;
  &lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h2&gt;is_boolean&lt;span class=&#34;hx-absolute -hx-mt-20&#34; id=&#34;is_boolean&#34;&gt;&lt;/span&gt;
    &lt;a href=&#34;#is_boolean&#34; class=&#34;subheading-anchor&#34; aria-label=&#34;Permalink for this section&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&lt;pre&gt;&lt;code&gt;set_condition: [COND, is_boolean, field]
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Returns &lt;code&gt;True&lt;/code&gt; if &lt;code&gt;field&lt;/code&gt; exists and its value is a recognized boolean string or value: &lt;code&gt;true&lt;/code&gt;, &lt;code&gt;True&lt;/code&gt;, &lt;code&gt;TRUE&lt;/code&gt;, &lt;code&gt;false&lt;/code&gt;, &lt;code&gt;False&lt;/code&gt;, &lt;code&gt;FALSE&lt;/code&gt;, &lt;code&gt;yes&lt;/code&gt;, &lt;code&gt;Yes&lt;/code&gt;, &lt;code&gt;YES&lt;/code&gt;, &lt;code&gt;no&lt;/code&gt;, &lt;code&gt;No&lt;/code&gt;, &lt;code&gt;NO&lt;/code&gt;, &lt;code&gt;on&lt;/code&gt;, &lt;code&gt;On&lt;/code&gt;, &lt;code&gt;ON&lt;/code&gt;, &lt;code&gt;1&lt;/code&gt;, &lt;code&gt;0&lt;/code&gt;, &lt;code&gt;1&lt;/code&gt; (int), &lt;code&gt;0&lt;/code&gt; (int), &lt;code&gt;True&lt;/code&gt; (bool), &lt;code&gt;False&lt;/code&gt; (bool). Returns &lt;code&gt;False&lt;/code&gt; otherwise.&lt;/p&gt;
&lt;p&gt;Example:&lt;/p&gt;
&lt;div class=&#34;hextra-code-block hx-relative hx-mt-6 first:hx-mt-0 hx-group/code&#34;&gt;

&lt;div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nt&#34;&gt;tasks&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;&lt;/span&gt;- &lt;span class=&#34;nt&#34;&gt;set_condition&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;l&#34;&gt;VALID, is_boolean, enabled]&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;&lt;/span&gt;- &lt;span class=&#34;nt&#34;&gt;field_set&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;!&lt;span class=&#34;l&#34;&gt;VALID, status, error]&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;hextra-code-copy-btn-container hx-opacity-0 hx-transition group-hover/code:hx-opacity-100 hx-flex hx-gap-1 hx-absolute hx-m-[11px] hx-right-0 hx-top-0&#34;&gt;
  &lt;button
    class=&#34;hextra-code-copy-btn hx-group/copybtn hx-transition-all active:hx-opacity-50 hx-bg-primary-700/5 hx-border hx-border-black/5 hx-text-gray-600 hover:hx-text-gray-900 hx-rounded-md hx-p-1.5 dark:hx-bg-primary-300/10 dark:hx-border-white/10 dark:hx-text-gray-400 dark:hover:hx-text-gray-50&#34;
    title=&#34;Copy code&#34;
  &gt;
    &lt;div class=&#34;copy-icon group-[.copied]/copybtn:hx-hidden hx-pointer-events-none hx-h-4 hx-w-4&#34;&gt;&lt;/div&gt;
    &lt;div class=&#34;success-icon hx-hidden group-[.copied]/copybtn:hx-block hx-pointer-events-none hx-h-4 hx-w-4&#34;&gt;&lt;/div&gt;
  &lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h2&gt;is_date&lt;span class=&#34;hx-absolute -hx-mt-20&#34; id=&#34;is_date&#34;&gt;&lt;/span&gt;
    &lt;a href=&#34;#is_date&#34; class=&#34;subheading-anchor&#34; aria-label=&#34;Permalink for this section&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&lt;pre&gt;&lt;code&gt;set_condition: [COND, is_date, field]
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Returns &lt;code&gt;True&lt;/code&gt; if &lt;code&gt;field&lt;/code&gt; exists and its value matches the format &lt;code&gt;YYYY-MM-DD&lt;/code&gt;. Returns &lt;code&gt;False&lt;/code&gt; if the field is absent or the format does not match.&lt;/p&gt;
&lt;p&gt;Example:&lt;/p&gt;
&lt;div class=&#34;hextra-code-block hx-relative hx-mt-6 first:hx-mt-0 hx-group/code&#34;&gt;

&lt;div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nt&#34;&gt;tasks&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;&lt;/span&gt;- &lt;span class=&#34;nt&#34;&gt;set_condition&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;l&#34;&gt;VALID, is_date, start_date]&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;&lt;/span&gt;- &lt;span class=&#34;nt&#34;&gt;field_set&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;!&lt;span class=&#34;l&#34;&gt;VALID, status, error]&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;hextra-code-copy-btn-container hx-opacity-0 hx-transition group-hover/code:hx-opacity-100 hx-flex hx-gap-1 hx-absolute hx-m-[11px] hx-right-0 hx-top-0&#34;&gt;
  &lt;button
    class=&#34;hextra-code-copy-btn hx-group/copybtn hx-transition-all active:hx-opacity-50 hx-bg-primary-700/5 hx-border hx-border-black/5 hx-text-gray-600 hover:hx-text-gray-900 hx-rounded-md hx-p-1.5 dark:hx-bg-primary-300/10 dark:hx-border-white/10 dark:hx-text-gray-400 dark:hover:hx-text-gray-50&#34;
    title=&#34;Copy code&#34;
  &gt;
    &lt;div class=&#34;copy-icon group-[.copied]/copybtn:hx-hidden hx-pointer-events-none hx-h-4 hx-w-4&#34;&gt;&lt;/div&gt;
    &lt;div class=&#34;success-icon hx-hidden group-[.copied]/copybtn:hx-block hx-pointer-events-none hx-h-4 hx-w-4&#34;&gt;&lt;/div&gt;
  &lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h2&gt;is_time&lt;span class=&#34;hx-absolute -hx-mt-20&#34; id=&#34;is_time&#34;&gt;&lt;/span&gt;
    &lt;a href=&#34;#is_time&#34; class=&#34;subheading-anchor&#34; aria-label=&#34;Permalink for this section&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&lt;pre&gt;&lt;code&gt;set_condition: [COND, is_time, field]
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Returns &lt;code&gt;True&lt;/code&gt; if &lt;code&gt;field&lt;/code&gt; exists and its value matches the format &lt;code&gt;HH:MM:SS&lt;/code&gt;. Returns &lt;code&gt;False&lt;/code&gt; if the field is absent or the format does not match.&lt;/p&gt;
&lt;p&gt;Example:&lt;/p&gt;
&lt;div class=&#34;hextra-code-block hx-relative hx-mt-6 first:hx-mt-0 hx-group/code&#34;&gt;

&lt;div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nt&#34;&gt;tasks&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;&lt;/span&gt;- &lt;span class=&#34;nt&#34;&gt;set_condition&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;l&#34;&gt;VALID, is_time, start_time]&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;&lt;/span&gt;- &lt;span class=&#34;nt&#34;&gt;field_set&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;!&lt;span class=&#34;l&#34;&gt;VALID, status, error]&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;hextra-code-copy-btn-container hx-opacity-0 hx-transition group-hover/code:hx-opacity-100 hx-flex hx-gap-1 hx-absolute hx-m-[11px] hx-right-0 hx-top-0&#34;&gt;
  &lt;button
    class=&#34;hextra-code-copy-btn hx-group/copybtn hx-transition-all active:hx-opacity-50 hx-bg-primary-700/5 hx-border hx-border-black/5 hx-text-gray-600 hover:hx-text-gray-900 hx-rounded-md hx-p-1.5 dark:hx-bg-primary-300/10 dark:hx-border-white/10 dark:hx-text-gray-400 dark:hover:hx-text-gray-50&#34;
    title=&#34;Copy code&#34;
  &gt;
    &lt;div class=&#34;copy-icon group-[.copied]/copybtn:hx-hidden hx-pointer-events-none hx-h-4 hx-w-4&#34;&gt;&lt;/div&gt;
    &lt;div class=&#34;success-icon hx-hidden group-[.copied]/copybtn:hx-block hx-pointer-events-none hx-h-4 hx-w-4&#34;&gt;&lt;/div&gt;
  &lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h2&gt;is_datetime&lt;span class=&#34;hx-absolute -hx-mt-20&#34; id=&#34;is_datetime&#34;&gt;&lt;/span&gt;
    &lt;a href=&#34;#is_datetime&#34; class=&#34;subheading-anchor&#34; aria-label=&#34;Permalink for this section&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&lt;pre&gt;&lt;code&gt;set_condition: [COND, is_datetime, field]
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Returns &lt;code&gt;True&lt;/code&gt; if &lt;code&gt;field&lt;/code&gt; exists and its value matches the format &lt;code&gt;YYYY-MM-DD HH:MM:SS&lt;/code&gt;. Returns &lt;code&gt;False&lt;/code&gt; if the field is absent or the format does not match.&lt;/p&gt;
&lt;p&gt;Example:&lt;/p&gt;
&lt;div class=&#34;hextra-code-block hx-relative hx-mt-6 first:hx-mt-0 hx-group/code&#34;&gt;

&lt;div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nt&#34;&gt;tasks&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;&lt;/span&gt;- &lt;span class=&#34;nt&#34;&gt;set_condition&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;l&#34;&gt;VALID, is_datetime, last_sync]&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;&lt;/span&gt;- &lt;span class=&#34;nt&#34;&gt;field_set&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;!&lt;span class=&#34;l&#34;&gt;VALID, status, error]&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;hextra-code-copy-btn-container hx-opacity-0 hx-transition group-hover/code:hx-opacity-100 hx-flex hx-gap-1 hx-absolute hx-m-[11px] hx-right-0 hx-top-0&#34;&gt;
  &lt;button
    class=&#34;hextra-code-copy-btn hx-group/copybtn hx-transition-all active:hx-opacity-50 hx-bg-primary-700/5 hx-border hx-border-black/5 hx-text-gray-600 hover:hx-text-gray-900 hx-rounded-md hx-p-1.5 dark:hx-bg-primary-300/10 dark:hx-border-white/10 dark:hx-text-gray-400 dark:hover:hx-text-gray-50&#34;
    title=&#34;Copy code&#34;
  &gt;
    &lt;div class=&#34;copy-icon group-[.copied]/copybtn:hx-hidden hx-pointer-events-none hx-h-4 hx-w-4&#34;&gt;&lt;/div&gt;
    &lt;div class=&#34;success-icon hx-hidden group-[.copied]/copybtn:hx-block hx-pointer-events-none hx-h-4 hx-w-4&#34;&gt;&lt;/div&gt;
  &lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h2&gt;is_ip4&lt;span class=&#34;hx-absolute -hx-mt-20&#34; id=&#34;is_ip4&#34;&gt;&lt;/span&gt;
    &lt;a href=&#34;#is_ip4&#34; class=&#34;subheading-anchor&#34; aria-label=&#34;Permalink for this section&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&lt;pre&gt;&lt;code&gt;set_condition: [COND, is_ip4, field]
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Returns &lt;code&gt;True&lt;/code&gt; if &lt;code&gt;field&lt;/code&gt; exists and its value is a valid IPv4 address (&lt;code&gt;A.B.C.D&lt;/code&gt;, no mask). Returns &lt;code&gt;False&lt;/code&gt; if the field is absent, contains a subnet notation, or is otherwise invalid.&lt;/p&gt;
&lt;p&gt;Example:&lt;/p&gt;
&lt;div class=&#34;hextra-code-block hx-relative hx-mt-6 first:hx-mt-0 hx-group/code&#34;&gt;

&lt;div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nt&#34;&gt;tasks&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;&lt;/span&gt;- &lt;span class=&#34;nt&#34;&gt;set_condition&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;l&#34;&gt;VALID, is_ip4, ip_address]&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;&lt;/span&gt;- &lt;span class=&#34;nt&#34;&gt;field_set&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;!&lt;span class=&#34;l&#34;&gt;VALID, status, error]&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;hextra-code-copy-btn-container hx-opacity-0 hx-transition group-hover/code:hx-opacity-100 hx-flex hx-gap-1 hx-absolute hx-m-[11px] hx-right-0 hx-top-0&#34;&gt;
  &lt;button
    class=&#34;hextra-code-copy-btn hx-group/copybtn hx-transition-all active:hx-opacity-50 hx-bg-primary-700/5 hx-border hx-border-black/5 hx-text-gray-600 hover:hx-text-gray-900 hx-rounded-md hx-p-1.5 dark:hx-bg-primary-300/10 dark:hx-border-white/10 dark:hx-text-gray-400 dark:hover:hx-text-gray-50&#34;
    title=&#34;Copy code&#34;
  &gt;
    &lt;div class=&#34;copy-icon group-[.copied]/copybtn:hx-hidden hx-pointer-events-none hx-h-4 hx-w-4&#34;&gt;&lt;/div&gt;
    &lt;div class=&#34;success-icon hx-hidden group-[.copied]/copybtn:hx-block hx-pointer-events-none hx-h-4 hx-w-4&#34;&gt;&lt;/div&gt;
  &lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h2&gt;is_subnet&lt;span class=&#34;hx-absolute -hx-mt-20&#34; id=&#34;is_subnet&#34;&gt;&lt;/span&gt;
    &lt;a href=&#34;#is_subnet&#34; class=&#34;subheading-anchor&#34; aria-label=&#34;Permalink for this section&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&lt;pre&gt;&lt;code&gt;set_condition: [COND, is_subnet, field]
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Returns &lt;code&gt;True&lt;/code&gt; if &lt;code&gt;field&lt;/code&gt; exists and its value is a valid IPv4 subnet in CIDR notation (&lt;code&gt;A.B.C.D/N&lt;/code&gt;, mask 0–32). Returns &lt;code&gt;False&lt;/code&gt; if the field is absent, is a bare IP address, or has an invalid mask.&lt;/p&gt;
&lt;p&gt;Example:&lt;/p&gt;
&lt;div class=&#34;hextra-code-block hx-relative hx-mt-6 first:hx-mt-0 hx-group/code&#34;&gt;

&lt;div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nt&#34;&gt;tasks&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;&lt;/span&gt;- &lt;span class=&#34;nt&#34;&gt;set_condition&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;l&#34;&gt;VALID, is_subnet, network]&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;&lt;/span&gt;- &lt;span class=&#34;nt&#34;&gt;field_set&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;!&lt;span class=&#34;l&#34;&gt;VALID, status, error]&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;hextra-code-copy-btn-container hx-opacity-0 hx-transition group-hover/code:hx-opacity-100 hx-flex hx-gap-1 hx-absolute hx-m-[11px] hx-right-0 hx-top-0&#34;&gt;
  &lt;button
    class=&#34;hextra-code-copy-btn hx-group/copybtn hx-transition-all active:hx-opacity-50 hx-bg-primary-700/5 hx-border hx-border-black/5 hx-text-gray-600 hover:hx-text-gray-900 hx-rounded-md hx-p-1.5 dark:hx-bg-primary-300/10 dark:hx-border-white/10 dark:hx-text-gray-400 dark:hover:hx-text-gray-50&#34;
    title=&#34;Copy code&#34;
  &gt;
    &lt;div class=&#34;copy-icon group-[.copied]/copybtn:hx-hidden hx-pointer-events-none hx-h-4 hx-w-4&#34;&gt;&lt;/div&gt;
    &lt;div class=&#34;success-icon hx-hidden group-[.copied]/copybtn:hx-block hx-pointer-events-none hx-h-4 hx-w-4&#34;&gt;&lt;/div&gt;
  &lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;

      </description>
    </item>
    
    <item>
      <title>Transformation Primitives</title>
      <link>http://localhost:1313/docs/52pipeline/transformations/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>http://localhost:1313/docs/52pipeline/transformations/</guid>
      <description>
        
        
        &lt;p&gt;Transformation tasks modify the fields of each data entry.&lt;/p&gt;
&lt;p&gt;Syntax:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;- TASKNAME: [&amp;quot;[!]CONDITION&amp;quot;, &amp;quot;opt1&amp;quot;, &amp;quot;opt2&amp;quot;, ...]
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Use &lt;code&gt;&#39;&#39;&lt;/code&gt; as condition to always execute. Use &lt;code&gt;!COND&lt;/code&gt; to execute only when condition is False.&lt;/p&gt;
&lt;h2&gt;Quick reference&lt;span class=&#34;hx-absolute -hx-mt-20&#34; id=&#34;quick-reference&#34;&gt;&lt;/span&gt;
    &lt;a href=&#34;#quick-reference&#34; class=&#34;subheading-anchor&#34; aria-label=&#34;Permalink for this section&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&lt;div class=&#34;hextra-code-block hx-relative hx-mt-6 first:hx-mt-0 hx-group/code&#34;&gt;

&lt;div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;- &lt;span class=&#34;nt&#34;&gt;field_noop:         [COND]                                &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;do nothing&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;- &lt;span class=&#34;nt&#34;&gt;field_toint:        [COND, field1, ...]                   &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;convert fields to int&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;- &lt;span class=&#34;nt&#34;&gt;field_tofloat:      [COND, field1, ...]                   &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;convert fields to float&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;- &lt;span class=&#34;nt&#34;&gt;field_tostring:     [COND, field1, ...]                   &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;convert to string&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;- &lt;span class=&#34;nt&#34;&gt;field_nospace:      [COND, field1, ...]                   &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;remove all whitespaces from fields&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;- &lt;span class=&#34;nt&#34;&gt;field_regexp_sub:   [COND, field, &amp;#39;pattern&amp;#39;, &amp;#39;replace&amp;#39;]   &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;apply regexp/replace&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;- &lt;span class=&#34;nt&#34;&gt;field_set:          [COND, field, &amp;#39;value&amp;#39;]                &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;create field with value&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;- &lt;span class=&#34;nt&#34;&gt;field_copy:         [COND, field1, field2]                &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;field1 to field2&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;- &lt;span class=&#34;nt&#34;&gt;field_rename:       [COND, field1, field2]                &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;field1 to field2&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;- &lt;span class=&#34;nt&#34;&gt;field_merge:        [COND, field1, field2, field3]        &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;field1 + field2 &amp;gt; field3&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;- &lt;span class=&#34;nt&#34;&gt;field_delete:       [COND, field1, field2, ...]           &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;remove fields&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;- &lt;span class=&#34;nt&#34;&gt;field_keep:         [COND, field1, field2, ...]           &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;keep only these fields (and classname/keyname)&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;- &lt;span class=&#34;nt&#34;&gt;field_lower:        [COND, field1, ...]                   &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;lowercase&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;- &lt;span class=&#34;nt&#34;&gt;field_upper:        [COND, field1, ...]                   &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;uppercase&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;- &lt;span class=&#34;nt&#34;&gt;field_date_now:     [COND, field1, ...]                   &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;set field(s) to YYYY-MM-DD&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;- &lt;span class=&#34;nt&#34;&gt;field_time_now:     [COND, field1, ...]                   &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;set field(s) to HH:MM:SS&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;- &lt;span class=&#34;nt&#34;&gt;field_datetime_now: [COND, field1, ...]                   &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;set field(s) to YYYY-MM-DD HH:MM:SS&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;- &lt;span class=&#34;nt&#34;&gt;field_uuid:         [COND, field1, ...]                   &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;set field(s) to random UUID string (distinct)&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;- &lt;span class=&#34;nt&#34;&gt;field_append:       [COND, field, &amp;#39;suffix&amp;#39;]               &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;append a suffix to field&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;- &lt;span class=&#34;nt&#34;&gt;field_prepend:      [COND, field, &amp;#39;prefix&amp;#39;]               &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;prefix field with prefix string&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;- &lt;span class=&#34;nt&#34;&gt;field_md5:          [COND, dst, src1, src2, ...]          &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;dst = md5(concat(src1, src2, ...))&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;- &lt;span class=&#34;nt&#34;&gt;field_join:         [COND, sep, dst_field, src1, src2, ...]&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;join fields with separator&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;- &lt;span class=&#34;nt&#34;&gt;field_datetime:     [COND, target, source, delta]         &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;compute datetime into target field&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;- &lt;span class=&#34;nt&#34;&gt;field_lookup:       [COND, dstfield, schemaname, srcfield]&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;lookup entry by keyname, set dstfield or &amp;#34;&amp;#34;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;- &lt;span class=&#34;nt&#34;&gt;align_subnet4:      [COND, field]                         &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;align IPv4/mask to subnet boundaries&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;- &lt;span class=&#34;nt&#34;&gt;discard:            [COND]                                &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;eliminate full entry&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;- &lt;span class=&#34;nt&#34;&gt;exit:               [COND, &amp;#39;status&amp;#39;]                      &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;stop processing tasks, keep entry&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;hextra-code-copy-btn-container hx-opacity-0 hx-transition group-hover/code:hx-opacity-100 hx-flex hx-gap-1 hx-absolute hx-m-[11px] hx-right-0 hx-top-0&#34;&gt;
  &lt;button
    class=&#34;hextra-code-copy-btn hx-group/copybtn hx-transition-all active:hx-opacity-50 hx-bg-primary-700/5 hx-border hx-border-black/5 hx-text-gray-600 hover:hx-text-gray-900 hx-rounded-md hx-p-1.5 dark:hx-bg-primary-300/10 dark:hx-border-white/10 dark:hx-text-gray-400 dark:hover:hx-text-gray-50&#34;
    title=&#34;Copy code&#34;
  &gt;
    &lt;div class=&#34;copy-icon group-[.copied]/copybtn:hx-hidden hx-pointer-events-none hx-h-4 hx-w-4&#34;&gt;&lt;/div&gt;
    &lt;div class=&#34;success-icon hx-hidden group-[.copied]/copybtn:hx-block hx-pointer-events-none hx-h-4 hx-w-4&#34;&gt;&lt;/div&gt;
  &lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h2&gt;field_noop&lt;span class=&#34;hx-absolute -hx-mt-20&#34; id=&#34;field_noop&#34;&gt;&lt;/span&gt;
    &lt;a href=&#34;#field_noop&#34; class=&#34;subheading-anchor&#34; aria-label=&#34;Permalink for this section&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&lt;pre&gt;&lt;code&gt;tasks:
- field_noop: [CONDITION]
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Performs nothing. Useful as a placeholder or for testing conditions.&lt;/p&gt;
&lt;h2&gt;field_set&lt;span class=&#34;hx-absolute -hx-mt-20&#34; id=&#34;field_set&#34;&gt;&lt;/span&gt;
    &lt;a href=&#34;#field_set&#34; class=&#34;subheading-anchor&#34; aria-label=&#34;Permalink for this section&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&lt;pre&gt;&lt;code&gt;tasks:
- field_set: [CONDITION, &amp;quot;fieldname&amp;quot;, &amp;quot;AnyValue&amp;quot;]
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Creates or overwrites &lt;code&gt;fieldname&lt;/code&gt; and sets its value.&lt;/p&gt;
&lt;h2&gt;field_copy&lt;span class=&#34;hx-absolute -hx-mt-20&#34; id=&#34;field_copy&#34;&gt;&lt;/span&gt;
    &lt;a href=&#34;#field_copy&#34; class=&#34;subheading-anchor&#34; aria-label=&#34;Permalink for this section&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&lt;pre&gt;&lt;code&gt;tasks:
- field_copy: [CONDITION, &amp;quot;field1&amp;quot;, &amp;quot;field2&amp;quot;]
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Creates/overwrites &lt;code&gt;field2&lt;/code&gt; with the value of &lt;code&gt;field1&lt;/code&gt;.&lt;/p&gt;
&lt;h2&gt;field_rename&lt;span class=&#34;hx-absolute -hx-mt-20&#34; id=&#34;field_rename&#34;&gt;&lt;/span&gt;
    &lt;a href=&#34;#field_rename&#34; class=&#34;subheading-anchor&#34; aria-label=&#34;Permalink for this section&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&lt;pre&gt;&lt;code&gt;tasks:
- field_rename: [CONDITION, &amp;quot;field1&amp;quot;, &amp;quot;field2&amp;quot;]
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Renames &lt;code&gt;field1&lt;/code&gt; to &lt;code&gt;field2&lt;/code&gt;. Creates/overwrites &lt;code&gt;field2&lt;/code&gt; with &lt;code&gt;field1&lt;/code&gt;&amp;rsquo;s value and removes &lt;code&gt;field1&lt;/code&gt;.&lt;/p&gt;
&lt;h2&gt;field_delete&lt;span class=&#34;hx-absolute -hx-mt-20&#34; id=&#34;field_delete&#34;&gt;&lt;/span&gt;
    &lt;a href=&#34;#field_delete&#34; class=&#34;subheading-anchor&#34; aria-label=&#34;Permalink for this section&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&lt;pre&gt;&lt;code&gt;tasks:
- field_delete: [CONDITION, &amp;quot;field1&amp;quot;, &amp;quot;field2&amp;quot;, ...]
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Removes all specified fields.&lt;/p&gt;
&lt;h2&gt;field_keep&lt;span class=&#34;hx-absolute -hx-mt-20&#34; id=&#34;field_keep&#34;&gt;&lt;/span&gt;
    &lt;a href=&#34;#field_keep&#34; class=&#34;subheading-anchor&#34; aria-label=&#34;Permalink for this section&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&lt;pre&gt;&lt;code&gt;tasks:
- field_keep: [CONDITION, &amp;quot;field1&amp;quot;, &amp;quot;field2&amp;quot;, ...]
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Keeps provided fields &lt;strong&gt;only&lt;/strong&gt;. Removes all other fields (except &lt;code&gt;classname&lt;/code&gt; and &lt;code&gt;keyname&lt;/code&gt;).&lt;/p&gt;
&lt;h2&gt;field_lower&lt;span class=&#34;hx-absolute -hx-mt-20&#34; id=&#34;field_lower&#34;&gt;&lt;/span&gt;
    &lt;a href=&#34;#field_lower&#34; class=&#34;subheading-anchor&#34; aria-label=&#34;Permalink for this section&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&lt;pre&gt;&lt;code&gt;tasks:
- field_lower: [CONDITION, &amp;quot;field&amp;quot;, &amp;quot;field&amp;quot;, ...]
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Converts field value(s) to lowercase.&lt;/p&gt;
&lt;h2&gt;field_upper&lt;span class=&#34;hx-absolute -hx-mt-20&#34; id=&#34;field_upper&#34;&gt;&lt;/span&gt;
    &lt;a href=&#34;#field_upper&#34; class=&#34;subheading-anchor&#34; aria-label=&#34;Permalink for this section&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&lt;pre&gt;&lt;code&gt;tasks:
- field_upper: [CONDITION, &amp;quot;field&amp;quot;, &amp;quot;field&amp;quot;, ...]
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Converts field value(s) to uppercase.&lt;/p&gt;
&lt;h2&gt;field_toint&lt;span class=&#34;hx-absolute -hx-mt-20&#34; id=&#34;field_toint&#34;&gt;&lt;/span&gt;
    &lt;a href=&#34;#field_toint&#34; class=&#34;subheading-anchor&#34; aria-label=&#34;Permalink for this section&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&lt;pre&gt;&lt;code&gt;tasks:
- field_toint: [CONDITION, &amp;quot;field&amp;quot;, &amp;quot;field&amp;quot;, ...]
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Converts a field&amp;rsquo;s value to integer.&lt;/p&gt;
&lt;h2&gt;field_tofloat&lt;span class=&#34;hx-absolute -hx-mt-20&#34; id=&#34;field_tofloat&#34;&gt;&lt;/span&gt;
    &lt;a href=&#34;#field_tofloat&#34; class=&#34;subheading-anchor&#34; aria-label=&#34;Permalink for this section&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&lt;pre&gt;&lt;code&gt;tasks:
- field_tofloat: [CONDITION, &amp;quot;field&amp;quot;, &amp;quot;field&amp;quot;, ...]
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Converts a field&amp;rsquo;s value to floating point value.&lt;/p&gt;
&lt;h2&gt;field_tostring&lt;span class=&#34;hx-absolute -hx-mt-20&#34; id=&#34;field_tostring&#34;&gt;&lt;/span&gt;
    &lt;a href=&#34;#field_tostring&#34; class=&#34;subheading-anchor&#34; aria-label=&#34;Permalink for this section&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&lt;pre&gt;&lt;code&gt;tasks:
- field_tostring: [CONDITION, &amp;quot;field&amp;quot;, &amp;quot;field&amp;quot;, ...]
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Converts a field&amp;rsquo;s value to a string.&lt;/p&gt;
&lt;h2&gt;field_nospace&lt;span class=&#34;hx-absolute -hx-mt-20&#34; id=&#34;field_nospace&#34;&gt;&lt;/span&gt;
    &lt;a href=&#34;#field_nospace&#34; class=&#34;subheading-anchor&#34; aria-label=&#34;Permalink for this section&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&lt;pre&gt;&lt;code&gt;tasks:
- field_nospace: [CONDITION, &amp;quot;field&amp;quot;, &amp;quot;field&amp;quot;, ...]
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Removes all whitespace and tab characters from field values. Faster than a general regexp task.&lt;/p&gt;
&lt;h2&gt;field_regexp_sub&lt;span class=&#34;hx-absolute -hx-mt-20&#34; id=&#34;field_regexp_sub&#34;&gt;&lt;/span&gt;
    &lt;a href=&#34;#field_regexp_sub&#34; class=&#34;subheading-anchor&#34; aria-label=&#34;Permalink for this section&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&lt;pre&gt;&lt;code&gt;tasks:
- field_regexp_sub: [CONDITION, &amp;quot;fieldname&amp;quot;, &amp;quot;pattern&amp;quot;, &amp;quot;replace&amp;quot;]
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Alters &lt;code&gt;fieldname&lt;/code&gt;&amp;rsquo;s value by replacing a regexp pattern with the provided replacement. Accepts any Python standard regexp.&lt;/p&gt;
&lt;p&gt;Example:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;tasks:
- field_regexp_sub: [&#39;&#39;, &#39;field_a&#39;, &#39;test&#39;, &#39;QWERTY&#39;]

# Before : {&#39;field_a&#39;: &#39;This is a test from unittest !&#39;}
# After  : {&#39;field_a&#39;: &#39;This is a QWERTY from unitQWERTY !&#39;}
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;field_merge&lt;span class=&#34;hx-absolute -hx-mt-20&#34; id=&#34;field_merge&#34;&gt;&lt;/span&gt;
    &lt;a href=&#34;#field_merge&#34; class=&#34;subheading-anchor&#34; aria-label=&#34;Permalink for this section&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&lt;pre&gt;&lt;code&gt;tasks:
- field_merge: [CONDITION, &#39;field1&#39;, &#39;field2&#39;, &#39;field3&#39;]
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Concatenates &lt;code&gt;field1&lt;/code&gt; and &lt;code&gt;field2&lt;/code&gt; into new &lt;code&gt;field3&lt;/code&gt; (overwrites if already exists).&lt;/p&gt;
&lt;p&gt;If field values are numerical, a mathematical addition is performed. If they are strings, string concatenation is performed.&lt;/p&gt;
&lt;p&gt;Use &lt;code&gt;field_toint&lt;/code&gt; / &lt;code&gt;field_tofloat&lt;/code&gt; / &lt;code&gt;field_tostring&lt;/code&gt; to handle type conversions beforehand.&lt;/p&gt;
&lt;h2&gt;field_prepend&lt;span class=&#34;hx-absolute -hx-mt-20&#34; id=&#34;field_prepend&#34;&gt;&lt;/span&gt;
    &lt;a href=&#34;#field_prepend&#34; class=&#34;subheading-anchor&#34; aria-label=&#34;Permalink for this section&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&lt;pre&gt;&lt;code&gt;tasks:
- field_prepend: [CONDITION, &#39;field1&#39;, &#39;prefix&#39;]
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Puts the &lt;code&gt;prefix&lt;/code&gt; string in front of &lt;code&gt;field1&lt;/code&gt;&amp;rsquo;s value.&lt;/p&gt;
&lt;h2&gt;field_append&lt;span class=&#34;hx-absolute -hx-mt-20&#34; id=&#34;field_append&#34;&gt;&lt;/span&gt;
    &lt;a href=&#34;#field_append&#34; class=&#34;subheading-anchor&#34; aria-label=&#34;Permalink for this section&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&lt;pre&gt;&lt;code&gt;tasks:
- field_append: [CONDITION, &#39;field1&#39;, &#39;suffix&#39;]
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Puts the &lt;code&gt;suffix&lt;/code&gt; string at the end of &lt;code&gt;field1&lt;/code&gt;&amp;rsquo;s value.&lt;/p&gt;
&lt;h2&gt;field_date_now&lt;span class=&#34;hx-absolute -hx-mt-20&#34; id=&#34;field_date_now&#34;&gt;&lt;/span&gt;
    &lt;a href=&#34;#field_date_now&#34; class=&#34;subheading-anchor&#34; aria-label=&#34;Permalink for this section&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&lt;pre&gt;&lt;code&gt;tasks:
- field_date_now: [CONDITION, &amp;quot;field&amp;quot;, &amp;quot;field&amp;quot;, ...]
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Sets field(s) to the current date in &lt;code&gt;YYYY-MM-DD&lt;/code&gt; format.&lt;/p&gt;
&lt;p&gt;Useful for automated or periodic imports to track in-sync/out-of-sync objects.&lt;/p&gt;
&lt;h2&gt;field_time_now&lt;span class=&#34;hx-absolute -hx-mt-20&#34; id=&#34;field_time_now&#34;&gt;&lt;/span&gt;
    &lt;a href=&#34;#field_time_now&#34; class=&#34;subheading-anchor&#34; aria-label=&#34;Permalink for this section&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&lt;pre&gt;&lt;code&gt;tasks:
- field_time_now: [CONDITION, &amp;quot;field&amp;quot;, &amp;quot;field&amp;quot;, ...]
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Sets field(s) to the current time in &lt;code&gt;HH:MM:SS&lt;/code&gt; format.&lt;/p&gt;
&lt;h2&gt;field_datetime_now&lt;span class=&#34;hx-absolute -hx-mt-20&#34; id=&#34;field_datetime_now&#34;&gt;&lt;/span&gt;
    &lt;a href=&#34;#field_datetime_now&#34; class=&#34;subheading-anchor&#34; aria-label=&#34;Permalink for this section&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&lt;pre&gt;&lt;code&gt;tasks:
- field_datetime_now: [CONDITION, &amp;quot;field&amp;quot;, &amp;quot;field&amp;quot;, ...]
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Sets field(s) to the current datetime in &lt;code&gt;YYYY-MM-DD HH:MM:SS&lt;/code&gt; format.&lt;/p&gt;
&lt;h2&gt;field_uuid&lt;span class=&#34;hx-absolute -hx-mt-20&#34; id=&#34;field_uuid&#34;&gt;&lt;/span&gt;
    &lt;a href=&#34;#field_uuid&#34; class=&#34;subheading-anchor&#34; aria-label=&#34;Permalink for this section&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&lt;pre&gt;&lt;code&gt;tasks:
- field_uuid: [CONDITION, &amp;quot;field&amp;quot;, &amp;quot;field&amp;quot;, ...]
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Creates/overwrites field(s) with a random UUID string. Each field receives a distinct UUID.&lt;/p&gt;
&lt;p&gt;Use &lt;code&gt;field_copy&lt;/code&gt; if the same UUID is needed in multiple fields.&lt;/p&gt;
&lt;p&gt;See &lt;code&gt;field_md5&lt;/code&gt; for a deterministic primary key.&lt;/p&gt;
&lt;h2&gt;field_md5&lt;span class=&#34;hx-absolute -hx-mt-20&#34; id=&#34;field_md5&#34;&gt;&lt;/span&gt;
    &lt;a href=&#34;#field_md5&#34; class=&#34;subheading-anchor&#34; aria-label=&#34;Permalink for this section&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;new v3.24&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;tasks:
- field_md5: [CONDITION, dst, src1, src2, ...]
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Computes md5 of the concatenated values of &lt;code&gt;src*&lt;/code&gt; fields and stores the result in &lt;code&gt;dst&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;If any source field is missing, no md5 is computed and &lt;code&gt;dst&lt;/code&gt; is not created.&lt;/p&gt;
&lt;p&gt;Useful for creating a deterministic primary key by combining multiple fields.&lt;/p&gt;
&lt;h2&gt;field_join&lt;span class=&#34;hx-absolute -hx-mt-20&#34; id=&#34;field_join&#34;&gt;&lt;/span&gt;
    &lt;a href=&#34;#field_join&#34; class=&#34;subheading-anchor&#34; aria-label=&#34;Permalink for this section&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;new v3.24&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;tasks:
- field_join: [CONDITION, separator, dst_field, src1, src2, src3, ...]
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Joins multiple source fields into a destination field using a separator (similar to Python&amp;rsquo;s &lt;code&gt;str.join()&lt;/code&gt;). All values are converted to strings.&lt;/p&gt;
&lt;p&gt;Example:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;tasks:
- field_join: [&#39;&#39;, &#39;-&#39;, &#39;result&#39;, &#39;field1&#39;, &#39;field2&#39;]

# Before : {&#39;field1&#39;: &#39;hello&#39;, &#39;field2&#39;: &#39;world&#39;}
# After  : {&#39;field1&#39;: &#39;hello&#39;, &#39;field2&#39;: &#39;world&#39;, &#39;result&#39;: &#39;hello-world&#39;}

- field_join: [&#39;&#39;, &#39; &#39;, &#39;fullname&#39;, &#39;firstname&#39;, &#39;lastname&#39;]

# Before : {&#39;firstname&#39;: &#39;John&#39;, &#39;lastname&#39;: &#39;Doe&#39;}
# After  : {&#39;firstname&#39;: &#39;John&#39;, &#39;lastname&#39;: &#39;Doe&#39;, &#39;fullname&#39;: &#39;John Doe&#39;}
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;field_datetime&lt;span class=&#34;hx-absolute -hx-mt-20&#34; id=&#34;field_datetime&#34;&gt;&lt;/span&gt;
    &lt;a href=&#34;#field_datetime&#34; class=&#34;subheading-anchor&#34; aria-label=&#34;Permalink for this section&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;new v3.33&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;tasks:
- field_datetime: [CONDITION, target_field, source, delta]
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Computes a datetime value and stores it in &lt;code&gt;target_field&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;source&lt;/strong&gt; (required): one of:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;now()&lt;/code&gt; — current local datetime&lt;/li&gt;
&lt;li&gt;a field name present in the entry — its value is parsed as a datetime&lt;/li&gt;
&lt;li&gt;a datetime string in ISO format &lt;code&gt;YYYY-MM-DD HH:MM:SS&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;delta&lt;/strong&gt; (optional): a duration to add or subtract, in the form &lt;code&gt;[+-]&amp;lt;int&amp;gt;&amp;lt;unit&amp;gt;&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Supported units: &lt;code&gt;second&lt;/code&gt;, &lt;code&gt;minute&lt;/code&gt;, &lt;code&gt;hour&lt;/code&gt;, &lt;code&gt;day&lt;/code&gt;, &lt;code&gt;week&lt;/code&gt;, &lt;code&gt;month&lt;/code&gt;, &lt;code&gt;year&lt;/code&gt; (plural form also accepted).&lt;/p&gt;
&lt;p&gt;&lt;code&gt;delta&lt;/code&gt; can also be the name of a field whose value contains the delta string.&lt;/p&gt;
&lt;p&gt;Output format: &lt;code&gt;YYYY-MM-DD HH:MM:SS&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;If source cannot be resolved or parsed, the target field is not set.&lt;/p&gt;
&lt;p&gt;Examples:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;tasks:
# set result to current datetime
- field_datetime: [&#39;&#39;, result, &#39;now()&#39;]

# set expiry to start + 30 days
- field_datetime: [&#39;&#39;, expiry, start, &#39;+30day&#39;]

# subtract 3 months from a fixed date
- field_datetime: [&#39;&#39;, result, &#39;2025-06-01 00:00:00&#39;, &#39;-3month&#39;]

# use a field as both source and delta
- field_datetime: [&#39;&#39;, result, last_sync, retention_delay]
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;field_lookup&lt;span class=&#34;hx-absolute -hx-mt-20&#34; id=&#34;field_lookup&#34;&gt;&lt;/span&gt;
    &lt;a href=&#34;#field_lookup&#34; class=&#34;subheading-anchor&#34; aria-label=&#34;Permalink for this section&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;new v3.33&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;tasks:
- field_lookup: [CONDITION, dstfield, schema_name, srcfield]
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Looks up an entry in &lt;code&gt;schema_name&lt;/code&gt; using the value of &lt;code&gt;srcfield&lt;/code&gt; as the keyname. Sets &lt;code&gt;dstfield&lt;/code&gt; to the keyname of the found entry, or to &lt;code&gt;&amp;quot;&amp;quot;&lt;/code&gt; if no match is found.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;schema_name&lt;/strong&gt; can be:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;_user&lt;/code&gt; — looks up a user by &lt;code&gt;login&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;_group&lt;/code&gt; — looks up a group by &lt;code&gt;keyname&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;_role&lt;/code&gt; — looks up a role by &lt;code&gt;keyname&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;_permission&lt;/code&gt; — looks up a permission by &lt;code&gt;keyname&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;any other schema name — looks up a &lt;code&gt;DataInstance&lt;/code&gt; by &lt;code&gt;keyname&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Useful for validating references and resolving canonical keynames from external data.&lt;/p&gt;
&lt;p&gt;Examples:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;tasks:
# Check that a username from an import exists as a Cavaliba user
- field_lookup: [&#39;&#39;, resolved_user, _user, raw_login]

# Before : {&#39;raw_login&#39;: &#39;alice&#39;}
# After  : {&#39;raw_login&#39;: &#39;alice&#39;, &#39;resolved_user&#39;: &#39;alice&#39;}   (if alice exists)
# After  : {&#39;raw_login&#39;: &#39;nobody&#39;, &#39;resolved_user&#39;: &#39;&#39;}       (if not found)

# Resolve a server from an external dataset
- field_lookup: [&#39;&#39;, server, myserver_schema, server_name]
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;align_subnet4&lt;span class=&#34;hx-absolute -hx-mt-20&#34; id=&#34;align_subnet4&#34;&gt;&lt;/span&gt;
    &lt;a href=&#34;#align_subnet4&#34; class=&#34;subheading-anchor&#34; aria-label=&#34;Permalink for this section&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;new v3.24&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;tasks:
- align_subnet4: [CONDITION, fieldname]
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Aligns an IPv4 address/mask to subnet boundaries. Transforms an IP address with prefix length to the network address with the same prefix length.&lt;/p&gt;
&lt;p&gt;Example:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;tasks:
- align_subnet4: [&#39;&#39;, subnet_field]

# Before : {&#39;subnet_field&#39;: &#39;10.1.1.1/24&#39;}
# After  : {&#39;subnet_field&#39;: &#39;10.1.1.0/24&#39;}

# Before : {&#39;subnet_field&#39;: &#39;192.168.50.100/16&#39;}
# After  : {&#39;subnet_field&#39;: &#39;192.168.0.0/16&#39;}
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;discard&lt;span class=&#34;hx-absolute -hx-mt-20&#34; id=&#34;discard&#34;&gt;&lt;/span&gt;
    &lt;a href=&#34;#discard&#34; class=&#34;subheading-anchor&#34; aria-label=&#34;Permalink for this section&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&lt;pre&gt;&lt;code&gt;tasks:
- discard: [CONDITION]
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Eliminates the full entry. The entry is not written to the database.&lt;/p&gt;
&lt;h2&gt;exit&lt;span class=&#34;hx-absolute -hx-mt-20&#34; id=&#34;exit&#34;&gt;&lt;/span&gt;
    &lt;a href=&#34;#exit&#34; class=&#34;subheading-anchor&#34; aria-label=&#34;Permalink for this section&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;new v3.33&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;tasks:
- exit: [CONDITION, status]
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Stops processing remaining tasks for the current entry. The entry is kept (not discarded).&lt;/p&gt;
&lt;p&gt;The optional &lt;code&gt;status&lt;/code&gt; parameter sets the return value for other processing steps. Defaults to &lt;code&gt;&#39;exit&#39;&lt;/code&gt; if omitted.&lt;/p&gt;
&lt;p&gt;Example:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;tasks:
- set_condition: [IS_DONE, field_match, status, &#39;^done$&#39;]
- exit: [IS_DONE, &amp;quot;all-done&amp;quot;]
- field_set: [&#39;&#39;, needs_processing, &#39;yes&#39;]

# entries with status=&#39;done&#39; skip remaining tasks and are saved as-is
&lt;/code&gt;&lt;/pre&gt;

      </description>
    </item>
    
    <item>
      <title>Builtin Pipelines</title>
      <link>http://localhost:1313/docs/52pipeline/builtin/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>http://localhost:1313/docs/52pipeline/builtin/</guid>
      <description>
        
        
        &lt;p&gt;Builtin pipelines are loaded at startup and are available to all schemas without any configuration.&lt;/p&gt;
&lt;h2&gt;bulk_disable_out_of_sync&lt;span class=&#34;hx-absolute -hx-mt-20&#34; id=&#34;bulk_disable_out_of_sync&#34;&gt;&lt;/span&gt;
    &lt;a href=&#34;#bulk_disable_out_of_sync&#34; class=&#34;subheading-anchor&#34; aria-label=&#34;Permalink for this section&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;Disables assets whose &lt;code&gt;last_sync&lt;/code&gt; field is older than 3 months.&lt;/p&gt;
&lt;p&gt;This pipeline is intended to be applied to any Schema that tracks synchronization with an external system via a &lt;code&gt;last_sync&lt;/code&gt; field. Assets that have not been seen for more than 3 months are marked for disable by setting &lt;code&gt;_action: disable&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Assets without a &lt;code&gt;last_sync&lt;/code&gt; field or with a recent sync date are &lt;strong&gt;not modified&lt;/strong&gt; — they are discarded by the pipeline and left untouched in the database.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Usage:&lt;/strong&gt;&lt;/p&gt;
&lt;div class=&#34;hextra-code-block hx-relative hx-mt-6 first:hx-mt-0 hx-group/code&#34;&gt;

&lt;div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-python&#34; data-lang=&#34;python&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;schema&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;apply_pipeline&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;bulk_disable_out_of_sync&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;hextra-code-copy-btn-container hx-opacity-0 hx-transition group-hover/code:hx-opacity-100 hx-flex hx-gap-1 hx-absolute hx-m-[11px] hx-right-0 hx-top-0&#34;&gt;
  &lt;button
    class=&#34;hextra-code-copy-btn hx-group/copybtn hx-transition-all active:hx-opacity-50 hx-bg-primary-700/5 hx-border hx-border-black/5 hx-text-gray-600 hover:hx-text-gray-900 hx-rounded-md hx-p-1.5 dark:hx-bg-primary-300/10 dark:hx-border-white/10 dark:hx-text-gray-400 dark:hover:hx-text-gray-50&#34;
    title=&#34;Copy code&#34;
  &gt;
    &lt;div class=&#34;copy-icon group-[.copied]/copybtn:hx-hidden hx-pointer-events-none hx-h-4 hx-w-4&#34;&gt;&lt;/div&gt;
    &lt;div class=&#34;success-icon hx-hidden group-[.copied]/copybtn:hx-block hx-pointer-events-none hx-h-4 hx-w-4&#34;&gt;&lt;/div&gt;
  &lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;Logic:&lt;/strong&gt;&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Step&lt;/th&gt;
          &lt;th&gt;Task&lt;/th&gt;
          &lt;th&gt;Effect&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;1&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;field_set _action noop&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Safe default — no change unless stale&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;2&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;field_datetime _cutoff now() -3month&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Compute cutoff = now − 3 months&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;3&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;set_condition HAS_SYNC exists last_sync&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;True if &lt;code&gt;last_sync&lt;/code&gt; field is present&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;4&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;set_condition IS_STALE lt last_sync _cutoff&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;True if &lt;code&gt;last_sync&lt;/code&gt; is older than cutoff&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;5&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;discard !HAS_SYNC&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Skip assets with no &lt;code&gt;last_sync&lt;/code&gt; (left untouched in DB)&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;6&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;discard !IS_STALE&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Skip recently synced assets (left untouched in DB)&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;7&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;field_set _action disable&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Mark stale assets for disable&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;8&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;field_delete _cutoff&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Remove temporary field&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;strong&gt;Notes:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;last_sync&lt;/code&gt; must be a datetime string in &lt;code&gt;YYYY-MM-DD HH:MM:SS&lt;/code&gt; format.&lt;/li&gt;
&lt;li&gt;The 3-month threshold is computed at pipeline execution time from the current local datetime.&lt;/li&gt;
&lt;li&gt;Discarded entries are never written to the database — only stale assets are updated.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;bulk_delete_out_of_sync&lt;span class=&#34;hx-absolute -hx-mt-20&#34; id=&#34;bulk_delete_out_of_sync&#34;&gt;&lt;/span&gt;
    &lt;a href=&#34;#bulk_delete_out_of_sync&#34; class=&#34;subheading-anchor&#34; aria-label=&#34;Permalink for this section&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;Deletes assets that are &lt;strong&gt;already disabled&lt;/strong&gt; and whose &lt;code&gt;last_sync&lt;/code&gt; field is older than 6 months.&lt;/p&gt;
&lt;p&gt;This pipeline is the second step of a two-phase cleanup workflow. It only targets assets that have previously been disabled (e.g. by &lt;code&gt;bulk_disable_out_of_sync&lt;/code&gt;) and have still not been seen for 6 months. Assets that are still enabled, have no &lt;code&gt;last_sync&lt;/code&gt; field, or were synced recently are not modified.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Typical workflow:&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Apply &lt;code&gt;bulk_disable_out_of_sync&lt;/code&gt; — disables assets not seen for 3 months&lt;/li&gt;
&lt;li&gt;Apply &lt;code&gt;bulk_delete_out_of_sync&lt;/code&gt; — deletes assets that remain disabled and unseen for 6 months&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;Usage:&lt;/strong&gt;&lt;/p&gt;
&lt;div class=&#34;hextra-code-block hx-relative hx-mt-6 first:hx-mt-0 hx-group/code&#34;&gt;

&lt;div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-python&#34; data-lang=&#34;python&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;schema&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;apply_pipeline&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;bulk_delete_out_of_sync&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;hextra-code-copy-btn-container hx-opacity-0 hx-transition group-hover/code:hx-opacity-100 hx-flex hx-gap-1 hx-absolute hx-m-[11px] hx-right-0 hx-top-0&#34;&gt;
  &lt;button
    class=&#34;hextra-code-copy-btn hx-group/copybtn hx-transition-all active:hx-opacity-50 hx-bg-primary-700/5 hx-border hx-border-black/5 hx-text-gray-600 hover:hx-text-gray-900 hx-rounded-md hx-p-1.5 dark:hx-bg-primary-300/10 dark:hx-border-white/10 dark:hx-text-gray-400 dark:hover:hx-text-gray-50&#34;
    title=&#34;Copy code&#34;
  &gt;
    &lt;div class=&#34;copy-icon group-[.copied]/copybtn:hx-hidden hx-pointer-events-none hx-h-4 hx-w-4&#34;&gt;&lt;/div&gt;
    &lt;div class=&#34;success-icon hx-hidden group-[.copied]/copybtn:hx-block hx-pointer-events-none hx-h-4 hx-w-4&#34;&gt;&lt;/div&gt;
  &lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;Logic:&lt;/strong&gt;&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Step&lt;/th&gt;
          &lt;th&gt;Task&lt;/th&gt;
          &lt;th&gt;Effect&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;1&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;field_set _action noop&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Safe default — no change unless criteria met&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;2&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;field_datetime _cutoff now() -6month&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Compute cutoff = now − 6 months&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;3&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;set_condition HAS_SYNC exists last_sync&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;True if &lt;code&gt;last_sync&lt;/code&gt; field is present&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;4&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;set_condition IS_DISABLED is_false is_enabled&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;True if asset is disabled&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;5&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;set_condition IS_STALE lt last_sync _cutoff&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;True if &lt;code&gt;last_sync&lt;/code&gt; is older than cutoff&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;6&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;discard !HAS_SYNC&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Skip assets with no &lt;code&gt;last_sync&lt;/code&gt; (left untouched in DB)&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;7&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;discard !IS_DISABLED&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Skip assets that are still enabled (left untouched in DB)&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;8&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;discard !IS_STALE&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Skip recently synced assets (left untouched in DB)&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;9&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;field_set _action delete&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Mark disabled+stale assets for deletion&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;10&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;field_delete _cutoff&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Remove temporary field&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;strong&gt;Notes:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;last_sync&lt;/code&gt; must be a datetime string in &lt;code&gt;YYYY-MM-DD HH:MM:SS&lt;/code&gt; format.&lt;/li&gt;
&lt;li&gt;The 6-month threshold is computed at pipeline execution time from the current local datetime.&lt;/li&gt;
&lt;li&gt;Discarded entries are never written to the database — only disabled+stale assets are deleted.&lt;/li&gt;
&lt;li&gt;Assets that are still enabled are intentionally preserved, even if stale.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;bulk_delete_all&lt;span class=&#34;hx-absolute -hx-mt-20&#34; id=&#34;bulk_delete_all&#34;&gt;&lt;/span&gt;
    &lt;a href=&#34;#bulk_delete_all&#34; class=&#34;subheading-anchor&#34; aria-label=&#34;Permalink for this section&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;Deletes &lt;strong&gt;all assets&lt;/strong&gt; of the target schema unconditionally.&lt;/p&gt;
&lt;blockquote&gt;
  &lt;p&gt;&lt;strong&gt;Warning:&lt;/strong&gt; This pipeline is destructive and irreversible. All instances of the schema will be permanently deleted. Use &lt;code&gt;dryrun=True&lt;/code&gt; first to verify scope.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;strong&gt;Usage:&lt;/strong&gt;&lt;/p&gt;
&lt;div class=&#34;hextra-code-block hx-relative hx-mt-6 first:hx-mt-0 hx-group/code&#34;&gt;

&lt;div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-python&#34; data-lang=&#34;python&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;schema&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;apply_pipeline&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;bulk_delete_all&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# recommended: dry run first&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;schema&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;apply_pipeline&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;bulk_delete_all&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;dryrun&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;kc&#34;&gt;True&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;hextra-code-copy-btn-container hx-opacity-0 hx-transition group-hover/code:hx-opacity-100 hx-flex hx-gap-1 hx-absolute hx-m-[11px] hx-right-0 hx-top-0&#34;&gt;
  &lt;button
    class=&#34;hextra-code-copy-btn hx-group/copybtn hx-transition-all active:hx-opacity-50 hx-bg-primary-700/5 hx-border hx-border-black/5 hx-text-gray-600 hover:hx-text-gray-900 hx-rounded-md hx-p-1.5 dark:hx-bg-primary-300/10 dark:hx-border-white/10 dark:hx-text-gray-400 dark:hover:hx-text-gray-50&#34;
    title=&#34;Copy code&#34;
  &gt;
    &lt;div class=&#34;copy-icon group-[.copied]/copybtn:hx-hidden hx-pointer-events-none hx-h-4 hx-w-4&#34;&gt;&lt;/div&gt;
    &lt;div class=&#34;success-icon hx-hidden group-[.copied]/copybtn:hx-block hx-pointer-events-none hx-h-4 hx-w-4&#34;&gt;&lt;/div&gt;
  &lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;Logic:&lt;/strong&gt;&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Step&lt;/th&gt;
          &lt;th&gt;Task&lt;/th&gt;
          &lt;th&gt;Effect&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;1&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;field_set _action delete&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Mark every asset for deletion — no condition&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;strong&gt;Notes:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;No conditions are checked — every instance in the schema is deleted.&lt;/li&gt;
&lt;li&gt;There is no undo. Back up your data before running this pipeline.&lt;/li&gt;
&lt;li&gt;Combine with &lt;code&gt;dryrun=True&lt;/code&gt; in &lt;code&gt;apply_pipeline&lt;/code&gt; to preview the count without making changes.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;bulk_refresh&lt;span class=&#34;hx-absolute -hx-mt-20&#34; id=&#34;bulk_refresh&#34;&gt;&lt;/span&gt;
    &lt;a href=&#34;#bulk_refresh&#34; class=&#34;subheading-anchor&#34; aria-label=&#34;Permalink for this section&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;Re-saves all assets of the target schema without any modification. Triggers a read-then-write cycle for each instance, which refreshes the EAV cache and normalizes stored data.&lt;/p&gt;
&lt;p&gt;Useful after schema changes, cache corruption, or bulk imports that bypassed normal save hooks.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Usage:&lt;/strong&gt;&lt;/p&gt;
&lt;div class=&#34;hextra-code-block hx-relative hx-mt-6 first:hx-mt-0 hx-group/code&#34;&gt;

&lt;div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-python&#34; data-lang=&#34;python&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;schema&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;apply_pipeline&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;bulk_refresh&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;hextra-code-copy-btn-container hx-opacity-0 hx-transition group-hover/code:hx-opacity-100 hx-flex hx-gap-1 hx-absolute hx-m-[11px] hx-right-0 hx-top-0&#34;&gt;
  &lt;button
    class=&#34;hextra-code-copy-btn hx-group/copybtn hx-transition-all active:hx-opacity-50 hx-bg-primary-700/5 hx-border hx-border-black/5 hx-text-gray-600 hover:hx-text-gray-900 hx-rounded-md hx-p-1.5 dark:hx-bg-primary-300/10 dark:hx-border-white/10 dark:hx-text-gray-400 dark:hover:hx-text-gray-50&#34;
    title=&#34;Copy code&#34;
  &gt;
    &lt;div class=&#34;copy-icon group-[.copied]/copybtn:hx-hidden hx-pointer-events-none hx-h-4 hx-w-4&#34;&gt;&lt;/div&gt;
    &lt;div class=&#34;success-icon hx-hidden group-[.copied]/copybtn:hx-block hx-pointer-events-none hx-h-4 hx-w-4&#34;&gt;&lt;/div&gt;
  &lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;Logic:&lt;/strong&gt;&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Step&lt;/th&gt;
          &lt;th&gt;Task&lt;/th&gt;
          &lt;th&gt;Effect&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;1&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;field_set _action update&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Re-save every asset — no condition, no data change&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;strong&gt;Notes:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;No data is modified — assets are read and written back as-is.&lt;/li&gt;
&lt;li&gt;All instances are processed, regardless of their enabled/disabled status.&lt;/li&gt;
&lt;li&gt;This pipeline has no destructive effect.&lt;/li&gt;
&lt;/ul&gt;

      </description>
    </item>
    
  </channel>
</rss>
