<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
    <id>https://stackql.io/blog</id>
    <title>StackQL Blog Feed</title>
    <updated>2026-03-19T00:00:00.000Z</updated>
    <generator>https://github.com/jpmonette/feed</generator>
    <link rel="alternate" href="https://stackql.io/blog"/>
    <subtitle>Cloud operations, security and automation using SQL</subtitle>
    <icon>https://stackql.io/favicon.ico</icon>
    <rights>Copyright © 2026 StackQL Studios</rights>
    <entry>
        <title type="html"><![CDATA[stackql-deploy 2.0 - Rewritten in Rust]]></title>
        <id>https://stackql.io/blog/stackql-deploy-2-0-rust-rewrite</id>
        <link href="https://stackql.io/blog/stackql-deploy-2-0-rust-rewrite"/>
        <updated>2026-03-19T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[stackql-deploy 2.0 is a full rewrite in Rust - single static binary, no Python runtime, embedded StackQL server, and same CLI interface.]]></summary>
        <content type="html"><![CDATA[<p><code>stackql-deploy</code> 2.0 is a full rewrite in Rust. The Python package (<code>stackql-deploy</code> on PyPi) is archived at <code>1.9.4</code>. CLI interface and stack file format are unchanged - no migration required.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="why-rust">Why Rust<a href="https://stackql.io/blog/stackql-deploy-2-0-rust-rewrite#why-rust" class="hash-link" aria-label="Direct link to Why Rust" title="Direct link to Why Rust" translate="no">​</a></h2>
<p>The move to Rust was primarily about distribution and operational simplicity. Rust also brings stronger guarantees around performance and memory safety. Running everything in-process without Foreign Function Interface (FFI) boundaries simplifies the architecture while maintaining predictable resource usage.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="embedded-postgres-wire-protocol-server">Embedded Postgres Wire Protocol Server<a href="https://stackql.io/blog/stackql-deploy-2-0-rust-rewrite#embedded-postgres-wire-protocol-server" class="hash-link" aria-label="Direct link to Embedded Postgres Wire Protocol Server" title="Direct link to Embedded Postgres Wire Protocol Server" translate="no">​</a></h2>
<p>The most significant functional change in 2.0 is that <code>stackql-deploy</code> now runs the StackQL engine as an embedded in-process server over a local postgres wire protocol connection rather than shelling out to the StackQL binary as an external process.</p>
<p>There is nothing to start, stop, or configure. The server is lifecycle-managed by <code>stackql-deploy</code> itself and binds to <code>localhost</code> only - no port is exposed on the network, no inbound firewall rules needed in CI.</p>
<p>The previous model spawned a new StackQL process per operation. The embedded server keeps a persistent connection for the duration of a deployment run. For stacks with many resources, the reduction in process spawn overhead is noticeable - particularly on Windows where process creation is expensive.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="additional-features-added">Additional Features Added<a href="https://stackql.io/blog/stackql-deploy-2-0-rust-rewrite#additional-features-added" class="hash-link" aria-label="Direct link to Additional Features Added" title="Direct link to Additional Features Added" translate="no">​</a></h2>
<p>In addition to added the architectural change to use the embedded server, several other workflow improvements were added including:</p>
<ul>
<li class=""><strong>Enabling resource scoped variable exports in <code>/*+ exists */</code> queries</strong>: When an exists query returns a named field (e.g. <code>vpc_id</code>) instead of <code>count</code>, the value is captured as a resource-scoped variable (<code>this.vpc_id</code>) and made available to all subsequent queries for that resource (e.g. statecheck, exports). This eliminates the need for redundant lookups to resolve resource identifiers between query stages.</li>
<li class=""><strong>Support for capturing <code>RETURNING</code> payloads from DML operations</strong>: <code>INSERT</code>, <code>UPDATE</code>, and <code>DELETE</code> statements can include a <code>RETURNING</code> clause. Fields from the response can be mapped to resource-scoped variables via <code>return_vals</code> in the manifest, keyed by operation (<code>create</code>, <code>update</code>, <code>delete</code>). This allows identifiers assigned by the provider during creation to be used immediately without a round-trip query.</li>
<li class=""><strong>Additional template filters</strong>: Including the <code>to_aws_tag_filters</code> filter, which converts <code>global_tags</code> to the AWS Resource Groups Tagging API <code>TagFilters</code> format, and type-preserving YAML-to-JSON serialization that maintains string types through the rendering pipeline.</li>
<li class=""><strong>Improved logging and exception handling</strong>: Enhanced visibility simplifying troubleshooting.</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="installation">Installation<a href="https://stackql.io/blog/stackql-deploy-2-0-rust-rewrite#installation" class="hash-link" aria-label="Direct link to Installation" title="Direct link to Installation" translate="no">​</a></h2>
<div class="theme-tabs-container tabs-container tabList__CuJ"><ul role="tablist" aria-orientation="horizontal" class="tabs"><li role="tab" tabindex="0" aria-selected="true" class="tabs__item tabItem_LNqP tabs__item--active">Linux / macOS</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_LNqP">Windows</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_LNqP">GitHub Releases</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_LNqP">GitHub Actions</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_LNqP">Cargo</li></ul><div class="margin-top--md"><div role="tabpanel" class="tabItem_Ymn6"><style data-emotion="css 1nv5oh">.css-1nv5oh{border:1px solid #e0e0e0;border-radius:4px;padding:24px;margin-bottom:16px;}</style><div class="MuiBox-root css-1nv5oh"><p>The canonical install URL detects your OS and redirects to the latest release asset automatically.  You can also download directly from your browser at <a href="https://get-stackql-deploy.io/" target="_blank" rel="noopener noreferrer" class=""><strong>get-stackql-deploy.io</strong></a>.</p><div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#d6deeb;--prism-background-color:#011627"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#d6deeb;background-color:#011627"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#d6deeb"><span class="token plain">curl -L https://get-stackql-deploy.io | tar xzf -</span><br></span></code></pre></div></div></div></div><div role="tabpanel" class="tabItem_Ymn6" hidden=""><style data-emotion="css 1nv5oh">.css-1nv5oh{border:1px solid #e0e0e0;border-radius:4px;padding:24px;margin-bottom:16px;}</style><div class="MuiBox-root css-1nv5oh"><p>Use the PowerShell script below or download directly from your browser at <a href="https://get-stackql-deploy.io/" target="_blank" rel="noopener noreferrer" class=""><strong>get-stackql-deploy.io</strong></a>.</p><div class="language-powershell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#d6deeb;--prism-background-color:#011627"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-powershell codeBlock_bY9V thin-scrollbar" style="color:#d6deeb;background-color:#011627"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#d6deeb"><span class="token function" style="color:rgb(130, 170, 255)">Invoke-WebRequest</span><span class="token plain"> https:</span><span class="token operator" style="color:rgb(127, 219, 202)">/</span><span class="token operator" style="color:rgb(127, 219, 202)">/</span><span class="token function" style="color:rgb(130, 170, 255)">get-stackql</span><span class="token operator" style="color:rgb(127, 219, 202)">-</span><span class="token plain">deploy</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token plain">io </span><span class="token operator" style="color:rgb(127, 219, 202)">-</span><span class="token plain">OutFile stackql-deploy</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token plain">zip</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"></span><span class="token function" style="color:rgb(130, 170, 255)">Expand-Archive</span><span class="token plain"> stackql-deploy</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token plain">zip </span><span class="token operator" style="color:rgb(127, 219, 202)">-</span><span class="token plain">DestinationPath </span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><br></span></code></pre></div></div></div></div><div role="tabpanel" class="tabItem_Ymn6" hidden=""><style data-emotion="css 1nv5oh">.css-1nv5oh{border:1px solid #e0e0e0;border-radius:4px;padding:24px;margin-bottom:16px;}</style><div class="MuiBox-root css-1nv5oh"><p>Pre-built binaries are attached to every release on the <a href="https://github.com/stackql/stackql-deploy/releases" target="_blank" rel="noopener noreferrer" class="">releases page</a>. A <code>SHA256SUMS</code> file is included for verification.</p><table><thead><tr><th>Platform</th><th>Asset</th></tr></thead><tbody><tr><td>Linux x86_64</td><td><code>stackql-deploy-linux-x86_64.tar.gz</code></td></tr><tr><td>Linux arm64</td><td><code>stackql-deploy-linux-arm64.tar.gz</code></td></tr><tr><td>macOS Universal (Apple Silicon + Intel)</td><td><code>stackql-deploy-macos-universal.tar.gz</code></td></tr><tr><td>Windows x86_64</td><td><code>stackql-deploy-windows-x86_64.zip</code></td></tr></tbody></table></div></div><div role="tabpanel" class="tabItem_Ymn6" hidden=""><style data-emotion="css 1nv5oh">.css-1nv5oh{border:1px solid #e0e0e0;border-radius:4px;padding:24px;margin-bottom:16px;}</style><div class="MuiBox-root css-1nv5oh"><p>Use the <a href="https://github.com/marketplace/actions/stackql-deploy" target="_blank" rel="noopener noreferrer" class=""><code>stackql/stackql-deploy-action</code></a> to run <code>build</code> or <code>test</code> commands in your CI pipeline. Provider credentials are passed via environment variables sourced from GitHub Actions Secrets.</p><p><strong>Deploy a stack:</strong></p><div class="language-yaml codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#d6deeb;--prism-background-color:#011627"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-yaml codeBlock_bY9V thin-scrollbar" style="color:#d6deeb;background-color:#011627"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#d6deeb"><span class="token key atrule" style="color:rgb(255, 203, 139)">jobs</span><span class="token punctuation" style="color:rgb(199, 146, 234)">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">  </span><span class="token key atrule" style="color:rgb(255, 203, 139)">deploy</span><span class="token punctuation" style="color:rgb(199, 146, 234)">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">    </span><span class="token key atrule" style="color:rgb(255, 203, 139)">runs-on</span><span class="token punctuation" style="color:rgb(199, 146, 234)">:</span><span class="token plain"> ubuntu</span><span class="token punctuation" style="color:rgb(199, 146, 234)">-</span><span class="token plain">latest</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">    </span><span class="token key atrule" style="color:rgb(255, 203, 139)">env</span><span class="token punctuation" style="color:rgb(199, 146, 234)">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">      </span><span class="token key atrule" style="color:rgb(255, 203, 139)">GOOGLE_CREDENTIALS</span><span class="token punctuation" style="color:rgb(199, 146, 234)">:</span><span class="token plain"> $</span><span class="token punctuation" style="color:rgb(199, 146, 234)">{</span><span class="token punctuation" style="color:rgb(199, 146, 234)">{</span><span class="token plain"> secrets.GOOGLE_CREDENTIALS </span><span class="token punctuation" style="color:rgb(199, 146, 234)">}</span><span class="token punctuation" style="color:rgb(199, 146, 234)">}</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">    </span><span class="token key atrule" style="color:rgb(255, 203, 139)">steps</span><span class="token punctuation" style="color:rgb(199, 146, 234)">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">      </span><span class="token punctuation" style="color:rgb(199, 146, 234)">-</span><span class="token plain"> </span><span class="token key atrule" style="color:rgb(255, 203, 139)">uses</span><span class="token punctuation" style="color:rgb(199, 146, 234)">:</span><span class="token plain"> actions/checkout@v4</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">      </span><span class="token punctuation" style="color:rgb(199, 146, 234)">-</span><span class="token plain"> </span><span class="token key atrule" style="color:rgb(255, 203, 139)">uses</span><span class="token punctuation" style="color:rgb(199, 146, 234)">:</span><span class="token plain"> stackql/stackql</span><span class="token punctuation" style="color:rgb(199, 146, 234)">-</span><span class="token plain">deploy</span><span class="token punctuation" style="color:rgb(199, 146, 234)">-</span><span class="token plain">action@v2</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">        </span><span class="token key atrule" style="color:rgb(255, 203, 139)">with</span><span class="token punctuation" style="color:rgb(199, 146, 234)">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">          </span><span class="token key atrule" style="color:rgb(255, 203, 139)">command</span><span class="token punctuation" style="color:rgb(199, 146, 234)">:</span><span class="token plain"> </span><span class="token string" style="color:rgb(173, 219, 103)">'build'</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">          </span><span class="token key atrule" style="color:rgb(255, 203, 139)">stack_dir</span><span class="token punctuation" style="color:rgb(199, 146, 234)">:</span><span class="token plain"> </span><span class="token string" style="color:rgb(173, 219, 103)">'examples/my-stack'</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">          </span><span class="token key atrule" style="color:rgb(255, 203, 139)">stack_env</span><span class="token punctuation" style="color:rgb(199, 146, 234)">:</span><span class="token plain"> </span><span class="token string" style="color:rgb(173, 219, 103)">'prod'</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">          </span><span class="token key atrule" style="color:rgb(255, 203, 139)">env_vars</span><span class="token punctuation" style="color:rgb(199, 146, 234)">:</span><span class="token plain"> </span><span class="token string" style="color:rgb(173, 219, 103)">'GOOGLE_PROJECT=my-project'</span><br></span></code></pre></div></div><p><strong>Deploy and capture outputs:</strong></p><div class="language-yaml codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#d6deeb;--prism-background-color:#011627"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-yaml codeBlock_bY9V thin-scrollbar" style="color:#d6deeb;background-color:#011627"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#d6deeb"><span class="token plain">      </span><span class="token punctuation" style="color:rgb(199, 146, 234)">-</span><span class="token plain"> </span><span class="token key atrule" style="color:rgb(255, 203, 139)">name</span><span class="token punctuation" style="color:rgb(199, 146, 234)">:</span><span class="token plain"> Deploy Stack</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">        </span><span class="token key atrule" style="color:rgb(255, 203, 139)">id</span><span class="token punctuation" style="color:rgb(199, 146, 234)">:</span><span class="token plain"> stackql</span><span class="token punctuation" style="color:rgb(199, 146, 234)">-</span><span class="token plain">deploy</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">        </span><span class="token key atrule" style="color:rgb(255, 203, 139)">uses</span><span class="token punctuation" style="color:rgb(199, 146, 234)">:</span><span class="token plain"> stackql/stackql</span><span class="token punctuation" style="color:rgb(199, 146, 234)">-</span><span class="token plain">deploy</span><span class="token punctuation" style="color:rgb(199, 146, 234)">-</span><span class="token plain">action@v2</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">        </span><span class="token key atrule" style="color:rgb(255, 203, 139)">with</span><span class="token punctuation" style="color:rgb(199, 146, 234)">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">          </span><span class="token key atrule" style="color:rgb(255, 203, 139)">command</span><span class="token punctuation" style="color:rgb(199, 146, 234)">:</span><span class="token plain"> </span><span class="token string" style="color:rgb(173, 219, 103)">'build'</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">          </span><span class="token key atrule" style="color:rgb(255, 203, 139)">stack_dir</span><span class="token punctuation" style="color:rgb(199, 146, 234)">:</span><span class="token plain"> </span><span class="token string" style="color:rgb(173, 219, 103)">'examples/my-stack'</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">          </span><span class="token key atrule" style="color:rgb(255, 203, 139)">stack_env</span><span class="token punctuation" style="color:rgb(199, 146, 234)">:</span><span class="token plain"> </span><span class="token string" style="color:rgb(173, 219, 103)">'prod'</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">          </span><span class="token key atrule" style="color:rgb(255, 203, 139)">output_file</span><span class="token punctuation" style="color:rgb(199, 146, 234)">:</span><span class="token plain"> </span><span class="token string" style="color:rgb(173, 219, 103)">'deployment-outputs.json'</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">          </span><span class="token key atrule" style="color:rgb(255, 203, 139)">env_vars</span><span class="token punctuation" style="color:rgb(199, 146, 234)">:</span><span class="token plain"> </span><span class="token string" style="color:rgb(173, 219, 103)">'GOOGLE_PROJECT=my-project'</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">      </span><span class="token punctuation" style="color:rgb(199, 146, 234)">-</span><span class="token plain"> </span><span class="token key atrule" style="color:rgb(255, 203, 139)">name</span><span class="token punctuation" style="color:rgb(199, 146, 234)">:</span><span class="token plain"> Use outputs</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">        </span><span class="token key atrule" style="color:rgb(255, 203, 139)">run</span><span class="token punctuation" style="color:rgb(199, 146, 234)">:</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(199, 146, 234)">|</span><span class="token scalar string" style="color:rgb(173, 219, 103)"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token scalar string" style="color:rgb(173, 219, 103)">          echo '${{ steps.stackql-deploy.outputs.deployment_outputs }}' | jq .</span><br></span></code></pre></div></div><p>See the <a href="https://github.com/stackql/stackql-deploy-action" target="_blank" rel="noopener noreferrer" class=""><strong>stackql-deploy-action repo</strong></a> or the <a href="https://github.com/marketplace/actions/stackql-deploy" target="_blank" rel="noopener noreferrer" class=""><strong>GitHub Action Marketplace</strong></a> for the full input/output reference.</p></div></div><div role="tabpanel" class="tabItem_Ymn6" hidden=""><style data-emotion="css 1nv5oh">.css-1nv5oh{border:1px solid #e0e0e0;border-radius:4px;padding:24px;margin-bottom:16px;}</style><div class="MuiBox-root css-1nv5oh"><p>If you have the Rust toolchain installed (<code>rustup</code> is the recommended way to get it on any platform), <code>cargo install</code> builds and installs the binary directly from <a href="https://crates.io/crates/stackql-deploy" target="_blank" rel="noopener noreferrer" class="">crates.io</a>.</p><div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#d6deeb;--prism-background-color:#011627"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#d6deeb;background-color:#011627"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#d6deeb"><span class="token plain">cargo install stackql-deploy</span><br></span></code></pre></div></div></div></div></div></div>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="usage">Usage<a href="https://stackql.io/blog/stackql-deploy-2-0-rust-rewrite#usage" class="hash-link" aria-label="Direct link to Usage" title="Direct link to Usage" translate="no">​</a></h2>
<p>The CLI interface is unchanged from the Python version:</p>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#d6deeb;--prism-background-color:#011627"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#d6deeb;background-color:#011627"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#d6deeb"><span class="token plain"># deploy a stack</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">stackql-deploy build my-stack prod \</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">  --e GOOGLE_PROJECT=${GOOGLE_PROJECT}</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"># test a stack</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">stackql-deploy test my-stack prod \</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">  --e GOOGLE_PROJECT=${GOOGLE_PROJECT}</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"># tear down a stack</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">stackql-deploy teardown my-stack prod \</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">  --e GOOGLE_PROJECT=${GOOGLE_PROJECT}</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"># dry run</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">stackql-deploy build my-stack prod \</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">  --e GOOGLE_PROJECT=${GOOGLE_PROJECT} \</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">  --dry-run</span><br></span></code></pre></div></div>
<p>Stack files and <code>stackql_manifest.yml</code> structure are unaffected - no migration work needed.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="python-package-deprecation">Python Package Deprecation<a href="https://stackql.io/blog/stackql-deploy-2-0-rust-rewrite#python-package-deprecation" class="hash-link" aria-label="Direct link to Python Package Deprecation" title="Direct link to Python Package Deprecation" translate="no">​</a></h2>
<p><code>stackql-deploy 1.9.4</code> on PyPi is the final Python release. The Python source repository is archived. If you have <code>pip install stackql-deploy</code> in any scripts or CI pipelines, replace it with one of the install methods above. The <code>1.9.4</code> package remains on PyPi and installable, but will not receive updates.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="links">Links<a href="https://stackql.io/blog/stackql-deploy-2-0-rust-rewrite#links" class="hash-link" aria-label="Direct link to Links" title="Direct link to Links" translate="no">​</a></h2>
<ul>
<li class="">GitHub: <a href="https://github.com/stackql/stackql-deploy" target="_blank" rel="noopener noreferrer" class="">github.com/stackql/stackql-deploy</a></li>
<li class="">crates.io: <a href="https://crates.io/crates/stackql-deploy" target="_blank" rel="noopener noreferrer" class="">crates.io/crates/stackql-deploy</a></li>
<li class="">StackQL docs: <a href="https://stackql.io/docs" target="_blank" rel="noopener noreferrer" class="">stackql.io/docs</a></li>
</ul>]]></content>
        <author>
            <name>Jeffrey Aven</name>
            <uri>https://www.linkedin.com/in/jeffreyaven/</uri>
        </author>
        <category label="stackql" term="stackql"/>
        <category label="stackql-deploy" term="stackql-deploy"/>
        <category label="rust" term="rust"/>
        <category label="infrastructure-as-code" term="infrastructure-as-code"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[Run StackQL Queries from the Databricks Web Terminal]]></title>
        <id>https://stackql.io/blog/stackql-in-databricks-web-terminal</id>
        <link href="https://stackql.io/blog/stackql-in-databricks-web-terminal"/>
        <updated>2026-02-21T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Run StackQL SQL queries against your Databricks workspace directly from the Databricks web terminal.]]></summary>
        <content type="html"><![CDATA[<p>If you have access to a Databricks workspace, you can run StackQL queries directly from the Databricks Web Terminal using your Databricks identity.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="how-it-works">How It Works<a href="https://stackql.io/blog/stackql-in-databricks-web-terminal#how-it-works" class="hash-link" aria-label="Direct link to How It Works" title="Direct link to How It Works" translate="no">​</a></h2>
<p>Download the latest release of <code>stackql</code>, then run the convenience script included (similar scripts are included for other cloud provider terminals - e.g. AWS Cloud Shell).</p>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#d6deeb;--prism-background-color:#011627"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#d6deeb;background-color:#011627"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#d6deeb"><span class="token plain">curl -L https://bit.ly/stackql-zip -O &amp;&amp; unzip stackql-zip</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">sh stackql-databricks-shell.sh</span><br></span></code></pre></div></div>
<video controls="" width="100%" preload="metadata"><source src="https://pub-690c90d9ca2e4ad09b9455b620bd429f.r2.dev/databricks-stackql-web-terminal-demo.mp4" type="video/mp4"></video>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="example-queries">Example Queries<a href="https://stackql.io/blog/stackql-in-databricks-web-terminal#example-queries" class="hash-link" aria-label="Direct link to Example Queries" title="Direct link to Example Queries" translate="no">​</a></h2>
<p>Here are the sample queries run in the video, just change the <code>deployment_name</code> for your workspace.</p>
<p><strong>User entitlements</strong></p>
<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#d6deeb;--prism-background-color:#011627"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#d6deeb;background-color:#011627"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#d6deeb"><span class="token keyword" style="color:rgb(127, 219, 202)">SELECT</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">  deployment_name</span><span class="token punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">  id</span><span class="token punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">  userName</span><span class="token punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">  displayName</span><span class="token punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">  entitlement</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"></span><span class="token keyword" style="color:rgb(127, 219, 202)">FROM</span><span class="token plain"> databricks_workspace</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token plain">iam</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token plain">vw_user_entitlements</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"></span><span class="token keyword" style="color:rgb(127, 219, 202)">WHERE</span><span class="token plain"> deployment_name </span><span class="token operator" style="color:rgb(127, 219, 202)">=</span><span class="token plain"> </span><span class="token string" style="color:rgb(173, 219, 103)">'dbc-74aa95f7-8c7e'</span><span class="token punctuation" style="color:rgb(199, 146, 234)">;</span><br></span></code></pre></div></div>
<p><strong>All workspace settings</strong></p>
<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#d6deeb;--prism-background-color:#011627"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#d6deeb;background-color:#011627"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#d6deeb"><span class="token keyword" style="color:rgb(127, 219, 202)">SELECT</span><span class="token plain"> </span><span class="token operator" style="color:rgb(127, 219, 202)">*</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(127, 219, 202)">FROM</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">  databricks_workspace</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token plain">settings</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token plain">vw_all_settings</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"></span><span class="token keyword" style="color:rgb(127, 219, 202)">WHERE</span><span class="token plain"> deployment_name </span><span class="token operator" style="color:rgb(127, 219, 202)">=</span><span class="token plain"> </span><span class="token string" style="color:rgb(173, 219, 103)">'dbc-74aa95f7-8c7e'</span><span class="token punctuation" style="color:rgb(199, 146, 234)">;</span><br></span></code></pre></div></div>
<p><strong>Tag policies filtered by key prefix</strong></p>
<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#d6deeb;--prism-background-color:#011627"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#d6deeb;background-color:#011627"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#d6deeb"><span class="token keyword" style="color:rgb(127, 219, 202)">SELECT</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">  tag_key </span><span class="token keyword" style="color:rgb(127, 219, 202)">as</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(127, 219, 202)">key</span><span class="token punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">  description</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"></span><span class="token keyword" style="color:rgb(127, 219, 202)">FROM</span><span class="token plain"> databricks_workspace</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token plain">tags</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token plain">tag_policies</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"></span><span class="token keyword" style="color:rgb(127, 219, 202)">WHERE</span><span class="token plain"> deployment_name </span><span class="token operator" style="color:rgb(127, 219, 202)">=</span><span class="token plain"> </span><span class="token string" style="color:rgb(173, 219, 103)">'dbc-74aa95f7-8c7e'</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"></span><span class="token operator" style="color:rgb(127, 219, 202)">AND</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(127, 219, 202)">key</span><span class="token plain"> </span><span class="token operator" style="color:rgb(127, 219, 202)">LIKE</span><span class="token plain"> </span><span class="token string" style="color:rgb(173, 219, 103)">'class%'</span><span class="token punctuation" style="color:rgb(199, 146, 234)">;</span><br></span></code></pre></div></div>
<p><strong>Catalog count by type</strong></p>
<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#d6deeb;--prism-background-color:#011627"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#d6deeb;background-color:#011627"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#d6deeb"><span class="token keyword" style="color:rgb(127, 219, 202)">SELECT</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">  catalog_type</span><span class="token punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">  </span><span class="token function" style="color:rgb(130, 170, 255)">COUNT</span><span class="token punctuation" style="color:rgb(199, 146, 234)">(</span><span class="token operator" style="color:rgb(127, 219, 202)">*</span><span class="token punctuation" style="color:rgb(199, 146, 234)">)</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(127, 219, 202)">as</span><span class="token plain"> num_catalogs</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"></span><span class="token keyword" style="color:rgb(127, 219, 202)">FROM</span><span class="token plain"> databricks_workspace</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token plain">catalog</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token plain">catalogs</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"></span><span class="token keyword" style="color:rgb(127, 219, 202)">WHERE</span><span class="token plain"> deployment_name </span><span class="token operator" style="color:rgb(127, 219, 202)">=</span><span class="token plain"> </span><span class="token string" style="color:rgb(173, 219, 103)">'dbc-74aa95f7-8c7e'</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"></span><span class="token keyword" style="color:rgb(127, 219, 202)">GROUP</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(127, 219, 202)">BY</span><span class="token plain"> catalog_type</span><span class="token punctuation" style="color:rgb(199, 146, 234)">;</span><br></span></code></pre></div></div>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="provider-coverage">Provider Coverage<a href="https://stackql.io/blog/stackql-in-databricks-web-terminal#provider-coverage" class="hash-link" aria-label="Direct link to Provider Coverage" title="Direct link to Provider Coverage" translate="no">​</a></h2>
<p>The <code>databricks_workspace</code> provider covers workspace related services, the <code>databricks_account</code> provider covers account-level operations including provisioning, billing, and account IAM.</p>
<p>The web terminal flow covers workspace-scoped queries using the token of the logged-in user. For account-level queries (provisioning, billing, account IAM), you need a Databricks service principal with account admin rights and OAuth2 credentials:</p>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#d6deeb;--prism-background-color:#011627"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#d6deeb;background-color:#011627"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#d6deeb"><span class="token plain">export DATABRICKS_ACCOUNT_ID="your-account-id"</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">export DATABRICKS_CLIENT_ID="your-client-id"</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">export DATABRICKS_CLIENT_SECRET="your-client-secret"</span><br></span></code></pre></div></div>
<p>These are the same variables used by the Databricks CLI and Terraform provider, so if you already have those configured the auth story is identical.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="get-started">Get Started<a href="https://stackql.io/blog/stackql-in-databricks-web-terminal#get-started" class="hash-link" aria-label="Direct link to Get Started" title="Direct link to Get Started" translate="no">​</a></h2>
<p>Full provider documentation:</p>
<ul>
<li class=""><a href="https://databricks-workspace-provider.stackql.io/" target="_blank" rel="noopener noreferrer" class=""><strong>Databricks Workspace Provider for StackQL</strong></a></li>
<li class=""><a href="https://databricks-account-provider.stackql.io/" target="_blank" rel="noopener noreferrer" class=""><strong>Databricks Account Provider for StackQL</strong></a></li>
</ul>
<p>Visti <a href="https://github.com/stackql/stackql" target="_blank" rel="noopener noreferrer" class=""><strong>StackQL on GitHub</strong></a>.</p>]]></content>
        <author>
            <name>Jeffrey Aven</name>
            <uri>https://www.linkedin.com/in/jeffreyaven/</uri>
        </author>
        <category label="stackql" term="stackql"/>
        <category label="databricks" term="databricks"/>
        <category label="sql" term="sql"/>
        <category label="databricks workspace" term="databricks workspace"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[New Databricks Providers for StackQL Released]]></title>
        <id>https://stackql.io/blog/new-databricks-providers-available</id>
        <link href="https://stackql.io/blog/new-databricks-providers-available"/>
        <updated>2026-02-12T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Updated providers for Databricks released covering account and workspace operations, with over 30 services, 300 resources, and nearly 1,000 operations queryable using SQL.]]></summary>
        <content type="html"><![CDATA[<p>Updated StackQL providers for Databricks are now available: <a href="https://databricks-account-provider.stackql.io/" target="_blank" rel="noopener noreferrer" class=""><strong><code>databricks_account</code></strong></a> and <a href="https://databricks-workspace-provider.stackql.io/" target="_blank" rel="noopener noreferrer" class=""><strong><code>databricks_workspace</code></strong></a>, giving you SQL access to the full Databricks control plane across account-level and workspace-level operations.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="provider-structure">Provider Structure<a href="https://stackql.io/blog/new-databricks-providers-available#provider-structure" class="hash-link" aria-label="Direct link to Provider Structure" title="Direct link to Provider Structure" translate="no">​</a></h2>
<p>The following updated providers are available:</p>
<table><thead><tr><th>Provider</th><th>Scope</th><th>Services</th></tr></thead><tbody><tr><td><code>databricks_account</code></td><td>Account</td><td>8</td></tr><tr><td><code>databricks_workspace</code></td><td>Workspace</td><td>26</td></tr></tbody></table>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="coverage">Coverage<a href="https://stackql.io/blog/new-databricks-providers-available#coverage" class="hash-link" aria-label="Direct link to Coverage" title="Direct link to Coverage" translate="no">​</a></h2>
<p>There are over <strong>30 services</strong>, <strong>300+ resources</strong>, and <strong>983 operations</strong> spanning IAM, compute, catalog, billing, jobs, ML, serving, sharing, vector search, and more.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="example-queries">Example Queries<a href="https://stackql.io/blog/new-databricks-providers-available#example-queries" class="hash-link" aria-label="Direct link to Example Queries" title="Direct link to Example Queries" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="list-workspaces-in-an-account">List workspaces in an account<a href="https://stackql.io/blog/new-databricks-providers-available#list-workspaces-in-an-account" class="hash-link" aria-label="Direct link to List workspaces in an account" title="Direct link to List workspaces in an account" translate="no">​</a></h3>
<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#d6deeb;--prism-background-color:#011627"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#d6deeb;background-color:#011627"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#d6deeb"><span class="token keyword" style="color:rgb(127, 219, 202)">SELECT</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">  workspace_id</span><span class="token punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">  workspace_name</span><span class="token punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">  workspace_status</span><span class="token punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">  aws_region</span><span class="token punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">  compute_mode</span><span class="token punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">  deployment_name</span><span class="token punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">  </span><span class="token keyword" style="color:rgb(127, 219, 202)">datetime</span><span class="token punctuation" style="color:rgb(199, 146, 234)">(</span><span class="token plain">creation_time</span><span class="token operator" style="color:rgb(127, 219, 202)">/</span><span class="token number" style="color:rgb(247, 140, 108)">1000</span><span class="token punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token plain"> </span><span class="token string" style="color:rgb(173, 219, 103)">'unixepoch'</span><span class="token punctuation" style="color:rgb(199, 146, 234)">)</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(127, 219, 202)">as</span><span class="token plain"> creation_date_time</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"></span><span class="token keyword" style="color:rgb(127, 219, 202)">FROM</span><span class="token plain"> databricks_account</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token plain">provisioning</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token plain">workspaces</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"></span><span class="token keyword" style="color:rgb(127, 219, 202)">WHERE</span><span class="token plain"> account_id </span><span class="token operator" style="color:rgb(127, 219, 202)">=</span><span class="token plain"> </span><span class="token string" style="color:rgb(173, 219, 103)">'ebfcc5a9-9d49-4c93-b651-b3ee6cf1c9ce'</span><span class="token punctuation" style="color:rgb(199, 146, 234)">;</span><br></span></code></pre></div></div>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="query-account-users-and-roles">Query account users and roles<a href="https://stackql.io/blog/new-databricks-providers-available#query-account-users-and-roles" class="hash-link" aria-label="Direct link to Query account users and roles" title="Direct link to Query account users and roles" translate="no">​</a></h3>
<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#d6deeb;--prism-background-color:#011627"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#d6deeb;background-color:#011627"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#d6deeb"><span class="token keyword" style="color:rgb(127, 219, 202)">SELECT</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">  id </span><span class="token keyword" style="color:rgb(127, 219, 202)">as</span><span class="token plain"> user_id</span><span class="token punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">  displayName </span><span class="token keyword" style="color:rgb(127, 219, 202)">as</span><span class="token plain"> display_name</span><span class="token punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">  userName </span><span class="token keyword" style="color:rgb(127, 219, 202)">as</span><span class="token plain"> user_name</span><span class="token punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">  active</span><span class="token punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">  IIF</span><span class="token punctuation" style="color:rgb(199, 146, 234)">(</span><span class="token plain">JSON_EXTRACT</span><span class="token punctuation" style="color:rgb(199, 146, 234)">(</span><span class="token plain">roles</span><span class="token punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token string" style="color:rgb(173, 219, 103)">'$[0].value'</span><span class="token punctuation" style="color:rgb(199, 146, 234)">)</span><span class="token plain"> </span><span class="token operator" style="color:rgb(127, 219, 202)">=</span><span class="token plain"> </span><span class="token string" style="color:rgb(173, 219, 103)">'account_admin'</span><span class="token punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token plain"> </span><span class="token string" style="color:rgb(173, 219, 103)">'true'</span><span class="token punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token plain"> </span><span class="token string" style="color:rgb(173, 219, 103)">'false'</span><span class="token punctuation" style="color:rgb(199, 146, 234)">)</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(127, 219, 202)">as</span><span class="token plain"> is_account_admin</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"></span><span class="token keyword" style="color:rgb(127, 219, 202)">FROM</span><span class="token plain"> databricks_account</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token plain">iam</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token plain">account_users</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"></span><span class="token keyword" style="color:rgb(127, 219, 202)">WHERE</span><span class="token plain"> account_id </span><span class="token operator" style="color:rgb(127, 219, 202)">=</span><span class="token plain"> </span><span class="token string" style="color:rgb(173, 219, 103)">'ebfcc5a9-9d49-4c93-b651-b3ee6cf1c9ce'</span><span class="token punctuation" style="color:rgb(199, 146, 234)">;</span><br></span></code></pre></div></div>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="list-catalogs-in-a-workspace">List catalogs in a workspace<a href="https://stackql.io/blog/new-databricks-providers-available#list-catalogs-in-a-workspace" class="hash-link" aria-label="Direct link to List catalogs in a workspace" title="Direct link to List catalogs in a workspace" translate="no">​</a></h3>
<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#d6deeb;--prism-background-color:#011627"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#d6deeb;background-color:#011627"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#d6deeb"><span class="token keyword" style="color:rgb(127, 219, 202)">SELECT</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">  full_name</span><span class="token punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">  catalog_type</span><span class="token punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">  </span><span class="token keyword" style="color:rgb(127, 219, 202)">comment</span><span class="token punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">  </span><span class="token keyword" style="color:rgb(127, 219, 202)">datetime</span><span class="token punctuation" style="color:rgb(199, 146, 234)">(</span><span class="token plain">created_at</span><span class="token operator" style="color:rgb(127, 219, 202)">/</span><span class="token number" style="color:rgb(247, 140, 108)">1000</span><span class="token punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token plain"> </span><span class="token string" style="color:rgb(173, 219, 103)">'unixepoch'</span><span class="token punctuation" style="color:rgb(199, 146, 234)">)</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(127, 219, 202)">as</span><span class="token plain"> created_at</span><span class="token punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">  created_by</span><span class="token punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">  </span><span class="token keyword" style="color:rgb(127, 219, 202)">datetime</span><span class="token punctuation" style="color:rgb(199, 146, 234)">(</span><span class="token plain">updated_at</span><span class="token operator" style="color:rgb(127, 219, 202)">/</span><span class="token number" style="color:rgb(247, 140, 108)">1000</span><span class="token punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token plain"> </span><span class="token string" style="color:rgb(173, 219, 103)">'unixepoch'</span><span class="token punctuation" style="color:rgb(199, 146, 234)">)</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(127, 219, 202)">as</span><span class="token plain"> updated_at</span><span class="token punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">  updated_by</span><span class="token punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">  enable_predictive_optimization</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"></span><span class="token keyword" style="color:rgb(127, 219, 202)">FROM</span><span class="token plain"> databricks_workspace</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token plain">catalog</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token plain">catalogs</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"></span><span class="token keyword" style="color:rgb(127, 219, 202)">WHERE</span><span class="token plain"> deployment_name </span><span class="token operator" style="color:rgb(127, 219, 202)">=</span><span class="token plain"> </span><span class="token string" style="color:rgb(173, 219, 103)">'dbc-36ff48e3-4a69'</span><span class="token punctuation" style="color:rgb(199, 146, 234)">;</span><br></span></code></pre></div></div>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="download-billable-usage-to-csv">Download billable usage to CSV<a href="https://stackql.io/blog/new-databricks-providers-available#download-billable-usage-to-csv" class="hash-link" aria-label="Direct link to Download billable usage to CSV" title="Direct link to Download billable usage to CSV" translate="no">​</a></h3>
<p>This one is worth calling out. You can pull billable usage data for a given period and write it straight to a CSV file:</p>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#d6deeb;--prism-background-color:#011627"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#d6deeb;background-color:#011627"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#d6deeb"><span class="token plain">./stackql exec \</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">  -o text \</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">  --hideheaders \</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">  -f billable_usage.csv \</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">  "SELECT contents</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">  FROM databricks_account.billing.billable_usage</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">  WHERE start_month = '2025-12'</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">  AND end_month = '2026-01'</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">  AND account_id = 'your-account-id'"</span><br></span></code></pre></div></div>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="authentication">Authentication<a href="https://stackql.io/blog/new-databricks-providers-available#authentication" class="hash-link" aria-label="Direct link to Authentication" title="Direct link to Authentication" translate="no">​</a></h2>
<p>Both providers authenticate using OAuth2 with a Databricks service principal. Set the following environment variables:</p>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#d6deeb;--prism-background-color:#011627"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#d6deeb;background-color:#011627"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#d6deeb"><span class="token plain">export DATABRICKS_ACCOUNT_ID="your-account-id"</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">export DATABRICKS_CLIENT_ID="your-client-id"</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">export DATABRICKS_CLIENT_SECRET="your-client-secret"</span><br></span></code></pre></div></div>
<p>These are the same variables used by Terraform, the Databricks SDKs, and the Databricks CLI.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="get-started">Get Started<a href="https://stackql.io/blog/new-databricks-providers-available#get-started" class="hash-link" aria-label="Direct link to Get Started" title="Direct link to Get Started" translate="no">​</a></h2>
<p>Pull the providers:</p>
<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#d6deeb;--prism-background-color:#011627"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#d6deeb;background-color:#011627"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#d6deeb"><span class="token plain">registry pull databricks_account</span><span class="token punctuation" style="color:rgb(199, 146, 234)">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">registry pull databricks_workspace</span><span class="token punctuation" style="color:rgb(199, 146, 234)">;</span><br></span></code></pre></div></div>
<p>Start querying via the <code>shell</code> or <code>exec</code>:</p>
<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#d6deeb;--prism-background-color:#011627"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#d6deeb;background-color:#011627"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#d6deeb"><span class="token keyword" style="color:rgb(127, 219, 202)">SELECT</span><span class="token plain"> </span><span class="token operator" style="color:rgb(127, 219, 202)">*</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(127, 219, 202)">FROM</span><span class="token plain"> databricks_account</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token plain">iam</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token plain">account_groups </span><span class="token keyword" style="color:rgb(127, 219, 202)">WHERE</span><span class="token plain"> account_id </span><span class="token operator" style="color:rgb(127, 219, 202)">=</span><span class="token plain"> </span><span class="token string" style="color:rgb(173, 219, 103)">'your-account-id'</span><span class="token punctuation" style="color:rgb(199, 146, 234)">;</span><br></span></code></pre></div></div>
<p>Full documentation is available at <a href="https://databricks-account-provider.stackql.io/" target="_blank" rel="noopener noreferrer" class="">databricks-account-provider.stackql.io</a> and <a href="https://databricks-workspace-provider.stackql.io/" target="_blank" rel="noopener noreferrer" class="">databricks-workspace-provider.stackql.io</a>. Let us know what you think on <a href="https://github.com/stackql/stackql" target="_blank" rel="noopener noreferrer" class=""><strong>GitHub</strong></a>.</p>]]></content>
        <author>
            <name>Jeffrey Aven</name>
            <uri>https://www.linkedin.com/in/jeffreyaven/</uri>
        </author>
        <category label="stackql" term="stackql"/>
        <category label="databricks" term="databricks"/>
        <category label="provider" term="provider"/>
        <category label="infrastructure-as-code" term="infrastructure-as-code"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[New Dedicated AWS Cloud Control Provider Released]]></title>
        <id>https://stackql.io/blog/new-awscc-provider-available</id>
        <link href="https://stackql.io/blog/new-awscc-provider-available"/>
        <updated>2026-01-19T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Introducing the standalone StackQL AWS Cloud Control provider with full CRUDL support, optimized resource naming, and comprehensive coverage of AWS Cloud Control API resources.]]></summary>
        <content type="html"><![CDATA[<p>We've released a new dedicated <a href="https://awscc-provider.stackql.io/" target="_blank" rel="noopener noreferrer" class=""><strong>StackQL AWS Cloud Control provider</strong></a>, providing full CRUDL operations across AWS services via the Cloud Control API including purpose-built resource definitions leveraging Cloud Control's consistent schema.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="resource-naming-convention">Resource Naming Convention<a href="https://stackql.io/blog/new-awscc-provider-available#resource-naming-convention" class="hash-link" aria-label="Direct link to Resource Naming Convention" title="Direct link to Resource Naming Convention" translate="no">​</a></h2>
<p>Resources follow a clear pattern to differentiate operations:</p>
<table><thead><tr><th>Resource Pattern</th><th>Operations</th><th>Use Case</th></tr></thead><tbody><tr><td><code>{resource}</code> (e.g., <code>s3.buckets</code>)</td><td><code>SELECT</code>, <code>INSERT</code>, <code>UPDATE</code>, <code>DELETE</code></td><td>Full CRUD with complete resource properties</td></tr><tr><td><code>{resource}_list_only</code> (e.g., <code>s3.buckets_list_only</code>)</td><td><code>SELECT</code></td><td>Fast enumeration of resource identifiers</td></tr></tbody></table>
<br>
<p>This separation means listing thousands of resources won't trigger rate limits from individual <code>GET</code> calls:</p>
<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#d6deeb;--prism-background-color:#011627"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#d6deeb;background-color:#011627"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#d6deeb"><span class="token comment" style="color:rgb(99, 119, 119);font-style:italic">-- Fast enumeration (list operation only)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"></span><span class="token keyword" style="color:rgb(127, 219, 202)">SELECT</span><span class="token plain"> bucket_name </span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"></span><span class="token keyword" style="color:rgb(127, 219, 202)">FROM</span><span class="token plain"> awscc</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token plain">s3</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token plain">buckets_list_only </span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"></span><span class="token keyword" style="color:rgb(127, 219, 202)">WHERE</span><span class="token plain"> region </span><span class="token operator" style="color:rgb(127, 219, 202)">=</span><span class="token plain"> </span><span class="token string" style="color:rgb(173, 219, 103)">'us-east-1'</span><span class="token punctuation" style="color:rgb(199, 146, 234)">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"></span><span class="token comment" style="color:rgb(99, 119, 119);font-style:italic">-- Full resource details (get operation)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"></span><span class="token keyword" style="color:rgb(127, 219, 202)">SELECT</span><span class="token plain"> </span><span class="token operator" style="color:rgb(127, 219, 202)">*</span><span class="token plain"> </span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"></span><span class="token keyword" style="color:rgb(127, 219, 202)">FROM</span><span class="token plain"> awscc</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token plain">s3</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token plain">buckets </span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"></span><span class="token keyword" style="color:rgb(127, 219, 202)">WHERE</span><span class="token plain"> region </span><span class="token operator" style="color:rgb(127, 219, 202)">=</span><span class="token plain"> </span><span class="token string" style="color:rgb(173, 219, 103)">'us-east-1'</span><span class="token plain"> </span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"></span><span class="token operator" style="color:rgb(127, 219, 202)">AND</span><span class="token plain"> data__Identifier </span><span class="token operator" style="color:rgb(127, 219, 202)">=</span><span class="token plain"> </span><span class="token string" style="color:rgb(173, 219, 103)">'my-bucket'</span><span class="token punctuation" style="color:rgb(199, 146, 234)">;</span><br></span></code></pre></div></div>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="provider-coverage">Provider Coverage<a href="https://stackql.io/blog/new-awscc-provider-available#provider-coverage" class="hash-link" aria-label="Direct link to Provider Coverage" title="Direct link to Provider Coverage" translate="no">​</a></h2>
<p>The <code>awscc</code> provider includes:</p>
<ul>
<li class=""><strong>237 services</strong> and <strong>2371 resources</strong> covering the breadth of AWS</li>
<li class=""><strong>Full CRUDL support</strong> for all Cloud Control compatible resources</li>
<li class=""><strong>Consistent schema</strong> derived from AWS CloudFormation resource specifications</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="example-operations">Example Operations<a href="https://stackql.io/blog/new-awscc-provider-available#example-operations" class="hash-link" aria-label="Direct link to Example Operations" title="Direct link to Example Operations" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="create-an-s3-bucket">Create an S3 Bucket<a href="https://stackql.io/blog/new-awscc-provider-available#create-an-s3-bucket" class="hash-link" aria-label="Direct link to Create an S3 Bucket" title="Direct link to Create an S3 Bucket" translate="no">​</a></h3>
<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#d6deeb;--prism-background-color:#011627"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#d6deeb;background-color:#011627"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#d6deeb"><span class="token keyword" style="color:rgb(127, 219, 202)">INSERT</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(127, 219, 202)">INTO</span><span class="token plain"> awscc</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token plain">s3</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token plain">buckets </span><span class="token punctuation" style="color:rgb(199, 146, 234)">(</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">  BucketName</span><span class="token punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">  region</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"></span><span class="token punctuation" style="color:rgb(199, 146, 234)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"></span><span class="token keyword" style="color:rgb(127, 219, 202)">SELECT</span><span class="token plain"> </span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">  </span><span class="token string" style="color:rgb(173, 219, 103)">'my-new-bucket'</span><span class="token punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">  </span><span class="token string" style="color:rgb(173, 219, 103)">'us-east-1'</span><span class="token punctuation" style="color:rgb(199, 146, 234)">;</span><br></span></code></pre></div></div>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="query-ec2-instances">Query EC2 Instances<a href="https://stackql.io/blog/new-awscc-provider-available#query-ec2-instances" class="hash-link" aria-label="Direct link to Query EC2 Instances" title="Direct link to Query EC2 Instances" translate="no">​</a></h3>
<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#d6deeb;--prism-background-color:#011627"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#d6deeb;background-color:#011627"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#d6deeb"><span class="token keyword" style="color:rgb(127, 219, 202)">SELECT</span><span class="token plain"> </span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">  instance_id</span><span class="token punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">  instance_type</span><span class="token punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">  tags</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"></span><span class="token keyword" style="color:rgb(127, 219, 202)">FROM</span><span class="token plain"> awscc</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token plain">ec2</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token plain">instances</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"></span><span class="token keyword" style="color:rgb(127, 219, 202)">WHERE</span><span class="token plain"> region </span><span class="token operator" style="color:rgb(127, 219, 202)">=</span><span class="token plain"> </span><span class="token string" style="color:rgb(173, 219, 103)">'ap-southeast-2'</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"></span><span class="token operator" style="color:rgb(127, 219, 202)">AND</span><span class="token plain"> data__Identifier </span><span class="token operator" style="color:rgb(127, 219, 202)">=</span><span class="token plain"> </span><span class="token string" style="color:rgb(173, 219, 103)">'i-1234567890abcdef0'</span><span class="token punctuation" style="color:rgb(199, 146, 234)">;</span><br></span></code></pre></div></div>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="delete-a-resource">Delete a Resource<a href="https://stackql.io/blog/new-awscc-provider-available#delete-a-resource" class="hash-link" aria-label="Direct link to Delete a Resource" title="Direct link to Delete a Resource" translate="no">​</a></h3>
<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#d6deeb;--prism-background-color:#011627"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#d6deeb;background-color:#011627"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#d6deeb"><span class="token keyword" style="color:rgb(127, 219, 202)">DELETE</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(127, 219, 202)">FROM</span><span class="token plain"> awscc</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token plain">lambda</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token plain">functions</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"></span><span class="token keyword" style="color:rgb(127, 219, 202)">WHERE</span><span class="token plain"> data__Identifier </span><span class="token operator" style="color:rgb(127, 219, 202)">=</span><span class="token plain"> </span><span class="token string" style="color:rgb(173, 219, 103)">'my-function'</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"></span><span class="token operator" style="color:rgb(127, 219, 202)">AND</span><span class="token plain"> region </span><span class="token operator" style="color:rgb(127, 219, 202)">=</span><span class="token plain"> </span><span class="token string" style="color:rgb(173, 219, 103)">'us-east-1'</span><span class="token punctuation" style="color:rgb(199, 146, 234)">;</span><br></span></code></pre></div></div>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="enhanced-documentation">Enhanced Documentation<a href="https://stackql.io/blog/new-awscc-provider-available#enhanced-documentation" class="hash-link" aria-label="Direct link to Enhanced Documentation" title="Direct link to Enhanced Documentation" translate="no">​</a></h2>
<p>The provider documentation at <a href="https://awscc.stackql.io/providers/awscc/" target="_blank" rel="noopener noreferrer" class="">awscc.stackql.io</a> now features:</p>
<ul>
<li class=""><strong>Interactive schema explorer</strong> with expandable nested property trees</li>
<li class=""><strong>Complete field documentation</strong> including complex object structures</li>
<li class=""><strong>Ready-to-use SQL examples</strong> for <code>SELECT</code>, <code>INSERT</code>, and <code>DELETE</code> operations</li>
<li class=""><strong>IAM permissions reference</strong> for each resource operation</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="get-started">Get Started<a href="https://stackql.io/blog/new-awscc-provider-available#get-started" class="hash-link" aria-label="Direct link to Get Started" title="Direct link to Get Started" translate="no">​</a></h2>
<p>Pull the new provider:</p>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#d6deeb;--prism-background-color:#011627"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#d6deeb;background-color:#011627"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#d6deeb"><span class="token plain">stackql registry pull awscc</span><br></span></code></pre></div></div>
<p>Query your AWS resources:</p>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#d6deeb;--prism-background-color:#011627"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#d6deeb;background-color:#011627"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#d6deeb"><span class="token plain">stackql shell</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">&gt;&gt; SELECT region, bucket_name FROM awscc.s3.buckets_list_only WHERE region = 'us-east-1';</span><br></span></code></pre></div></div>
<p>Let us know your thoughts! Visit us and give us a star on <a href="https://github.com/stackql/stackql" target="_blank" rel="noopener noreferrer" class=""><strong>GitHub</strong></a>.</p>]]></content>
        <author>
            <name>Jeffrey Aven</name>
            <uri>https://www.linkedin.com/in/jeffreyaven/</uri>
        </author>
        <category label="stackql" term="stackql"/>
        <category label="aws" term="aws"/>
        <category label="awscc" term="awscc"/>
        <category label="cloud control" term="cloud control"/>
        <category label="provider" term="provider"/>
        <category label="infrastructure-as-code" term="infrastructure-as-code"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[StackQL Joins the Linux Foundation and Agentic AI Foundation]]></title>
        <id>https://stackql.io/blog/stackql-joins-linux-foundation-agentic-ai-foundation</id>
        <link href="https://stackql.io/blog/stackql-joins-linux-foundation-agentic-ai-foundation"/>
        <updated>2026-01-01T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[StackQL Studios joins the Linux Foundation and Agentic AI Foundation as a Silver Member.]]></summary>
        <content type="html"><![CDATA[<a href="https://aaif.io/members/"><img src="https://stackql.io/img/aaif_memberbadge_silver.svg" alt="AAIF Member" style="height:90px;margin-right:15px"></a>
<a href="https://www.linuxfoundation.org/about/members"><img src="https://stackql.io/img/LF_MemberLevel_silver.svg" alt="Linux Foundation Member" style="height:90px"></a>
<p>StackQL Studios has joined the Linux Foundation and the Agentic AI Foundation (AAIF) as a Silver Member.</p>
<p>As agentic AI moves from experimentation toward production workloads, we believe the infrastructure layer matters. Open, interoperable standards will be essential for AI agents to work reliably across cloud providers, data platforms, and enterprise systems.</p>
<p>StackQL provides a SQL-based interface for querying, provisioning, and managing cloud infrastructure across providers. Our work on the <a href="https://github.com/stackql/stackql-ai" target="_blank" rel="noopener noreferrer" class="">StackQL MCP Server</a> brings this capability to AI agents through the Model Context Protocol, enabling agents to interact with cloud resources using natural language while maintaining the governance and auditability that production systems require.</p>
<p>Joining AAIF aligns with our long-standing commitment to open-source infrastructure tooling. We look forward to contributing to the foundation's work on MCP, agent runtimes, and the broader ecosystem of standards that will shape how AI agents interact with the systems they manage.</p>
<p>More information about the Agentic AI Foundation is available at <a href="https://aaif.io/" target="_blank" rel="noopener noreferrer" class="">aaif.io</a>.</p>]]></content>
        <author>
            <name>Jeffrey Aven</name>
            <uri>https://www.linkedin.com/in/jeffreyaven/</uri>
        </author>
        <category label="stackql" term="stackql"/>
        <category label="open-source" term="open-source"/>
        <category label="linux-foundation" term="linux-foundation"/>
        <category label="agentic-ai" term="agentic-ai"/>
        <category label="mcp" term="mcp"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[Google Provider Update - December 2025]]></title>
        <id>https://stackql.io/blog/google-provider-december-2025-update</id>
        <link href="https://stackql.io/blog/google-provider-december-2025-update"/>
        <updated>2025-12-12T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Major update to the StackQL Google provider featuring a new Speech-to-Text v2 service, enhanced Vertex AI with RAG capabilities, and significant improvements across BigQuery, Spanner, and 15+ other Google Cloud services.]]></summary>
        <content type="html"><![CDATA[<p>We've released a major update to the <a href="https://stackql.io/docs/providers" target="_blank" rel="noopener noreferrer" class=""><strong>StackQL Google provider</strong></a> with a new service, enhanced AI/ML capabilities, and improvements across 177 service files.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="new-service-speech-to-text-v2">New Service: Speech-to-Text v2<a href="https://stackql.io/blog/google-provider-december-2025-update#new-service-speech-to-text-v2" class="hash-link" aria-label="Direct link to New Service: Speech-to-Text v2" title="Direct link to New Service: Speech-to-Text v2" translate="no">​</a></h2>
<p>The <code>speechv2</code> service brings Cloud Speech-to-Text API v2 to StackQL with 6 resources:</p>
<table><thead><tr><th>Resource</th><th>Description</th></tr></thead><tbody><tr><td><code>recognizers</code></td><td>Manage speech recognition configurations with create, list, get, patch, delete, undelete, recognize, and batch_recognize methods</td></tr><tr><td><code>custom_classes</code></td><td>Create custom vocabulary classes for improved recognition accuracy</td></tr><tr><td><code>phrase_sets</code></td><td>Define phrase hints to boost recognition of specific terms</td></tr><tr><td><code>config</code></td><td>Manage location-level Speech-to-Text configuration</td></tr><tr><td><code>locations</code></td><td>Query available service locations</td></tr><tr><td><code>operations</code></td><td>Track long-running operations</td></tr></tbody></table>
<p>Key features include support for multiple audio encodings (WAV, FLAC, MP3, OGG, WebM, MP4/AAC), translation capabilities, denoiser config, and KMS encryption support.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="vertex-ai--ai-platform">Vertex AI / AI Platform<a href="https://stackql.io/blog/google-provider-december-2025-update#vertex-ai--ai-platform" class="hash-link" aria-label="Direct link to Vertex AI / AI Platform" title="Direct link to Vertex AI / AI Platform" translate="no">​</a></h2>
<p>The largest update in this release with 87,000+ line changes introduces powerful new RAG and evaluation capabilities:</p>
<ul>
<li class=""><strong>RAG Resources</strong>: <code>rag_corpora</code>, <code>rag_files</code>, <code>rag_engine_config</code> for Retrieval-Augmented Generation</li>
<li class=""><strong>Conversational AI</strong>: New <code>chat</code> resource</li>
<li class=""><strong>Model Evaluation</strong>: <code>evaluation_sets</code> and <code>evaluation_items</code> for systematic model assessment</li>
<li class=""><strong>New Resources</strong>: <code>science</code>, <code>invoke</code>, and <code>openapi</code> resources</li>
<li class=""><strong>Performance</strong>: Enhanced <code>cache_config</code> for caching configurations</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="discovery-engine">Discovery Engine<a href="https://stackql.io/blog/google-provider-december-2025-update#discovery-engine" class="hash-link" aria-label="Direct link to Discovery Engine" title="Direct link to Discovery Engine" translate="no">​</a></h2>
<p>Major enhancements (50,000+ line changes) for search and conversational AI:</p>
<ul>
<li class="">New <code>assistants</code> resource</li>
<li class="">New <code>sitemaps</code> resource for site search</li>
<li class="">New <code>custom_models</code> resource</li>
<li class="">Enhanced <code>sessions</code> and <code>answers</code> for conversational search</li>
<li class="">New <code>authorized_views</code> and <code>authorized_view_sets</code> for access control</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="contact-center-ai-insights">Contact Center AI Insights<a href="https://stackql.io/blog/google-provider-december-2025-update#contact-center-ai-insights" class="hash-link" aria-label="Direct link to Contact Center AI Insights" title="Direct link to Contact Center AI Insights" translate="no">​</a></h2>
<p>Quality assurance and analytics improvements (20,000+ line changes):</p>
<ul>
<li class="">New <code>qa_questions</code> and <code>qa_question_tags</code> for quality assurance workflows</li>
<li class="">New <code>analysis_rules</code> resource</li>
<li class="">New <code>segments</code> resource</li>
<li class="">New <code>authorized_views</code> with IAM policy support</li>
<li class="">New <code>datasets</code> and <code>views</code> resources</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="bigquery">BigQuery<a href="https://stackql.io/blog/google-provider-december-2025-update#bigquery" class="hash-link" aria-label="Direct link to BigQuery" title="Direct link to BigQuery" translate="no">​</a></h2>
<p>Enhanced governance and access control (18,000+ line changes):</p>
<ul>
<li class="">New <code>routines_iam_policies</code> for stored procedure/function IAM</li>
<li class="">Enhanced <code>row_access_policies</code></li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="healthcare-api">Healthcare API<a href="https://stackql.io/blog/google-provider-december-2025-update#healthcare-api" class="hash-link" aria-label="Direct link to Healthcare API" title="Direct link to Healthcare API" translate="no">​</a></h2>
<p>Expanded metrics and data mapping (15,000+ line changes):</p>
<ul>
<li class="">New <code>data_mapper_workspaces_iam_policies</code></li>
<li class="">Enhanced metrics: <code>hl7_v2_store_metrics</code>, <code>dicom_store_metrics</code>, <code>series_metrics</code>, <code>study_metrics</code></li>
<li class="">New <code>instances_storage_info</code> resource</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="cloud-spanner">Cloud Spanner<a href="https://stackql.io/blog/google-provider-december-2025-update#cloud-spanner" class="hash-link" aria-label="Direct link to Cloud Spanner" title="Direct link to Cloud Spanner" translate="no">​</a></h2>
<p>Backup and security enhancements (14,000+ line changes):</p>
<ul>
<li class="">New <code>backup_schedules</code> with IAM support</li>
<li class="">New <code>databases_split_points</code> resource</li>
<li class="">New <code>database_roles</code> with IAM policies</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="cloud-sql-admin">Cloud SQL Admin<a href="https://stackql.io/blog/google-provider-december-2025-update#cloud-sql-admin" class="hash-link" aria-label="Direct link to Cloud SQL Admin" title="Direct link to Cloud SQL Admin" translate="no">​</a></h2>
<p>New integration and management features (12,000+ line changes):</p>
<ul>
<li class="">New <code>instances_entra_id_certificate</code> for Microsoft Entra ID integration</li>
<li class="">New <code>instances_disk_shrink_config</code></li>
<li class="">New <code>instances_latest_recovery_time</code></li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="gke-on-prem">GKE On-Prem<a href="https://stackql.io/blog/google-provider-december-2025-update#gke-on-prem" class="hash-link" aria-label="Direct link to GKE On-Prem" title="Direct link to GKE On-Prem" translate="no">​</a></h2>
<p>Enhanced IAM across VMware and Bare Metal clusters (9,000+ line changes):</p>
<ul>
<li class="">Enhanced VMware cluster resources with IAM policies</li>
<li class="">Enhanced Bare Metal cluster resources with IAM policies</li>
<li class="">New <code>vmware_node_pools</code> and <code>bare_metal_node_pools</code> with IAM</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="developer-connect">Developer Connect<a href="https://stackql.io/blog/google-provider-december-2025-update#developer-connect" class="hash-link" aria-label="Direct link to Developer Connect" title="Direct link to Developer Connect" translate="no">​</a></h2>
<p>Git integration improvements (3,500+ line changes):</p>
<ul>
<li class="">New <code>git_repository_links_git_refs</code> resource</li>
<li class="">New <code>users_self</code> and <code>users_access_token</code> resources</li>
<li class="">New token resources: <code>read_token</code>, <code>read_write_token</code></li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="text-to-speech">Text-to-Speech<a href="https://stackql.io/blog/google-provider-december-2025-update#text-to-speech" class="hash-link" aria-label="Direct link to Text-to-Speech" title="Direct link to Text-to-Speech" translate="no">​</a></h2>
<p>Enhanced <code>voices</code> and <code>text</code> resources with new capabilities.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="get-started">Get Started<a href="https://stackql.io/blog/google-provider-december-2025-update#get-started" class="hash-link" aria-label="Direct link to Get Started" title="Direct link to Get Started" translate="no">​</a></h2>
<p>Update to the latest Google provider:</p>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#d6deeb;--prism-background-color:#011627"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#d6deeb;background-color:#011627"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#d6deeb"><span class="token plain">stackql registry pull google</span><br></span></code></pre></div></div>
<p>Let us know your thoughts! Visit us and give us a star on <a href="https://github.com/stackql/stackql" target="_blank" rel="noopener noreferrer" class=""><strong>GitHub</strong></a>.</p>]]></content>
        <author>
            <name>Jeffrey Aven</name>
            <uri>https://www.linkedin.com/in/jeffreyaven/</uri>
        </author>
        <category label="stackql" term="stackql"/>
        <category label="google cloud" term="google cloud"/>
        <category label="gcp" term="gcp"/>
        <category label="provider" term="provider"/>
        <category label="vertex ai" term="vertex ai"/>
        <category label="speech-to-text" term="speech-to-text"/>
        <category label="bigquery" term="bigquery"/>
        <category label="spanner" term="spanner"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[Window Functions and CTEs Now Available in StackQL]]></title>
        <id>https://stackql.io/blog/window-functions-and-ctes-now-available</id>
        <link href="https://stackql.io/blog/window-functions-and-ctes-now-available"/>
        <updated>2025-12-04T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Window functions and Common Table Expressions (CTEs) are now available in StackQL for advanced analytics across cloud and SaaS resources.]]></summary>
        <content type="html"><![CDATA[<p>Window functions and Common Table Expressions (CTEs) are now generally available in StackQL. These features work with both the embedded SQLite backend and PostgreSQL backend.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="window-functions">Window Functions<a href="https://stackql.io/blog/window-functions-and-ctes-now-available#window-functions" class="hash-link" aria-label="Direct link to Window Functions" title="Direct link to Window Functions" translate="no">​</a></h2>
<p>Window functions allow you to perform calculations across sets of rows related to the current row. Supported functions include:</p>
<ul>
<li class=""><strong>Ranking</strong>: <code>ROW_NUMBER()</code>, <code>RANK()</code>, <code>DENSE_RANK()</code>, <code>NTILE()</code></li>
<li class=""><strong>Offset</strong>: <code>LAG()</code>, <code>LEAD()</code>, <code>FIRST_VALUE()</code>, <code>LAST_VALUE()</code>, <code>NTH_VALUE()</code></li>
<li class=""><strong>Distribution</strong>: <code>PERCENT_RANK()</code>, <code>CUME_DIST()</code></li>
<li class=""><strong>Aggregates as window functions</strong>: <code>SUM()</code>, <code>COUNT()</code>, <code>AVG()</code>, etc. with <code>OVER</code> clause</li>
</ul>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="example-ranking-contributors">Example: Ranking Contributors<a href="https://stackql.io/blog/window-functions-and-ctes-now-available#example-ranking-contributors" class="hash-link" aria-label="Direct link to Example: Ranking Contributors" title="Direct link to Example: Ranking Contributors" translate="no">​</a></h3>
<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#d6deeb;--prism-background-color:#011627"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#d6deeb;background-color:#011627"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#d6deeb"><span class="token keyword" style="color:rgb(127, 219, 202)">SELECT</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">    login</span><span class="token punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">    contributions</span><span class="token punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">    DENSE_RANK</span><span class="token punctuation" style="color:rgb(199, 146, 234)">(</span><span class="token punctuation" style="color:rgb(199, 146, 234)">)</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(127, 219, 202)">OVER</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(199, 146, 234)">(</span><span class="token keyword" style="color:rgb(127, 219, 202)">ORDER</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(127, 219, 202)">BY</span><span class="token plain"> contributions </span><span class="token keyword" style="color:rgb(127, 219, 202)">DESC</span><span class="token punctuation" style="color:rgb(199, 146, 234)">)</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(127, 219, 202)">as</span><span class="token plain"> rank</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"></span><span class="token keyword" style="color:rgb(127, 219, 202)">FROM</span><span class="token plain"> github</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token plain">repos</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token plain">contributors</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"></span><span class="token keyword" style="color:rgb(127, 219, 202)">WHERE</span><span class="token plain"> owner </span><span class="token operator" style="color:rgb(127, 219, 202)">=</span><span class="token plain"> </span><span class="token string" style="color:rgb(173, 219, 103)">'stackql'</span><span class="token plain"> </span><span class="token operator" style="color:rgb(127, 219, 202)">AND</span><span class="token plain"> repo </span><span class="token operator" style="color:rgb(127, 219, 202)">=</span><span class="token plain"> </span><span class="token string" style="color:rgb(173, 219, 103)">'stackql'</span><span class="token punctuation" style="color:rgb(199, 146, 234)">;</span><br></span></code></pre></div></div>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="example-running-totals">Example: Running Totals<a href="https://stackql.io/blog/window-functions-and-ctes-now-available#example-running-totals" class="hash-link" aria-label="Direct link to Example: Running Totals" title="Direct link to Example: Running Totals" translate="no">​</a></h3>
<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#d6deeb;--prism-background-color:#011627"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#d6deeb;background-color:#011627"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#d6deeb"><span class="token keyword" style="color:rgb(127, 219, 202)">SELECT</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">    login</span><span class="token punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">    contributions</span><span class="token punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">    </span><span class="token function" style="color:rgb(130, 170, 255)">SUM</span><span class="token punctuation" style="color:rgb(199, 146, 234)">(</span><span class="token plain">contributions</span><span class="token punctuation" style="color:rgb(199, 146, 234)">)</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(127, 219, 202)">OVER</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(199, 146, 234)">(</span><span class="token keyword" style="color:rgb(127, 219, 202)">ORDER</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(127, 219, 202)">BY</span><span class="token plain"> contributions </span><span class="token keyword" style="color:rgb(127, 219, 202)">DESC</span><span class="token punctuation" style="color:rgb(199, 146, 234)">)</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(127, 219, 202)">as</span><span class="token plain"> running_total</span><span class="token punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">    </span><span class="token function" style="color:rgb(130, 170, 255)">ROUND</span><span class="token punctuation" style="color:rgb(199, 146, 234)">(</span><span class="token number" style="color:rgb(247, 140, 108)">100.0</span><span class="token plain"> </span><span class="token operator" style="color:rgb(127, 219, 202)">*</span><span class="token plain"> contributions </span><span class="token operator" style="color:rgb(127, 219, 202)">/</span><span class="token plain"> </span><span class="token function" style="color:rgb(130, 170, 255)">SUM</span><span class="token punctuation" style="color:rgb(199, 146, 234)">(</span><span class="token plain">contributions</span><span class="token punctuation" style="color:rgb(199, 146, 234)">)</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(127, 219, 202)">OVER</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(199, 146, 234)">(</span><span class="token punctuation" style="color:rgb(199, 146, 234)">)</span><span class="token punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token plain"> </span><span class="token number" style="color:rgb(247, 140, 108)">2</span><span class="token punctuation" style="color:rgb(199, 146, 234)">)</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(127, 219, 202)">as</span><span class="token plain"> pct_of_total</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"></span><span class="token keyword" style="color:rgb(127, 219, 202)">FROM</span><span class="token plain"> github</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token plain">repos</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token plain">contributors</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"></span><span class="token keyword" style="color:rgb(127, 219, 202)">WHERE</span><span class="token plain"> owner </span><span class="token operator" style="color:rgb(127, 219, 202)">=</span><span class="token plain"> </span><span class="token string" style="color:rgb(173, 219, 103)">'stackql'</span><span class="token plain"> </span><span class="token operator" style="color:rgb(127, 219, 202)">AND</span><span class="token plain"> repo </span><span class="token operator" style="color:rgb(127, 219, 202)">=</span><span class="token plain"> </span><span class="token string" style="color:rgb(173, 219, 103)">'stackql'</span><span class="token punctuation" style="color:rgb(199, 146, 234)">;</span><br></span></code></pre></div></div>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="common-table-expressions-ctes">Common Table Expressions (CTEs)<a href="https://stackql.io/blog/window-functions-and-ctes-now-available#common-table-expressions-ctes" class="hash-link" aria-label="Direct link to Common Table Expressions (CTEs)" title="Direct link to Common Table Expressions (CTEs)" translate="no">​</a></h2>
<p>CTEs let you define temporary named result sets using the <code>WITH</code> clause. This simplifies complex queries by breaking them into logical components.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="example-aggregating-across-multiple-resources">Example: Aggregating Across Multiple Resources<a href="https://stackql.io/blog/window-functions-and-ctes-now-available#example-aggregating-across-multiple-resources" class="hash-link" aria-label="Direct link to Example: Aggregating Across Multiple Resources" title="Direct link to Example: Aggregating Across Multiple Resources" translate="no">​</a></h3>
<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#d6deeb;--prism-background-color:#011627"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#d6deeb;background-color:#011627"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#d6deeb"><span class="token keyword" style="color:rgb(127, 219, 202)">WITH</span><span class="token plain"> all_contributors </span><span class="token keyword" style="color:rgb(127, 219, 202)">AS</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(199, 146, 234)">(</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">    </span><span class="token keyword" style="color:rgb(127, 219, 202)">SELECT</span><span class="token plain"> login</span><span class="token punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token plain"> contributions</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">    </span><span class="token keyword" style="color:rgb(127, 219, 202)">FROM</span><span class="token plain"> github</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token plain">repos</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token plain">contributors</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">    </span><span class="token keyword" style="color:rgb(127, 219, 202)">WHERE</span><span class="token plain"> owner </span><span class="token operator" style="color:rgb(127, 219, 202)">=</span><span class="token plain"> </span><span class="token string" style="color:rgb(173, 219, 103)">'stackql'</span><span class="token plain"> </span><span class="token operator" style="color:rgb(127, 219, 202)">AND</span><span class="token plain"> repo </span><span class="token operator" style="color:rgb(127, 219, 202)">=</span><span class="token plain"> </span><span class="token string" style="color:rgb(173, 219, 103)">'stackql'</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">    </span><span class="token keyword" style="color:rgb(127, 219, 202)">UNION</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(127, 219, 202)">ALL</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">    </span><span class="token keyword" style="color:rgb(127, 219, 202)">SELECT</span><span class="token plain"> login</span><span class="token punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token plain"> contributions</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">    </span><span class="token keyword" style="color:rgb(127, 219, 202)">FROM</span><span class="token plain"> github</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token plain">repos</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token plain">contributors</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">    </span><span class="token keyword" style="color:rgb(127, 219, 202)">WHERE</span><span class="token plain"> owner </span><span class="token operator" style="color:rgb(127, 219, 202)">=</span><span class="token plain"> </span><span class="token string" style="color:rgb(173, 219, 103)">'stackql'</span><span class="token plain"> </span><span class="token operator" style="color:rgb(127, 219, 202)">AND</span><span class="token plain"> repo </span><span class="token operator" style="color:rgb(127, 219, 202)">=</span><span class="token plain"> </span><span class="token string" style="color:rgb(173, 219, 103)">'stackql-deploy'</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"></span><span class="token punctuation" style="color:rgb(199, 146, 234)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"></span><span class="token keyword" style="color:rgb(127, 219, 202)">SELECT</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">    DENSE_RANK</span><span class="token punctuation" style="color:rgb(199, 146, 234)">(</span><span class="token punctuation" style="color:rgb(199, 146, 234)">)</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(127, 219, 202)">OVER</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(199, 146, 234)">(</span><span class="token keyword" style="color:rgb(127, 219, 202)">ORDER</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(127, 219, 202)">BY</span><span class="token plain"> </span><span class="token function" style="color:rgb(130, 170, 255)">SUM</span><span class="token punctuation" style="color:rgb(199, 146, 234)">(</span><span class="token plain">contributions</span><span class="token punctuation" style="color:rgb(199, 146, 234)">)</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(127, 219, 202)">DESC</span><span class="token punctuation" style="color:rgb(199, 146, 234)">)</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(127, 219, 202)">as</span><span class="token plain"> rank</span><span class="token punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">    login</span><span class="token punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">    </span><span class="token function" style="color:rgb(130, 170, 255)">SUM</span><span class="token punctuation" style="color:rgb(199, 146, 234)">(</span><span class="token plain">contributions</span><span class="token punctuation" style="color:rgb(199, 146, 234)">)</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(127, 219, 202)">as</span><span class="token plain"> total_contributions</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"></span><span class="token keyword" style="color:rgb(127, 219, 202)">FROM</span><span class="token plain"> all_contributors</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"></span><span class="token keyword" style="color:rgb(127, 219, 202)">GROUP</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(127, 219, 202)">BY</span><span class="token plain"> login</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"></span><span class="token keyword" style="color:rgb(127, 219, 202)">ORDER</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(127, 219, 202)">BY</span><span class="token plain"> total_contributions </span><span class="token keyword" style="color:rgb(127, 219, 202)">DESC</span><span class="token punctuation" style="color:rgb(199, 146, 234)">;</span><br></span></code></pre></div></div>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="documentation">Documentation<a href="https://stackql.io/blog/window-functions-and-ctes-now-available#documentation" class="hash-link" aria-label="Direct link to Documentation" title="Direct link to Documentation" translate="no">​</a></h2>
<p>Full documentation is available:</p>
<ul>
<li class=""><a class="" href="https://stackql.io/docs/language-spec/functions/window/row_number">Window Functions</a></li>
<li class=""><a class="" href="https://stackql.io/docs/language-spec/with">WITH (CTEs)</a></li>
<li class=""><a class="" href="https://stackql.io/docs/language-spec/select">SELECT</a></li>
</ul>
<p>Let us know your thoughts! Visit us and give us a star on <a href="https://github.com/stackql/stackql" target="_blank" rel="noopener noreferrer" class=""><strong>GitHub</strong></a>.</p>]]></content>
        <author>
            <name>Jeffrey Aven</name>
            <uri>https://www.linkedin.com/in/jeffreyaven/</uri>
        </author>
        <category label="stackql" term="stackql"/>
        <category label="analytics" term="analytics"/>
        <category label="window functions" term="window functions"/>
        <category label="cte" term="cte"/>
        <category label="sql" term="sql"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[StackQL Provider Development Skill for Claude]]></title>
        <id>https://stackql.io/blog/stackql-provider-development-skill-for-claude</id>
        <link href="https://stackql.io/blog/stackql-provider-development-skill-for-claude"/>
        <updated>2025-11-28T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[A Claude Skill for developing StackQL providers, covering OpenAPI extensions, resource definitions, SQL verb mappings, and more.]]></summary>
        <content type="html"><![CDATA[<p>We've published a Claude Skill for <a href="https://github.com/stackql/stackql" target="_blank" rel="noopener noreferrer" class=""><strong>StackQL</strong></a> provider development. It provides Claude with the context needed to help you build providers using the <a href="https://github.com/stackql/any-sdk" target="_blank" rel="noopener noreferrer" class=""><strong>any-sdk</strong></a> library (interface used by StackQL to interact with the cloud providers).</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="whats-in-the-skill">What's in the Skill<a href="https://stackql.io/blog/stackql-provider-development-skill-for-claude#whats-in-the-skill" class="hash-link" aria-label="Direct link to What's in the Skill" title="Direct link to What's in the Skill" translate="no">​</a></h2>
<p>The skill covers the full provider development workflow:</p>
<ul>
<li class=""><strong>Provider document structure</strong> - The <code>provider.yaml</code> schema and service document layout</li>
<li class=""><strong>OpenAPI extensions</strong> - All <code>x-stackQL-*</code> extensions including <code>x-stackQL-resources</code>, <code>x-stackQL-config</code>, <code>x-stackQL-objectKey</code>, and others</li>
<li class=""><strong>Resource and method definitions</strong> - How to define resources, map methods to operations, and configure responses</li>
<li class=""><strong>SQL verb mappings</strong> - Connecting REST operations to <code>SELECT</code>, <code>INSERT</code>, <code>UPDATE</code>, and <code>DELETE</code></li>
<li class=""><strong>Authentication patterns</strong> - API keys, service accounts, OAuth, and custom auth schemes</li>
<li class=""><strong>Pagination handling</strong> - Request/response token configuration</li>
<li class=""><strong>Response processing</strong> - JSONPath extraction, transformations, and schema handling</li>
</ul>
<div class="theme-admonition theme-admonition-info admonition_xJq3 alert alert--info"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"></path></svg></span>What is a Claude Skill?</div><div class="admonitionContent_BuS1"><p>A Claude Skill is a markdown file that provides Claude with specialized knowledge for a particular domain or task. When you add a skill to your project, Claude can reference it during conversations to give more accurate, context-aware responses.</p><p><strong>To use this skill:</strong></p><ol>
<li class="">Download the skill file (<a href="https://github.com/stackql/any-sdk/raw/refs/heads/main/.claude/skills/stackql-provider-development.md" target="_blank" rel="noopener noreferrer" class=""><strong>stackql-provider-development.md</strong></a>)</li>
<li class="">In Claude, go to your Project settings</li>
<li class="">Add the skill file to your Project Knowledge</li>
</ol><p>Once added, Claude will automatically apply this knowledge when you're working on StackQL provider development.</p></div></div>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="download">Download<a href="https://stackql.io/blog/stackql-provider-development-skill-for-claude#download" class="hash-link" aria-label="Direct link to Download" title="Direct link to Download" translate="no">​</a></h2>
<p>Grab the skill from the any-sdk repository:</p>
<p><strong><a href="https://github.com/stackql/any-sdk/raw/refs/heads/main/.claude/skills/stackql-provider-development.md" target="_blank" rel="noopener noreferrer" class="">Download stackql-provider-development.md</a></strong></p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="usage">Usage<a href="https://stackql.io/blog/stackql-provider-development-skill-for-claude#usage" class="hash-link" aria-label="Direct link to Usage" title="Direct link to Usage" translate="no">​</a></h2>
<p>With the skill loaded, you can ask Claude things like:</p>
<ul>
<li class=""><em>"Create a provider definition for this API"</em></li>
<li class=""><em>"How do I map this endpoint to a SELECT operation?"</em></li>
<li class=""><em>"What's the correct objectKey syntax for this nested response?"</em></li>
<li class=""><em>"Help me configure pagination for this API"</em></li>
</ul>
<p>Claude will have the full context of StackQL's OpenAPI extensions and provider patterns to work from.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="example">Example<a href="https://stackql.io/blog/stackql-provider-development-skill-for-claude#example" class="hash-link" aria-label="Direct link to Example" title="Direct link to Example" translate="no">​</a></h2>
<p>Here's a sample interaction after loading the skill:</p>
<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#d6deeb;--prism-background-color:#011627"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#d6deeb;background-color:#011627"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#d6deeb"><span class="token plain">You: I have an API endpoint GET /users that returns {"data": {"users": [...]}}. </span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">     How do I set up the resource?</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">Claude: For that response structure, you'd configure the method like this:</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">methods:</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">  list:</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">    operation:</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">      $ref: '#/paths/~1users/get'</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">    response:</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">      mediaType: application/json</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">      openAPIDocKey: '200'</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">      objectKey: $.data.users</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">The objectKey uses JSONPath to extract the users array from the nested response.</span><br></span></code></pre></div></div>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="resources">Resources<a href="https://stackql.io/blog/stackql-provider-development-skill-for-claude#resources" class="hash-link" aria-label="Direct link to Resources" title="Direct link to Resources" translate="no">​</a></h2>
<ul>
<li class=""><a href="https://github.com/stackql/stackql-provider-registry" target="_blank" rel="noopener noreferrer" class="">StackQL Provider Registry</a></li>
<li class=""><a href="https://github.com/stackql/any-sdk" target="_blank" rel="noopener noreferrer" class="">any-sdk documentation</a></li>
<li class=""><a href="https://stackql.io/docs" target="_blank" rel="noopener noreferrer" class="">StackQL documentation</a></li>
</ul>
<p>⭐ Star us on <a href="https://github.com/stackql/stackql" target="_blank" rel="noopener noreferrer" class=""><strong>GitHub</strong></a></p>]]></content>
        <author>
            <name>Jeffrey Aven</name>
            <uri>https://www.linkedin.com/in/jeffreyaven/</uri>
        </author>
        <category label="stackql" term="stackql"/>
        <category label="claude" term="claude"/>
        <category label="ai" term="ai"/>
        <category label="provider development" term="provider development"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[Markdown-KV Output Format Available in pystackql]]></title>
        <id>https://stackql.io/blog/markdownkv-output-format-available-in-pystackql</id>
        <link href="https://stackql.io/blog/markdownkv-output-format-available-in-pystackql"/>
        <updated>2025-11-10T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[New output format in pystackql optimizes cloud infrastructure data for LLM processing based on research showing accuracy improvement over CSV.]]></summary>
        <content type="html"><![CDATA[<p><a href="https://github.com/stackql/pystackql" target="_blank" rel="noopener noreferrer" class=""><strong>pystackql</strong></a> now includes a <code>markdownkv</code> output format optimized for LLM processing of control plane and data plane data from cloud providers.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="background">Background<a href="https://stackql.io/blog/markdownkv-output-format-available-in-pystackql#background" class="hash-link" aria-label="Direct link to Background" title="Direct link to Background" translate="no">​</a></h2>
<p>Recent research from <a href="https://www.improvingagents.com/blog/best-input-data-format-for-llms" target="_blank" rel="noopener noreferrer" class=""><strong>ImprovingAgents.com</strong></a> tested 11 data formats to determine which ones LLMs parse most accurately. Using 1,000 synthetic employee records and 1,000 randomized queries, they measured how well different formats preserved data integrity through LLM processing.</p>
<p>The results:</p>
<table><thead><tr><th>Format</th><th>Accuracy</th><th>95% CI</th></tr></thead><tbody><tr><td>Markdown-KV</td><td>60.7%</td><td>57.6%–63.7%</td></tr><tr><td>JSON</td><td>52.3%</td><td>49.2%–55.4%</td></tr><tr><td>Markdown Tables</td><td>51.9%</td><td>48.8%–55.0%</td></tr><tr><td>JSONL</td><td>45.0%</td><td>41.9%–48.1%</td></tr><tr><td>CSV</td><td>44.3%</td><td>41.2%–47.4%</td></tr></tbody></table>
<br>
<br>
<p>Markdown-KV showed a 37% improvement over CSV and 16 percentage points over JSON. The tradeoff: it uses approximately 2.7x more tokens than CSV.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="what-is-markdown-kv">What is Markdown-KV?<a href="https://stackql.io/blog/markdownkv-output-format-available-in-pystackql#what-is-markdown-kv" class="hash-link" aria-label="Direct link to What is Markdown-KV?" title="Direct link to What is Markdown-KV?" translate="no">​</a></h2>
<p>Markdown-KV uses hierarchical markdown headers with code blocks for key-value pairs:</p>
<div class="language-markdown codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#d6deeb;--prism-background-color:#011627"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-markdown codeBlock_bY9V thin-scrollbar" style="color:#d6deeb;background-color:#011627"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#d6deeb"><span class="token title important punctuation" style="color:rgb(199, 146, 234)">#</span><span class="token title important"> Query Results</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"></span><span class="token title important punctuation" style="color:rgb(199, 146, 234)">##</span><span class="token title important"> Record 1</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">id: i-1234567890abcdef0</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">name: prod-web-01</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">region: us-east-1</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">instance_type: t3.large</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">state: running</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"></span><span class="token title important punctuation" style="color:rgb(199, 146, 234)">##</span><span class="token title important"> Record 2</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">id: i-0987654321fedcba0</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">name: staging-web-01</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">region: us-west-2</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">instance_type: t3.medium</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">state: stopped</span><br></span></code></pre></div></div>
<p>The format combines clear hierarchy, explicit key-value pairs, and readability for both humans and LLMs.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="usage">Usage<a href="https://stackql.io/blog/markdownkv-output-format-available-in-pystackql#usage" class="hash-link" aria-label="Direct link to Usage" title="Direct link to Usage" translate="no">​</a></h2>
<div class="language-python codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#d6deeb;--prism-background-color:#011627"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-python codeBlock_bY9V thin-scrollbar" style="color:#d6deeb;background-color:#011627"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#d6deeb"><span class="token keyword" style="color:rgb(127, 219, 202)">from</span><span class="token plain"> pystackql </span><span class="token keyword" style="color:rgb(127, 219, 202)">import</span><span class="token plain"> StackQL</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">stackql </span><span class="token operator" style="color:rgb(127, 219, 202)">=</span><span class="token plain"> StackQL</span><span class="token punctuation" style="color:rgb(199, 146, 234)">(</span><span class="token punctuation" style="color:rgb(199, 146, 234)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"></span><span class="token comment" style="color:rgb(99, 119, 119);font-style:italic"># Query with Markdown-KV output</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">result </span><span class="token operator" style="color:rgb(127, 219, 202)">=</span><span class="token plain"> stackql</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token plain">execute</span><span class="token punctuation" style="color:rgb(199, 146, 234)">(</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">    </span><span class="token triple-quoted-string string" style="color:rgb(173, 219, 103)">"""</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token triple-quoted-string string" style="color:rgb(173, 219, 103)">    SELECT instanceId, instanceType, state, availabilityZone </span><br></span><span class="token-line" style="color:#d6deeb"><span class="token triple-quoted-string string" style="color:rgb(173, 219, 103)">    FROM aws.ec2.instances </span><br></span><span class="token-line" style="color:#d6deeb"><span class="token triple-quoted-string string" style="color:rgb(173, 219, 103)">    WHERE region = 'us-east-1'</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token triple-quoted-string string" style="color:rgb(173, 219, 103)">    """</span><span class="token punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">    output</span><span class="token operator" style="color:rgb(127, 219, 202)">=</span><span class="token string" style="color:rgb(173, 219, 103)">'markdownkv'</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"></span><span class="token punctuation" style="color:rgb(199, 146, 234)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"></span><span class="token comment" style="color:rgb(99, 119, 119);font-style:italic"># Use with LLMs</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">response </span><span class="token operator" style="color:rgb(127, 219, 202)">=</span><span class="token plain"> llm_client</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token plain">complete</span><span class="token punctuation" style="color:rgb(199, 146, 234)">(</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">    </span><span class="token string-interpolation string" style="color:rgb(173, 219, 103)">f"Identify instances that should be stopped:\n\n</span><span class="token string-interpolation interpolation punctuation" style="color:rgb(199, 146, 234)">{</span><span class="token string-interpolation interpolation">result</span><span class="token string-interpolation interpolation punctuation" style="color:rgb(199, 146, 234)">}</span><span class="token string-interpolation string" style="color:rgb(173, 219, 103)">"</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"></span><span class="token punctuation" style="color:rgb(199, 146, 234)">)</span><br></span></code></pre></div></div>
<p>Works in server mode too:</p>
<div class="language-python codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#d6deeb;--prism-background-color:#011627"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-python codeBlock_bY9V thin-scrollbar" style="color:#d6deeb;background-color:#011627"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#d6deeb"><span class="token plain">stackql </span><span class="token operator" style="color:rgb(127, 219, 202)">=</span><span class="token plain"> StackQL</span><span class="token punctuation" style="color:rgb(199, 146, 234)">(</span><span class="token plain">server_mode</span><span class="token operator" style="color:rgb(127, 219, 202)">=</span><span class="token boolean" style="color:rgb(255, 88, 116)">True</span><span class="token punctuation" style="color:rgb(199, 146, 234)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">result </span><span class="token operator" style="color:rgb(127, 219, 202)">=</span><span class="token plain"> stackql</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token plain">execute</span><span class="token punctuation" style="color:rgb(199, 146, 234)">(</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">    </span><span class="token string" style="color:rgb(173, 219, 103)">"SELECT name, region, encryption FROM google.storage.buckets WHERE project = 'my-project'"</span><span class="token punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">    output</span><span class="token operator" style="color:rgb(127, 219, 202)">=</span><span class="token string" style="color:rgb(173, 219, 103)">'markdownkv'</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"></span><span class="token punctuation" style="color:rgb(199, 146, 234)">)</span><br></span></code></pre></div></div>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="when-to-use-it">When to Use It<a href="https://stackql.io/blog/markdownkv-output-format-available-in-pystackql#when-to-use-it" class="hash-link" aria-label="Direct link to When to Use It" title="Direct link to When to Use It" translate="no">​</a></h2>
<p>Markdown-KV is useful when:</p>
<ul>
<li class="">Feeding infrastructure data to LLMs for analysis, security reviews, or recommendations</li>
<li class="">Building RAG pipelines that need to accurately retrieve and reason about infrastructure</li>
<li class="">Accuracy matters more than token efficiency (infrastructure decisions typically do)</li>
<li class="">Query results are focused datasets (most StackQL queries are)</li>
</ul>
<p>The token cost is a real tradeoff, but infrastructure queries typically return targeted result sets, not massive datasets. When you're asking an LLM to analyze your production environment, accuracy matters.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="getting-started">Getting Started<a href="https://stackql.io/blog/markdownkv-output-format-available-in-pystackql#getting-started" class="hash-link" aria-label="Direct link to Getting Started" title="Direct link to Getting Started" translate="no">​</a></h2>
<p>Update <code>pystackql</code>:</p>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#d6deeb;--prism-background-color:#011627"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#d6deeb;background-color:#011627"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#d6deeb"><span class="token plain">pip install --upgrade pystackql</span><br></span></code></pre></div></div>
<p>Add <code>output='markdownkv'</code> to your execute calls or in the <code>StackQL</code> object instantiation:</p>
<div class="language-python codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#d6deeb;--prism-background-color:#011627"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-python codeBlock_bY9V thin-scrollbar" style="color:#d6deeb;background-color:#011627"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#d6deeb"><span class="token plain">result </span><span class="token operator" style="color:rgb(127, 219, 202)">=</span><span class="token plain"> stackql</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token plain">execute</span><span class="token punctuation" style="color:rgb(199, 146, 234)">(</span><span class="token plain">query</span><span class="token punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token plain"> output</span><span class="token operator" style="color:rgb(127, 219, 202)">=</span><span class="token string" style="color:rgb(173, 219, 103)">'markdownkv'</span><span class="token punctuation" style="color:rgb(199, 146, 234)">)</span><br></span></code></pre></div></div>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="resources">Resources<a href="https://stackql.io/blog/markdownkv-output-format-available-in-pystackql#resources" class="hash-link" aria-label="Direct link to Resources" title="Direct link to Resources" translate="no">​</a></h2>
<ul>
<li class=""><a href="https://www.improvingagents.com/blog/best-input-data-format-for-llms" target="_blank" rel="noopener noreferrer" class="">ImprovingAgents.com research on LLM data formats</a></li>
<li class=""><a href="https://github.com/stackql/pystackql/releases/tag/v3.8.2" target="_blank" rel="noopener noreferrer" class="">pystackql v3.8.2 changelog</a></li>
<li class=""><a href="https://github.com/stackql/pystackql" target="_blank" rel="noopener noreferrer" class="">pystackql documentation</a></li>
<li class=""><a href="https://stackql.io/docs" target="_blank" rel="noopener noreferrer" class="">StackQL documentation</a></li>
</ul>
<p>The Markdown-KV output format is available in <code>pystackql</code> v3.8.2 and later.</p>
<p>⭐ Star us on <a href="https://github.com/stackql/stackql" target="_blank" rel="noopener noreferrer" class=""><strong>GitHub</strong></a> and join our community!</p>]]></content>
        <author>
            <name>Jeffrey Aven</name>
            <uri>https://www.linkedin.com/in/jeffreyaven/</uri>
        </author>
        <category label="stackql" term="stackql"/>
        <category label="pystackql" term="pystackql"/>
        <category label="llm" term="llm"/>
        <category label="ai" term="ai"/>
        <category label="infrastructure-as-code" term="infrastructure-as-code"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[StackQL MCP Server Now Available]]></title>
        <id>https://stackql.io/blog/stackql-mcp-server-now-available</id>
        <link href="https://stackql.io/blog/stackql-mcp-server-now-available"/>
        <updated>2025-11-02T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Enable AI agents to query and manage cloud infrastructure using the Model Context Protocol.]]></summary>
        <content type="html"><![CDATA[<p><a href="https://github.com/stackql/stackql" target="_blank" rel="noopener noreferrer" class=""><strong>StackQL</strong></a> now supports the <a href="https://modelcontextprotocol.io/" target="_blank" rel="noopener noreferrer" class=""><strong>Model Context Protocol (MCP)</strong></a>. This integration enables AI agents and assistants to query and manage cloud infrastructure across multiple providers using natural language.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="what-is-the-model-context-protocol">What is the Model Context Protocol?<a href="https://stackql.io/blog/stackql-mcp-server-now-available#what-is-the-model-context-protocol" class="hash-link" aria-label="Direct link to What is the Model Context Protocol?" title="Direct link to What is the Model Context Protocol?" translate="no">​</a></h2>
<p>The Model Context Protocol is an open standard that enables AI applications to securely connect to external data sources and tools. By running StackQL as an MCP server, AI agents like Claude, ChatGPT, and other LLM-based assistants can interact with your cloud infrastructure using StackQL's powerful SQL-based query capabilities.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="why-mcp--stackql">Why MCP + StackQL?<a href="https://stackql.io/blog/stackql-mcp-server-now-available#why-mcp--stackql" class="hash-link" aria-label="Direct link to Why MCP + StackQL?" title="Direct link to Why MCP + StackQL?" translate="no">​</a></h2>
<p>Combining MCP with StackQL creates a powerful interface for AI-assisted infrastructure management:</p>
<ul>
<li class=""><strong>Natural Language Infrastructure Queries</strong>: Ask questions about your cloud resources in plain English and get structured data back</li>
<li class=""><strong>Multi-Cloud Support</strong>: Access resources across AWS, Google Cloud, Azure, and 100+ other providers through a single interface</li>
<li class=""><strong>Secure and Standardized</strong>: MCP provides a secure, standardized way for AI agents to interact with your infrastructure</li>
<li class=""><strong>SQL-Powered Analytics</strong>: Leverage StackQL's full SQL capabilities including joins, aggregations, and complex queries through AI agents</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="deployment-options">Deployment Options<a href="https://stackql.io/blog/stackql-mcp-server-now-available#deployment-options" class="hash-link" aria-label="Direct link to Deployment Options" title="Direct link to Deployment Options" translate="no">​</a></h2>
<p>StackQL's MCP server supports three flexible deployment modes to suit different architectural requirements:</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="1-standalone-mcp-server">1. Standalone MCP Server<a href="https://stackql.io/blog/stackql-mcp-server-now-available#1-standalone-mcp-server" class="hash-link" aria-label="Direct link to 1. Standalone MCP Server" title="Direct link to 1. Standalone MCP Server" translate="no">​</a></h3>
<p>Perfect for development and AI agent integration:</p>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#d6deeb;--prism-background-color:#011627"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#d6deeb;background-color:#011627"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#d6deeb"><span class="token plain">stackql mcp \</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">  --mcp.server.type=http \</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">  --mcp.config '{"server": {"transport": "http", "address": "127.0.0.1:9912"}}'</span><br></span></code></pre></div></div>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="2-dual-protocol-server-in-memory">2. Dual-Protocol Server (In-Memory)<a href="https://stackql.io/blog/stackql-mcp-server-now-available#2-dual-protocol-server-in-memory" class="hash-link" aria-label="Direct link to 2. Dual-Protocol Server (In-Memory)" title="Direct link to 2. Dual-Protocol Server (In-Memory)" translate="no">​</a></h3>
<p>Run both MCP and PostgreSQL wire protocol simultaneously with high-performance in-memory communication:</p>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#d6deeb;--prism-background-color:#011627"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#d6deeb;background-color:#011627"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#d6deeb"><span class="token plain">stackql srv \</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">  --mcp.server.type=http \</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">  --mcp.config '{"server": {"transport": "http", "address": "127.0.0.1:9912"}}' \</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">  --pgsrv.port 5665</span><br></span></code></pre></div></div>
<p>This mode is ideal when you need both AI agent access and traditional database client connectivity.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="3-reverse-proxy-with-tls">3. Reverse Proxy with TLS<a href="https://stackql.io/blog/stackql-mcp-server-now-available#3-reverse-proxy-with-tls" class="hash-link" aria-label="Direct link to 3. Reverse Proxy with TLS" title="Direct link to 3. Reverse Proxy with TLS" translate="no">​</a></h3>
<p>For production environments requiring distributed deployments and encrypted connections:</p>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#d6deeb;--prism-background-color:#011627"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#d6deeb;background-color:#011627"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#d6deeb"><span class="token plain">stackql srv \</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">  --mcp.server.type=reverse_proxy \</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">  --mcp.config '{"server": {"tls_cert_file": "/path/to/cert.pem", "tls_key_file": "/path/to/key.pem", "transport": "http", "address": "127.0.0.1:9004"}, "backend": {"dsn": "postgres://stackql:stackql@127.0.0.1:5446?default_query_exec_mode=simple_protocol"}}' \</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">  --pgsrv.port 5446</span><br></span></code></pre></div></div>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="available-mcp-tools">Available MCP Tools<a href="https://stackql.io/blog/stackql-mcp-server-now-available#available-mcp-tools" class="hash-link" aria-label="Direct link to Available MCP Tools" title="Direct link to Available MCP Tools" translate="no">​</a></h2>
<p>When running as an MCP server, StackQL exposes several tools that AI agents can invoke:</p>
<table><thead><tr><th>Tool</th><th>Description</th></tr></thead><tbody><tr><td><code>greet</code></td><td>Test connectivity with the MCP server</td></tr><tr><td><code>list_providers</code></td><td>List all available StackQL providers</td></tr><tr><td><code>list_services</code></td><td>List services for a specific provider</td></tr><tr><td><code>list_resources</code></td><td>List resources within a provider service</td></tr><tr><td><code>list_methods</code></td><td>List available methods for a resource</td></tr><tr><td><code>query_v2</code></td><td>Execute StackQL queries</td></tr></tbody></table>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="integration-with-claude-desktop">Integration with Claude Desktop<a href="https://stackql.io/blog/stackql-mcp-server-now-available#integration-with-claude-desktop" class="hash-link" aria-label="Direct link to Integration with Claude Desktop" title="Direct link to Integration with Claude Desktop" translate="no">​</a></h2>
<p>To integrate StackQL with Claude Desktop, add this configuration to your MCP settings file (<code>~/Library/Application Support/Claude/claude_desktop_config.json</code> on macOS):</p>
<div class="language-json codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#d6deeb;--prism-background-color:#011627"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-json codeBlock_bY9V thin-scrollbar" style="color:#d6deeb;background-color:#011627"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#d6deeb"><span class="token punctuation" style="color:rgb(199, 146, 234)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">  </span><span class="token property" style="color:rgb(128, 203, 196)">"mcpServers"</span><span class="token operator" style="color:rgb(127, 219, 202)">:</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(199, 146, 234)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">    </span><span class="token property" style="color:rgb(128, 203, 196)">"stackql"</span><span class="token operator" style="color:rgb(127, 219, 202)">:</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(199, 146, 234)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">      </span><span class="token property" style="color:rgb(128, 203, 196)">"command"</span><span class="token operator" style="color:rgb(127, 219, 202)">:</span><span class="token plain"> </span><span class="token string" style="color:rgb(173, 219, 103)">"stackql"</span><span class="token punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">      </span><span class="token property" style="color:rgb(128, 203, 196)">"args"</span><span class="token operator" style="color:rgb(127, 219, 202)">:</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(199, 146, 234)">[</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">        </span><span class="token string" style="color:rgb(173, 219, 103)">"mcp"</span><span class="token punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">        </span><span class="token string" style="color:rgb(173, 219, 103)">"--mcp.server.type=http"</span><span class="token punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">        </span><span class="token string" style="color:rgb(173, 219, 103)">"--mcp.config"</span><span class="token punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">        </span><span class="token string" style="color:rgb(173, 219, 103)">"{\"server\": {\"transport\": \"http\", \"address\": \"127.0.0.1:9912\"}}"</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">      </span><span class="token punctuation" style="color:rgb(199, 146, 234)">]</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">    </span><span class="token punctuation" style="color:rgb(199, 146, 234)">}</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">  </span><span class="token punctuation" style="color:rgb(199, 146, 234)">}</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"></span><span class="token punctuation" style="color:rgb(199, 146, 234)">}</span><br></span></code></pre></div></div>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="example-use-cases">Example Use Cases<a href="https://stackql.io/blog/stackql-mcp-server-now-available#example-use-cases" class="hash-link" aria-label="Direct link to Example Use Cases" title="Direct link to Example Use Cases" translate="no">​</a></h2>
<p>Once configured, you can ask your AI assistant questions like:</p>
<ul>
<li class="">"Show me all my EC2 instances across all AWS regions"</li>
<li class="">"List all Google Cloud Storage buckets with public access"</li>
<li class="">"Find all Azure virtual machines that haven't been updated in 30 days"</li>
<li class="">"Compare compute costs across AWS, Azure, and GCP"</li>
<li class="">"Show me IAM policies that grant admin access in my Google Cloud projects"</li>
</ul>
<p>The AI agent will use StackQL's MCP server to execute the appropriate queries and return structured results.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="example-query-flow">Example Query Flow<a href="https://stackql.io/blog/stackql-mcp-server-now-available#example-query-flow" class="hash-link" aria-label="Direct link to Example Query Flow" title="Direct link to Example Query Flow" translate="no">​</a></h2>
<p>Here's how an AI agent interacts with StackQL via MCP:</p>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#d6deeb;--prism-background-color:#011627"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#d6deeb;background-color:#011627"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#d6deeb"><span class="token plain"># AI agent lists available providers</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">Tool: list_providers</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">Response: ["google", "aws", "azure", "github", ...]</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"># AI agent explores a provider's services</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">Tool: list_services</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">Args: {"provider": "google"}</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">Response: ["compute", "storage", "cloudresourcemanager", ...]</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"># AI agent executes a query</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">Tool: query_v2</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">Args: {"sql": "SELECT name, status FROM google.compute.instances WHERE project = 'my-project' AND zone = 'us-east1-a'"}</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">Response: [{"name": "instance-1", "status": "RUNNING"}, ...]</span><br></span></code></pre></div></div>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="getting-started">Getting Started<a href="https://stackql.io/blog/stackql-mcp-server-now-available#getting-started" class="hash-link" aria-label="Direct link to Getting Started" title="Direct link to Getting Started" translate="no">​</a></h2>
<ol>
<li class="">
<p><strong>Download StackQL</strong> version 0.9.250 or later from <a class="" href="https://stackql.io/install">stackql.io/install</a></p>
</li>
<li class="">
<p><strong>Set up provider authentication</strong>:</p>
</li>
</ol>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#d6deeb;--prism-background-color:#011627"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#d6deeb;background-color:#011627"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#d6deeb"><span class="token plain">export GOOGLE_CREDENTIALS=$(cat /path/to/credentials.json)</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">export AWS_ACCESS_KEY_ID=your-access-key</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">export AWS_SECRET_ACCESS_KEY=your-secret-key</span><br></span></code></pre></div></div>
<ol start="3">
<li class=""><strong>Start the MCP server</strong>:</li>
</ol>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#d6deeb;--prism-background-color:#011627"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#d6deeb;background-color:#011627"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#d6deeb"><span class="token plain">stackql mcp \</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">  --mcp.server.type=http \</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">  --mcp.config '{"server": {"transport": "http", "address": "127.0.0.1:9912"}}'</span><br></span></code></pre></div></div>
<ol start="4">
<li class=""><strong>Configure your AI assistant</strong> to use the StackQL MCP server (see <a class="" href="https://stackql.io/docs/command-line-usage/mcp">MCP documentation</a> for details)</li>
</ol>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="documentation">Documentation<a href="https://stackql.io/blog/stackql-mcp-server-now-available#documentation" class="hash-link" aria-label="Direct link to Documentation" title="Direct link to Documentation" translate="no">​</a></h2>
<p>For comprehensive documentation on configuring and using the MCP server, including:</p>
<ul>
<li class="">Detailed configuration options</li>
<li class="">TLS/mTLS setup</li>
<li class="">Architecture considerations</li>
<li class="">Testing and troubleshooting</li>
</ul>
<p>Visit the <a class="" href="https://stackql.io/docs/command-line-usage/mcp">MCP command documentation</a>.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="whats-next">What's Next?<a href="https://stackql.io/blog/stackql-mcp-server-now-available#whats-next" class="hash-link" aria-label="Direct link to What's Next?" title="Direct link to What's Next?" translate="no">​</a></h2>
<p>We're actively developing additional MCP capabilities and welcome your feedback. Future enhancements may include:</p>
<ul>
<li class="">Enhanced resource provisioning and lifecycle management through MCP</li>
<li class="">Built-in prompt templates for common infrastructure queries</li>
<li class="">Extended tool catalog for specialized operations</li>
<li class="">Support for additional MCP transport protocols</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="try-it-out">Try It Out!<a href="https://stackql.io/blog/stackql-mcp-server-now-available#try-it-out" class="hash-link" aria-label="Direct link to Try It Out!" title="Direct link to Try It Out!" translate="no">​</a></h2>
<p>The MCP server feature is available now in StackQL 0.9.250. We'd love to hear about your experiences integrating StackQL with AI agents. Share your use cases, provide feedback, or contribute to the project on <a href="https://github.com/stackql/stackql" target="_blank" rel="noopener noreferrer" class="">GitHub</a>.</p>
<p>⭐ Star us on <a href="https://github.com/stackql/stackql" target="_blank" rel="noopener noreferrer" class="">GitHub</a> and join our community!</p>]]></content>
        <author>
            <name>Kieran Rimmer</name>
            <uri>https://www.linkedin.com/in/kieranrimmer/</uri>
        </author>
        <category label="stackql" term="stackql"/>
        <category label="mcp" term="mcp"/>
        <category label="model context protocol" term="model context protocol"/>
        <category label="ai agents" term="ai agents"/>
        <category label="claude" term="claude"/>
        <category label="infrastructure-as-code" term="infrastructure-as-code"/>
        <category label="ai" term="ai"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[Latest Datadog Provider for StackQL Available]]></title>
        <id>https://stackql.io/blog/latest-datadog-provider-available</id>
        <link href="https://stackql.io/blog/latest-datadog-provider-available"/>
        <updated>2025-09-16T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Query and interact with Datadog resources using SQL.]]></summary>
        <content type="html"><![CDATA[<p>Latest release or the <code>datadog</code> provider for StackQL is now available, enabling SQL-based querying and management of Datadog cloud resources.  The new <code>datadog</code> provider includes:</p>
<ul>
<li class="">coverage for the latest Datadog features</li>
<li class="">simplified service organization</li>
<li class="">enhanced user documentation</li>
</ul>
<p>For more see the <a href="https://datadog-provider.stackql.io/" target="_blank" rel="noopener noreferrer" class=""><strong>Datadog Provider User Docs</strong></a>.</p>
<p>⭐ us on <a href="https://github.com/stackql/stackql" target="_blank" rel="noopener noreferrer" class=""><strong>GitHub</strong></a> and join our community!</p>]]></content>
        <author>
            <name>Jeffrey Aven</name>
            <uri>https://www.linkedin.com/in/jeffreyaven/</uri>
        </author>
        <category label="stackql" term="stackql"/>
        <category label="datadog" term="datadog"/>
        <category label="iac" term="iac"/>
        <category label="analytics" term="analytics"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[Latest Linode Provider for StackQL Available]]></title>
        <id>https://stackql.io/blog/latest-linode-provider-available</id>
        <link href="https://stackql.io/blog/latest-linode-provider-available"/>
        <updated>2025-09-11T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Query and interact with Linode resources using SQL.]]></summary>
        <content type="html"><![CDATA[<p>Latest release or the Linode provider for StackQL is available, enabling SQL-based querying and management of Linode cloud resources.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="provider-overview">Provider Overview<a href="https://stackql.io/blog/latest-linode-provider-available#provider-overview" class="hash-link" aria-label="Direct link to Provider Overview" title="Direct link to Provider Overview" translate="no">​</a></h2>
<p>The Linode provider offers comprehensive access to 20 services covering the entire Linode platform, with 136 resources and 425 methods, allowing you to extract data and insights from your Linode environment using familiar SQL syntax.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="key-services">Key Services<a href="https://stackql.io/blog/latest-linode-provider-available#key-services" class="hash-link" aria-label="Direct link to Key Services" title="Direct link to Key Services" translate="no">​</a></h2>
<p>The provider includes access to:</p>
<ul>
<li class=""><strong>Compute</strong>: Manage Linode instances and configurations</li>
<li class=""><strong>Storage</strong>: Control volumes and object storage</li>
<li class=""><strong>Networking</strong>: Handle IPs, VLANs, VPCs, and firewall rules</li>
<li class=""><strong>Kubernetes</strong>: Administer LKE clusters and node pools</li>
<li class=""><strong>Databases</strong>: Manage Linode's database service</li>
<li class=""><strong>Account &amp; Billing</strong>: Access account information and billing details</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="example-queries">Example Queries<a href="https://stackql.io/blog/latest-linode-provider-available#example-queries" class="hash-link" aria-label="Direct link to Example Queries" title="Direct link to Example Queries" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="get-account-information">Get Account Information<a href="https://stackql.io/blog/latest-linode-provider-available#get-account-information" class="hash-link" aria-label="Direct link to Get Account Information" title="Direct link to Get Account Information" translate="no">​</a></h3>
<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#d6deeb;--prism-background-color:#011627"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#d6deeb;background-color:#011627"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#d6deeb"><span class="token keyword" style="color:rgb(127, 219, 202)">SELECT</span><span class="token plain"> </span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">  company</span><span class="token punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">  country</span><span class="token punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">  balance</span><span class="token punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">  balance_uninvoiced</span><span class="token punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">  active_since</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"></span><span class="token keyword" style="color:rgb(127, 219, 202)">FROM</span><span class="token plain"> linode</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token plain">account</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token plain">account</span><span class="token punctuation" style="color:rgb(199, 146, 234)">;</span><br></span></code></pre></div></div>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="list-database-engines">List Database Engines<a href="https://stackql.io/blog/latest-linode-provider-available#list-database-engines" class="hash-link" aria-label="Direct link to List Database Engines" title="Direct link to List Database Engines" translate="no">​</a></h3>
<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#d6deeb;--prism-background-color:#011627"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#d6deeb;background-color:#011627"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#d6deeb"><span class="token keyword" style="color:rgb(127, 219, 202)">SELECT</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">  id</span><span class="token punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">  </span><span class="token keyword" style="color:rgb(127, 219, 202)">engine</span><span class="token punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">  version</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"></span><span class="token keyword" style="color:rgb(127, 219, 202)">FROM</span><span class="token plain"> linode</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token keyword" style="color:rgb(127, 219, 202)">databases</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token plain">engines</span><span class="token punctuation" style="color:rgb(199, 146, 234)">;</span><br></span></code></pre></div></div>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="view-regional-availability">View Regional Availability<a href="https://stackql.io/blog/latest-linode-provider-available#view-regional-availability" class="hash-link" aria-label="Direct link to View Regional Availability" title="Direct link to View Regional Availability" translate="no">​</a></h3>
<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#d6deeb;--prism-background-color:#011627"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#d6deeb;background-color:#011627"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#d6deeb"><span class="token keyword" style="color:rgb(127, 219, 202)">SELECT</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">  available</span><span class="token punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">  </span><span class="token keyword" style="color:rgb(127, 219, 202)">plan</span><span class="token punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">  region</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"></span><span class="token keyword" style="color:rgb(127, 219, 202)">FROM</span><span class="token plain"> linode</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token plain">regions</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token plain">availability</span><span class="token punctuation" style="color:rgb(199, 146, 234)">;</span><br></span></code></pre></div></div>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="list-linode-instances">List Linode Instances<a href="https://stackql.io/blog/latest-linode-provider-available#list-linode-instances" class="hash-link" aria-label="Direct link to List Linode Instances" title="Direct link to List Linode Instances" translate="no">​</a></h3>
<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#d6deeb;--prism-background-color:#011627"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#d6deeb;background-color:#011627"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#d6deeb"><span class="token keyword" style="color:rgb(127, 219, 202)">SELECT</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">  id</span><span class="token punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">  label</span><span class="token punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">  region</span><span class="token punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">  </span><span class="token keyword" style="color:rgb(127, 219, 202)">status</span><span class="token punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">  </span><span class="token keyword" style="color:rgb(127, 219, 202)">type</span><span class="token punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">  ipv4</span><span class="token punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">  tags</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"></span><span class="token keyword" style="color:rgb(127, 219, 202)">FROM</span><span class="token plain"> linode</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token plain">linode</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token plain">instances</span><span class="token punctuation" style="color:rgb(199, 146, 234)">;</span><br></span></code></pre></div></div>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="getting-started">Getting Started<a href="https://stackql.io/blog/latest-linode-provider-available#getting-started" class="hash-link" aria-label="Direct link to Getting Started" title="Direct link to Getting Started" translate="no">​</a></h2>
<p>To use the Linode provider, simply register it and set your authentication:</p>
<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#d6deeb;--prism-background-color:#011627"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#d6deeb;background-color:#011627"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#d6deeb"><span class="token comment" style="color:rgb(99, 119, 119);font-style:italic">-- Pull the provider</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">registry pull linode</span><span class="token punctuation" style="color:rgb(199, 146, 234)">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"></span><span class="token comment" style="color:rgb(99, 119, 119);font-style:italic">-- Set your authentication</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"></span><span class="token keyword" style="color:rgb(127, 219, 202)">SET</span><span class="token plain"> linode</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token keyword" style="color:rgb(127, 219, 202)">global</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token plain">auth</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token plain">credentialsenvvar </span><span class="token operator" style="color:rgb(127, 219, 202)">=</span><span class="token plain"> </span><span class="token string" style="color:rgb(173, 219, 103)">'LINODE_TOKEN'</span><span class="token punctuation" style="color:rgb(199, 146, 234)">;</span><br></span></code></pre></div></div>
<p>⭐ us on <a href="https://github.com/stackql/stackql" target="_blank" rel="noopener noreferrer" class=""><strong>GitHub</strong></a> and join our community!</p>]]></content>
        <author>
            <name>Jeffrey Aven</name>
            <uri>https://www.linkedin.com/in/jeffreyaven/</uri>
        </author>
        <category label="stackql" term="stackql"/>
        <category label="linode" term="linode"/>
        <category label="iac" term="iac"/>
        <category label="analytics" term="analytics"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[Deno Deploy Provider Available]]></title>
        <id>https://stackql.io/blog/deno-deploy-provider-available</id>
        <link href="https://stackql.io/blog/deno-deploy-provider-available"/>
        <updated>2025-09-10T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Query and interact with Deno Deploy resources using SQL.]]></summary>
        <content type="html"><![CDATA[<p>The new <code>deno</code> provider for StackQL is now available, enabling developers to query and manage Deno Deploy resources using familiar SQL syntax. This provider allows you to interact with Deno Deploy's control plane API, giving you complete control over your organizations, projects, deployments, domains, and KV databases through a consistent SQL interface.</p>
<p>The Deno Deploy provider offers comprehensive coverage of the Deno Deploy API, organized into logical services that mirror Deno's resource structure:</p>
<table><thead><tr><th>Service</th><th>Description</th></tr></thead><tbody><tr><td><code>organization</code></td><td>Manage organizations and analytics</td></tr><tr><td><code>project</code></td><td>Create and manage projects within organizations</td></tr><tr><td><code>deployment</code></td><td>Deploy, manage, and monitor serverless applications</td></tr><tr><td><code>domain</code></td><td>Configure and verify custom domains for your applications</td></tr><tr><td><code>database</code></td><td>Manage KV databases and KV database backups for your deployments</td></tr></tbody></table>
<p>With the <code>deno</code> provider for StackQL, you can now include Deno Deploy in your infrastructure-as-code workflows, analytics dashboards, and cross-cloud orchestration processes using the same SQL syntax you use for other cloud providers.</p>
<p>For more information on the Deno Deploy provider for StackQL, see the <a href="https://deno-provider.stackql.io/" target="_blank" rel="noopener noreferrer" class=""><strong>Deno Deploy Provider Docs</strong></a> which provides detailed documentation for every resource and method, along with ready-to-use SQL examples.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="getting-started">Getting Started<a href="https://stackql.io/blog/deno-deploy-provider-available#getting-started" class="hash-link" aria-label="Direct link to Getting Started" title="Direct link to Getting Started" translate="no">​</a></h2>
<p>To start using the <code>deno</code> provider, simply pull it from the StackQL registry:</p>
<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#d6deeb;--prism-background-color:#011627"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#d6deeb;background-color:#011627"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#d6deeb"><span class="token plain">registry pull deno</span><span class="token punctuation" style="color:rgb(199, 146, 234)">;</span><br></span></code></pre></div></div>
<p>You'll need to set up your authentication by exporting your Deno API token:</p>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#d6deeb;--prism-background-color:#011627"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#d6deeb;background-color:#011627"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#d6deeb"><span class="token plain">export DENO_DEPLOY_TOKEN="your_deno_api_token"</span><br></span></code></pre></div></div>
<p>Then you can begin querying your Deno Deploy resources:</p>
<div class="theme-tabs-container tabs-container tabList__CuJ"><ul role="tablist" aria-orientation="horizontal" class="tabs"><li role="tab" tabindex="0" aria-selected="true" class="tabs__item tabItem_LNqP tabs__item--active">Projects</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_LNqP">Deployments</li></ul><div class="margin-top--md"><div role="tabpanel" class="tabItem_Ymn6"><div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#d6deeb;--prism-background-color:#011627"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#d6deeb;background-color:#011627"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#d6deeb"><span class="token comment" style="color:rgb(99, 119, 119);font-style:italic">-- List all projects in an organization</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"></span><span class="token keyword" style="color:rgb(127, 219, 202)">SELECT</span><span class="token plain"> </span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">  id</span><span class="token punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">  name</span><span class="token punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">  description</span><span class="token punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">  createdAt</span><span class="token punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">  updatedAt</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"></span><span class="token keyword" style="color:rgb(127, 219, 202)">FROM</span><span class="token plain"> deno</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token plain">project</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token plain">projects</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"></span><span class="token keyword" style="color:rgb(127, 219, 202)">WHERE</span><span class="token plain"> organizationId </span><span class="token operator" style="color:rgb(127, 219, 202)">=</span><span class="token plain"> </span><span class="token string" style="color:rgb(173, 219, 103)">'your-org-id'</span><span class="token punctuation" style="color:rgb(199, 146, 234)">;</span><br></span></code></pre></div></div><p>Results:</p><div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#d6deeb;--prism-background-color:#011627"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#d6deeb;background-color:#011627"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#d6deeb"><span class="token plain">|-----------------------------|-------------|--------------------------------------|----------------------|-----------------------------|</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">|          createdAt          | description |                  id                  |         name         |          updatedAt          |</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">|-----------------------------|-------------|--------------------------------------|----------------------|-----------------------------|</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">| 2022-12-13T04:20:13.379555Z |             | 34f9440f-3275-40e2-b327-2ea65269feb5 | stackql-dev-registry | 2025-09-06T00:47:04.579279Z |</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">|-----------------------------|-------------|--------------------------------------|----------------------|-----------------------------|</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">| 2022-12-13T04:16:22.054548Z |             | 616de983-3e37-4f44-a99f-b6bb5c59e80a | stackql-registry     | 2025-09-06T01:22:46.872203Z |</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">|-----------------------------|-------------|--------------------------------------|----------------------|-----------------------------|</span><br></span></code></pre></div></div></div><div role="tabpanel" class="tabItem_Ymn6" hidden=""><div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#d6deeb;--prism-background-color:#011627"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#d6deeb;background-color:#011627"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#d6deeb"><span class="token comment" style="color:rgb(99, 119, 119);font-style:italic">-- List deployments with key information</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"></span><span class="token keyword" style="color:rgb(127, 219, 202)">SELECT</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">  id</span><span class="token punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">  description</span><span class="token punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">  </span><span class="token keyword" style="color:rgb(127, 219, 202)">status</span><span class="token punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">  JSON_EXTRACT</span><span class="token punctuation" style="color:rgb(199, 146, 234)">(</span><span class="token plain">domains</span><span class="token punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token plain"> </span><span class="token string" style="color:rgb(173, 219, 103)">'$[0]'</span><span class="token punctuation" style="color:rgb(199, 146, 234)">)</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(127, 219, 202)">as</span><span class="token plain"> domain</span><span class="token punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">  JSON_EXTRACT</span><span class="token punctuation" style="color:rgb(199, 146, 234)">(</span><span class="token string" style="color:rgb(173, 219, 103)">"databases"</span><span class="token punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token plain"> </span><span class="token string" style="color:rgb(173, 219, 103)">'$.default'</span><span class="token punctuation" style="color:rgb(199, 146, 234)">)</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(127, 219, 202)">as</span><span class="token plain"> db_id</span><span class="token punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">  createdAt</span><span class="token punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">  updatedAt</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"></span><span class="token keyword" style="color:rgb(127, 219, 202)">FROM</span><span class="token plain"> deno</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token plain">deployment</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token plain">deployments</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"></span><span class="token keyword" style="color:rgb(127, 219, 202)">WHERE</span><span class="token plain"> projectId </span><span class="token operator" style="color:rgb(127, 219, 202)">=</span><span class="token plain"> </span><span class="token string" style="color:rgb(173, 219, 103)">'your-project-id'</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"></span><span class="token operator" style="color:rgb(127, 219, 202)">AND</span><span class="token plain"> </span><span class="token string" style="color:rgb(173, 219, 103)">"order"</span><span class="token plain"> </span><span class="token operator" style="color:rgb(127, 219, 202)">=</span><span class="token plain"> </span><span class="token string" style="color:rgb(173, 219, 103)">'desc'</span><span class="token punctuation" style="color:rgb(199, 146, 234)">;</span><br></span></code></pre></div></div><p>Results:</p><div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#d6deeb;--prism-background-color:#011627"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#d6deeb;background-color:#011627"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#d6deeb"><span class="token plain">|--------------|--------------------------------|---------|----------------------------------------|--------------------------------------|-----------------------------|-----------------------------|</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">|      id      |          description           | status  |                 domain                 |                db_id                 |          createdAt          |          updatedAt          |</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">|--------------|--------------------------------|---------|----------------------------------------|--------------------------------------|-----------------------------|-----------------------------|</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">| pe60nqshxq3g | Latest deployment              | success | example.com                            | 8971aec3-f72f-44c4-bc9f-0b2a513bd9fc | 2025-09-06T01:22:41.740151Z | 2025-09-06T01:22:49.067315Z |</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">|--------------|--------------------------------|---------|----------------------------------------|--------------------------------------|-----------------------------|-----------------------------|</span><br></span></code></pre></div></div></div></div></div>
<p>⭐ us on <a href="https://github.com/stackql/stackql" target="_blank" rel="noopener noreferrer" class=""><strong>GitHub</strong></a> and join our community!</p>]]></content>
        <author>
            <name>Jeffrey Aven</name>
            <uri>https://www.linkedin.com/in/jeffreyaven/</uri>
        </author>
        <category label="stackql" term="stackql"/>
        <category label="deno" term="deno"/>
        <category label="deno deploy" term="deno deploy"/>
        <category label="iac" term="iac"/>
        <category label="analytics" term="analytics"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[Latest DigitalOcean Provider Available]]></title>
        <id>https://stackql.io/blog/latest-digitalocean-provider-available</id>
        <link href="https://stackql.io/blog/latest-digitalocean-provider-available"/>
        <updated>2025-09-07T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Query and interact with DigitalOcean resources using SQL.]]></summary>
        <content type="html"><![CDATA[<p>The latest <code>digitalocean</code> provider for StackQL is available now (<code>v25.09.00345</code>), featuring a comprehensive reorganization of services and resources that better aligns with DigitalOcean's API structure. This update improves discoverability, logical grouping, and overall usability when working with DigitalOcean resources through StackQL, while adding exciting new capabilities like support for <strong>Gradient AI Platform</strong> through the <code>genai</code> service.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="whats-changed">What's Changed<a href="https://stackql.io/blog/latest-digitalocean-provider-available#whats-changed" class="hash-link" aria-label="Direct link to What's Changed" title="Direct link to What's Changed" translate="no">​</a></h2>
<p>The updated DigitalOcean provider features a more granular and logical organization of services that mirrors DigitalOcean's API architecture more closely. Here is a summary of the services included in the latest <code>digitalocean</code> provider:</p>
<table><thead><tr><th>Service</th><th>Description</th></tr></thead><tbody><tr><td><code>account</code></td><td>Manages account information, settings, and team configurations</td></tr><tr><td><code>apps</code></td><td>Manages App Platform deployments for static sites, APIs, and web applications</td></tr><tr><td><code>billing</code></td><td>Handles billing configurations, invoices, and payment methods</td></tr><tr><td><code>compute</code></td><td>Controls virtual machines (Droplets), snapshots, and compute resources</td></tr><tr><td><code>container_registry</code></td><td>Manages container registries and image repositories</td></tr><tr><td><code>databases</code></td><td>Manages managed database services and configurations</td></tr><tr><td><code>genai</code></td><td>Provides access to AI capabilities including the Gradient AI Platform</td></tr><tr><td><code>kubernetes</code></td><td>Controls Kubernetes clusters, node pools, and related resources</td></tr><tr><td><code>monitoring</code></td><td>Manages monitoring solutions, alerts, and metrics</td></tr><tr><td><code>networking</code></td><td>Controls VPCs, load balancers, and network configurations</td></tr><tr><td><code>oneclick</code></td><td>Provides one-click application installations and marketplace solutions</td></tr><tr><td><code>projects</code></td><td>Organizes resources into logical groups for better management and billing</td></tr><tr><td><code>serverless</code></td><td>Manages Functions as a Service (FaaS) for event-driven, scalable computing</td></tr><tr><td><code>spaces</code></td><td>Controls object storage for storing and serving large files and static assets</td></tr><tr><td><code>vpcs</code></td><td>Manages Virtual Private Cloud networks for isolated resource communications</td></tr></tbody></table>
<div class="theme-admonition theme-admonition-note admonition_xJq3 alert alert--secondary"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M6.3 5.69a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.18.42-.28.7-.28.28 0 .52.09.7.28.18.19.28.42.28.7 0 .28-.09.52-.28.7a1 1 0 0 1-.7.3c-.28 0-.52-.11-.7-.3zM8 7.99c-.02-.25-.11-.48-.31-.69-.2-.19-.42-.3-.69-.31H6c-.27.02-.48.13-.69.31-.2.2-.3.44-.31.69h1v3c.02.27.11.5.31.69.2.2.42.31.69.31h1c.27 0 .48-.11.69-.31.2-.19.3-.42.31-.69H8V7.98v.01zM7 2.3c-3.14 0-5.7 2.54-5.7 5.68 0 3.14 2.56 5.7 5.7 5.7s5.7-2.55 5.7-5.7c0-3.15-2.56-5.69-5.7-5.69v.01zM7 .98c3.86 0 7 3.14 7 7s-3.14 7-7 7-7-3.12-7-7 3.14-7 7-7z"></path></svg></span>note</div><div class="admonitionContent_BuS1"><p>The improved organization including service and resource naming and mapping will introduce changes to queries against the previous provider version (<code>v24.11.00274</code>). You can pin the previous version in <code>stackql-deploy</code> or via <code>registry pull</code> in the interim while you make necessary query modifications.</p></div></div>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="enhanced-documentation">Enhanced Documentation<a href="https://stackql.io/blog/latest-digitalocean-provider-available#enhanced-documentation" class="hash-link" aria-label="Direct link to Enhanced Documentation" title="Direct link to Enhanced Documentation" translate="no">​</a></h2>
<p>The new <a href="https://digitalocean-provider.stackql.io/" target="_blank" rel="noopener noreferrer" class=""><strong>DigitalOcean Provider Docs</strong></a> provide comprehensive documentation on how to use the new <code>digitalocean</code> provider including ready-to-use SQL examples for each resource and method. A standout feature is the copy-paste functionality for all SQL queries, making it incredibly easy to:</p>
<ol>
<li class="">
<p><strong>Compose Infrastructure-as-Code workflows</strong>: Each method documentation includes working SQL examples that can be directly copied into your deployment scripts or CI/CD pipelines. Simply click the copy button next to any example to get production-ready SQL code.</p>
</li>
<li class="">
<p><strong>Build analytics dashboards</strong>: Create sophisticated cross-service queries by combining examples from different resources. The documentation's consistent query formatting makes it simple to join related data across multiple DigitalOcean services.</p>
</li>
<li class="">
<p><strong>Develop governance reports</strong>: Copy baseline queries and customize them for your specific compliance needs. The pre-formatted SQL provides the perfect starting point for custom reporting.</p>
</li>
</ol>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="gradient-ai-platform-support">Gradient AI Platform Support<a href="https://stackql.io/blog/latest-digitalocean-provider-available#gradient-ai-platform-support" class="hash-link" aria-label="Direct link to Gradient AI Platform Support" title="Direct link to Gradient AI Platform Support" translate="no">​</a></h2>
<p>A standout addition to this release is comprehensive support for DigitalOcean's Gradient AI Platform through the new <code>genai</code> service. This enables developers to:</p>
<ul>
<li class="">Deploy and manage AI models using familiar SQL syntax</li>
<li class="">Monitor AI workloads alongside other cloud resources</li>
<li class="">Incorporate AI capabilities into infrastructure-as-code workflows</li>
<li class="">Create cross-service orchestrations that leverage AI capabilities</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="getting-started">Getting Started<a href="https://stackql.io/blog/latest-digitalocean-provider-available#getting-started" class="hash-link" aria-label="Direct link to Getting Started" title="Direct link to Getting Started" translate="no">​</a></h2>
<p>To start using the updated <code>digitalocean</code> provider, simply pull the latest version from <code>stackql shell</code> or <code>stackql registry</code> command:</p>
<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#d6deeb;--prism-background-color:#011627"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#d6deeb;background-color:#011627"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#d6deeb"><span class="token plain">registry pull digitalocean</span><span class="token punctuation" style="color:rgb(199, 146, 234)">;</span><br></span></code></pre></div></div>
<p>Then you can begin querying your DigitalOcean resources with SQL:</p>
<div class="theme-tabs-container tabs-container tabList__CuJ"><ul role="tablist" aria-orientation="horizontal" class="tabs"><li role="tab" tabindex="0" aria-selected="true" class="tabs__item tabItem_LNqP tabs__item--active">Droplet inventory</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_LNqP">Kubernetes clusters</li></ul><div class="margin-top--md"><div role="tabpanel" class="tabItem_Ymn6"><div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#d6deeb;--prism-background-color:#011627"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#d6deeb;background-color:#011627"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#d6deeb"><span class="token comment" style="color:rgb(99, 119, 119);font-style:italic">-- List all droplets</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"></span><span class="token keyword" style="color:rgb(127, 219, 202)">SELECT</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">  id</span><span class="token punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">  name</span><span class="token punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">  </span><span class="token keyword" style="color:rgb(127, 219, 202)">status</span><span class="token punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">  size_slug</span><span class="token punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">  JSON_EXTRACT</span><span class="token punctuation" style="color:rgb(199, 146, 234)">(</span><span class="token plain">size</span><span class="token punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token plain"> </span><span class="token string" style="color:rgb(173, 219, 103)">'$.vcpus'</span><span class="token punctuation" style="color:rgb(199, 146, 234)">)</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(127, 219, 202)">as</span><span class="token plain"> vcpus</span><span class="token punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">  JSON_EXTRACT</span><span class="token punctuation" style="color:rgb(199, 146, 234)">(</span><span class="token plain">size</span><span class="token punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token plain"> </span><span class="token string" style="color:rgb(173, 219, 103)">'$.memory'</span><span class="token punctuation" style="color:rgb(199, 146, 234)">)</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(127, 219, 202)">as</span><span class="token plain"> memory</span><span class="token punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">  JSON_EXTRACT</span><span class="token punctuation" style="color:rgb(199, 146, 234)">(</span><span class="token plain">size</span><span class="token punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token plain"> </span><span class="token string" style="color:rgb(173, 219, 103)">'$.disk'</span><span class="token punctuation" style="color:rgb(199, 146, 234)">)</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(127, 219, 202)">as</span><span class="token plain"> disk_size_gb</span><span class="token punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">  JSON_EXTRACT</span><span class="token punctuation" style="color:rgb(199, 146, 234)">(</span><span class="token plain">size</span><span class="token punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token plain"> </span><span class="token string" style="color:rgb(173, 219, 103)">'$.price_hourly'</span><span class="token punctuation" style="color:rgb(199, 146, 234)">)</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(127, 219, 202)">as</span><span class="token plain"> price_hourly</span><span class="token punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">  JSON_EXTRACT</span><span class="token punctuation" style="color:rgb(199, 146, 234)">(</span><span class="token plain">size</span><span class="token punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token plain"> </span><span class="token string" style="color:rgb(173, 219, 103)">'$.price_monthly'</span><span class="token punctuation" style="color:rgb(199, 146, 234)">)</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(127, 219, 202)">as</span><span class="token plain"> price_monthly</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"></span><span class="token keyword" style="color:rgb(127, 219, 202)">FROM</span><span class="token plain"> digitalocean</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token keyword" style="color:rgb(127, 219, 202)">compute</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token plain">droplets</span><span class="token punctuation" style="color:rgb(199, 146, 234)">;</span><br></span></code></pre></div></div><p>Results:</p><div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#d6deeb;--prism-background-color:#011627"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#d6deeb;background-color:#011627"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#d6deeb"><span class="token plain">|-----------|---------------------------------------|--------|------------------------|-------|--------|--------------|--------------|---------------|</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">|    id     |                 name                  | status |       size_slug        | vcpus | memory | disk_size_gb | price_hourly | price_monthly |</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">|-----------|---------------------------------------|--------|------------------------|-------|--------|--------------|--------------|---------------|</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">| 457265395 | ubuntu-s-1vcpu-1gb-35gb-intel-syd1-01 | active | s-1vcpu-1gb-35gb-intel |     1 |   1024 |           35 |       0.0119 |             8 |</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">|-----------|---------------------------------------|--------|------------------------|-------|--------|--------------|--------------|---------------|</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">| 510398669 | pool-urzofvwy7-l5vvz                  | active | s-2vcpu-4gb            |     2 |   4096 |           80 |      0.03571 |            24 |</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">|-----------|---------------------------------------|--------|------------------------|-------|--------|--------------|--------------|---------------|</span><br></span></code></pre></div></div></div><div role="tabpanel" class="tabItem_Ymn6" hidden=""><div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#d6deeb;--prism-background-color:#011627"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#d6deeb;background-color:#011627"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#d6deeb"><span class="token comment" style="color:rgb(99, 119, 119);font-style:italic">-- List all Kubernetes clusters</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"></span><span class="token keyword" style="color:rgb(127, 219, 202)">SELECT</span><span class="token plain"> </span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">  id</span><span class="token punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">  name</span><span class="token punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">  cluster_subnet</span><span class="token punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">  region</span><span class="token punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">  JSON_EXTRACT</span><span class="token punctuation" style="color:rgb(199, 146, 234)">(</span><span class="token keyword" style="color:rgb(127, 219, 202)">status</span><span class="token punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token plain"> </span><span class="token string" style="color:rgb(173, 219, 103)">'$.state'</span><span class="token punctuation" style="color:rgb(199, 146, 234)">)</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(127, 219, 202)">as</span><span class="token plain"> state</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"></span><span class="token keyword" style="color:rgb(127, 219, 202)">FROM</span><span class="token plain"> </span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">  digitalocean</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token plain">kubernetes</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token plain">clusters</span><span class="token punctuation" style="color:rgb(199, 146, 234)">;</span><br></span></code></pre></div></div><p>Results:</p><div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#d6deeb;--prism-background-color:#011627"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#d6deeb;background-color:#011627"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#d6deeb"><span class="token plain">|--------------------------------------|------------------------------------|----------------|--------|---------|</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">|                  id                  |                name                | cluster_subnet | region |  state  |</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">|--------------------------------------|------------------------------------|----------------|--------|---------|</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">| 52d8fa14-eca0-46c8-80a8-8aae70a2c82a | k8s-1-33-1-do-2-syd1-1753698369839 | 10.150.0.0/16  | syd1   | running |</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">|--------------------------------------|------------------------------------|----------------|--------|---------|</span><br></span></code></pre></div></div></div></div></div>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="using-the-app-platform-functions">Using the App Platform Functions<a href="https://stackql.io/blog/latest-digitalocean-provider-available#using-the-app-platform-functions" class="hash-link" aria-label="Direct link to Using the App Platform Functions" title="Direct link to Using the App Platform Functions" translate="no">​</a></h2>
<p>The <code>apps</code> services provide access to DigitalOcean's modern deployment platforms. Here's an example of how to list your deployed applications:</p>
<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#d6deeb;--prism-background-color:#011627"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#d6deeb;background-color:#011627"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#d6deeb"><span class="token comment" style="color:rgb(99, 119, 119);font-style:italic">-- List all deployed applications</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"></span><span class="token keyword" style="color:rgb(127, 219, 202)">SELECT</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">  id</span><span class="token punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">  default_ingress</span><span class="token punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">  active_deployment</span><span class="token punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">  created_at</span><span class="token punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">  updated_at</span><span class="token punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">  region</span><span class="token punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">  tier_slug</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"></span><span class="token keyword" style="color:rgb(127, 219, 202)">FROM</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">  digitalocean</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token plain">apps</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token plain">apps</span><span class="token punctuation" style="color:rgb(199, 146, 234)">;</span><br></span></code></pre></div></div>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="using-the-genai-service">Using the GenAI Service<a href="https://stackql.io/blog/latest-digitalocean-provider-available#using-the-genai-service" class="hash-link" aria-label="Direct link to Using the GenAI Service" title="Direct link to Using the GenAI Service" translate="no">​</a></h2>
<p>The new <code>genai</code> service provides access to DigitalOcean's Gradient AI Platform capabilities. Here's an example of how to list deployed agents:</p>
<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#d6deeb;--prism-background-color:#011627"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#d6deeb;background-color:#011627"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#d6deeb"><span class="token comment" style="color:rgb(99, 119, 119);font-style:italic">-- List all deployed AI agents</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"></span><span class="token keyword" style="color:rgb(127, 219, 202)">SELECT</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">  name</span><span class="token punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">  uuid</span><span class="token punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">  url</span><span class="token punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">  project_id</span><span class="token punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">  created_at</span><span class="token punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">  updated_at</span><span class="token punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">  region</span><span class="token punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">  temperature</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"></span><span class="token keyword" style="color:rgb(127, 219, 202)">FROM</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">  digitalocean</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token plain">genai</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token plain">agents</span><span class="token punctuation" style="color:rgb(199, 146, 234)">;</span><br></span></code></pre></div></div>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="use-cases-for-the-digitalocean-provider">Use Cases for the DigitalOcean Provider<a href="https://stackql.io/blog/latest-digitalocean-provider-available#use-cases-for-the-digitalocean-provider" class="hash-link" aria-label="Direct link to Use Cases for the DigitalOcean Provider" title="Direct link to Use Cases for the DigitalOcean Provider" translate="no">​</a></h2>
<ol>
<li class="">
<p><strong>Infrastructure as Code</strong>: Manage your DigitalOcean resources alongside other cloud providers in a unified IaC approach, see <a href="https://stackql-deploy.io/" target="_blank" rel="noopener noreferrer" class=""><strong><code>stackql-deploy</code></strong></a>.</p>
</li>
<li class="">
<p><strong>Cost Optimization</strong>: Identify unused resources and opportunities for cost savings with queries that expose pricing information across all resource types.</p>
</li>
<li class="">
<p><strong>Security and Compliance</strong>: Audit firewall rules, network configurations, and access patterns to ensure compliance with security policies.</p>
</li>
<li class="">
<p><strong>Performance Monitoring</strong>: Track resource utilization, database performance, and identify optimization opportunities.</p>
</li>
<li class="">
<p><strong>Cross-Provider Orchestration</strong>: Build workflows that span DigitalOcean and other resource providers, enabling sophisticated data and infrastructure pipelines.</p>
</li>
<li class="">
<p><strong>AI-Enhanced Infrastructure</strong>: Leverage the new GenAI service to incorporate AI capabilities into your infrastructure management workflows.</p>
</li>
<li class="">
<p><strong>Automated Reporting</strong>: Create automated reports on DigitalOcean usage, performance, and costs.</p>
</li>
</ol>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="provider-metrics">Provider Metrics<a href="https://stackql.io/blog/latest-digitalocean-provider-available#provider-metrics" class="hash-link" aria-label="Direct link to Provider Metrics" title="Direct link to Provider Metrics" translate="no">​</a></h2>
<p>The latest DigitalOcean provider includes:</p>
<ul>
<li class=""><strong>15</strong> services</li>
<li class=""><strong>192</strong> resources</li>
<li class=""><strong>516</strong> total methods</li>
<li class=""><strong>254</strong> selectable methods</li>
</ul>
<p>This comprehensive coverage ensures you can manage and query virtually all aspects of your DigitalOcean infrastructure using familiar SQL syntax.</p>
<p>⭐ us on <a href="https://github.com/stackql/stackql" target="_blank" rel="noopener noreferrer" class=""><strong>GitHub</strong></a> and join our community!</p>]]></content>
        <author>
            <name>Jeffrey Aven</name>
            <uri>https://www.linkedin.com/in/jeffreyaven/</uri>
        </author>
        <category label="stackql" term="stackql"/>
        <category label="digitalocean" term="digitalocean"/>
        <category label="iac" term="iac"/>
        <category label="analytics" term="analytics"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[New Okta Provider Released]]></title>
        <id>https://stackql.io/blog/new-okta-provider-released</id>
        <link href="https://stackql.io/blog/new-okta-provider-released"/>
        <updated>2025-09-05T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Query and interact with Okta resources using SQL.]]></summary>
        <content type="html"><![CDATA[<p>The latest <code>okta</code> provider for StackQL is available now (<code>v25.09.00341</code>), featuring a comprehensive reorganization of services and resources that better aligns with Okta's API structure. This update improves discoverability, logical grouping, and overall usability when working with Okta resources through StackQL.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="whats-changed">What's Changed<a href="https://stackql.io/blog/new-okta-provider-released#whats-changed" class="hash-link" aria-label="Direct link to What's Changed" title="Direct link to What's Changed" translate="no">​</a></h2>
<p>The updated Okta provider features a more granular and logical organization of services that mirrors Okta's API architecture more closely.  Here is a summary of the services included in the latest <code>okta</code> provider:</p>
<table><thead><tr><th>Service</th><th>Description</th></tr></thead><tbody><tr><td><code>agentpools</code></td><td>Manages agent pools for on-premises integration and deployment</td></tr><tr><td><code>api_tokens</code></td><td>Handles API token creation, management, and access control</td></tr><tr><td><code>apps</code></td><td>Manages Okta application integration, configuration, and assignments</td></tr><tr><td><code>attack_protection</code></td><td>Configures security controls to prevent various attack vectors</td></tr><tr><td><code>authenticators</code></td><td>Manages authentication methods, factors, and settings</td></tr><tr><td><code>authorizationservers</code></td><td>Controls OAuth 2.0 and OIDC authorization servers and policies</td></tr><tr><td><code>behaviors</code></td><td>Configures end-user behavioral patterns for risk-based authentication</td></tr><tr><td><code>brands</code></td><td>Manages customization of Okta UI appearance and branding</td></tr><tr><td><code>captchas</code></td><td>Configures CAPTCHA settings to prevent automated attacks</td></tr><tr><td><code>device_access</code></td><td>Controls access policies based on device attributes</td></tr><tr><td><code>device_assurances</code></td><td>Manages device trust requirements and verification</td></tr><tr><td><code>device_integrations</code></td><td>Configures integrations with MDM and endpoint security tools</td></tr><tr><td><code>device_posture_checks</code></td><td>Verifies security posture of devices accessing resources</td></tr><tr><td><code>devices</code></td><td>Manages device enrollment, lifecycle, and inventory</td></tr><tr><td><code>directories</code></td><td>Handles directory service connections and synchronization</td></tr><tr><td><code>domains</code></td><td>Manages custom domain configuration for Okta tenant</td></tr><tr><td><code>email_domains</code></td><td>Controls email domains for user provisioning and validation</td></tr><tr><td><code>email_servers</code></td><td>Configures email server settings for notifications</td></tr><tr><td><code>eventhooks</code></td><td>Manages webhook subscriptions for Okta event notifications</td></tr><tr><td><code>features</code></td><td>Controls feature flags and preview feature management</td></tr><tr><td><code>first_party_app_settings</code></td><td>Configures settings for Okta-developed applications</td></tr><tr><td><code>groups</code></td><td>Manages group creation, membership, and rule configuration</td></tr><tr><td><code>hook_keys</code></td><td>Handles encryption keys for securing hook communications</td></tr><tr><td><code>iam</code></td><td>Provides core identity and access management functionality</td></tr><tr><td><code>identity_sources</code></td><td>Manages sources of identity data for user provisioning</td></tr><tr><td><code>idps</code></td><td>Configures external identity providers for federation</td></tr><tr><td><code>inlinehooks</code></td><td>Manages customization points within Okta workflows</td></tr><tr><td><code>integrations</code></td><td>Configures third-party service integrations</td></tr><tr><td><code>logs</code></td><td>Provides access to system logs and audit events</td></tr><tr><td><code>logstreams</code></td><td>Manages streaming of log data to external systems</td></tr><tr><td><code>mappings</code></td><td>Configures attribute mappings between systems</td></tr><tr><td><code>meta</code></td><td>Provides metadata about the Okta API and environment</td></tr><tr><td><code>oauth2</code></td><td>Manages OAuth 2.0 clients, scopes, and tokens</td></tr><tr><td><code>okta_personal_settings</code></td><td>Controls user-specific preferences and settings</td></tr><tr><td><code>org</code></td><td>Manages organization-level settings and configurations</td></tr><tr><td><code>orgs</code></td><td>Handles multi-org deployments and org relationships</td></tr><tr><td><code>policies</code></td><td>Configures authentication, password, and access policies</td></tr><tr><td><code>principal_rate_limits</code></td><td>Manages API rate limits for specific principals</td></tr><tr><td><code>privileged_access</code></td><td>Controls privileged access management settings</td></tr><tr><td><code>push_providers</code></td><td>Configures push notification delivery services</td></tr><tr><td><code>rate_limit_settings</code></td><td>Manages global API rate limit configurations</td></tr><tr><td><code>realm_assignments</code></td><td>Maps users and groups to authentication realms</td></tr><tr><td><code>realms</code></td><td>Configures authentication realms for different user populations</td></tr><tr><td><code>risk</code></td><td>Manages risk-based authentication settings and policies</td></tr><tr><td><code>roles</code></td><td>Controls administrative role assignments and permissions</td></tr><tr><td><code>security</code></td><td>Provides security settings and configurations</td></tr><tr><td><code>security_events_providers</code></td><td>Manages integrations with security event sources</td></tr><tr><td><code>sessions</code></td><td>Controls user session policies and management</td></tr><tr><td><code>ssf</code></td><td>Configures server-side functions for customization</td></tr><tr><td><code>templates</code></td><td>Manages templates for emails, notifications, and forms</td></tr><tr><td><code>threats</code></td><td>Controls threat intelligence settings and configurations</td></tr><tr><td><code>trustedorigins</code></td><td>Manages CORS and redirect configurations</td></tr><tr><td><code>users</code></td><td>Handles user lifecycle, profiles, and credentials</td></tr><tr><td><code>webauthn_registration</code></td><td>Manages WebAuthn/FIDO2 credential registration</td></tr><tr><td><code>zones</code></td><td>Configures network zones for policy application</td></tr></tbody></table>
<div class="theme-admonition theme-admonition-note admonition_xJq3 alert alert--secondary"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M6.3 5.69a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.18.42-.28.7-.28.28 0 .52.09.7.28.18.19.28.42.28.7 0 .28-.09.52-.28.7a1 1 0 0 1-.7.3c-.28 0-.52-.11-.7-.3zM8 7.99c-.02-.25-.11-.48-.31-.69-.2-.19-.42-.3-.69-.31H6c-.27.02-.48.13-.69.31-.2.2-.3.44-.31.69h1v3c.02.27.11.5.31.69.2.2.42.31.69.31h1c.27 0 .48-.11.69-.31.2-.19.3-.42.31-.69H8V7.98v.01zM7 2.3c-3.14 0-5.7 2.54-5.7 5.68 0 3.14 2.56 5.7 5.7 5.7s5.7-2.55 5.7-5.7c0-3.15-2.56-5.69-5.7-5.69v.01zM7 .98c3.86 0 7 3.14 7 7s-3.14 7-7 7-7-3.12-7-7 3.14-7 7-7z"></path></svg></span>note</div><div class="admonitionContent_BuS1"><p>The improved organization including service and resource naming and mapping will introduce changes to queries against the previous provider version (<code>v23.03.00121</code>), you can pin the previous version in <code>stackql-deploy</code> or via <code>registry pull</code> in the interim while you make necessary query modifications.</p></div></div>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="enhanced-documentation">Enhanced Documentation<a href="https://stackql.io/blog/new-okta-provider-released#enhanced-documentation" class="hash-link" aria-label="Direct link to Enhanced Documentation" title="Direct link to Enhanced Documentation" translate="no">​</a></h2>
<p>The new <a href="https://okta-provider.stackql.io/" target="_blank" rel="noopener noreferrer" class=""><strong>Okta Provider Docs</strong></a> provide comprehensive documentation on how to use the new <code>okta</code> provider including ready-to-use SQL examples for each resource and method. A standout feature is the copy-paste functionality for all SQL queries, making it incredibly easy to:</p>
<ol>
<li class="">
<p><strong>Compose Infrastructure-as-Code workflows</strong>: Each method documentation includes working SQL examples that can be directly copied into your deployment scripts or CI/CD pipelines. Simply click the copy button next to any example to get production-ready SQL code.</p>
</li>
<li class="">
<p><strong>Build analytics dashboards</strong>: Create sophisticated cross-service queries by combining examples from different resources. The documentation's consistent query formatting makes it simple to join related data across multiple Okta services.</p>
</li>
<li class="">
<p><strong>Develop governance reports</strong>: Copy baseline queries and customize them for your specific compliance needs. The pre-formatted SQL provides the perfect starting point for custom reporting.</p>
</li>
</ol>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="getting-started">Getting Started<a href="https://stackql.io/blog/new-okta-provider-released#getting-started" class="hash-link" aria-label="Direct link to Getting Started" title="Direct link to Getting Started" translate="no">​</a></h2>
<p>To start using the updated <code>okta</code> provider, simply pull the latest version from <code>stackql shell</code> or <code>stackql registry</code> command:</p>
<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#d6deeb;--prism-background-color:#011627"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#d6deeb;background-color:#011627"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#d6deeb"><span class="token plain">registry pull okta</span><span class="token punctuation" style="color:rgb(199, 146, 234)">;</span><br></span></code></pre></div></div>
<p>Then you can begin querying your Okta resources with SQL:</p>
<div class="theme-tabs-container tabs-container tabList__CuJ"><ul role="tablist" aria-orientation="horizontal" class="tabs"><li role="tab" tabindex="0" aria-selected="true" class="tabs__item tabItem_LNqP tabs__item--active">Group assignments</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_LNqP">User activity</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_LNqP">Network zones</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_LNqP">AuthZ servers and scopes</li></ul><div class="margin-top--md"><div role="tabpanel" class="tabItem_Ymn6"><div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#d6deeb;--prism-background-color:#011627"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#d6deeb;background-color:#011627"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#d6deeb"><span class="token comment" style="color:rgb(99, 119, 119);font-style:italic">-- Get all users and their group assignments</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"></span><span class="token keyword" style="color:rgb(127, 219, 202)">SELECT</span><span class="token plain"> </span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">  u</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token plain">id</span><span class="token punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token plain"> </span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">  JSON_EXTRACT</span><span class="token punctuation" style="color:rgb(199, 146, 234)">(</span><span class="token plain">u</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token plain">profile</span><span class="token punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token plain"> </span><span class="token string" style="color:rgb(173, 219, 103)">'$.email'</span><span class="token punctuation" style="color:rgb(199, 146, 234)">)</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(127, 219, 202)">as</span><span class="token plain"> email</span><span class="token punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">  u</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token keyword" style="color:rgb(127, 219, 202)">status</span><span class="token punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token plain"> </span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">  JSON_EXTRACT</span><span class="token punctuation" style="color:rgb(199, 146, 234)">(</span><span class="token plain">g</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token plain">profile</span><span class="token punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token plain"> </span><span class="token string" style="color:rgb(173, 219, 103)">'$.name'</span><span class="token punctuation" style="color:rgb(199, 146, 234)">)</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(127, 219, 202)">as</span><span class="token plain"> group_name</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"></span><span class="token keyword" style="color:rgb(127, 219, 202)">FROM</span><span class="token plain"> </span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">  okta</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token keyword" style="color:rgb(127, 219, 202)">user</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token plain">users u</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"></span><span class="token keyword" style="color:rgb(127, 219, 202)">JOIN</span><span class="token plain"> </span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">  okta</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token keyword" style="color:rgb(127, 219, 202)">group</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token plain">users gu </span><span class="token keyword" style="color:rgb(127, 219, 202)">ON</span><span class="token plain"> u</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token plain">id </span><span class="token operator" style="color:rgb(127, 219, 202)">=</span><span class="token plain"> gu</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token plain">user_id</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"></span><span class="token keyword" style="color:rgb(127, 219, 202)">JOIN</span><span class="token plain"> </span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">  okta</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token keyword" style="color:rgb(127, 219, 202)">group</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token plain">groups g </span><span class="token keyword" style="color:rgb(127, 219, 202)">ON</span><span class="token plain"> gu</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token plain">group_id </span><span class="token operator" style="color:rgb(127, 219, 202)">=</span><span class="token plain"> g</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token plain">id</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"></span><span class="token keyword" style="color:rgb(127, 219, 202)">WHERE</span><span class="token plain"> subdomain </span><span class="token operator" style="color:rgb(127, 219, 202)">=</span><span class="token plain"> </span><span class="token string" style="color:rgb(173, 219, 103)">'my-company'</span><span class="token punctuation" style="color:rgb(199, 146, 234)">;</span><span class="token plain">  </span><br></span></code></pre></div></div></div><div role="tabpanel" class="tabItem_Ymn6" hidden=""><div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#d6deeb;--prism-background-color:#011627"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#d6deeb;background-color:#011627"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#d6deeb"><span class="token comment" style="color:rgb(99, 119, 119);font-style:italic">-- Report on users login and activity</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"></span><span class="token keyword" style="color:rgb(127, 219, 202)">SELECT</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">id</span><span class="token punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">activated</span><span class="token punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">created</span><span class="token punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">lastLogin</span><span class="token punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">lastUpdated</span><span class="token punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">passwordChanged</span><span class="token punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">JSON_EXTRACT</span><span class="token punctuation" style="color:rgb(199, 146, 234)">(</span><span class="token plain">profile</span><span class="token punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token plain"> </span><span class="token string" style="color:rgb(173, 219, 103)">'$.email'</span><span class="token punctuation" style="color:rgb(199, 146, 234)">)</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(127, 219, 202)">as</span><span class="token plain"> email</span><span class="token punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">JSON_EXTRACT</span><span class="token punctuation" style="color:rgb(199, 146, 234)">(</span><span class="token plain">profile</span><span class="token punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token plain"> </span><span class="token string" style="color:rgb(173, 219, 103)">'$.firstName'</span><span class="token punctuation" style="color:rgb(199, 146, 234)">)</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(127, 219, 202)">as</span><span class="token plain"> first_name</span><span class="token punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">JSON_EXTRACT</span><span class="token punctuation" style="color:rgb(199, 146, 234)">(</span><span class="token plain">profile</span><span class="token punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token plain"> </span><span class="token string" style="color:rgb(173, 219, 103)">'$.lastName'</span><span class="token punctuation" style="color:rgb(199, 146, 234)">)</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(127, 219, 202)">as</span><span class="token plain"> last_name</span><span class="token punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"></span><span class="token keyword" style="color:rgb(127, 219, 202)">status</span><span class="token punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">statusChanged</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"></span><span class="token keyword" style="color:rgb(127, 219, 202)">FROM</span><span class="token plain"> okta</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token plain">users</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token plain">users</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"></span><span class="token keyword" style="color:rgb(127, 219, 202)">WHERE</span><span class="token plain"> subdomain </span><span class="token operator" style="color:rgb(127, 219, 202)">=</span><span class="token plain"> </span><span class="token string" style="color:rgb(173, 219, 103)">'my-company'</span><span class="token punctuation" style="color:rgb(199, 146, 234)">;</span><span class="token plain">  </span><br></span></code></pre></div></div></div><div role="tabpanel" class="tabItem_Ymn6" hidden=""><div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#d6deeb;--prism-background-color:#011627"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#d6deeb;background-color:#011627"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#d6deeb"><span class="token comment" style="color:rgb(99, 119, 119);font-style:italic">-- Inventory network zones for security audit</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"></span><span class="token keyword" style="color:rgb(127, 219, 202)">SELECT</span><span class="token plain"> </span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">  name</span><span class="token punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token plain"> </span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">  </span><span class="token keyword" style="color:rgb(127, 219, 202)">type</span><span class="token punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token plain"> </span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">  </span><span class="token keyword" style="color:rgb(127, 219, 202)">status</span><span class="token punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token plain"> </span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">  gateways</span><span class="token punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token plain"> </span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">  proxies</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"></span><span class="token keyword" style="color:rgb(127, 219, 202)">FROM</span><span class="token plain"> </span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">  okta</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token plain">networkzone</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token plain">zones</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"></span><span class="token keyword" style="color:rgb(127, 219, 202)">WHERE</span><span class="token plain"> subdomain </span><span class="token operator" style="color:rgb(127, 219, 202)">=</span><span class="token plain"> </span><span class="token string" style="color:rgb(173, 219, 103)">'my-company'</span><span class="token punctuation" style="color:rgb(199, 146, 234)">;</span><span class="token plain"> </span><br></span></code></pre></div></div></div><div role="tabpanel" class="tabItem_Ymn6" hidden=""><div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#d6deeb;--prism-background-color:#011627"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#d6deeb;background-color:#011627"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#d6deeb"><span class="token comment" style="color:rgb(99, 119, 119);font-style:italic">-- Review authorization servers and scopes</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"></span><span class="token keyword" style="color:rgb(127, 219, 202)">SELECT</span><span class="token plain"> </span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">  a</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token plain">name </span><span class="token keyword" style="color:rgb(127, 219, 202)">as</span><span class="token plain"> auth_server_name</span><span class="token punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">  s</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token plain">name </span><span class="token keyword" style="color:rgb(127, 219, 202)">as</span><span class="token plain"> scope_name</span><span class="token punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">  s</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token plain">description</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"></span><span class="token keyword" style="color:rgb(127, 219, 202)">FROM</span><span class="token plain"> </span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">  okta</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token plain">authorizationserver</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token plain">authorizationservers a</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"></span><span class="token keyword" style="color:rgb(127, 219, 202)">JOIN</span><span class="token plain"> </span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">  okta</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token plain">authorizationserver</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token plain">scopes s </span><span class="token keyword" style="color:rgb(127, 219, 202)">ON</span><span class="token plain"> a</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token plain">id </span><span class="token operator" style="color:rgb(127, 219, 202)">=</span><span class="token plain"> s</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token plain">server_id</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"></span><span class="token keyword" style="color:rgb(127, 219, 202)">WHERE</span><span class="token plain"> subdomain </span><span class="token operator" style="color:rgb(127, 219, 202)">=</span><span class="token plain"> </span><span class="token string" style="color:rgb(173, 219, 103)">'my-company'</span><span class="token punctuation" style="color:rgb(199, 146, 234)">;</span><span class="token plain"> </span><br></span></code></pre></div></div></div></div></div>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="use-cases-for-the-okta-provider">Use Cases for the Okta Provider<a href="https://stackql.io/blog/new-okta-provider-released#use-cases-for-the-okta-provider" class="hash-link" aria-label="Direct link to Use Cases for the Okta Provider" title="Direct link to Use Cases for the Okta Provider" translate="no">​</a></h2>
<ol>
<li class="">
<p><strong>Infrastructure as Code</strong>: Manage your Okta resources alongside other cloud providers in a unified IaC approach, see <a href="https://stackql-deploy.io/" target="_blank" rel="noopener noreferrer" class=""><strong><code>stackql-deploy</code></strong></a>.</p>
</li>
<li class="">
<p><strong>Cost Optimization</strong>: Identify unused resources and opportunities for cost savings.</p>
</li>
<li class="">
<p><strong>Security and Compliance</strong>: Audit account roles, permissions, and access patterns to ensure compliance with security policies.</p>
</li>
<li class="">
<p><strong>Performance Monitoring</strong>: Track query performance, warehouse utilization, and identify optimization opportunities.</p>
</li>
<li class="">
<p><strong>Cross-Provider Orchestration</strong>: Build workflows that span Okta and other resource providers, enabling sophisticated data and infrastructure pipelines.</p>
</li>
<li class="">
<p><strong>Automated Reporting</strong>: Create automated reports on Okta usage, performance, and costs.</p>
</li>
</ol>
<p>⭐ us on <a href="https://github.com/stackql/stackql" target="_blank" rel="noopener noreferrer" class=""><strong>GitHub</strong></a> and join our community!</p>]]></content>
        <author>
            <name>Jeffrey Aven</name>
            <uri>https://www.linkedin.com/in/jeffreyaven/</uri>
        </author>
        <category label="stackql" term="stackql"/>
        <category label="okta" term="okta"/>
        <category label="iac" term="iac"/>
        <category label="analytics" term="analytics"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[Updated Google Providers for StackQL Available]]></title>
        <id>https://stackql.io/blog/updated-google-providers-available</id>
        <link href="https://stackql.io/blog/updated-google-providers-available"/>
        <updated>2025-08-29T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Query and interact with Google resources using SQL.]]></summary>
        <content type="html"><![CDATA[<p>The latest versions of the Google-related providers for StackQL: <code>google</code>, <code>googleadmin</code>, <code>googleworkspace</code>, and <code>firebase</code> are available now. These updates include the latest services, resources and methods available from Google.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="whats-new">What's New<a href="https://stackql.io/blog/updated-google-providers-available#whats-new" class="hash-link" aria-label="Direct link to What's New" title="Direct link to What's New" translate="no">​</a></h2>
<p>The latest release introduces several new services to the <code>google</code> provider, expanding your ability to manage and query Google Cloud resources:</p>
<ul>
<li class=""><strong>API Hub</strong>: Centrally manage and discover APIs across your organization</li>
<li class=""><strong>Area Insights</strong>: Access location-based insights and analytics</li>
<li class=""><strong>Cloud Location Finder</strong>: Identify optimal Google Cloud regions for your workloads</li>
<li class=""><strong>Gemini Cloud Assist</strong>: Leverage Google's AI assistant for cloud operations</li>
<li class=""><strong>Managed Kafka</strong>: Work with Google's fully-managed Apache Kafka service</li>
<li class=""><strong>Observability</strong>: Enhanced monitoring and observability services</li>
<li class=""><strong>Parallel Store</strong>: Interact with Google's high-performance storage solution</li>
<li class=""><strong>Parameter Manager</strong>: Manage configuration parameters across services</li>
<li class=""><strong>SaaS Service Management</strong>: Tools for managing SaaS offerings on Google Cloud</li>
<li class=""><strong>Secure Source Manager</strong>: Google's secure, fully-managed source control service</li>
<li class=""><strong>Security Posture</strong>: Assess and improve your cloud security posture</li>
<li class=""><strong>Storage Batch Operations</strong>: Perform batch operations on Cloud Storage resources</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="enhanced-documentation">Enhanced Documentation<a href="https://stackql.io/blog/updated-google-providers-available#enhanced-documentation" class="hash-link" aria-label="Direct link to Enhanced Documentation" title="Direct link to Enhanced Documentation" translate="no">​</a></h2>
<p>We've also released enhanced user documentation to help you get the most out of these providers. Check out our comprehensive docs:</p>
<ul>
<li class=""><a href="https://firebase-provider.stackql.io/" target="_blank" rel="noopener noreferrer" class="">Firebase Provider</a></li>
<li class=""><a href="https://google-provider.stackql.io/" target="_blank" rel="noopener noreferrer" class="">Google Provider</a></li>
<li class=""><a href="https://googleadmin-provider.stackql.io/" target="_blank" rel="noopener noreferrer" class="">Google Admin Provider</a></li>
<li class=""><a href="https://googleworkspace-provider.stackql.io/" target="_blank" rel="noopener noreferrer" class="">Google Workspace Provider</a></li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="getting-started">Getting Started<a href="https://stackql.io/blog/updated-google-providers-available#getting-started" class="hash-link" aria-label="Direct link to Getting Started" title="Direct link to Getting Started" translate="no">​</a></h2>
<p>To start using these updated providers, simply pull the latest version from <code>stackql shell</code> or <code>stackql registry</code> command:</p>
<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#d6deeb;--prism-background-color:#011627"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#d6deeb;background-color:#011627"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#d6deeb"><span class="token plain">registry pull google</span><span class="token punctuation" style="color:rgb(199, 146, 234)">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">registry pull googleadmin</span><span class="token punctuation" style="color:rgb(199, 146, 234)">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">registry pull googleworkspace</span><span class="token punctuation" style="color:rgb(199, 146, 234)">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">registry pull firebase</span><span class="token punctuation" style="color:rgb(199, 146, 234)">;</span><br></span></code></pre></div></div>
<p>Then you can begin querying your Google resources with SQL:</p>
<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#d6deeb;--prism-background-color:#011627"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#d6deeb;background-color:#011627"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#d6deeb"><span class="token keyword" style="color:rgb(127, 219, 202)">SELECT</span><span class="token plain"> name</span><span class="token punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token plain"> region</span><span class="token punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(127, 219, 202)">status</span><span class="token plain"> </span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"></span><span class="token keyword" style="color:rgb(127, 219, 202)">FROM</span><span class="token plain"> google</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token keyword" style="color:rgb(127, 219, 202)">compute</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token plain">instances</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"></span><span class="token keyword" style="color:rgb(127, 219, 202)">WHERE</span><span class="token plain"> project </span><span class="token operator" style="color:rgb(127, 219, 202)">=</span><span class="token plain"> </span><span class="token string" style="color:rgb(173, 219, 103)">'my-project'</span><span class="token punctuation" style="color:rgb(199, 146, 234)">;</span><br></span></code></pre></div></div>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="use-cases-for-the-google-provider">Use Cases for the Google Provider<a href="https://stackql.io/blog/updated-google-providers-available#use-cases-for-the-google-provider" class="hash-link" aria-label="Direct link to Use Cases for the Google Provider" title="Direct link to Use Cases for the Google Provider" translate="no">​</a></h2>
<p>The Google provider for StackQL opens up numerous possibilities:</p>
<ol>
<li class="">
<p><strong>Infrastructure as Code</strong>: Manage your Google resources alongside other cloud providers in a unified IaC approach, see <a href="https://stackql-deploy.io/" target="_blank" rel="noopener noreferrer" class=""><strong><code>stackql-deploy</code></strong></a>.</p>
</li>
<li class="">
<p><strong>Cost Optimization</strong>: Identify unused resources and opportunities for cost savings.</p>
</li>
<li class="">
<p><strong>Security and Compliance</strong>: Audit account roles, permissions, and access patterns to ensure compliance with security policies.</p>
</li>
<li class="">
<p><strong>Performance Monitoring</strong>: Track query performance, warehouse utilization, and identify optimization opportunities.</p>
</li>
<li class="">
<p><strong>Cross-Provider Orchestration</strong>: Build workflows that span Google and other cloud providers, enabling sophisticated data and infrastructure pipelines.</p>
</li>
<li class="">
<p><strong>Automated Reporting</strong>: Create automated reports on Google usage, performance, and costs.</p>
</li>
</ol>
<p>⭐ us on <a href="https://github.com/stackql/stackql" target="_blank" rel="noopener noreferrer" class=""><strong>GitHub</strong></a> and join our community!</p>]]></content>
        <author>
            <name>Jeffrey Aven</name>
            <uri>https://www.linkedin.com/in/jeffreyaven/</uri>
        </author>
        <category label="stackql" term="stackql"/>
        <category label="google" term="google"/>
        <category label="firebase" term="firebase"/>
        <category label="iac" term="iac"/>
        <category label="analytics" term="analytics"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[Snowflake Provider for StackQL Released]]></title>
        <id>https://stackql.io/blog/snowflake-provider-for-stackql-released</id>
        <link href="https://stackql.io/blog/snowflake-provider-for-stackql-released"/>
        <updated>2025-05-20T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Query and interact with Snowflake resources using SQL.]]></summary>
        <content type="html"><![CDATA[<p>We're excited to announce the release of the Snowflake provider for StackQL! This new provider enables you to query and interact with your Snowflake resources using familiar SQL syntax, bridging the gap between data analytics and infrastructure management.</p>
<p>The Snowflake provider for StackQL gives you the ability to:</p>
<ul>
<li class="">Query Snowflake metadata and statistics using SQL</li>
<li class="">Monitor warehouse, database, and query performance</li>
<li class="">Analyze resource usage and optimize costs</li>
<li class="">Integrate Snowflake management with your existing cloud infrastructure</li>
<li class="">Build cross-provider workflows and automation</li>
</ul>
<p>Full documentation for the Snowflake provider is available <a class="" href="https://stackql.io/providers/snowflake"><strong>here</strong></a>.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="getting-started">Getting Started<a href="https://stackql.io/blog/snowflake-provider-for-stackql-released#getting-started" class="hash-link" aria-label="Direct link to Getting Started" title="Direct link to Getting Started" translate="no">​</a></h2>
<p>Getting started is as easy as...</p>
<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#d6deeb;--prism-background-color:#011627"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#d6deeb;background-color:#011627"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#d6deeb"><span class="token plain">REGISTRY PULL snowflake</span><span class="token punctuation" style="color:rgb(199, 146, 234)">;</span><br></span></code></pre></div></div>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="example-queries">Example Queries<a href="https://stackql.io/blog/snowflake-provider-for-stackql-released#example-queries" class="hash-link" aria-label="Direct link to Example Queries" title="Direct link to Example Queries" translate="no">​</a></h2>
<p>Let's explore some powerful examples of what you can do with the Snowflake provider for StackQL.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="analyzing-warehouses">Analyzing Warehouses<a href="https://stackql.io/blog/snowflake-provider-for-stackql-released#analyzing-warehouses" class="hash-link" aria-label="Direct link to Analyzing Warehouses" title="Direct link to Analyzing Warehouses" translate="no">​</a></h3>
<div class="theme-tabs-container tabs-container tabList__CuJ"><ul role="tablist" aria-orientation="horizontal" class="tabs"><li role="tab" tabindex="0" aria-selected="true" class="tabs__item tabItem_LNqP tabs__item--active">Query</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_LNqP">Results</li></ul><div class="margin-top--md"><div role="tabpanel" class="tabItem_Ymn6"><div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#d6deeb;--prism-background-color:#011627"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#d6deeb;background-color:#011627"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#d6deeb"><span class="token keyword" style="color:rgb(127, 219, 202)">SELECT</span><span class="token plain"> </span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">  size</span><span class="token punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token plain"> </span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">  </span><span class="token function" style="color:rgb(130, 170, 255)">count</span><span class="token punctuation" style="color:rgb(199, 146, 234)">(</span><span class="token operator" style="color:rgb(127, 219, 202)">*</span><span class="token punctuation" style="color:rgb(199, 146, 234)">)</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(127, 219, 202)">as</span><span class="token plain"> num_warehouses</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"></span><span class="token keyword" style="color:rgb(127, 219, 202)">FROM</span><span class="token plain"> </span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">  snowflake</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token plain">warehouse</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token plain">warehouses</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"></span><span class="token keyword" style="color:rgb(127, 219, 202)">WHERE</span><span class="token plain"> </span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">  endpoint </span><span class="token operator" style="color:rgb(127, 219, 202)">=</span><span class="token plain"> </span><span class="token string" style="color:rgb(173, 219, 103)">'OKXVNMC-VH34026'</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"></span><span class="token keyword" style="color:rgb(127, 219, 202)">GROUP</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(127, 219, 202)">BY</span><span class="token plain"> </span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">  size</span><span class="token punctuation" style="color:rgb(199, 146, 234)">;</span><br></span></code></pre></div></div></div><div role="tabpanel" class="tabItem_Ymn6" hidden=""><div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#d6deeb;--prism-background-color:#011627"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#d6deeb;background-color:#011627"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#d6deeb"><span class="token plain">|---------|----------------|</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">|  size   | num_warehouses |</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">|---------|----------------|</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">| X-Small |             12 |</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">|---------|----------------|</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">| Small   |              8 |</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">|---------|----------------|</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">| Medium  |              5 |</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">|---------|----------------|</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">| Large   |              3 |</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">|---------|----------------|</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">| X-Large |              1 |</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">|---------|----------------|</span><br></span></code></pre></div></div></div></div></div>
<p>Other fields for the <code>warehouses</code> resource include : <code>name</code>, <code>warehouse_type</code>, <code>state</code>, <code>scaling_policy</code>, <code>auto_suspend</code>, <code>auto_resume</code>, <code>resource_monitor</code>, <code>enable_query_acceleration</code>, <code>query_acceleration_max_scale_factor</code>, <code>max_concurrency_level</code>, <code>owner</code>, <code>warehouse_credit_limit</code>, <code>target_statement_size</code> and more.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="table-analysis">Table Analysis<a href="https://stackql.io/blog/snowflake-provider-for-stackql-released#table-analysis" class="hash-link" aria-label="Direct link to Table Analysis" title="Direct link to Table Analysis" translate="no">​</a></h3>
<div class="theme-tabs-container tabs-container tabList__CuJ"><ul role="tablist" aria-orientation="horizontal" class="tabs"><li role="tab" tabindex="0" aria-selected="true" class="tabs__item tabItem_LNqP tabs__item--active">Query</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_LNqP">Results</li></ul><div class="margin-top--md"><div role="tabpanel" class="tabItem_Ymn6"><div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#d6deeb;--prism-background-color:#011627"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#d6deeb;background-color:#011627"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#d6deeb"><span class="token keyword" style="color:rgb(127, 219, 202)">SELECT</span><span class="token plain"> </span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">  name</span><span class="token punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token plain"> </span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">  bytes</span><span class="token punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token plain"> </span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">  data_retention_time_in_days</span><span class="token punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token plain"> </span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">  table_type </span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"></span><span class="token keyword" style="color:rgb(127, 219, 202)">FROM</span><span class="token plain"> </span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">  snowflake</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token keyword" style="color:rgb(127, 219, 202)">table</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token keyword" style="color:rgb(127, 219, 202)">tables</span><span class="token plain"> </span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"></span><span class="token keyword" style="color:rgb(127, 219, 202)">WHERE</span><span class="token plain"> </span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">  database_name </span><span class="token operator" style="color:rgb(127, 219, 202)">=</span><span class="token plain"> </span><span class="token string" style="color:rgb(173, 219, 103)">'SNOWFLAKE_SAMPLE_DATA'</span><span class="token plain"> </span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">  </span><span class="token operator" style="color:rgb(127, 219, 202)">AND</span><span class="token plain"> schema_name </span><span class="token operator" style="color:rgb(127, 219, 202)">=</span><span class="token plain"> </span><span class="token string" style="color:rgb(173, 219, 103)">'TPCH_SF10'</span><span class="token plain"> </span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">  </span><span class="token operator" style="color:rgb(127, 219, 202)">AND</span><span class="token plain"> endpoint </span><span class="token operator" style="color:rgb(127, 219, 202)">=</span><span class="token plain"> </span><span class="token string" style="color:rgb(173, 219, 103)">'OKXVNMC-VH34026'</span><span class="token plain"> </span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"></span><span class="token keyword" style="color:rgb(127, 219, 202)">ORDER</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(127, 219, 202)">BY</span><span class="token plain"> </span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">  bytes </span><span class="token keyword" style="color:rgb(127, 219, 202)">DESC</span><span class="token punctuation" style="color:rgb(199, 146, 234)">;</span><br></span></code></pre></div></div></div><div role="tabpanel" class="tabItem_Ymn6" hidden=""><div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#d6deeb;--prism-background-color:#011627"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#d6deeb;background-color:#011627"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#d6deeb"><span class="token plain">|----------|------------|-----------------------------|------------|</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">|   name   |   bytes    | data_retention_time_in_days | table_type |</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">|----------|------------|-----------------------------|------------|</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">| LINEITEM | 1717059584 |                           1 | NORMAL     |</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">|----------|------------|-----------------------------|------------|</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">| ORDERS   |  446439424 |                           1 | NORMAL     |</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">|----------|------------|-----------------------------|------------|</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">| PARTSUPP |  373145600 |                           1 | NORMAL     |</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">|----------|------------|-----------------------------|------------|</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">| CUSTOMER |  108249088 |                           1 | NORMAL     |</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">|----------|------------|-----------------------------|------------|</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">| PART     |   52776960 |                           1 | NORMAL     |</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">|----------|------------|-----------------------------|------------|</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">| SUPPLIER |    6791168 |                           1 | NORMAL     |</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">|----------|------------|-----------------------------|------------|</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">| NATION   |       4096 |                           1 | NORMAL     |</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">|----------|------------|-----------------------------|------------|</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">| REGION   |       4096 |                           1 | NORMAL     |</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">|----------|------------|-----------------------------|------------|</span><br></span></code></pre></div></div></div></div></div>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="other-services-and-resources">Other Services and Resources<a href="https://stackql.io/blog/snowflake-provider-for-stackql-released#other-services-and-resources" class="hash-link" aria-label="Direct link to Other Services and Resources" title="Direct link to Other Services and Resources" translate="no">​</a></h2>
<p>Other notable resources which can be provisioned, managed or queried using the <code>snowflake</code> provider for <code>stackql</code> include:</p>
<p><code>alerts</code>, <code>api_integrations</code>, <code>catalog_integrations</code>, <code>compute_pools</code>, <code>databases</code>, <code>database_roles</code>, <code>dynamic_tables</code>, <code>event_tables</code>, <code>external_volumes</code>, <code>functions</code>, <code>grants</code>, <code>iceberg_tables</code>, <code>image_repositories</code>, <code>network_policies</code>, <code>notebooks</code>,  <code>notification_integrations</code>, <code>pipes</code>, <code>procedures</code>, <code>roles</code>, <code>schemas</code>, <code>stages</code>, <code>streams</code>, <code>tasks</code>, <code>users</code>, <code>user_defined_functions</code>, <code>views</code>, and more!</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="use-cases-for-the-snowflake-provider">Use Cases for the Snowflake Provider<a href="https://stackql.io/blog/snowflake-provider-for-stackql-released#use-cases-for-the-snowflake-provider" class="hash-link" aria-label="Direct link to Use Cases for the Snowflake Provider" title="Direct link to Use Cases for the Snowflake Provider" translate="no">​</a></h2>
<p>The Snowflake provider for StackQL opens up numerous possibilities:</p>
<ol>
<li class="">
<p><strong>Infrastructure as Code</strong>: Manage your Snowflake resources alongside other cloud providers in a unified IaC approach, see <a href="https://stackql-deploy.io/" target="_blank" rel="noopener noreferrer" class=""><strong><code>stackql-deploy</code></strong></a>.</p>
</li>
<li class="">
<p><strong>Cost Optimization</strong>: Identify unused resources, inefficient warehouses, and opportunities for cost savings.</p>
</li>
<li class="">
<p><strong>Security and Compliance</strong>: Audit account roles, permissions, and access patterns to ensure compliance with security policies.</p>
</li>
<li class="">
<p><strong>Performance Monitoring</strong>: Track query performance, warehouse utilization, and identify optimization opportunities.</p>
</li>
<li class="">
<p><strong>Cross-Provider Orchestration</strong>: Build workflows that span Snowflake and other cloud providers, enabling sophisticated data and infrastructure pipelines.</p>
</li>
<li class="">
<p><strong>Automated Reporting</strong>: Create automated reports on Snowflake usage, performance, and costs.</p>
</li>
</ol>
<p>⭐ us on <a href="https://github.com/stackql/stackql" target="_blank" rel="noopener noreferrer" class=""><strong>GitHub</strong></a> and join our community!</p>]]></content>
        <author>
            <name>Jeffrey Aven</name>
            <uri>https://www.linkedin.com/in/jeffreyaven/</uri>
        </author>
        <category label="stackql" term="stackql"/>
        <category label="snowflake" term="snowflake"/>
        <category label="iac" term="iac"/>
        <category label="analytics" term="analytics"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[(Quickly) Identify Old Node Runtimes in AWS Lambda]]></title>
        <id>https://stackql.io/blog/quickly-identify-old-node-runtimes-in-aws-lambda</id>
        <link href="https://stackql.io/blog/quickly-identify-old-node-runtimes-in-aws-lambda"/>
        <updated>2025-04-29T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Query and interact with AWS resources using SQL.]]></summary>
        <content type="html"><![CDATA[<p>Have you been sent one of these?</p>
<p><strong>[Action Required] AWS Lambda end of support for Node.js 18 [AWS Account: 824123456789] [EU-CENTRAL-1]</strong></p>
<p>If you are like me and manage AWS accounts with numerous Lambda functions potentially deployed across multiple regions, you need to identify affected resources, in this case, Lambda node runtimes, which will be discontinued later this year. &nbsp;</p>
<p>With <a href="https://github.com/stackql/stackql" target="_blank" rel="noopener noreferrer" class=""><strong><code>stackql</code></strong></a> this task is easy...</p>
<ol>
<li class="">Open AWS cloud shell in your AWS account (any region - it doesn't matter)</li>
<li class="">Download <code>stackql</code></li>
</ol>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#d6deeb;--prism-background-color:#011627"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#d6deeb;background-color:#011627"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#d6deeb"><span class="token plain">curl -L https://bit.ly/stackql-zip -O &amp;&amp; unzip stackql-zip</span><br></span></code></pre></div></div>
<ol start="3">
<li class="">Open an authenticated <code>stackql</code> command shell</li>
</ol>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#d6deeb;--prism-background-color:#011627"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#d6deeb;background-color:#011627"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#d6deeb"><span class="token plain">sh stackql-aws-cloud-shell.sh</span><br></span></code></pre></div></div>
<ol start="4">
<li class="">Run some analytic queries using <code>stackql</code>; here are some examples...</li>
</ol>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="-list-all-functions-and-runtimes-across-regions">🔍 List all functions and runtimes across regions<a href="https://stackql.io/blog/quickly-identify-old-node-runtimes-in-aws-lambda#-list-all-functions-and-runtimes-across-regions" class="hash-link" aria-label="Direct link to 🔍 List all functions and runtimes across regions" title="Direct link to 🔍 List all functions and runtimes across regions" translate="no">​</a></h3>
<p>Run a stackql query to get the details about functions, runtimes, etc, deployed at any given time across one or more AWS regions. &nbsp;You can include all 25 AWS regions; each query will be performed asynchronously - speeding up the results.</p>
<div class="theme-tabs-container tabs-container tabList__CuJ"><ul role="tablist" aria-orientation="horizontal" class="tabs"><li role="tab" tabindex="0" aria-selected="true" class="tabs__item tabItem_LNqP tabs__item--active">Query</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_LNqP">Results</li></ul><div class="margin-top--md"><div role="tabpanel" class="tabItem_Ymn6"><div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#d6deeb;--prism-background-color:#011627"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#d6deeb;background-color:#011627"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#d6deeb"><span class="token keyword" style="color:rgb(127, 219, 202)">select</span><span class="token plain"> </span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">  function_name</span><span class="token punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token plain"> </span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">  region</span><span class="token punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">  runtime </span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"></span><span class="token keyword" style="color:rgb(127, 219, 202)">FROM</span><span class="token plain"> aws</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token plain">lambda</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token plain">functions </span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"></span><span class="token keyword" style="color:rgb(127, 219, 202)">WHERE</span><span class="token plain"> region </span><span class="token operator" style="color:rgb(127, 219, 202)">IN</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(199, 146, 234)">(</span><span class="token string" style="color:rgb(173, 219, 103)">'us-east-1'</span><span class="token punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token plain"> </span><span class="token string" style="color:rgb(173, 219, 103)">'eu-west-1'</span><span class="token punctuation" style="color:rgb(199, 146, 234)">)</span><span class="token punctuation" style="color:rgb(199, 146, 234)">;</span><br></span></code></pre></div></div></div><div role="tabpanel" class="tabItem_Ymn6" hidden=""><div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#d6deeb;--prism-background-color:#011627"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#d6deeb;background-color:#011627"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#d6deeb"><span class="token plain">|----------------------------------------------|---------------|------------|</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">| function_name                                | region        | runtime    |</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">|----------------------------------------------|---------------|------------|</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">| order-processing-handler                     | us-east-1     | nodejs16.x |</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">|----------------------------------------------|---------------|------------|</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">| payment-service-lambda                       | us-east-1     | nodejs18.x |</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">|----------------------------------------------|---------------|------------|</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">| user-notifications-service                   | us-east-1     | python3.8  |</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">|----------------------------------------------|---------------|------------|</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">| generate-invoice-pdf                         | eu-west-1     | nodejs18.x |</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">|----------------------------------------------|---------------|------------|</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">| realtime-data-stream-processor               | eu-west-1     | java11     |</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">|----------------------------------------------|---------------|------------|</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">| chat-message-router                          | eu-west-1     | nodejs20.x |</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">|----------------------------------------------|---------------|------------|</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">| scheduled-maintenance-checker                | ap-southeast-2| python3.11 |</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">|----------------------------------------------|---------------|------------|</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">| s3-image-thumbnail-generator                 | ap-southeast-2| nodejs16.x |</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">|----------------------------------------------|---------------|------------|</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">| email-delivery-status-updater                | ap-southeast-2| python3.8  |</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">|----------------------------------------------|---------------|------------|</span><br></span></code></pre></div></div></div></div></div>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="-group-by-runtime-and-region">📊 Group by runtime and region<a href="https://stackql.io/blog/quickly-identify-old-node-runtimes-in-aws-lambda#-group-by-runtime-and-region" class="hash-link" aria-label="Direct link to 📊 Group by runtime and region" title="Direct link to 📊 Group by runtime and region" translate="no">​</a></h3>
<p>Perform an analytic query like a <code>group by aggregate</code> query such as...</p>
<div class="theme-tabs-container tabs-container tabList__CuJ"><ul role="tablist" aria-orientation="horizontal" class="tabs"><li role="tab" tabindex="0" aria-selected="true" class="tabs__item tabItem_LNqP tabs__item--active">Query</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_LNqP">Results</li></ul><div class="margin-top--md"><div role="tabpanel" class="tabItem_Ymn6"><div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#d6deeb;--prism-background-color:#011627"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#d6deeb;background-color:#011627"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#d6deeb"><span class="token keyword" style="color:rgb(127, 219, 202)">select</span><span class="token plain"> </span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">  runtime</span><span class="token punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token plain"> </span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">  region</span><span class="token punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token plain"> </span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">  </span><span class="token function" style="color:rgb(130, 170, 255)">count</span><span class="token punctuation" style="color:rgb(199, 146, 234)">(</span><span class="token operator" style="color:rgb(127, 219, 202)">*</span><span class="token punctuation" style="color:rgb(199, 146, 234)">)</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(127, 219, 202)">as</span><span class="token plain"> num_functions </span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"></span><span class="token keyword" style="color:rgb(127, 219, 202)">FROM</span><span class="token plain"> aws</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token plain">lambda</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token plain">functions </span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"></span><span class="token keyword" style="color:rgb(127, 219, 202)">WHERE</span><span class="token plain"> region </span><span class="token operator" style="color:rgb(127, 219, 202)">IN</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(199, 146, 234)">(</span><span class="token string" style="color:rgb(173, 219, 103)">'us-east-1'</span><span class="token punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token plain"> </span><span class="token string" style="color:rgb(173, 219, 103)">'eu-west-1'</span><span class="token punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token plain"> </span><span class="token string" style="color:rgb(173, 219, 103)">'ap-southeast-2'</span><span class="token punctuation" style="color:rgb(199, 146, 234)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"></span><span class="token keyword" style="color:rgb(127, 219, 202)">GROUP</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(127, 219, 202)">BY</span><span class="token plain"> runtime</span><span class="token punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token plain"> region</span><span class="token punctuation" style="color:rgb(199, 146, 234)">;</span><br></span></code></pre></div></div></div><div role="tabpanel" class="tabItem_Ymn6" hidden=""><div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#d6deeb;--prism-background-color:#011627"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#d6deeb;background-color:#011627"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#d6deeb"><span class="token plain">|--------------|----------------|---------------|</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">| runtime      | region         | num_functions |</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">|--------------|----------------|---------------|</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">| nodejs16.x   | us-east-1      | 102           |</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">|--------------|----------------|---------------|</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">| nodejs18.x   | us-east-1      | 98            |</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">|--------------|----------------|---------------|</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">| python3.8    | us-east-1      | 138           |</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">|--------------|----------------|---------------|</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">| nodejs18.x   | eu-west-1      | 40            |</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">|--------------|----------------|---------------|</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">| java11       | eu-west-1      | 113           |</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">|--------------|----------------|---------------|</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">| nodejs20.x   | eu-west-1      | 120           |</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">|--------------|----------------|---------------|</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">| python3.11   | ap-southeast-2 | 384           |</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">|--------------|----------------|---------------|</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">| nodejs16.x   | ap-southeast-2 | 88            |</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">|--------------|----------------|---------------|</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">| python3.8    | ap-southeast-2 | 18            |</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">|--------------|----------------|---------------|</span><br></span></code></pre></div></div></div></div></div>
<div class="theme-admonition theme-admonition-tip admonition_xJq3 alert alert--success"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 12 16"><path fill-rule="evenodd" d="M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"></path></svg></span>tip</div><div class="admonitionContent_BuS1"><p>You can easily visualise this data using a notebook; see <a href="https://github.com/stackql/stackql-codespaces-notebook" target="_blank" rel="noopener noreferrer" class=""><strong><code>stackql-codespaces-notebook</code></strong></a> or <a href="https://github.com/stackql/stackql-jupyter-demo" target="_blank" rel="noopener noreferrer" class=""><strong><code>stackql-jupyter-demo</code></strong></a>.</p></div></div>
<p>Using StackQL you can:</p>
<ul>
<li class=""><em>Quickly spot functions running on runtimes like <code>nodejs18.x</code> that are approaching end of support.</em></li>
<li class=""><em>Plan your upgrades region-by-region with confidence.</em></li>
</ul>
<p>⭐ us on <a href="https://github.com/stackql/stackql" target="_blank" rel="noopener noreferrer" class=""><strong>GitHub</strong></a> and join our community!</p>]]></content>
        <author>
            <name>Jeffrey Aven</name>
            <uri>https://www.linkedin.com/in/jeffreyaven/</uri>
        </author>
        <category label="stackql" term="stackql"/>
        <category label="aws" term="aws"/>
        <category label="amazon web services" term="amazon web services"/>
        <category label="iac" term="iac"/>
        <category label="analytics" term="analytics"/>
        <category label="lambda" term="lambda"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[New AWS Provider Available (Jan 2025)]]></title>
        <id>https://stackql.io/blog/latest-aws-provider-for-stackql-released</id>
        <link href="https://stackql.io/blog/latest-aws-provider-for-stackql-released"/>
        <updated>2025-01-11T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Query and interact with AWS resources using SQL.]]></summary>
        <content type="html"><![CDATA[<div class="theme-admonition theme-admonition-info admonition_xJq3 alert alert--info"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"></path></svg></span>info</div><div class="admonitionContent_BuS1"><p>To get started with the <code>aws</code> provider for <code>stackql</code>, pull the provider from the registry as follows: &nbsp;</p><div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#d6deeb;--prism-background-color:#011627"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#d6deeb;background-color:#011627"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#d6deeb"><span class="token plain">registry pull aws;</span><br></span></code></pre></div></div><p>for more detailed provider documentation, see <a href="https://aws.stackql.io/providers/aws/" target="_blank" rel="noopener noreferrer" class="">here</a>.</p></div></div>
<p>Happy New Year 🎉.  The latest AWS provider for <a href="https://github.com/stackql/stackql" target="_blank" rel="noopener noreferrer" class=""><strong>StackQL</strong></a> is now available. &nbsp;The StackQL AWS Provider by the numbers:</p>
<ul>
<li class=""><strong>230 services</strong></li>
<li class=""><strong>3174 resources</strong></li>
<li class=""><strong>3917 methods</strong></li>
</ul>
<p>with additional new support for the following services:</p>
<ul>
<li class=""><code>amazonmq</code> - Managed message broker service for Apache ActiveMQ and RabbitMQ that simplifies setup and operation of open-source message brokers on AWS.</li>
<li class=""><code>applicationsignals</code> - CloudWatch Application Signals automatically provides a correlated view of application performance that includes real user monitoring data and canaries.</li>
<li class=""><code>apptest</code> - AWS mainframe modernization ppplication Testing</li>
<li class=""><code>connectcampaignsv2</code> - Amazon Connect Outbound Campaigns V2</li>
<li class=""><code>invoicing</code> - Deploy and query invoice units allowing you separate AWS account costs and configures your invoice for each business entity</li>
<li class=""><code>launchwizard</code> - Easily size, configure, and deploy third party applications on AWS</li>
<li class=""><code>pcaconnectorscep</code> - AWS Private CA Connector for SCEP</li>
<li class=""><code>pcs</code> - AWS Parallel Computing Service, easily run HPC workloads at virtually any scale</li>
<li class=""><code>rbin</code> - Recycle Bin is a resource recovery feature that enables you to restore accidentally deleted snapshots and EBS-backed AMIs.</li>
<li class=""><code>s3tables</code> - Amazon S3 Tables enabling Tabular Data Storage At Scale</li>
<li class=""><code>ssmquicksetup</code> - AWS Systems Manager Quick Setup</li>
</ul>
<p>And 150 new resources with some notable additions including:</p>
<ul>
<li class=""><code>aws.apigateway.domain_name_access_associations</code></li>
<li class=""><code>aws.appconfig.deployments</code>, <code>aws.appconfig.deployment_strategies</code></li>
<li class=""><code>aws.batch.job_definitions</code></li>
<li class=""><code>aws.bedrock.flows</code>, <code>aws.bedrock.prompts</code></li>
<li class=""><code>aws.chatbot.custom_actions</code></li>
<li class=""><code>aws.cloudformation.guard_hooks</code>, <code>aws.cloudformation.lambda_hooks</code></li>
<li class=""><code>aws.cloudfront.anycast_ip_lists</code></li>
<li class=""><code>aws.cloudtrail.dashboards</code>, <code>aws.cloudwatch.dashboards</code></li>
<li class=""><code>aws.codepipeline.pipelines</code></li>
<li class=""><code>aws.cognito.user_pool_identity_providers</code></li>
<li class=""><code>aws.ec2.security_group_vpc_associations</code>, <code>aws.ec2.vpc_block_public_access_exclusions</code>, <code>aws.ec2.vpc_block_public_access_options</code></li>
<li class=""><code>aws.glue.crawlers, aws.glue.databases</code>, <code>aws.glue.jobs, aws.glue.triggers</code></li>
<li class=""><code>aws.guardduty.malware_protection_plans</code></li>
<li class=""><code>aws.iot.commands</code></li>
<li class=""><code>aws.memorydb.multi_region_clusters</code></li>
<li class=""><code>aws.rds.db_shard_groups</code></li>
<li class=""><code>aws.redshift.integrations</code></li>
<li class=""><code>aws.sagemaker.clusters</code>, <code>aws.sagemaker.endpoints</code></li>
<li class=""><code>aws.secretsmanager.resource_policies</code>, <code>aws.secretsmanager.rotation_schedules</code>, <code>aws.secretsmanager.secret_target_attachments</code></li>
<li class=""><code>aws.workspaces.workspaces_pools</code></li>
<li class=""><code>aws.wisdom.ai_agents</code>, <code>aws.wisdom.ai_prompts</code>, <code>aws.wisdom.ai_guardrails</code>, <code>aws.wisdom.message_templates</code></li>
<li class="">and much more!</li>
</ul>
<p>⭐ us on <a href="https://github.com/stackql/stackql" target="_blank" rel="noopener noreferrer" class=""><strong>GitHub</strong></a> and join our community!</p>]]></content>
        <author>
            <name>Jeffrey Aven</name>
            <uri>https://www.linkedin.com/in/jeffreyaven/</uri>
        </author>
        <category label="stackql" term="stackql"/>
        <category label="aws" term="aws"/>
        <category label="amazon web services" term="amazon web services"/>
        <category label="iac" term="iac"/>
        <category label="analytics" term="analytics"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[Databricks Provider for StackQL Available]]></title>
        <id>https://stackql.io/blog/databricks-provider-for-stackql-available</id>
        <link href="https://stackql.io/blog/databricks-provider-for-stackql-available"/>
        <updated>2024-12-21T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Query and interact with Databricks resources using SQL.]]></summary>
        <content type="html"><![CDATA[<p>We are pleased to announce the release of the Databricks provider for StackQL today. &nbsp;The Databricks provider is two different providers, <strong><code>databricks_account</code></strong> and <strong><code>databricks_workspace</code></strong>.</p>
<div class="theme-admonition theme-admonition-info admonition_xJq3 alert alert--info"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"></path></svg></span>info</div><div class="admonitionContent_BuS1"><p>Check out the registry docs at <a href="https://databricks-account.stackql.io/providers/databricks_account/" target="_blank" rel="noopener noreferrer" class=""><strong><code>databricks_account</code></strong></a> or <a href="https://databricks-workspace.stackql.io/providers/databricks_workspace/" target="_blank" rel="noopener noreferrer" class=""><strong><code>databricks_workspace</code></strong></a>.</p></div></div>
<p>To get started, pull the providers from the registry as follows: &nbsp;</p>
<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#d6deeb;--prism-background-color:#011627"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#d6deeb;background-color:#011627"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#d6deeb"><span class="token plain">registry pull databricks_account;</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">registry pull databricks_workspace;</span><br></span></code></pre></div></div>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="databricks_account-provider"><code>databricks_account</code> provider<a href="https://stackql.io/blog/databricks-provider-for-stackql-available#databricks_account-provider" class="hash-link" aria-label="Direct link to databricks_account-provider" title="Direct link to databricks_account-provider" translate="no">​</a></h2>
<p>The <strong><code>databricks_account</code></strong> provider is used for account-level operations, including provisioning or managing users, groups, unity catalog metastores, workspaces, and account-level cloud resources used by workspaces (such as networking resources). &nbsp;Services include:</p>
<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#d6deeb;--prism-background-color:#011627"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#d6deeb;background-color:#011627"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#d6deeb"><span class="token plain">stackql &nbsp;&gt;&gt;show services in databricks_account;</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">|----------------------------|---------------|--------------------------------|</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">| &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; id &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; | &nbsp; &nbsp; name &nbsp; &nbsp; &nbsp;| &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; title &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;|</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">|----------------------------|---------------|--------------------------------|</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">| billing:v00.00.00000 &nbsp; &nbsp; &nbsp; | billing &nbsp; &nbsp; &nbsp; | Account Billing &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;|</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">|----------------------------|---------------|--------------------------------|</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">| iam:v00.00.00000 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; | iam &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; | Identity and Access Management |</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">|----------------------------|---------------|--------------------------------|</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">| logging:v00.00.00000 &nbsp; &nbsp; &nbsp; | logging &nbsp; &nbsp; &nbsp; | Log Delivery &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; |</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">|----------------------------|---------------|--------------------------------|</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">| oauth:v00.00.00000 &nbsp; &nbsp; &nbsp; &nbsp; | oauth &nbsp; &nbsp; &nbsp; &nbsp; | OAuth Integrations &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; |</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">|----------------------------|---------------|--------------------------------|</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">| provisioning:v00.00.00000 &nbsp;| provisioning &nbsp;| Account Provisioning &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; |</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">|----------------------------|---------------|--------------------------------|</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">| settings:v00.00.00000 &nbsp; &nbsp; &nbsp;| settings &nbsp; &nbsp; &nbsp;| Account Settings &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; |</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">|----------------------------|---------------|--------------------------------|</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">| unity_catalog:v00.00.00000 | unity_catalog | Unity Catalog &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;|</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">|----------------------------|---------------|--------------------------------|</span><br></span></code></pre></div></div>
<p>Some example databricks_account queries are shown here:</p>
<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#d6deeb;--prism-background-color:#011627"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#d6deeb;background-color:#011627"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#d6deeb"><span class="token plain">stackql &nbsp;&gt;&gt;select * &nbsp;from &nbsp;databricks_account.iam.users where account_id = 'ebfcc5a9-9d49-4c93-b651-b3ee6cf1c9ce' and active = true;</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">|--------|--------------|-------------------------------------------------------------|------------|------------------|---------------------------------------------|---------------------------------------------|------------------|</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">| active | displayName &nbsp;| &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; emails &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;| externalId | &nbsp; &nbsp; &nbsp; &nbsp;id &nbsp; &nbsp; &nbsp; &nbsp;| &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;name &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; | &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;roles &nbsp; &nbsp; &nbsp; &nbsp; </span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"> | &nbsp; &nbsp; userName &nbsp; &nbsp; |</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">|--------|--------------|-------------------------------------------------------------|------------|------------------|---------------------------------------------|---------------------------------------------|------------------|</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">| true &nbsp; | Jeffrey Aven | [{"primary":true,"type":"work","value":"javen@stackql.io"}] | null &nbsp; &nbsp; &nbsp; | 5728205706991489 | {"familyName":"Aven","givenName":"Jeffrey"} | [{"type":"direct","value":"account_admin"}] | javen@stackql.io |</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">|--------|--------------|-------------------------------------------------------------|------------|------------------|---------------------------------------------|---------------------------------------------|------------------|</span><br></span></code></pre></div></div>
<p>or..</p>
<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#d6deeb;--prism-background-color:#011627"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#d6deeb;background-color:#011627"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#d6deeb"><span class="token plain">stackql &nbsp;&gt;&gt;SELECT applicationId, &nbsp;displayName</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">stackql &nbsp;&gt;&gt;FROM databricks_account.iam.service_principals, JSON_EACH(roles)</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">stackql &nbsp;&gt;&gt;WHERE account_id = 'ebfcc5a9-9d49-4c93-b651-b3ee6cf1c9ce'</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">stackql &nbsp;&gt;&gt;AND JSON_EXTRACT(json_each.value, '$.value') = 'account_admin';</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">|--------------------------------------|-------------|</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">| &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;applicationId &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; | displayName |</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">|--------------------------------------|-------------|</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">| 0b7b23de-3e7d-4432-812c-cf517e079a22 | stackql &nbsp; &nbsp; |</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">|--------------------------------------|-------------|</span><br></span></code></pre></div></div>
<p>or..</p>
<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#d6deeb;--prism-background-color:#011627"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#d6deeb;background-color:#011627"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#d6deeb"><span class="token plain">stackql &nbsp;&gt;&gt;select</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">stackql &nbsp;&gt;&gt;workspace_id,</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">stackql &nbsp;&gt;&gt;workspace_name,</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">stackql &nbsp;&gt;&gt;deployment_name,</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">stackql &nbsp;&gt;&gt;workspace_status,</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">stackql &nbsp;&gt;&gt;pricing_tier,</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">stackql &nbsp;&gt;&gt;aws_region,</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">stackql &nbsp;&gt;&gt;credentials_id,</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">stackql &nbsp;&gt;&gt;storage_configuration_id</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">stackql &nbsp;&gt;&gt;from</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">stackql &nbsp;&gt;&gt;databricks_account.provisioning.workspaces where account_id = 'ebfcc5a9-9d49-4c93-b651-b3ee6cf1c9ce';</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">|------------------|----------------|-------------------|------------------|--------------|------------|--------------------------------------|--------------------------------------|</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">| &nbsp; workspace_id &nbsp; | workspace_name | &nbsp;deployment_name &nbsp;| workspace_status | pricing_tier | aws_region | &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;credentials_id &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;| &nbsp; &nbsp; &nbsp; storage_configuration_id &nbsp; &nbsp; &nbsp; |</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">|------------------|----------------|-------------------|------------------|--------------|------------|--------------------------------------|--------------------------------------|</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">| 1583879855205171 | stackql-test &nbsp; | dbc-ddbc0f51-c9cf | RUNNING &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;| PREMIUM &nbsp; &nbsp; &nbsp;| us-west-2 &nbsp;| dcacd875-c782-46ea-9d3e-8307975d758a | e52e029f-24bb-4a75-99c3-7796c202dd89 |</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">|------------------|----------------|-------------------|------------------|--------------|------------|--------------------------------------|--------------------------------------|</span><br></span></code></pre></div></div>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="databricks_workspace-provider"><code>databricks_workspace</code> provider<a href="https://stackql.io/blog/databricks-provider-for-stackql-available#databricks_workspace-provider" class="hash-link" aria-label="Direct link to databricks_workspace-provider" title="Direct link to databricks_workspace-provider" translate="no">​</a></h2>
<p>The <code>databricks_workspace</code> provider is used for workspace-level operations, such as provisioning and managing clusters, dashboards, and workflow jobs (including delta live table pipelines). &nbsp;Services include: &nbsp;</p>
<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#d6deeb;--prism-background-color:#011627"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#d6deeb;background-color:#011627"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#d6deeb"><span class="token plain">stackql &nbsp;&gt;&gt;show services in databricks_workspace;</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">|------------------------------|-----------------|-----------------|</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">| &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;id &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;| &nbsp; &nbsp; &nbsp;name &nbsp; &nbsp; &nbsp; | &nbsp; &nbsp; &nbsp;title &nbsp; &nbsp; &nbsp;|</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">|------------------------------|-----------------|-----------------|</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">| apps:v24.12.00279 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;| apps &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;| Apps &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;|</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">|------------------------------|-----------------|-----------------|</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">| cleanrooms:v24.12.00279 &nbsp; &nbsp; &nbsp;| cleanrooms &nbsp; &nbsp; &nbsp;| Cleanrooms &nbsp; &nbsp; &nbsp;|</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">|------------------------------|-----------------|-----------------|</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">| compute:v24.12.00279 &nbsp; &nbsp; &nbsp; &nbsp; | compute &nbsp; &nbsp; &nbsp; &nbsp; | Compute &nbsp; &nbsp; &nbsp; &nbsp; |</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">|------------------------------|-----------------|-----------------|</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">| dbsql:v24.12.00279 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; | dbsql &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; | Dbsql &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; |</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">|------------------------------|-----------------|-----------------|</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">| deltalivetables:v24.12.00279 | deltalivetables | Deltalivetables |</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">|------------------------------|-----------------|-----------------|</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">| deltasharing:v24.12.00279 &nbsp; &nbsp;| deltasharing &nbsp; &nbsp;| Deltasharing &nbsp; &nbsp;|</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">|------------------------------|-----------------|-----------------|</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">| filemanagement:v24.12.00279 &nbsp;| filemanagement &nbsp;| Filemanagement &nbsp;|</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">|------------------------------|-----------------|-----------------|</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">| iam:v24.12.00279 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; | iam &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; | Iam &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; |</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">|------------------------------|-----------------|-----------------|</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">| lakeview:v24.12.00279 &nbsp; &nbsp; &nbsp; &nbsp;| lakeview &nbsp; &nbsp; &nbsp; &nbsp;| Lakeview &nbsp; &nbsp; &nbsp; &nbsp;|</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">|------------------------------|-----------------|-----------------|</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">| machinelearning:v24.12.00279 | machinelearning | Machinelearning |</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">|------------------------------|-----------------|-----------------|</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">| marketplace:v24.12.00279 &nbsp; &nbsp; | marketplace &nbsp; &nbsp; | Marketplace &nbsp; &nbsp; |</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">|------------------------------|-----------------|-----------------|</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">| realtimeserving:v24.12.00279 | realtimeserving | Realtimeserving |</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">|------------------------------|-----------------|-----------------|</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">| repos:v24.12.00279 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; | repos &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; | Repos &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; |</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">|------------------------------|-----------------|-----------------|</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">| secrets:v24.12.00279 &nbsp; &nbsp; &nbsp; &nbsp; | secrets &nbsp; &nbsp; &nbsp; &nbsp; | Secrets &nbsp; &nbsp; &nbsp; &nbsp; |</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">|------------------------------|-----------------|-----------------|</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">| unitycatalog:v24.12.00279 &nbsp; &nbsp;| unitycatalog &nbsp; &nbsp;| Unitycatalog &nbsp; &nbsp;|</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">|------------------------------|-----------------|-----------------|</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">| vectorsearch:v24.12.00279 &nbsp; &nbsp;| vectorsearch &nbsp; &nbsp;| Vectorsearch &nbsp; &nbsp;|</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">|------------------------------|-----------------|-----------------|</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">| workflows:v24.12.00279 &nbsp; &nbsp; &nbsp; | workflows &nbsp; &nbsp; &nbsp; | Workflows &nbsp; &nbsp; &nbsp; |</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">|------------------------------|-----------------|-----------------|</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">| workspace:v24.12.00279 &nbsp; &nbsp; &nbsp; | workspace &nbsp; &nbsp; &nbsp; | Workspace &nbsp; &nbsp; &nbsp; |</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">|------------------------------|-----------------|-----------------|</span><br></span></code></pre></div></div>
<p>An example query could be:</p>
<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#d6deeb;--prism-background-color:#011627"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#d6deeb;background-color:#011627"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#d6deeb"><span class="token plain">stackql &nbsp;&gt;&gt;select</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">stackql &nbsp;&gt;&gt;cluster_id,</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">stackql &nbsp;&gt;&gt;aws_attributes,</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">stackql &nbsp;&gt;&gt;node_type_id,</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">stackql &nbsp;&gt;&gt;state</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">stackql &nbsp;&gt;&gt;from</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">stackql &nbsp;&gt;&gt;databricks_workspace.compute.clusters</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">stackql &nbsp;&gt;&gt;where deployment_name = 'dbc-ddbc0f51-c9cf';</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">|----------------------|---------------------------------------------------------------------------------------------------------|--------------|------------|</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">| &nbsp; &nbsp; &nbsp;cluster_id &nbsp; &nbsp; &nbsp;| &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; aws_attributes &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;| node_type_id | &nbsp; state &nbsp; &nbsp;|</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">|----------------------|---------------------------------------------------------------------------------------------------------|--------------|------------|</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">| 1218-233957-q9v9oi86 | {"availability":"SPOT_WITH_FALLBACK","first_on_demand":1,"spot_bid_price_percent":100,"zone_id":"auto"} | m5d.large &nbsp; &nbsp;| TERMINATED |</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">|----------------------|---------------------------------------------------------------------------------------------------------|--------------|------------|</span><br></span></code></pre></div></div>
<p>To use either provider, set the following environment variables (either locally or as secrets in your preferred CI tool):</p>
<ul>
<li class=""><code>DATABRICKS_ACCOUNT_ID</code> - a uuid representing your Databricks account id, you can get this from the Databricks UI</li>
<li class=""><code>DATABRICKS_CLIENT_ID</code> - obtained after creating a service principal through the Databricks UI</li>
<li class=""><code>DATABRICKS_CLIENT_SECRET</code> - obtained after creating a service principal secret through the Databricks UI, using the "Generate Secret" function</li>
</ul>
<p>These are the same variables that Terraform, the Databricks SDKs, and CLI use. &nbsp;</p>
<p><a href="https://stackql-deploy.io/" target="_blank" rel="noopener noreferrer" class=""><strong><code>stackql-deploy</code></strong></a> examples coming soon, stay tuned! &nbsp;</p>
<p>⭐ us on <a href="https://github.com/stackql/stackql" target="_blank" rel="noopener noreferrer" class=""><strong>GitHub</strong></a> and join our community!</p>]]></content>
        <author>
            <name>Jeffrey Aven</name>
            <uri>https://www.linkedin.com/in/jeffreyaven/</uri>
        </author>
        <category label="stackql" term="stackql"/>
        <category label="databricks" term="databricks"/>
        <category label="spark" term="spark"/>
        <category label="iac" term="iac"/>
        <category label="analytics" term="analytics"/>
    </entry>
</feed>