<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Cristian Beraha</title>
    <description>The latest articles on DEV Community by Cristian Beraha (@berahac).</description>
    <link>https://dev.to/berahac</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3964946%2F4158bf1d-5561-4e99-ac40-02100c197025.png</url>
      <title>DEV Community: Cristian Beraha</title>
      <link>https://dev.to/berahac</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/berahac"/>
    <language>en</language>
    <item>
      <title>Show HN: Terraform/OpenTofu provider to govern OpenRouter (keys, spend, guardrails) as code</title>
      <dc:creator>Cristian Beraha</dc:creator>
      <pubDate>Wed, 03 Jun 2026 10:00:00 +0000</pubDate>
      <link>https://dev.to/berahac/show-hn-terraformopentofu-provider-to-govern-openrouter-keys-spend-guardrails-as-code-1nem</link>
      <guid>https://dev.to/berahac/show-hn-terraformopentofu-provider-to-govern-openrouter-keys-spend-guardrails-as-code-1nem</guid>
      <description>&lt;p&gt;We run OpenRouter as shared infrastructure across several product teams, and managing&lt;br&gt;
it by hand in the dashboard stopped scaling — untracked keys, no spend guardrails,&lt;br&gt;
no audit trail of who can use what.&lt;/p&gt;

&lt;p&gt;So we built a Terraform/OpenTofu provider that manages the whole OpenRouter org as&lt;br&gt;
code, not just API keys: workspaces, guardrails, spend/time limits, organization&lt;br&gt;
members, plus data sources for providers and existing keys.&lt;/p&gt;

&lt;p&gt;There are a few OpenRouter Terraform providers out there, but they're mostly&lt;br&gt;
API-key CRUD. The thing we needed — and couldn't find — was governance: scope a&lt;br&gt;
workspace, attach a guardrail, issue a capped key, review it in a PR, and reproduce&lt;br&gt;
it across environments.&lt;/p&gt;

&lt;p&gt;Registry: &lt;a href="https://registry.terraform.io/providers/cloudopsworks/openrouter/latest" rel="noopener noreferrer"&gt;https://registry.terraform.io/providers/cloudopsworks/openrouter/latest&lt;/a&gt;&lt;br&gt;
Repo: &lt;a href="https://github.com/cloudopsworks/terraform-provider-openrouter" rel="noopener noreferrer"&gt;https://github.com/cloudopsworks/terraform-provider-openrouter&lt;/a&gt;&lt;br&gt;
Write-up: &lt;a href="https://cloudopsworks.co/resources/governing-openrouter-at-scale-with-terraform/" rel="noopener noreferrer"&gt;https://cloudopsworks.co/resources/governing-openrouter-at-scale-with-terraform/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It's early (v0.1) and open source. Honest feedback on the resource model and the&lt;br&gt;
guardrails API coverage especially welcome — what would you need before putting&lt;br&gt;
this in production?&lt;/p&gt;

</description>
      <category>ai</category>
      <category>infrastructure</category>
      <category>showdev</category>
      <category>terraform</category>
    </item>
  </channel>
</rss>
