<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Reference on Orchard</title><link>https://orchard.pthm.dev/docs/reference/</link><description>Recent content in Reference on Orchard</description><generator>Hugo</generator><language>en-us</language><atom:link href="https://orchard.pthm.dev/docs/reference/index.xml" rel="self" type="application/rss+xml"/><item><title>CLI</title><link>https://orchard.pthm.dev/docs/reference/cli/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://orchard.pthm.dev/docs/reference/cli/</guid><description>&lt;h1 id="cli-reference"&gt;CLI reference&lt;a class="anchor" href="#cli-reference"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;orchard &amp;lt;command&amp;gt; [arguments] [flags]&lt;/code&gt;&lt;/pre&gt;&lt;h2 id="global-flags"&gt;Global flags&lt;a class="anchor" href="#global-flags"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Flag&lt;/th&gt;
 &lt;th&gt;Type&lt;/th&gt;
 &lt;th&gt;Default&lt;/th&gt;
 &lt;th&gt;Description&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;--var key=value&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;string map&lt;/td&gt;
 &lt;td&gt;—&lt;/td&gt;
 &lt;td&gt;Override a scenario variable. Repeatable: &lt;code&gt;--var a=1 --var b=2&lt;/code&gt;.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;--no-color&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;bool&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Disable colored output.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;strong&gt;Environment variables&lt;/strong&gt;&lt;/p&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Name&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;&lt;code&gt;NO_COLOR&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;If set to any value, disables colored output. Equivalent to &lt;code&gt;--no-color&lt;/code&gt;.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="orchard-init"&gt;&lt;code&gt;orchard init&lt;/code&gt;&lt;a class="anchor" href="#orchard-init"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;orchard init [directory]&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Scaffold a new Orchard project with a starter scenario and component.&lt;/p&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Argument&lt;/th&gt;
 &lt;th&gt;Description&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;[directory]&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Where to create the files. Defaults to &lt;code&gt;.&lt;/code&gt;. Created if it doesn&amp;rsquo;t exist.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;strong&gt;What it creates&lt;/strong&gt;&lt;/p&gt;</description></item><item><title>HCL schema</title><link>https://orchard.pthm.dev/docs/reference/hcl-schema/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://orchard.pthm.dev/docs/reference/hcl-schema/</guid><description>&lt;h1 id="hcl-schema-reference"&gt;HCL schema reference&lt;a class="anchor" href="#hcl-schema-reference"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;Every block and attribute Orchard&amp;rsquo;s parser accepts. The two authoring contexts
are &lt;strong&gt;scenario files&lt;/strong&gt; and &lt;strong&gt;component files&lt;/strong&gt;.&lt;/p&gt;
&lt;h2 id="scenario-files"&gt;Scenario files&lt;a class="anchor" href="#scenario-files"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;A scenario file contains exactly one &lt;code&gt;scenario&lt;/code&gt; block.&lt;/p&gt;
&lt;h3 id="scenario"&gt;&lt;code&gt;scenario&lt;/code&gt;&lt;a class="anchor" href="#scenario"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="background-color:#f7f7f7;-moz-tab-size:2;-o-tab-size:2;tab-size:2;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-hcl" data-lang="hcl"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#cf222e"&gt;scenario&lt;/span&gt; &lt;span style="color:#0a3069"&gt;&amp;#34;&amp;lt;name&amp;gt;&amp;#34;&lt;/span&gt; {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; description &lt;span style="color:#0550ae"&gt;=&lt;/span&gt; &lt;span style="color:#0a3069"&gt;&amp;#34;...&amp;#34;&lt;/span&gt;&lt;span style="color:#57606a"&gt; # optional
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; tags &lt;span style="color:#0550ae"&gt;=&lt;/span&gt; &lt;span style="color:#1f2328"&gt;[&lt;/span&gt;&lt;span style="color:#0a3069"&gt;&amp;#34;a&amp;#34;, &amp;#34;b&amp;#34;&lt;/span&gt;&lt;span style="color:#1f2328"&gt;]&lt;/span&gt;&lt;span style="color:#57606a"&gt; # optional
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#cf222e"&gt;required_providers&lt;/span&gt; { &lt;span style="color:#1f2328"&gt;...&lt;/span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#cf222e"&gt;variable&lt;/span&gt; &lt;span style="color:#0a3069"&gt;&amp;#34;&amp;lt;name&amp;gt;&amp;#34;&lt;/span&gt; { &lt;span style="color:#1f2328"&gt;...&lt;/span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#cf222e"&gt;provider&lt;/span&gt; &lt;span style="color:#0a3069"&gt;&amp;#34;&amp;lt;name&amp;gt;&amp;#34;&lt;/span&gt; { &lt;span style="color:#1f2328"&gt;...&lt;/span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#cf222e"&gt;component&lt;/span&gt; &lt;span style="color:#0a3069"&gt;&amp;#34;&amp;lt;type&amp;gt;&amp;#34; &amp;#34;&amp;lt;name&amp;gt;&amp;#34;&lt;/span&gt; { &lt;span style="color:#1f2328"&gt;...&lt;/span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#cf222e"&gt;action&lt;/span&gt; &lt;span style="color:#0a3069"&gt;&amp;#34;&amp;lt;type&amp;gt;&amp;#34; &amp;#34;&amp;lt;name&amp;gt;&amp;#34;&lt;/span&gt; { &lt;span style="color:#1f2328"&gt;...&lt;/span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#cf222e"&gt;output&lt;/span&gt; &lt;span style="color:#0a3069"&gt;&amp;#34;&amp;lt;name&amp;gt;&amp;#34;&lt;/span&gt; { &lt;span style="color:#1f2328"&gt;...&lt;/span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;A single HCL file may contain &lt;strong&gt;multiple scenario blocks&lt;/strong&gt;. When it does,
&lt;code&gt;orchard run&lt;/code&gt; and &lt;code&gt;orchard plan&lt;/code&gt; require &lt;code&gt;--scenario &amp;lt;name&amp;gt;&lt;/code&gt; to pick one.
Single-scenario files work without the flag.&lt;/p&gt;</description></item><item><title>Expressions</title><link>https://orchard.pthm.dev/docs/reference/expressions/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://orchard.pthm.dev/docs/reference/expressions/</guid><description>&lt;h1 id="expression-reference"&gt;Expression reference&lt;a class="anchor" href="#expression-reference"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;Orchard uses HCL expressions with a cty type system. This page covers the
reference namespaces, type expressions, and available functions.&lt;/p&gt;
&lt;h2 id="reference-namespaces"&gt;Reference namespaces&lt;a class="anchor" href="#reference-namespaces"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Five reference namespaces are available inside expressions:&lt;/p&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Form&lt;/th&gt;
 &lt;th&gt;Scope&lt;/th&gt;
 &lt;th&gt;Available when&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;var.&amp;lt;name&amp;gt;&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Scenario (or component) variables.&lt;/td&gt;
 &lt;td&gt;Immediately — resolved up front.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;action.&amp;lt;type&amp;gt;.&amp;lt;name&amp;gt;.&amp;lt;output&amp;gt;&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Action outputs.&lt;/td&gt;
 &lt;td&gt;After the referenced action completes.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;component.&amp;lt;type&amp;gt;.&amp;lt;name&amp;gt;.&amp;lt;output&amp;gt;&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Component instance outputs.&lt;/td&gt;
 &lt;td&gt;After the component resolves.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;var.&amp;lt;name&amp;gt;&lt;/code&gt; (inside a component)&lt;/td&gt;
 &lt;td&gt;The component&amp;rsquo;s own variables.&lt;/td&gt;
 &lt;td&gt;Immediately, scoped to the component.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;self.&amp;lt;output&amp;gt;&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;The current action&amp;rsquo;s own outputs.&lt;/td&gt;
 &lt;td&gt;Inside &lt;code&gt;lifecycle { teardown { } }&lt;/code&gt; blocks only.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="variable-references"&gt;Variable references&lt;a class="anchor" href="#variable-references"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="background-color:#f7f7f7;-moz-tab-size:2;-o-tab-size:2;tab-size:2;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-hcl" data-lang="hcl"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#cf222e"&gt;provider&lt;/span&gt; &lt;span style="color:#0a3069"&gt;&amp;#34;postgres&amp;#34;&lt;/span&gt; {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; dsn &lt;span style="color:#0550ae"&gt;=&lt;/span&gt; &lt;span style="color:#cf222e"&gt;var&lt;/span&gt;&lt;span style="color:#1f2328"&gt;.&lt;/span&gt;&lt;span style="color:#cf222e"&gt;dsn&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#cf222e"&gt;action&lt;/span&gt; &lt;span style="color:#0a3069"&gt;&amp;#34;postgres_query&amp;#34; &amp;#34;insert&amp;#34;&lt;/span&gt; {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; query &lt;span style="color:#0550ae"&gt;=&lt;/span&gt; &lt;span style="color:#0a3069"&gt;&amp;#34;INSERT INTO t (name) VALUES (&amp;#39;${var.name}&amp;#39;)&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Variable references are resolved at plan time. They cannot participate in the
dependency graph — if you need ordering, reference an action or component
output instead.&lt;/p&gt;</description></item><item><title>Functions</title><link>https://orchard.pthm.dev/docs/reference/functions/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://orchard.pthm.dev/docs/reference/functions/</guid><description>&lt;h1 id="functions"&gt;Functions&lt;a class="anchor" href="#functions"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;Orchard exposes 56 functions in every expression — variable defaults,
provider configs, component inputs, action attributes, scenario outputs,
component outputs, and teardown bodies. All names use lowercase compound
words with no separators (&lt;code&gt;jsonencode&lt;/code&gt;, &lt;code&gt;timeadd&lt;/code&gt;, &lt;code&gt;timeseries&lt;/code&gt;, &amp;hellip;).&lt;/p&gt;
&lt;p&gt;Functions marked with &lt;strong&gt;(impure)&lt;/strong&gt; may return different values on each
call. That&amp;rsquo;s intentional — scenarios are single-shot imperative runs,
not convergent plans.&lt;/p&gt;
&lt;h2 id="collections"&gt;Collections&lt;a class="anchor" href="#collections"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="concat"&gt;&lt;code&gt;concat&lt;/code&gt;&lt;a class="anchor" href="#concat"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;concat(lists...) → list&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Concatenate two or more lists into one.&lt;/p&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Parameter&lt;/th&gt;
 &lt;th&gt;Type&lt;/th&gt;
 &lt;th&gt;Description&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;lists...&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;list&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Variadic.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="background-color:#f7f7f7;-moz-tab-size:2;-o-tab-size:2;tab-size:2;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-hcl" data-lang="hcl"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#cf222e"&gt;concat&lt;/span&gt;&lt;span style="color:#1f2328"&gt;([&lt;/span&gt;&lt;span style="color:#0a3069"&gt;&amp;#34;a&amp;#34;], [&amp;#34;b&amp;#34;, &amp;#34;c&amp;#34;&lt;/span&gt;&lt;span style="color:#1f2328"&gt;])&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;→ &lt;code&gt;[&amp;quot;a&amp;quot;, &amp;quot;b&amp;quot;, &amp;quot;c&amp;quot;]&lt;/code&gt;&lt;/p&gt;</description></item></channel></rss>