<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:googleplay="http://www.google.com/schemas/play-podcasts/1.0"><channel><title><![CDATA[DevOps Bulletin]]></title><description><![CDATA[Weekly newsletter with the latest tutorials, stories, podcasts, and devtools in the DevOps, FinOps, and Security space!]]></description><link>https://www.devopsbulletin.com</link><image><url>https://substackcdn.com/image/fetch/$s_!WEyW!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6c73a12d-9a65-4693-aa0a-3c71b07211fd_1024x1024.png</url><title>DevOps Bulletin</title><link>https://www.devopsbulletin.com</link></image><generator>Substack</generator><lastBuildDate>Thu, 18 Jun 2026 18:01:56 GMT</lastBuildDate><atom:link href="https://www.devopsbulletin.com/feed" rel="self" type="application/rss+xml"/><copyright><![CDATA[Mohamed Labouardy]]></copyright><language><![CDATA[en]]></language><webMaster><![CDATA[devopsbulletin@substack.com]]></webMaster><itunes:owner><itunes:email><![CDATA[devopsbulletin@substack.com]]></itunes:email><itunes:name><![CDATA[Mohamed Labouardy]]></itunes:name></itunes:owner><itunes:author><![CDATA[Mohamed Labouardy]]></itunes:author><googleplay:owner><![CDATA[devopsbulletin@substack.com]]></googleplay:owner><googleplay:email><![CDATA[devopsbulletin@substack.com]]></googleplay:email><googleplay:author><![CDATA[Mohamed Labouardy]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[Digest #218: a $500K Google AI hack, Meta AI handing over Instagram accounts, AWS's new FinOps Agent and CockroachDB's vector indexing]]></title><description><![CDATA[Researcher pointed Claude at 3,600 leaked Google API keys and walked away with $500,000 in bounties this week, while attackers got into high-profile Instagram accounts by simply asking Meta AI for it]]></description><link>https://www.devopsbulletin.com/p/digest-218-a-500k-google-ai-hack</link><guid isPermaLink="false">https://www.devopsbulletin.com/p/digest-218-a-500k-google-ai-hack</guid><dc:creator><![CDATA[Mohamed Labouardy]]></dc:creator><pubDate>Fri, 12 Jun 2026 15:43:49 GMT</pubDate><enclosure url="https://substackcdn.com/image/youtube/w_728,c_limit/1PBRhm5ZnjU" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://zuplo.link/hfrwpKk" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!h8QX!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7acff688-0b86-4eab-a452-f04f581b49f1_1228x390.png 424w, https://substackcdn.com/image/fetch/$s_!h8QX!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7acff688-0b86-4eab-a452-f04f581b49f1_1228x390.png 848w, https://substackcdn.com/image/fetch/$s_!h8QX!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7acff688-0b86-4eab-a452-f04f581b49f1_1228x390.png 1272w, https://substackcdn.com/image/fetch/$s_!h8QX!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7acff688-0b86-4eab-a452-f04f581b49f1_1228x390.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!h8QX!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7acff688-0b86-4eab-a452-f04f581b49f1_1228x390.png" width="200" height="63.51791530944625" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7acff688-0b86-4eab-a452-f04f581b49f1_1228x390.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:390,&quot;width&quot;:1228,&quot;resizeWidth&quot;:200,&quot;bytes&quot;:17431,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://zuplo.link/hfrwpKk&quot;,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://www.devopsbulletin.com/i/201751002?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7acff688-0b86-4eab-a452-f04f581b49f1_1228x390.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!h8QX!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7acff688-0b86-4eab-a452-f04f581b49f1_1228x390.png 424w, https://substackcdn.com/image/fetch/$s_!h8QX!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7acff688-0b86-4eab-a452-f04f581b49f1_1228x390.png 848w, https://substackcdn.com/image/fetch/$s_!h8QX!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7acff688-0b86-4eab-a452-f04f581b49f1_1228x390.png 1272w, https://substackcdn.com/image/fetch/$s_!h8QX!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7acff688-0b86-4eab-a452-f04f581b49f1_1228x390.png 1456w" sizes="100vw" fetchpriority="high"></picture><div></div></div></a></figure></div><p>Someone collected 3,600 Google API keys, pointed an AI at them, and Google paid out $500,000. The payout isn&#8217;t the interesting part. It&#8217;s how many of those keys should never have worked at all.</p><p>A separate group gained access to high-profile Instagram accounts this week without writing a single exploit. They just asked Meta AI for access. It said yes.</p><p>And while two companies were learning what their AI would hand to a stranger, AWS shipped one agent that reads your bill and another that diagnoses your EKS nodes before you&#8217;ve finished reading the alert.</p><p>Notice the pattern. The more we wire agents into internal tools, the more of them reach for things nobody actually gave them permission to touch, and most of those connections have no auth and no record of who asked. That&#8217;s the gap <a href="https://zuplo.link/hfrwpKk">Zuplo&#8217;s MCP Gateway</a> closes.</p><p>In the tutorials: why a plain web page can turn ChatGPT&#8217;s own output into a phishing link, how to let Terraform auto-apply without losing sleep, and the reason your Claude Code security review keeps missing the bug in the same session you wrote it.</p><p>On video: Anthropic spent a year warning everyone about AI, then shipped Fable 5. Plus real lessons from engineering teams shipping on Claude.</p><p>Then seven devtools worth a look, including a server monitor, a self-hosted Postgres with instant branching, and an AI agent that runs entirely off a USB stick.</p><h4>Your MCP servers have no security. Fix that</h4><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://zuplo.link/hfrwpKk" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!pHR0!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7c408965-32dc-4642-9ca3-b6e2708b2018_691x306.png 424w, https://substackcdn.com/image/fetch/$s_!pHR0!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7c408965-32dc-4642-9ca3-b6e2708b2018_691x306.png 848w, https://substackcdn.com/image/fetch/$s_!pHR0!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7c408965-32dc-4642-9ca3-b6e2708b2018_691x306.png 1272w, https://substackcdn.com/image/fetch/$s_!pHR0!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7c408965-32dc-4642-9ca3-b6e2708b2018_691x306.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!pHR0!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7c408965-32dc-4642-9ca3-b6e2708b2018_691x306.png" width="691" height="306" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7c408965-32dc-4642-9ca3-b6e2708b2018_691x306.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:306,&quot;width&quot;:691,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:41236,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://zuplo.link/hfrwpKk&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.devopsbulletin.com/i/201751002?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7c408965-32dc-4642-9ca3-b6e2708b2018_691x306.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!pHR0!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7c408965-32dc-4642-9ca3-b6e2708b2018_691x306.png 424w, https://substackcdn.com/image/fetch/$s_!pHR0!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7c408965-32dc-4642-9ca3-b6e2708b2018_691x306.png 848w, https://substackcdn.com/image/fetch/$s_!pHR0!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7c408965-32dc-4642-9ca3-b6e2708b2018_691x306.png 1272w, https://substackcdn.com/image/fetch/$s_!pHR0!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7c408965-32dc-4642-9ca3-b6e2708b2018_691x306.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>AI agents are connecting to your internal tools, and most MCP servers ship with no auth and no audit trail. Zuplo's MCP Gateway puts OAuth, structured audit logs, and centralized access control in front of them - <a href="https://zuplo.link/hfrwpKk">Lock it down</a>.</p><h4>Newsworthy stories</h4><ul><li><p><strong><a href="https://brutecat.com/articles/hacking-google-with-ai/?utm_source=devopsbulletin">Hacking Google with AI for $500,000</a></strong></p></li><li><p><strong><a href="https://www.seuros.com/blog/aws-fired-the-human-who-made-the-difference?utm_source=devopsbulletin">AWS fired the one employee who gave a damn</a></strong></p></li><li><p><strong><a href="https://aws.amazon.com/blogs/aws-cloud-financial-management/aws-finops-agent-is-now-public-preview/">Announcing the public preview of AWS FinOps Agent</a></strong></p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://aws.amazon.com/blogs/aws-cloud-financial-management/aws-finops-agent-is-now-public-preview/" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!0j0N!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0f2f6163-c54a-4a20-8e07-b258b1dcaec4_1024x700.png 424w, https://substackcdn.com/image/fetch/$s_!0j0N!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0f2f6163-c54a-4a20-8e07-b258b1dcaec4_1024x700.png 848w, https://substackcdn.com/image/fetch/$s_!0j0N!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0f2f6163-c54a-4a20-8e07-b258b1dcaec4_1024x700.png 1272w, https://substackcdn.com/image/fetch/$s_!0j0N!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0f2f6163-c54a-4a20-8e07-b258b1dcaec4_1024x700.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!0j0N!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0f2f6163-c54a-4a20-8e07-b258b1dcaec4_1024x700.png" width="1024" height="700" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/0f2f6163-c54a-4a20-8e07-b258b1dcaec4_1024x700.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:700,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Figure 2 - FinOps Agent Slack Channel Message&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:&quot;https://aws.amazon.com/blogs/aws-cloud-financial-management/aws-finops-agent-is-now-public-preview/&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Figure 2 - FinOps Agent Slack Channel Message" title="Figure 2 - FinOps Agent Slack Channel Message" srcset="https://substackcdn.com/image/fetch/$s_!0j0N!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0f2f6163-c54a-4a20-8e07-b258b1dcaec4_1024x700.png 424w, https://substackcdn.com/image/fetch/$s_!0j0N!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0f2f6163-c54a-4a20-8e07-b258b1dcaec4_1024x700.png 848w, https://substackcdn.com/image/fetch/$s_!0j0N!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0f2f6163-c54a-4a20-8e07-b258b1dcaec4_1024x700.png 1272w, https://substackcdn.com/image/fetch/$s_!0j0N!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0f2f6163-c54a-4a20-8e07-b258b1dcaec4_1024x700.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><ul><li><p><strong><a href="https://www.404media.co/hackers-simply-asked-meta-ai-to-give-them-access-to-high-profile-instagram-accounts-it-worked?utm_source=devopsbulletin">Hackers simply asked Meta AI for access to high-profile Instagram accounts</a></strong></p></li><li><p><strong><a href="https://engineering.salesforce.com/scaling-zero-copy-from-1-trillion-to-120-trillion-rows-with-file-federation?utm_source=devopsbulletin">Scaling Zero Copy from 1 trillion to 120 trillion rows with file federation</a></strong></p></li><li><p><strong><a href="https://blog.bytebytego.com/p/how-cockroachdb-built-vector-indexing?utm_source=devopsbulletin">How CockroachDB built vector indexing at scale</a></strong></p></li></ul><h4>Tutorials of the week</h4><ul><li><p><strong><a href="https://code.geohack.top/post/the-architecture-of-a-file-tree-that-never-freezes?utm_source=devopsbulletin">The architecture of a file tree that never freezes</a></strong></p></li><li><p><strong><a href="https://www.bejarano.io/terraform-autoapply?utm_source=devopsbulletin">Safe Terraform auto-apply with conftest</a></strong></p></li><li><p><strong><a href="https://www.gruntwork.io/blog/gruntwork-guides-your-infrastructure-repo-is-a-mess-heres-how-to-fix-it?utm_source=devopsbulletin">Your infrastructure repo is a mess (here&#8217;s how to fix it)</a></strong></p></li><li><p><strong><a href="https://aws.amazon.com/blogs/devops/diagnose-eks-node-issues-faster-with-aws-devops-agent-and-custom-mcp/">Diagnose EKS Node issues faster with AWS DevOps Agent</a></strong></p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://aws.amazon.com/blogs/devops/diagnose-eks-node-issues-faster-with-aws-devops-agent-and-custom-mcp/" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ujWQ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F04f5dbd4-7bb5-4009-9824-7cf9223c99b0_1115x598.png 424w, https://substackcdn.com/image/fetch/$s_!ujWQ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F04f5dbd4-7bb5-4009-9824-7cf9223c99b0_1115x598.png 848w, https://substackcdn.com/image/fetch/$s_!ujWQ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F04f5dbd4-7bb5-4009-9824-7cf9223c99b0_1115x598.png 1272w, https://substackcdn.com/image/fetch/$s_!ujWQ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F04f5dbd4-7bb5-4009-9824-7cf9223c99b0_1115x598.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ujWQ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F04f5dbd4-7bb5-4009-9824-7cf9223c99b0_1115x598.png" width="1115" height="598" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/04f5dbd4-7bb5-4009-9824-7cf9223c99b0_1115x598.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:598,&quot;width&quot;:1115,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;AWS DevOps Agent connects over MCP/HTTPS to AgentCore Gateway, which authenticates via Amazon Cognito OAuth 2.0 and routes tool calls through a Lambda-based Tool Router to SSM Automation. SSM Automation dispatches runbooks to EKS worker nodes running SSM Agent, which upload collected log archives to a KMS-encrypted S3 bucket. An S3 event triggers a Lambda function that extracts and indexes findings for the agent to query.&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:&quot;https://aws.amazon.com/blogs/devops/diagnose-eks-node-issues-faster-with-aws-devops-agent-and-custom-mcp/&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="AWS DevOps Agent connects over MCP/HTTPS to AgentCore Gateway, which authenticates via Amazon Cognito OAuth 2.0 and routes tool calls through a Lambda-based Tool Router to SSM Automation. SSM Automation dispatches runbooks to EKS worker nodes running SSM Agent, which upload collected log archives to a KMS-encrypted S3 bucket. An S3 event triggers a Lambda function that extracts and indexes findings for the agent to query." title="AWS DevOps Agent connects over MCP/HTTPS to AgentCore Gateway, which authenticates via Amazon Cognito OAuth 2.0 and routes tool calls through a Lambda-based Tool Router to SSM Automation. SSM Automation dispatches runbooks to EKS worker nodes running SSM Agent, which upload collected log archives to a KMS-encrypted S3 bucket. An S3 event triggers a Lambda function that extracts and indexes findings for the agent to query." srcset="https://substackcdn.com/image/fetch/$s_!ujWQ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F04f5dbd4-7bb5-4009-9824-7cf9223c99b0_1115x598.png 424w, https://substackcdn.com/image/fetch/$s_!ujWQ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F04f5dbd4-7bb5-4009-9824-7cf9223c99b0_1115x598.png 848w, https://substackcdn.com/image/fetch/$s_!ujWQ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F04f5dbd4-7bb5-4009-9824-7cf9223c99b0_1115x598.png 1272w, https://substackcdn.com/image/fetch/$s_!ujWQ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F04f5dbd4-7bb5-4009-9824-7cf9223c99b0_1115x598.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><ul><li><p><strong><a href="https://claude.com/blog/lessons-from-building-claude-code-how-we-use-skills?utm_source=devopsbulletin">Lessons from building Claude Code: how we use skills</a></strong></p></li><li><p><strong><a href="https://permiso.io/blog/chatgpt-markdown-rendering-vulnerability?utm_source=devopsbulletin">ChatGPT markdown rendering vulnerability</a></strong></p></li><li><p><strong><a href="https://aws.amazon.com/blogs/machine-learning/its-safe-to-close-your-laptop-now-hosting-coding-agents-on-amazon-bedrock-agentcore?utm_source=devopsbulletin">Hosting coding agents on Amazon Bedrock AgentCore</a></strong></p></li><li><p><strong><a href="https://www.pgedge.com/blog/explain-prettier-or-post-processing-query-plans-in-postgres?utm_source=devopsbulletin">EXPLAIN prettier, or post-processing query plans in Postgres</a></strong></p></li><li><p><strong><a href="https://brainoverflow.blog/posts/claude-code-security-review-bias?utm_source=devopsbulletin">Hidden gaps in Claude Code security reviews</a></strong></p></li><li><p><strong><a href="https://www.freecodecamp.org/news/how-to-avoid-rebuilding-infrastructure-for-every-new-project?utm_source=devopsbulletin">How to avoid rebuilding infrastructure for every new project</a></strong></p></li></ul><h4>Videos of the week</h4><div id="youtube2-RzwYFL6wIOU" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;RzwYFL6wIOU&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/RzwYFL6wIOU?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><div id="youtube2-1PBRhm5ZnjU" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;1PBRhm5ZnjU&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/1PBRhm5ZnjU?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><h4>Projects of the week</h4><ul><li><p><strong><a href="https://github.com/TabularisDB/tabularis?utm_source=devopsbulletin">Tabularis</a></strong> runs SQL notebooks, visual EXPLAIN plans, and an MCP server against Postgres, MySQL, and SQLite. </p></li><li><p><strong><a href="https://github.com/henrygd/beszel?utm_source=devopsbulletin">Beszel</a></strong> monitors CPU, memory, disk, network, GPU, and Docker stats with alerts and history. </p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://github.com/henrygd/beszel?utm_source=devopsbulletin" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!LVmv!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07eabae9-c308-4a62-bd7d-c62379185ad6_1630x556.png 424w, https://substackcdn.com/image/fetch/$s_!LVmv!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07eabae9-c308-4a62-bd7d-c62379185ad6_1630x556.png 848w, https://substackcdn.com/image/fetch/$s_!LVmv!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07eabae9-c308-4a62-bd7d-c62379185ad6_1630x556.png 1272w, https://substackcdn.com/image/fetch/$s_!LVmv!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07eabae9-c308-4a62-bd7d-c62379185ad6_1630x556.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!LVmv!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07eabae9-c308-4a62-bd7d-c62379185ad6_1630x556.png" width="1456" height="497" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/07eabae9-c308-4a62-bd7d-c62379185ad6_1630x556.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:497,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:270992,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://github.com/henrygd/beszel?utm_source=devopsbulletin&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.devopsbulletin.com/i/201751002?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07eabae9-c308-4a62-bd7d-c62379185ad6_1630x556.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!LVmv!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07eabae9-c308-4a62-bd7d-c62379185ad6_1630x556.png 424w, https://substackcdn.com/image/fetch/$s_!LVmv!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07eabae9-c308-4a62-bd7d-c62379185ad6_1630x556.png 848w, https://substackcdn.com/image/fetch/$s_!LVmv!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07eabae9-c308-4a62-bd7d-c62379185ad6_1630x556.png 1272w, https://substackcdn.com/image/fetch/$s_!LVmv!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07eabae9-c308-4a62-bd7d-c62379185ad6_1630x556.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><ul><li><p><strong><a href="https://github.com/kimdre/doco-cd?utm_source=devopsbulletin">doco-cd</a></strong> auto-deploys your Docker Compose projects and Swarm stacks straight from Git via webhooks. </p></li><li><p><strong><a href="https://github.com/matisiekpl/neond?utm_source=devopsbulletin">NeonD</a></strong> gives self-hosted Postgres instant branching, S3 durability, and point-in-time recovery.</p></li><li><p><strong><a href="https://github.com/HelixDB/helix-db?utm_source=devopsbulletin">HelixDB</a></strong> stores both graph and vector data in a single OLTP engine for AI apps.</p></li><li><p><strong><a href="https://github.com/techjarves/hermes-usb-portable?utm_source=devopsbulletin">Hermes-USB-Portable</a></strong> runs a self-contained AI agent off a USB drive with zero host dependencies. </p></li></ul><h4>Meme of the week</h4><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!B8sm!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc1cf9664-46c6-452a-9af1-eb51f7a48d75_4320x1348.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!B8sm!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc1cf9664-46c6-452a-9af1-eb51f7a48d75_4320x1348.jpeg 424w, https://substackcdn.com/image/fetch/$s_!B8sm!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc1cf9664-46c6-452a-9af1-eb51f7a48d75_4320x1348.jpeg 848w, https://substackcdn.com/image/fetch/$s_!B8sm!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc1cf9664-46c6-452a-9af1-eb51f7a48d75_4320x1348.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!B8sm!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc1cf9664-46c6-452a-9af1-eb51f7a48d75_4320x1348.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!B8sm!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc1cf9664-46c6-452a-9af1-eb51f7a48d75_4320x1348.jpeg" width="490" height="152.78846153846155" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c1cf9664-46c6-452a-9af1-eb51f7a48d75_4320x1348.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:454,&quot;width&quot;:1456,&quot;resizeWidth&quot;:490,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Thanks Amazon&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Thanks Amazon" title="Thanks Amazon" srcset="https://substackcdn.com/image/fetch/$s_!B8sm!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc1cf9664-46c6-452a-9af1-eb51f7a48d75_4320x1348.jpeg 424w, https://substackcdn.com/image/fetch/$s_!B8sm!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc1cf9664-46c6-452a-9af1-eb51f7a48d75_4320x1348.jpeg 848w, https://substackcdn.com/image/fetch/$s_!B8sm!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc1cf9664-46c6-452a-9af1-eb51f7a48d75_4320x1348.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!B8sm!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc1cf9664-46c6-452a-9af1-eb51f7a48d75_4320x1348.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><div class="pullquote"><p> If you have feedback to share or are interested in <a href="https://www.devopsbulletin.com/p/sponsorships">sponsoring</a> this newsletter, feel free to reach out via <em><a href="https://www.linkedin.com/in/mlabouardy/">LinkedIn</a></em> or simply reply to this email. </p></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.devopsbulletin.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading DevOps Bulletin! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[Digest #217: Kubernetes ditches Dashboard for Headlamp, Google API keys that won't die, 1-click GitHub token theft and the "Leaving AWS" skill issue]]></title><description><![CDATA[Kubernetes Dashboard to Headlamp migration, Google Cloud API key security, GitHub token theft via VSCode, AWS cost optimization, Pulumi EKS, Rust, and Postgres SQL/PGQ.]]></description><link>https://www.devopsbulletin.com/p/digest-217-kubernetes-ditches-dashboard</link><guid isPermaLink="false">https://www.devopsbulletin.com/p/digest-217-kubernetes-ditches-dashboard</guid><dc:creator><![CDATA[Mohamed Labouardy]]></dc:creator><pubDate>Fri, 05 Jun 2026 17:37:55 GMT</pubDate><enclosure url="https://substackcdn.com/image/youtube/w_728,c_limit/PFD8FXxbM0U" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://www.mendral.com/?utm_source=devopsbulletin" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!JTHa!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73ff9826-c449-474f-a82b-26f222f70146_268x75.png 424w, https://substackcdn.com/image/fetch/$s_!JTHa!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73ff9826-c449-474f-a82b-26f222f70146_268x75.png 848w, https://substackcdn.com/image/fetch/$s_!JTHa!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73ff9826-c449-474f-a82b-26f222f70146_268x75.png 1272w, https://substackcdn.com/image/fetch/$s_!JTHa!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73ff9826-c449-474f-a82b-26f222f70146_268x75.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!JTHa!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73ff9826-c449-474f-a82b-26f222f70146_268x75.png" width="212" height="59.32835820895522" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/73ff9826-c449-474f-a82b-26f222f70146_268x75.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:75,&quot;width&quot;:268,&quot;resizeWidth&quot;:212,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:&quot;https://www.mendral.com/?utm_source=devopsbulletin&quot;,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!JTHa!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73ff9826-c449-474f-a82b-26f222f70146_268x75.png 424w, https://substackcdn.com/image/fetch/$s_!JTHa!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73ff9826-c449-474f-a82b-26f222f70146_268x75.png 848w, https://substackcdn.com/image/fetch/$s_!JTHa!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73ff9826-c449-474f-a82b-26f222f70146_268x75.png 1272w, https://substackcdn.com/image/fetch/$s_!JTHa!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73ff9826-c449-474f-a82b-26f222f70146_268x75.png 1456w" sizes="100vw" fetchpriority="high"></picture><div></div></div></a></figure></div><p>Three things happened this week that should bother you more than they probably do.</p><p>You can delete a Google API key and it keeps authenticating. You can have your GitHub token stolen in a single click without installing anything shady. And the Kubernetes Dashboard you&#8217;ve leaned on for years is being shown the door, with a replacement most people haven&#8217;t tried yet.</p><p>None of these are edge cases. They&#8217;re the kind of quiet shifts that don&#8217;t make the front page until they&#8217;ve already cost someone a weekend. Below: what&#8217;s actually going on with each, the supply chain secrets sitting on your dev laptop right now, why your AI-written incident reviews keep getting the root cause wrong, and 8 tools worth a look before Friday.</p><p>Speaking of catching things early: this week&#8217;s sponsor,&nbsp;<strong><a href="https://www.mendral.com/?utm_source=devopsbulletin">Mendral,</a></strong>&nbsp;flagged a supply chain attack two weeks before it went public. It&#8217;s built by Docker and Dagger veterans and already chews through 1.18B log lines a week at PostHog. </p><h4><strong>Platform engineering on autopilot</strong></h4><p><a href="https://www.mendral.com/?utm_source=devopsbulletin">Mendral</a> is an autonomous AI DevOps engineer that handles the work your engineers shouldn&#8217;t be doing manually anymore: supply chain security, flaky CI, slow builds, and anything else specific to your stack - <a href="https://www.mendral.com/?utm_source=devopsbulletin">Try it out!</a></p><h4>Newsworthy stories</h4><ul><li><p><strong><a href="https://kubernetes.io/blog/2026/06/01/dashboard-to-headlamp">From Kubernetes Dashboard to Headlamp</a></strong></p></li><li><p><strong><a href="https://www.aikido.dev/blog/google-api-keys-deletion">Google API keys keep working after you delete them</a></strong></p></li><li><p><strong><a href="https://awsfundamentals.com/blog/leaving-aws-hackernews">I read the viral &#8220;Leaving AWS&#8221; post twice. Most of it is a skill issue</a></strong></p></li><li><p><strong><a href="https://greatcircle.com/blog/2026/05/05/problem-with-ai-generated-post-incident-reviews/">The problem with AI-generated post-incident reviews</a></strong></p></li><li><p><strong><a href="https://stackoverflow.blog/2026/05/12/you-shipped-it-fast-but-did-you-ship-it-right/">You shipped it fast. But did you ship it right?</a></strong></p></li><li><p><strong><a href="https://wcollins.io/posts/2026/ai-through-iac-not-instead-of-it/">AI through IaC, not instead of it</a></strong></p></li></ul><h4>Tutorials of the week</h4><ul><li><p><strong><a href="https://blog.ammaraskar.com/github-token-stealing/">1-click GitHub token stealing via a VSCode bug</a></strong></p></li><li><p><strong><a href="https://1password.com/blog/agent-driven-design-system">From Jira to PR: how we built agent-driven pipelines for design system changes</a></strong></p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!pNGR!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8a591fed-678e-42fa-b5b8-c43591fa3628_1920x1014.webp" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!pNGR!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8a591fed-678e-42fa-b5b8-c43591fa3628_1920x1014.webp 424w, https://substackcdn.com/image/fetch/$s_!pNGR!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8a591fed-678e-42fa-b5b8-c43591fa3628_1920x1014.webp 848w, https://substackcdn.com/image/fetch/$s_!pNGR!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8a591fed-678e-42fa-b5b8-c43591fa3628_1920x1014.webp 1272w, https://substackcdn.com/image/fetch/$s_!pNGR!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8a591fed-678e-42fa-b5b8-c43591fa3628_1920x1014.webp 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!pNGR!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8a591fed-678e-42fa-b5b8-c43591fa3628_1920x1014.webp" width="1920" height="1014" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8a591fed-678e-42fa-b5b8-c43591fa3628_1920x1014.webp&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1014,&quot;width&quot;:1920,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:44156,&quot;alt&quot;:&quot;Match the context layer to the workflow&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/webp&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Match the context layer to the workflow" title="Match the context layer to the workflow" srcset="https://substackcdn.com/image/fetch/$s_!pNGR!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8a591fed-678e-42fa-b5b8-c43591fa3628_1920x1014.webp 424w, https://substackcdn.com/image/fetch/$s_!pNGR!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8a591fed-678e-42fa-b5b8-c43591fa3628_1920x1014.webp 848w, https://substackcdn.com/image/fetch/$s_!pNGR!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8a591fed-678e-42fa-b5b8-c43591fa3628_1920x1014.webp 1272w, https://substackcdn.com/image/fetch/$s_!pNGR!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8a591fed-678e-42fa-b5b8-c43591fa3628_1920x1014.webp 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><ul><li><p><strong><a href="https://www.pulumi.com/blog/eks-vcluster-ephemeral-environments-with-pulumi">Build an EKS environment factory with Pulumi and vCluster</a></strong></p></li><li><p><strong><a href="https://aws.amazon.com/blogs/security/well-architected-best-practices-for-software-supply-chain-security">Well-architected best practices for software supply chain security</a></strong></p></li><li><p><strong><a href="https://corrode.dev/learn/migration-guides/go-to-rust/">Migrating from Go to Rust</a></strong></p></li><li><p><strong><a href="https://recyclebin.zip/posts/2026-05-25-secret-scanning-fleet-bagel">Detecting and removing dangerous secrets on dev workstations before Shai-Hulud does</a></strong></p></li><li><p><strong><a href="https://cloud.google.com/blog/topics/developers-practitioners/api-keys-are-open-secrets">Securing your Gemini and Google API keys</a></strong></p></li><li><p><strong><a href="https://www.cybertec-postgresql.com/en/handling-graphs-with-sql-pgq-in-postgresql/">Handling graphs with SQL/PGQ in PostgreSQL</a></strong></p></li></ul><h4>Videos of the week</h4><div id="youtube2-PFD8FXxbM0U" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;PFD8FXxbM0U&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/PFD8FXxbM0U?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><div id="youtube2-DJ4UBSOod1k" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;DJ4UBSOod1k&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/DJ4UBSOod1k?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><div id="youtube2-O7xspYLKh7U" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;O7xspYLKh7U&quot;,&quot;startTime&quot;:&quot;160s&quot;,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/O7xspYLKh7U?start=160s&amp;rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><h4>Projects of the week</h4><ul><li><p><strong><a href="https://devops-daily.com/games/git-concepts-simulator">Git Concepts Simulator</a></strong> is a browser game that teaches Git by letting you run commands and watch files move between the working directory, staging area, and remotes.</p></li><li><p><strong><a href="https://github.com/perplexityai/bumblebee">Bumblebee</a></strong> is a Go read-only scanner from Perplexity that inventories packages and extensions across 9+ ecosystems to flag known-compromised software.</p></li><li><p><strong><a href="https://github.com/pol-rivero/github-desktop-plus">GitHub Desktop Plus</a></strong> is a community fork of GitHub Desktop, adding multi-account support, Git worktrees, and commit search.</p></li><li><p><strong><a href="https://github.com/tastyeffectco/sandboxes">Sandboxes</a></strong> is a Go engine for self-hosted cloud dev environments with built-in AI agents and live preview URLs, running on Docker with no Kubernetes.</p></li><li><p><strong><a href="https://github.com/utibeabasi6/mercek">Mercek</a></strong> is a local-first desktop IDE for Amazon ECS with multi-account discovery, ECS Exec shell access, and Fargate right-sizing, read-only by default.</p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://github.com/utibeabasi6/mercek" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!icIS!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F89b54eff-cd8f-4f85-a529-97e25a1a4dac_828x472.png 424w, https://substackcdn.com/image/fetch/$s_!icIS!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F89b54eff-cd8f-4f85-a529-97e25a1a4dac_828x472.png 848w, https://substackcdn.com/image/fetch/$s_!icIS!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F89b54eff-cd8f-4f85-a529-97e25a1a4dac_828x472.png 1272w, https://substackcdn.com/image/fetch/$s_!icIS!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F89b54eff-cd8f-4f85-a529-97e25a1a4dac_828x472.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!icIS!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F89b54eff-cd8f-4f85-a529-97e25a1a4dac_828x472.png" width="828" height="472" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/89b54eff-cd8f-4f85-a529-97e25a1a4dac_828x472.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:472,&quot;width&quot;:828,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:62797,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://github.com/utibeabasi6/mercek&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.devopsbulletin.com/i/200742096?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F89b54eff-cd8f-4f85-a529-97e25a1a4dac_828x472.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!icIS!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F89b54eff-cd8f-4f85-a529-97e25a1a4dac_828x472.png 424w, https://substackcdn.com/image/fetch/$s_!icIS!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F89b54eff-cd8f-4f85-a529-97e25a1a4dac_828x472.png 848w, https://substackcdn.com/image/fetch/$s_!icIS!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F89b54eff-cd8f-4f85-a529-97e25a1a4dac_828x472.png 1272w, https://substackcdn.com/image/fetch/$s_!icIS!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F89b54eff-cd8f-4f85-a529-97e25a1a4dac_828x472.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><ul><li><p><strong><a href="https://github.com/getpaseo/paseo">Paseo</a></strong> is a control plane for running multiple AI coding agents (Claude Code, Codex, Copilot) in parallel across mobile, desktop, and CLI, fully self-hosted.</p></li></ul><h4>Meme of the week</h4><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!-gOy!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F742fc843-8a13-4909-adbb-25d6e77a2792_649x486.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!-gOy!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F742fc843-8a13-4909-adbb-25d6e77a2792_649x486.png 424w, https://substackcdn.com/image/fetch/$s_!-gOy!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F742fc843-8a13-4909-adbb-25d6e77a2792_649x486.png 848w, https://substackcdn.com/image/fetch/$s_!-gOy!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F742fc843-8a13-4909-adbb-25d6e77a2792_649x486.png 1272w, https://substackcdn.com/image/fetch/$s_!-gOy!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F742fc843-8a13-4909-adbb-25d6e77a2792_649x486.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!-gOy!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F742fc843-8a13-4909-adbb-25d6e77a2792_649x486.png" width="553" height="414.11093990755006" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/742fc843-8a13-4909-adbb-25d6e77a2792_649x486.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:486,&quot;width&quot;:649,&quot;resizeWidth&quot;:553,&quot;bytes&quot;:411468,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.devopsbulletin.com/i/200742096?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F742fc843-8a13-4909-adbb-25d6e77a2792_649x486.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!-gOy!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F742fc843-8a13-4909-adbb-25d6e77a2792_649x486.png 424w, https://substackcdn.com/image/fetch/$s_!-gOy!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F742fc843-8a13-4909-adbb-25d6e77a2792_649x486.png 848w, https://substackcdn.com/image/fetch/$s_!-gOy!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F742fc843-8a13-4909-adbb-25d6e77a2792_649x486.png 1272w, https://substackcdn.com/image/fetch/$s_!-gOy!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F742fc843-8a13-4909-adbb-25d6e77a2792_649x486.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div class="pullquote"><p> If you have feedback to share or are interested in <a href="https://www.devopsbulletin.com/p/sponsorships">sponsoring</a> this newsletter, feel free to reach out via <em><a href="https://www.linkedin.com/in/mlabouardy/">LinkedIn</a></em> or simply reply to this email. </p></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.devopsbulletin.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading DevOps Bulletin! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[Digest #216: GitHub Actions false suspensions, AI agent chains CVE to internal DB in 4 pivots, Gemini 3.5 deletes 28K lines and Postgres for durable workflows]]></title><description><![CDATA[LLM agent chains CVE to internal DB in 4 pivots, Gemini deletes 28K prod lines, plus Terraform, Snowflake cost cuts, and K8s scheduling.]]></description><link>https://www.devopsbulletin.com/p/digest-216-github-actions-false-suspensions</link><guid isPermaLink="false">https://www.devopsbulletin.com/p/digest-216-github-actions-false-suspensions</guid><dc:creator><![CDATA[Mohamed Labouardy]]></dc:creator><pubDate>Fri, 29 May 2026 16:18:10 GMT</pubDate><enclosure url="https://substackcdn.com/image/youtube/w_728,c_limit/xdMtc8jm88Q" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>A GitHub Actions outage briefly flagged developer accounts as suspended across the platform, while Sysdig published the first documented LLM-driven attack chain: a marimo notebook CVE exploited across 4 pivots to reach an internal database, all in under an hour. Meanwhile, a solo developer shared how Gemini 3.5 deleted 28,745 lines of their production Next.js app, caused a 33-minute outage, and then fabricated three consultation logs and a post-mortem to cover it up.</p><p>On the tutorial side, a practical guide walks through Terraform state isolation using workspaces versus file layouts with S3 backends, and a case study on cutting a $140K Snowflake bill to $38K in three months using auto-suspend tuning, clustering keys, and query profile analysis. For system design, a deep dive into building S3-style object storage covers metadata/data separation, erasure coding, multipart uploads, and compaction. Plus a full K8s scheduling breakdown that traces the filter/score/bind loop with debugging playbooks for when your pod goes Pending.</p><p>For videos this week: a personal take on how AI has reshaped the day-to-day coding workflow, and a practical walkthrough of running LLMs on Kubernetes with LLMKube.</p><p>This week&#8217;s open source picks include Pullfrog, a TypeScript GitHub bot that triggers AI coding agents inside GitHub Actions via PR comment mentions; pgGraph, a Rust PostgreSQL extension that adds graph traversal to relational tables without a separate graph database; and Pathfinding Cloud Labs, a catalog of 100+ hands-on AWS IAM privilege escalation scenarios with a plabs CLI. Also worth checking: KeyLedger for unified AI API key management with health scoring, Murr for zero-copy ML inference caching on RocksDB, and ktx, a TypeScript/Python MCP context layer that helps AI agents query Snowflake and BigQuery accurately.</p><h4>Newsworthy stories</h4><ul><li><p><strong><a href="https://www.seuros.com/blog/aws-restored-account-plot-twist">AWS restored my account: the human who made the difference</a></strong></p></li><li><p><strong><a href="https://www.devclass.com/development/2026/05/28/github-actions-outage-told-devs-your-account-is-suspended/5247065">GitHub Actions outage told devs &#8220;your account is suspended&#8221;</a></strong></p></li><li><p><strong><a href="https://webflow.sysdig.com/blog/ai-agent-at-the-wheel-how-an-attacker-used-llms-to-move-from-a-cve-to-an-internal-database-in-4-pivots">How an attacker used LLMs to move from a CVE to an internal database in 4 pivots</a></strong></p></li><li><p><strong><a href="https://siliconangle.com/2026/05/28/finops-ai-spending-boardroom-strategy-finopsx">Rising AI spend turns FinOps into a boardroom strategist</a></strong></p></li><li><p><strong><a href="https://www.reddit.com/r/Bard/comments/1tisrg1/gemini_35_deleted_28745_lines_broke_production/">Gemini 3.5 deleted 28,745 lines, broke production, then fabricated the post-mortem</a></strong></p></li><li><p><strong><a href="https://www.dbos.dev/blog/postgres-is-all-you-need-for-durable-execution">Postgres is all you need for durable workflows</a></strong></p></li><li><p><strong><a href="https://aws.amazon.com/blogs/devops/how-aws-devops-agent-uses-multi-agent-reasoning-to-find-root-causes/">How AWS DevOps agent uses multi-agent reasoning to find root causes</a></strong></p></li></ul><h4>Tutorials of the week</h4><ul><li><p><strong><a href="https://blog.devops.dev/terraform-state-isolation-how-i-kept-dev-staging-and-production-from-destroying-each-other-2be1aa9dbadc">Terraform state isolation: how I kept dev, staging, and production from destroying each other</a></strong></p></li><li><p><strong><a href="https://infrahouse.com/blog/2026-03-28-iso-27001-on-aws">ISO 27001 on AWS: building compliance into the architecture</a></strong></p></li><li><p><strong><a href="https://levelup.gitconnected.com/i-inherited-a-140k-snowflake-bill-three-months-later-it-was-38k-heres-everything-i-learned-70acc2806e41">I inherited a $140K Snowflake bill. 3 months later, it was $38K. Here&#8217;s everything I learned</a></strong></p></li><li><p><strong><a href="https://levelup.gitconnected.com/design-s3-object-storage-like-a-senior-engineer-f3b938ab700d">Design S3 object storage like a senior engineer</a></strong></p></li><li><p><strong><a href="https://aws.amazon.com/blogs/containers/ai-powered-event-driven-amazon-eks-ami-updates-with-gitops/">AI-powered event-driven Amazon EKS AMI updates with GitOps</a></strong></p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://aws.amazon.com/blogs/containers/ai-powered-event-driven-amazon-eks-ami-updates-with-gitops/" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!FpuQ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdc46261a-a109-4f64-b56c-cd01258cf6c8_1858x1690.png 424w, https://substackcdn.com/image/fetch/$s_!FpuQ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdc46261a-a109-4f64-b56c-cd01258cf6c8_1858x1690.png 848w, https://substackcdn.com/image/fetch/$s_!FpuQ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdc46261a-a109-4f64-b56c-cd01258cf6c8_1858x1690.png 1272w, https://substackcdn.com/image/fetch/$s_!FpuQ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdc46261a-a109-4f64-b56c-cd01258cf6c8_1858x1690.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!FpuQ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdc46261a-a109-4f64-b56c-cd01258cf6c8_1858x1690.png" width="622" height="565.6098901098901" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/dc46261a-a109-4f64-b56c-cd01258cf6c8_1858x1690.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1324,&quot;width&quot;:1456,&quot;resizeWidth&quot;:622,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Automated AWS EKS AMI detection, analysis, and deployment workflow diagram showing three phases: scheduled detection via EventBridge and Lambda, AI-powered risk analysis with Amazon Bedrock and GitHub PR creation via Step Functions, and automatic Kubernetes node rollout using Argo CD and Karpenter.&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:&quot;https://aws.amazon.com/blogs/containers/ai-powered-event-driven-amazon-eks-ami-updates-with-gitops/&quot;,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Automated AWS EKS AMI detection, analysis, and deployment workflow diagram showing three phases: scheduled detection via EventBridge and Lambda, AI-powered risk analysis with Amazon Bedrock and GitHub PR creation via Step Functions, and automatic Kubernetes node rollout using Argo CD and Karpenter." title="Automated AWS EKS AMI detection, analysis, and deployment workflow diagram showing three phases: scheduled detection via EventBridge and Lambda, AI-powered risk analysis with Amazon Bedrock and GitHub PR creation via Step Functions, and automatic Kubernetes node rollout using Argo CD and Karpenter." srcset="https://substackcdn.com/image/fetch/$s_!FpuQ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdc46261a-a109-4f64-b56c-cd01258cf6c8_1858x1690.png 424w, https://substackcdn.com/image/fetch/$s_!FpuQ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdc46261a-a109-4f64-b56c-cd01258cf6c8_1858x1690.png 848w, https://substackcdn.com/image/fetch/$s_!FpuQ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdc46261a-a109-4f64-b56c-cd01258cf6c8_1858x1690.png 1272w, https://substackcdn.com/image/fetch/$s_!FpuQ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdc46261a-a109-4f64-b56c-cd01258cf6c8_1858x1690.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><ul><li><p><strong><a href="https://blog.marcolancini.it/2026/blog-automating-security-operations-with-ai-triage-renovate/">Automating security operations with AI: triaging Renovate PRs</a></strong></p></li><li><p><strong><a href="https://blog.devops.dev/where-did-my-pod-go-a-deep-dive-into-k8s-scheduling-d1d50c23e549">Where did my pod go? A deep dive into K8s scheduling</a></strong></p></li><li><p><strong><a href="https://aws.amazon.com/blogs/security/governing-infrastructure-as-code-using-pattern-based-policy-as-code/">Governing infrastructure as code using pattern-based policy as code</a></strong></p></li></ul><h4>Videos of the week</h4><div id="youtube2-xJaMTo2YgO8" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;xJaMTo2YgO8&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/xJaMTo2YgO8?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><div id="youtube2-xdMtc8jm88Q" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;xdMtc8jm88Q&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/xdMtc8jm88Q?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><h4>Projects of the week</h4><ul><li><p><strong><a href="https://github.com/pullfrog/pullfrog">Pullfrog</a></strong> is a model-agnostic GitHub bot that triggers AI coding agents inside GitHub Actions via PR/issue comment mentions, no separate infrastructure needed.</p></li><li><p><strong><a href="https://github.com/riptideslabs/keyledger">KeyLedger</a></strong> is a TUI dashboard for managing AI provider API keys across OpenAI, Anthropic, AWS IAM, Google Cloud, and Mistral.</p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://github.com/riptideslabs/keyledger" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!c9i2!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F42db79e9-9e39-4184-953f-0653c6c82e5f_821x409.png 424w, https://substackcdn.com/image/fetch/$s_!c9i2!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F42db79e9-9e39-4184-953f-0653c6c82e5f_821x409.png 848w, https://substackcdn.com/image/fetch/$s_!c9i2!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F42db79e9-9e39-4184-953f-0653c6c82e5f_821x409.png 1272w, https://substackcdn.com/image/fetch/$s_!c9i2!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F42db79e9-9e39-4184-953f-0653c6c82e5f_821x409.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!c9i2!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F42db79e9-9e39-4184-953f-0653c6c82e5f_821x409.png" width="821" height="409" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/42db79e9-9e39-4184-953f-0653c6c82e5f_821x409.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:409,&quot;width&quot;:821,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:309513,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://github.com/riptideslabs/keyledger&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.devopsbulletin.com/i/199732269?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F42db79e9-9e39-4184-953f-0653c6c82e5f_821x409.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!c9i2!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F42db79e9-9e39-4184-953f-0653c6c82e5f_821x409.png 424w, https://substackcdn.com/image/fetch/$s_!c9i2!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F42db79e9-9e39-4184-953f-0653c6c82e5f_821x409.png 848w, https://substackcdn.com/image/fetch/$s_!c9i2!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F42db79e9-9e39-4184-953f-0653c6c82e5f_821x409.png 1272w, https://substackcdn.com/image/fetch/$s_!c9i2!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F42db79e9-9e39-4184-953f-0653c6c82e5f_821x409.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><ul><li><p><strong><a href="https://github.com/Evokoa/pggraph">pgGraph</a></strong> is a Rust PostgreSQL extension that adds graph traversal and shortest-path queries directly to relational tables via SQL.</p></li><li><p><strong><a href="https://pathfinding.cloud/labs">Pathfinding Cloud Labs</a></strong> is a catalog of 100+ hands-on AWS IAM privilege escalation labs across EC2, Lambda, ECS, SageMaker, and cross-account scenarios.</p></li><li><p><strong><a href="https://github.com/murrdb/murr">Murr</a></strong> is a Rust RocksDB-backed caching layer for ML inference that manages tiered storage across RAM, NVMe, and S3 with zero-copy conversion.</p></li><li><p><strong><a href="https://github.com/HeidiSQL/HeidiSQL">HeidiSQL</a></strong> is a GUI database client that supports MariaDB, MySQL, PostgreSQL, SQL Server, SQLite, Interbase, and Firebird.</p></li><li><p><strong><a href="https://github.com/Kaelio/ktx-ai-data-agents-mcp-context-skills">ktx</a></strong> is an MCP context layer that helps AI agents query data warehouses accurately by ingesting metric definitions and schema metadata from dbt, LookML, Looker, Metabase, and Notion.</p></li></ul><h4>Meme of the week</h4><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!BN7l!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff9e06ea9-e84c-478d-aa49-85e157538e10_1176x974.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!BN7l!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff9e06ea9-e84c-478d-aa49-85e157538e10_1176x974.png 424w, https://substackcdn.com/image/fetch/$s_!BN7l!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff9e06ea9-e84c-478d-aa49-85e157538e10_1176x974.png 848w, https://substackcdn.com/image/fetch/$s_!BN7l!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff9e06ea9-e84c-478d-aa49-85e157538e10_1176x974.png 1272w, https://substackcdn.com/image/fetch/$s_!BN7l!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff9e06ea9-e84c-478d-aa49-85e157538e10_1176x974.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!BN7l!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff9e06ea9-e84c-478d-aa49-85e157538e10_1176x974.png" width="449" height="371.8758503401361" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f9e06ea9-e84c-478d-aa49-85e157538e10_1176x974.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:974,&quot;width&quot;:1176,&quot;resizeWidth&quot;:449,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;How Senior Must Be Treated&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="How Senior Must Be Treated" title="How Senior Must Be Treated" srcset="https://substackcdn.com/image/fetch/$s_!BN7l!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff9e06ea9-e84c-478d-aa49-85e157538e10_1176x974.png 424w, https://substackcdn.com/image/fetch/$s_!BN7l!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff9e06ea9-e84c-478d-aa49-85e157538e10_1176x974.png 848w, https://substackcdn.com/image/fetch/$s_!BN7l!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff9e06ea9-e84c-478d-aa49-85e157538e10_1176x974.png 1272w, https://substackcdn.com/image/fetch/$s_!BN7l!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff9e06ea9-e84c-478d-aa49-85e157538e10_1176x974.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div class="pullquote"><p> If you have feedback to share or are interested in <a href="https://www.devopsbulletin.com/p/sponsorships">sponsoring</a> this newsletter, feel free to reach out via <em><a href="https://www.linkedin.com/in/mlabouardy/">LinkedIn</a></em> or simply reply to this email. </p></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.devopsbulletin.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading DevOps Bulletin! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[Digest #215: AI DevOps Engineer, GitHub's 3,800-Repo Breach, Docker's Hidden microVM API, Terraform 1.15 and compromising Claude Code]]></title><description><![CDATA[A malicious VSCode extension compromised 3,800 GitHub repositories, Rivet's team reverse-engineered Docker Sandbox's undocumented microVM API, Terraform 1.15 landed with dynamic sources and variable.]]></description><link>https://www.devopsbulletin.com/p/digest-215-ai-devops-engineer-githubs</link><guid isPermaLink="false">https://www.devopsbulletin.com/p/digest-215-ai-devops-engineer-githubs</guid><dc:creator><![CDATA[Mohamed Labouardy]]></dc:creator><pubDate>Fri, 22 May 2026 15:43:54 GMT</pubDate><enclosure url="https://substackcdn.com/image/youtube/w_728,c_limit/gwTQLZSIlsU" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://www.mendral.com/?utm_source=devopsbulletin" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!JTHa!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73ff9826-c449-474f-a82b-26f222f70146_268x75.png 424w, https://substackcdn.com/image/fetch/$s_!JTHa!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73ff9826-c449-474f-a82b-26f222f70146_268x75.png 848w, https://substackcdn.com/image/fetch/$s_!JTHa!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73ff9826-c449-474f-a82b-26f222f70146_268x75.png 1272w, https://substackcdn.com/image/fetch/$s_!JTHa!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73ff9826-c449-474f-a82b-26f222f70146_268x75.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!JTHa!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73ff9826-c449-474f-a82b-26f222f70146_268x75.png" width="232" height="64.92537313432835" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/73ff9826-c449-474f-a82b-26f222f70146_268x75.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:75,&quot;width&quot;:268,&quot;resizeWidth&quot;:232,&quot;bytes&quot;:7238,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://www.mendral.com/?utm_source=devopsbulletin&quot;,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://www.devopsbulletin.com/i/198730899?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73ff9826-c449-474f-a82b-26f222f70146_268x75.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!JTHa!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73ff9826-c449-474f-a82b-26f222f70146_268x75.png 424w, https://substackcdn.com/image/fetch/$s_!JTHa!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73ff9826-c449-474f-a82b-26f222f70146_268x75.png 848w, https://substackcdn.com/image/fetch/$s_!JTHa!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73ff9826-c449-474f-a82b-26f222f70146_268x75.png 1272w, https://substackcdn.com/image/fetch/$s_!JTHa!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73ff9826-c449-474f-a82b-26f222f70146_268x75.png 1456w" sizes="100vw" fetchpriority="high"></picture><div></div></div></a></figure></div><p>The team behind Docker and Dagger built <a href="https://www.mendral.com/?utm_source=devopsbulletin">Mendral</a>, an autonomous AI DevOps engineer that investigates root causes across your repos, CI logs, Dockerfiles, and IaC, then ships fixes as reviewable PRs. Worth a look if supply chain security or slow CI is eating your engineers&#8217; time.</p><p>A malicious VS Code extension granted attackers access to 3,800 GitHub repositories this week, raising fresh questions about extension trust in developer toolchains. Docker Sandbox&#8217;s undocumented microVM API was fully reverse-engineered and documented by the Rivet team; Terraform 1.15 landed with dynamic source references and variable deprecation; and Anthropic engineers are dropping Markdown in favor of raw HTML when building with Claude Code.</p><p>On the tutorial side: security researchers show exactly how malicious skills and agents can compromise Claude Code, Teads walks through cutting BigQuery slot usage by 90% after a production outage, there&#8217;s a deep-dive into building a distributed search engine in pure Go, and a postmortem on how unused Postgres indexes silently ate 41GB. Plus canary deployments with AWS SAM, root cause analysis with the AWS DevOps Agent, and Bedrock API key security.</p><p>For videos this week: how a single PR nearly hijacked the NPM registry, and a candid take on what moving too fast in software actually costs you.</p><p>This week&#8217;s projects include SCAM, a 1Password benchmark that tests AI agents&#8217; security awareness in real-world workplace scenarios; pgsqlite, a Postgres wire protocol adapter for SQLite; swamp, a CLI for building reviewable AI agent workflows stored in Git; and capsule, a multi-tenancy framework for Kubernetes.</p><h4>The team behind Docker and Dagger built an AI DevOps engineer</h4><p><a href="https://www.mendral.com/?utm_source=devopsbulletin">Mendral</a> is an autonomous AI DevOps engineer that handles the work your engineers shouldn't be doing manually anymore: supply chain security, flaky CI, slow builds, and anything else specific to your stack. </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://www.mendral.com/?utm_source=devopsbulletin" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!HkKI!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fce2ddea8-5e88-4618-9634-bf2bdbc6f367_1122x713.png 424w, https://substackcdn.com/image/fetch/$s_!HkKI!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fce2ddea8-5e88-4618-9634-bf2bdbc6f367_1122x713.png 848w, https://substackcdn.com/image/fetch/$s_!HkKI!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fce2ddea8-5e88-4618-9634-bf2bdbc6f367_1122x713.png 1272w, https://substackcdn.com/image/fetch/$s_!HkKI!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fce2ddea8-5e88-4618-9634-bf2bdbc6f367_1122x713.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!HkKI!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fce2ddea8-5e88-4618-9634-bf2bdbc6f367_1122x713.png" width="1122" height="713" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ce2ddea8-5e88-4618-9634-bf2bdbc6f367_1122x713.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:713,&quot;width&quot;:1122,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:214808,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://www.mendral.com/?utm_source=devopsbulletin&quot;,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.devopsbulletin.com/i/198730899?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fce2ddea8-5e88-4618-9634-bf2bdbc6f367_1122x713.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!HkKI!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fce2ddea8-5e88-4618-9634-bf2bdbc6f367_1122x713.png 424w, https://substackcdn.com/image/fetch/$s_!HkKI!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fce2ddea8-5e88-4618-9634-bf2bdbc6f367_1122x713.png 848w, https://substackcdn.com/image/fetch/$s_!HkKI!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fce2ddea8-5e88-4618-9634-bf2bdbc6f367_1122x713.png 1272w, https://substackcdn.com/image/fetch/$s_!HkKI!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fce2ddea8-5e88-4618-9634-bf2bdbc6f367_1122x713.png 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>It investigates root causes across your repos, CI logs, Dockerfiles, lockfiles, and IaC, then ships the fix as a reviewable PR - pinning CVEs, killing flakes, tuning cache layers, and upgrading dependencies without taking your engineers off product work - <a href="https://www.mendral.com/?utm_source=devopsbulletin">Try it out!</a></p><h4>Newsworthy stories</h4><ul><li><p><strong><a href="https://www.mendral.com/blog/llms-are-good-at-sql">LLMs are good at SQL. We gave our terabytes of CI logs</a></strong></p></li><li><p><strong><a href="https://www.dheeth.blog/real-unit-of-llm-infrastructure-is-the-token/">The request is the wrong unit of scale for LLMs on Kubernetes</a></strong></p></li><li><p><strong><a href="https://rivet.dev/blog/2026-02-04-we-reverse-engineered-docker-sandbox-undocumented-microvm-api/">We reverse-engineered Docker Sandbox&#8217;s undocumented microVM API</a></strong></p></li><li><p><strong><a href="https://www.bleepingcomputer.com/news/security/github-confirms-breach-of-3-800-repos-via-malicious-vscode-extension/">GitHub confirms breach of 3,800 repos via malicious VSCode extension</a></strong></p></li><li><p><strong><a href="https://techcommunity.microsoft.com/blog/azuretoolsblog/from-prompt-to-production-open-in-vs-code-for-terraform-in-azure-copilot/4494931">Open in VSCode for Terraform in Azure Copilot</a></strong></p></li><li><p><strong><a href="https://www.hashicorp.com/en/blog/new-in-terraform-115-dynamic-sources-variable-deprecation-and-more">How Anthropic engineers are building with Claude</a></strong></p></li></ul><h4>Tutorials of the week</h4><ul><li><p><strong><a href="https://aws.amazon.com/blogs/aws-cloud-financial-management/identifying-security-risks-using-aws-cost-and-usage-report-data/">Identifying security risks using AWS Cost and Usage Report data</a></strong></p></li><li><p><strong><a href="https://medium.com/@RDarrylR/live-canary-deployments-with-aws-sam-the-new-websocket-api-resource-and-lambda-durable-functions-4b029533b34f">Live canary deployments with AWS SAM</a></strong></p></li><li><p><strong><a href="https://jvns.ca/blog/2023/12/04/mounting-git-commits-as-folders-with-nfs/">Mounting Git commits as folders with NFS</a></strong></p></li><li><p><strong><a href="https://aws.amazon.com/blogs/devops/automate-root-cause-analysis-across-datadog-and-elasticsearch-with-aws-devops-agent/">Automate root cause analysis across Datadog and Elasticsearch with AWS DevOps Agent</a></strong></p></li><li><p><strong><a href="https://labs.reversec.com/posts/2026/05/skill-issues-compromising-claude-code-with-malicious-skills-agents-part-1">Compromising Claude Code with malicious skills and agents</a></strong></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://labs.reversec.com/posts/2026/05/skill-issues-compromising-claude-code-with-malicious-skills-agents-part-1" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!3R3O!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2bd79dd5-f200-4263-8edc-0fbdece361a8_3317x1794.webp 424w, https://substackcdn.com/image/fetch/$s_!3R3O!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2bd79dd5-f200-4263-8edc-0fbdece361a8_3317x1794.webp 848w, https://substackcdn.com/image/fetch/$s_!3R3O!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2bd79dd5-f200-4263-8edc-0fbdece361a8_3317x1794.webp 1272w, https://substackcdn.com/image/fetch/$s_!3R3O!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2bd79dd5-f200-4263-8edc-0fbdece361a8_3317x1794.webp 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!3R3O!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2bd79dd5-f200-4263-8edc-0fbdece361a8_3317x1794.webp" width="1456" height="787" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2bd79dd5-f200-4263-8edc-0fbdece361a8_3317x1794.webp&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:787,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Attack Scenario&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:&quot;https://labs.reversec.com/posts/2026/05/skill-issues-compromising-claude-code-with-malicious-skills-agents-part-1&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Attack Scenario" title="Attack Scenario" srcset="https://substackcdn.com/image/fetch/$s_!3R3O!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2bd79dd5-f200-4263-8edc-0fbdece361a8_3317x1794.webp 424w, https://substackcdn.com/image/fetch/$s_!3R3O!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2bd79dd5-f200-4263-8edc-0fbdece361a8_3317x1794.webp 848w, https://substackcdn.com/image/fetch/$s_!3R3O!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2bd79dd5-f200-4263-8edc-0fbdece361a8_3317x1794.webp 1272w, https://substackcdn.com/image/fetch/$s_!3R3O!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2bd79dd5-f200-4263-8edc-0fbdece361a8_3317x1794.webp 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div></li><li><p><strong><a href="https://antfly.io/blog/distributed-search-engine-go">Building a distributed search engine in pure Go</a></strong></p></li><li><p><strong><a href="https://medium.com/teads-engineering/how-we-cut-bigquery-slot-usage-by-90-on-one-of-our-most-resource-hungry-service-after-an-outage-c491af09e77e">How we cut BigQuery slot usage by 90% </a></strong></p></li><li><p><strong><a href="https://www.beyondtrust.com/blog/entry/aws-bedrock-security-guide-api-keys-detection-response">AWS Bedrock security guide: API keys, detection, and response</a></strong></p></li><li><p><strong><a href="https://peerlist.io/raviojhax/articles/how-unused-indexes-ate-41gb-postgres">How unused indexes ate 41GB of Postgres storage</a></strong></p></li><li><p><strong><a href="https://claude.com/blog/best-practices-for-computer-and-browser-use-with-claude">Best practices for computer and browser use with Claude</a></strong></p></li></ul><h4>Videos of the week</h4><div id="youtube2-gwTQLZSIlsU" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;gwTQLZSIlsU&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/gwTQLZSIlsU?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><div id="youtube2-46PcZ47StDA" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;46PcZ47StDA&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/46PcZ47StDA?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><h4>Projects of the week</h4><ul><li><p><strong><a href="https://github.com/erans/pgsqlite">pgsqlite</a></strong> is a PostgreSQL protocol adapter for SQLite, allowing any PostgreSQL client to connect to and query SQLite databases over the standard wire protocol.</p></li><li><p><strong><a href="https://github.com/1Password/SCAM">SCAM</a></strong> is a benchmark from 1Password that tests AI agents&#8217; security awareness through realistic, multi-turn workplace scenarios.</p></li><li><p><strong><a href="https://github.com/grokability/snipe-it">snipe-it</a></strong> is an IT asset and license management system.</p></li><li><p><strong><a href="https://github.com/dgtlmoon/changedetection.io">changedetection.io</a></strong> is a website change-detection tool that alerts you when content, prices, or stock levels change.</p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://github.com/dgtlmoon/changedetection.io" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Hezm!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7cf780d3-ac1a-4426-8bfc-e014244dda9f_1148x571.png 424w, https://substackcdn.com/image/fetch/$s_!Hezm!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7cf780d3-ac1a-4426-8bfc-e014244dda9f_1148x571.png 848w, https://substackcdn.com/image/fetch/$s_!Hezm!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7cf780d3-ac1a-4426-8bfc-e014244dda9f_1148x571.png 1272w, https://substackcdn.com/image/fetch/$s_!Hezm!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7cf780d3-ac1a-4426-8bfc-e014244dda9f_1148x571.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Hezm!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7cf780d3-ac1a-4426-8bfc-e014244dda9f_1148x571.png" width="1148" height="571" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7cf780d3-ac1a-4426-8bfc-e014244dda9f_1148x571.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:571,&quot;width&quot;:1148,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:204461,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://github.com/dgtlmoon/changedetection.io&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.devopsbulletin.com/i/198730899?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7cf780d3-ac1a-4426-8bfc-e014244dda9f_1148x571.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Hezm!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7cf780d3-ac1a-4426-8bfc-e014244dda9f_1148x571.png 424w, https://substackcdn.com/image/fetch/$s_!Hezm!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7cf780d3-ac1a-4426-8bfc-e014244dda9f_1148x571.png 848w, https://substackcdn.com/image/fetch/$s_!Hezm!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7cf780d3-ac1a-4426-8bfc-e014244dda9f_1148x571.png 1272w, https://substackcdn.com/image/fetch/$s_!Hezm!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7cf780d3-ac1a-4426-8bfc-e014244dda9f_1148x571.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><ul><li><p><strong><a href="https://github.com/systeminit/swamp">swamp</a></strong> is a CLI that supercharges AI agents to build reviewable, shareable operational workflows, stored as versioned YAML in a Git directory.</p></li><li><p><strong><a href="https://github.com/projectcapsule/capsule">capsule</a></strong> is a multi-tenancy and policy framework for Kubernetes that enforces namespace isolation and resource policies across tenant clusters.</p></li><li><p><strong><a href="https://github.com/Avijit07x/git-switch">git-switch</a></strong> is a native Git client that runs dev servers directly from the UI.</p></li></ul><h4>Meme of the week</h4><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!HRgx!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8f170553-959e-4606-8339-4c7bfa9ecd51_1200x1200.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!HRgx!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8f170553-959e-4606-8339-4c7bfa9ecd51_1200x1200.jpeg 424w, https://substackcdn.com/image/fetch/$s_!HRgx!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8f170553-959e-4606-8339-4c7bfa9ecd51_1200x1200.jpeg 848w, https://substackcdn.com/image/fetch/$s_!HRgx!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8f170553-959e-4606-8339-4c7bfa9ecd51_1200x1200.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!HRgx!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8f170553-959e-4606-8339-4c7bfa9ecd51_1200x1200.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!HRgx!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8f170553-959e-4606-8339-4c7bfa9ecd51_1200x1200.jpeg" width="464" height="464" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8f170553-959e-4606-8339-4c7bfa9ecd51_1200x1200.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1200,&quot;width&quot;:1200,&quot;resizeWidth&quot;:464,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Did You Ask Claude&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Did You Ask Claude" title="Did You Ask Claude" srcset="https://substackcdn.com/image/fetch/$s_!HRgx!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8f170553-959e-4606-8339-4c7bfa9ecd51_1200x1200.jpeg 424w, https://substackcdn.com/image/fetch/$s_!HRgx!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8f170553-959e-4606-8339-4c7bfa9ecd51_1200x1200.jpeg 848w, https://substackcdn.com/image/fetch/$s_!HRgx!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8f170553-959e-4606-8339-4c7bfa9ecd51_1200x1200.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!HRgx!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8f170553-959e-4606-8339-4c7bfa9ecd51_1200x1200.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div class="pullquote"><p> If you have feedback to share or are interested in <a href="https://www.devopsbulletin.com/p/sponsorships">sponsoring</a> this newsletter, feel free to reach out via <em><a href="https://www.linkedin.com/in/mlabouardy/">LinkedIn</a></em> or simply reply to this email. </p></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.devopsbulletin.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading DevOps Bulletin! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[Digest #214: GitHub Under AI Load, microVMs Aren't Optional Anymore, AI Assistants Leak Your Chats and StackOverflow Drops Ingress-NGINX]]></title><description><![CDATA[GitHub buckles under AI-generated code volume, pushing users toward Forgejo. Plus: microVM isolation goes mandatory, trackers leak Claude and ChatGPT conversations, and Stack Overflow swaps Ingress-NG]]></description><link>https://www.devopsbulletin.com/p/digest-214-github-under-ai-load-microvms</link><guid isPermaLink="false">https://www.devopsbulletin.com/p/digest-214-github-under-ai-load-microvms</guid><dc:creator><![CDATA[Mohamed Labouardy]]></dc:creator><pubDate>Fri, 15 May 2026 15:29:41 GMT</pubDate><enclosure url="https://substackcdn.com/image/youtube/w_728,c_limit/LBn9JCChrYw" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>On the news side, a detailed case that your container was never a security boundary, and why microVM isolation is now mandatory for running untrusted agent code. GitHub is having its worst stretch in years: the Pragmatic Engineer explains why AI-generated code volume breaks GitHub and not its competitors, LeadDev documents the reliability crisis and user exodus, and one engineer walks through his move to self-hosted Forgejo. LeakyLM researchers caught trackers inside Claude, ChatGPT, Grok, and Perplexity leaking conversations to Meta, Google, and TikTok ad networks, while Wiz published part two of its teardown of prompt injection and secret exfiltration in AI-powered GitHub Actions. Plus: how Stack Overflow replaced Ingress-NGINX with Istio, the 15 CI/CD metrics worth tracking, and how malicious identity providers can inject ghost identities into multi-SSO AWS Cognito user pools.</p><p>On the tutorial side: zero-downtime blue-green frontend deploys on a single EC2 instance with Docker and Nginx, a ten-control GitHub Actions security checklist for surviving supply chain attacks, a breakdown of how Docker&#8217;s ONBUILD directive becomes a hidden attack vector in base images, Anthropic&#8217;s own guide to running Claude Code in large codebases, a walkthrough of automating dev workflows with MCP, schema validation for Terraform input configs using CUE, and querying Redis with plain SQL.</p><p>For videos this week: an argument for why Jenkins is now effectively dead, and a look at the single hottest programming skill to have in 2026.</p><p>This week's open source picks include deepsec, a Vercel Labs scanner that runs coding agents across microVMs to find vulnerabilities in large repos; coroot, an eBPF observability platform with zero-instrumentation telemetry and AI root cause analysis; dockhand, a Docker management UI on a hardened Wolfi OS layer; re_gent, version control for AI coding agents that records which prompt wrote each line; petri, a drop-in PostgreSQL replacement that hands every test its own isolated database; tfrev, a Claude-powered reviewer that flags dangerous Terraform plan mismatches; and workshop, a local debugger for coding agents that streams traces and self-heals failing code.</p><h4>Newsworthy stories</h4><ul><li><p><strong><a href="https://emirb.github.io/blog/microvm-2026">Your container is not a sandbox</a></strong></p></li><li><p><strong><a href="https://blog.pragmaticengineer.com/the-pulse-ai-load-breaks-github">AI load breaks GitHub, why not other vendors?</a></strong></p></li><li><p><strong><a href="https://leaddev.com/software-quality/whats-gone-wrong-at-github">What&#8217;s gone wrong at GitHub?</a></strong></p></li><li><p><strong><a href="https://jorijn.com/en/blog/leaving-github-for-forgejo/">Why I&#8217;m leaving GitHub for Forgejo</a></strong></p></li><li><p><strong><a href="https://leakylm.github.io/">AI assistants are leaking your conversations</a></strong></p></li><li><p><strong><a href="https://www.wiz.io/blog/github-actions-security-ai-powered-actions-vulnerabilities">The (in)security landscape of AI-powered GitHub Actions</a></strong></p></li><li><p><strong><a href="https://www.dheeth.blog/llm-serving-is-not-normal-web-serving">Everything you know about scaling web apps breaks when you serve an LLM</a></strong></p></li><li><p><strong><a href="https://stackoverflow.blog/2026/05/06/how-we-replaced-nginx-ingress-at-stack-overflow">How we replaced Ingress-NGINX at Stack Overflow</a></strong></p></li><li><p><strong><a href="https://spacelift.io/blog/ci-cd-metrics">Top 15 CI/CD metrics</a></strong></p></li><li><p><strong><a href="https://blog.doyensec.com/2026/05/05/cloudsectidbits-masso-cognito-sso.html">The danger of multi-SSO AWS Cognito user pools</a></strong></p></li></ul><h4>Tutorials of the week</h4><ul><li><p><strong><a href="https://corgea.com/learn/github-actions-security-checklist">GitHub Actions security checklist for supply chain attacks</a></strong></p></li><li><p><strong><a href="https://brendanthompson.com/schema-validation-for-terraform-input-configuration">Schema validation for Terraform input configuration</a></strong></p></li><li><p><strong><a href="https://redis.io/blog/use-redis-with-sql">Use Redis with SQL</a></strong></p></li><li><p><strong><a href="https://saadh393.github.io/projects/blue-green-deployment-zero-downtime">Zero downtime frontend deploys with blue-green on a single EC2</a></strong></p></li><li><p><strong><a href="https://www.o3c.no/knowledge/unmasking-the-docker-onbuild-supply-chain-attack-vector">Unmasking the Docker ONBUILD supply chain attack vector</a></strong></p></li><li><p><strong><a href="https://claude.com/blog/how-claude-code-works-in-large-codebases-best-practices-and-where-to-start">How Claude Code works in large codebases</a></strong></p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://claude.com/blog/how-claude-code-works-in-large-codebases-best-practices-and-where-to-start" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ZjEr!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F83e96b10-b593-4181-ac0c-e57e75a7c8ee_2880x1976.png 424w, https://substackcdn.com/image/fetch/$s_!ZjEr!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F83e96b10-b593-4181-ac0c-e57e75a7c8ee_2880x1976.png 848w, https://substackcdn.com/image/fetch/$s_!ZjEr!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F83e96b10-b593-4181-ac0c-e57e75a7c8ee_2880x1976.png 1272w, https://substackcdn.com/image/fetch/$s_!ZjEr!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F83e96b10-b593-4181-ac0c-e57e75a7c8ee_2880x1976.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ZjEr!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F83e96b10-b593-4181-ac0c-e57e75a7c8ee_2880x1976.png" width="516" height="354.0412087912088" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/83e96b10-b593-4181-ac0c-e57e75a7c8ee_2880x1976.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:999,&quot;width&quot;:1456,&quot;resizeWidth&quot;:516,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:&quot;https://claude.com/blog/how-claude-code-works-in-large-codebases-best-practices-and-where-to-start&quot;,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!ZjEr!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F83e96b10-b593-4181-ac0c-e57e75a7c8ee_2880x1976.png 424w, https://substackcdn.com/image/fetch/$s_!ZjEr!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F83e96b10-b593-4181-ac0c-e57e75a7c8ee_2880x1976.png 848w, https://substackcdn.com/image/fetch/$s_!ZjEr!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F83e96b10-b593-4181-ac0c-e57e75a7c8ee_2880x1976.png 1272w, https://substackcdn.com/image/fetch/$s_!ZjEr!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F83e96b10-b593-4181-ac0c-e57e75a7c8ee_2880x1976.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><ul><li><p><strong><a href="https://www.youtube.com/watch?v=6VBhFq5SJ0s">Automate your dev workflows with MCP</a></strong></p></li><li><p><strong><a href="https://theburningmonk.com/2026/05/inbox-outbox-patterns-for-reliable-event-processing">Inbox and outbox patterns for reliable event processing</a></strong></p></li><li><p><strong><a href="https://medium.com/@antooo5113/my-favorite-go-back-end-architecture-pattern-122a5affd370">My favorite Go backend architecture pattern</a></strong></p></li></ul><h4>Videos of the week</h4><div id="youtube2-LBn9JCChrYw" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;LBn9JCChrYw&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/LBn9JCChrYw?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><div id="youtube2-keOpLOs_vhA" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;keOpLOs_vhA&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/keOpLOs_vhA?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><h4>Projects of the week</h4><ul><li><p><strong><a href="https://github.com/vercel-labs/deepsec">deepsec</a></strong> runs coding agents across microVMs to scan large repos for vulnerabilities, resuming where it left off after interruptions.</p></li><li><p><strong><a href="https://github.com/coroot/coroot">coroot</a></strong> is an eBPF-based observability platform with zero-instrumentation metrics, logs, traces, and AI-powered root cause analysis.</p></li><li><p><strong><a href="https://github.com/Finsys/dockhand">dockhand</a></strong> is a Docker management UI for container orchestration, Compose stacks, and Git-based deployments.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://github.com/Finsys/dockhand/tree/main" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!YbOs!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F647a2e6f-5e94-4866-a3d4-c1ddc57e09c1_3680x2276.webp 424w, https://substackcdn.com/image/fetch/$s_!YbOs!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F647a2e6f-5e94-4866-a3d4-c1ddc57e09c1_3680x2276.webp 848w, https://substackcdn.com/image/fetch/$s_!YbOs!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F647a2e6f-5e94-4866-a3d4-c1ddc57e09c1_3680x2276.webp 1272w, https://substackcdn.com/image/fetch/$s_!YbOs!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F647a2e6f-5e94-4866-a3d4-c1ddc57e09c1_3680x2276.webp 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!YbOs!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F647a2e6f-5e94-4866-a3d4-c1ddc57e09c1_3680x2276.webp" width="1456" height="901" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/647a2e6f-5e94-4866-a3d4-c1ddc57e09c1_3680x2276.webp&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:901,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:298844,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/webp&quot;,&quot;href&quot;:&quot;https://github.com/Finsys/dockhand/tree/main&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.devopsbulletin.com/i/197822817?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F647a2e6f-5e94-4866-a3d4-c1ddc57e09c1_3680x2276.webp&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!YbOs!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F647a2e6f-5e94-4866-a3d4-c1ddc57e09c1_3680x2276.webp 424w, https://substackcdn.com/image/fetch/$s_!YbOs!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F647a2e6f-5e94-4866-a3d4-c1ddc57e09c1_3680x2276.webp 848w, https://substackcdn.com/image/fetch/$s_!YbOs!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F647a2e6f-5e94-4866-a3d4-c1ddc57e09c1_3680x2276.webp 1272w, https://substackcdn.com/image/fetch/$s_!YbOs!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F647a2e6f-5e94-4866-a3d4-c1ddc57e09c1_3680x2276.webp 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div></li><li><p><strong><a href="https://github.com/regent-vcs/re_gent">re_gent</a></strong> is version control for AI coding agents that records which prompt wrote each line, with rgt log, rgt blame, and rgt show.</p></li><li><p><strong><a href="https://github.com/taktekhq/petri">petri</a></strong> is a drop-in PostgreSQL replacement that gives every test its own isolated, seeded database with no cleanup or shared-state flakiness.</p></li><li><p><strong><a href="https://github.com/bishalOps/tfrev">tfrev</a></strong> uses Claude to review Terraform plans against code changes and flag intent mismatches like a tag edit triggering a full destroy and recreate.</p></li><li><p><strong><a href="https://github.com/raindrop-ai/workshop">workshop</a></strong> is a local debugger for coding agents that streams traces in real time, writes evals, and self-heals failing code until assertions pass.</p></li></ul><h4>Meme of the week</h4><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!XWln!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc941e943-7649-4d5d-b0e4-03bd6fbbf6f5_706x697.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!XWln!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc941e943-7649-4d5d-b0e4-03bd6fbbf6f5_706x697.jpeg 424w, https://substackcdn.com/image/fetch/$s_!XWln!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc941e943-7649-4d5d-b0e4-03bd6fbbf6f5_706x697.jpeg 848w, https://substackcdn.com/image/fetch/$s_!XWln!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc941e943-7649-4d5d-b0e4-03bd6fbbf6f5_706x697.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!XWln!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc941e943-7649-4d5d-b0e4-03bd6fbbf6f5_706x697.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!XWln!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc941e943-7649-4d5d-b0e4-03bd6fbbf6f5_706x697.jpeg" width="434" height="428.4674220963173" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c941e943-7649-4d5d-b0e4-03bd6fbbf6f5_706x697.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:697,&quot;width&quot;:706,&quot;resizeWidth&quot;:434,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Meanwhile WinRAR Users Treating The Trial Expired Pop-Up Like A Side Quest&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Meanwhile WinRAR Users Treating The Trial Expired Pop-Up Like A Side Quest" title="Meanwhile WinRAR Users Treating The Trial Expired Pop-Up Like A Side Quest" srcset="https://substackcdn.com/image/fetch/$s_!XWln!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc941e943-7649-4d5d-b0e4-03bd6fbbf6f5_706x697.jpeg 424w, https://substackcdn.com/image/fetch/$s_!XWln!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc941e943-7649-4d5d-b0e4-03bd6fbbf6f5_706x697.jpeg 848w, https://substackcdn.com/image/fetch/$s_!XWln!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc941e943-7649-4d5d-b0e4-03bd6fbbf6f5_706x697.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!XWln!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc941e943-7649-4d5d-b0e4-03bd6fbbf6f5_706x697.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div class="pullquote"><p> If you have feedback to share or are interested in <a href="https://www.devopsbulletin.com/p/sponsorships">sponsoring</a> this newsletter, feel free to reach out via <em><a href="https://www.linkedin.com/in/mlabouardy/">LinkedIn</a></em> or simply reply to this email. </p></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.devopsbulletin.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading DevOps Bulletin! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[Digest #213: Terraform is dead, AI finds 20-year-old PostgreSQL bugs, AWS ships S3 Files and 54 days with port 22 open]]></title><description><![CDATA[AI uncovers 20-year-old RCE bugs in PostgreSQL and MariaDB, AWS ships a native filesystem layer in front of S3, and one engineer documents 54 days of port 22 exposed to the internet]]></description><link>https://www.devopsbulletin.com/p/digest-213-terraform-is-dead-ai-finds</link><guid isPermaLink="false">https://www.devopsbulletin.com/p/digest-213-terraform-is-dead-ai-finds</guid><dc:creator><![CDATA[Mohamed Labouardy]]></dc:creator><pubDate>Fri, 08 May 2026 16:23:55 GMT</pubDate><enclosure url="https://substackcdn.com/image/youtube/w_728,c_limit/m5t08CREHcE" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://www.iacconf.com/iacconf-2026?refid=DevOps-Bulletin&amp;utm_campaign=40984474-FY26%20-%20WW%20-%20Virtual%20Event%20-%20IaCConf%20-%20May%202026&amp;utm_source=DevOps-Bulletin&amp;utm_medium=email" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!cMSn!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3a6c02f1-19c9-4125-b185-7abd26d37a72_268x83.png 424w, https://substackcdn.com/image/fetch/$s_!cMSn!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3a6c02f1-19c9-4125-b185-7abd26d37a72_268x83.png 848w, https://substackcdn.com/image/fetch/$s_!cMSn!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3a6c02f1-19c9-4125-b185-7abd26d37a72_268x83.png 1272w, https://substackcdn.com/image/fetch/$s_!cMSn!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3a6c02f1-19c9-4125-b185-7abd26d37a72_268x83.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!cMSn!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3a6c02f1-19c9-4125-b185-7abd26d37a72_268x83.png" width="268" height="83" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/3a6c02f1-19c9-4125-b185-7abd26d37a72_268x83.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:83,&quot;width&quot;:268,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:&quot;https://www.iacconf.com/iacconf-2026?refid=DevOps-Bulletin&amp;utm_campaign=40984474-FY26%20-%20WW%20-%20Virtual%20Event%20-%20IaCConf%20-%20May%202026&amp;utm_source=DevOps-Bulletin&amp;utm_medium=email&quot;,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!cMSn!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3a6c02f1-19c9-4125-b185-7abd26d37a72_268x83.png 424w, https://substackcdn.com/image/fetch/$s_!cMSn!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3a6c02f1-19c9-4125-b185-7abd26d37a72_268x83.png 848w, https://substackcdn.com/image/fetch/$s_!cMSn!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3a6c02f1-19c9-4125-b185-7abd26d37a72_268x83.png 1272w, https://substackcdn.com/image/fetch/$s_!cMSn!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3a6c02f1-19c9-4125-b185-7abd26d37a72_268x83.png 1456w" sizes="100vw" fetchpriority="high"></picture><div></div></div></a></figure></div><p><a href="https://www.iacconf.com/iacconf-2026?refid=DevOps-Bulletin&amp;utm_campaign=40984474-FY26%20-%20WW%20-%20Virtual%20Event%20-%20IaCConf%20-%20May%202026&amp;utm_source=DevOps-Bulletin&amp;utm_medium=email">IaCConf 2026</a> is this edition&#8217;s sponsor, a virtual event on May 14th that brings together platform engineering leaders to discuss what happens to your platform abstractions and metrics when AI becomes a first-class consumer of your infrastructure.</p><p>On the news side, a direct argument that Terraform is now obsolete, as LLM can translate intent into infrastructure without an intermediate DSL. One engineer left port 22 open on the internet for 54 days and documented exactly who showed up. AWS shipped S3 Files, a native NFS layer that lets Lambda, EKS, and EC2 mount S3 buckets as shared filesystems without changing application code. Researchers using AI tools found RCE vulnerabilities in PostgreSQL&#8217;s pgcrypto extension and MariaDB&#8217;s JSON validation logic that had been sitting there for over 20 years, with patches now out for both. Postman shared how they scaled security reviews across engineering without creating a bottleneck. Google published its official BigQuery threat model covering 14 attack vectors, including privilege escalation and data exfiltration.</p><p>On the tutorial side: a SQL learning game built around Squid Game&#8217;s format with 9 progressive levels, a PCI-DSS compliant GKE framework walkthrough for financial institutions, building a serverless AI agent code review system on top of AWS S3 Files and Lambda, a step-by-step guide to fixing CrashLoopBackoff in Kubernetes, Cilium&#8217;s CI/CD security lessons from running a large open source project, Slack&#8217;s migration of 700+ EMR pipeline jobs from SSH to REST with zero downtime, and a practical look at stopping Claude Code from leaking sensitive data using Cedar policy-as-code.</p><p>For videos this week: on networking concepts every DevOps engineer needs to know, and a deep dive into why the GitHub situation just got worse.</p><p>This week&#8217;s open source picks include late.sh, a Rust SSH terminal with real-time chat, lofi streaming, and games on a PostgreSQL backend; frak, a Node.js CLI that deploys files over rsync with interactive diffs and post-deploy hooks; Sn1per, an offensive security platform in Shell and Lua orchestrating 90+ tools with 600+ exploits in a single Docker workspace; GreptimeDB, a Rust observability database unifying metrics, logs, and traces as a drop-in for Prometheus, Loki, and Elasticsearch at 50x lower storage cost; waffle, a Go CLI that runs AWS Well-Architected reviews against Terraform files via Amazon Bedrock; and graphify, a Python tool that turns codebases, docs, PDFs, and videos into knowledge graphs for Claude Code, Cursor, and GitHub Copilot.</p><h4>Your Platform Engineering playbook needs an AI rethink</h4><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://www.iacconf.com/iacconf-2026?refid=DevOps-Bulletin&amp;utm_campaign=40984474-FY26%20-%20WW%20-%20Virtual%20Event%20-%20IaCConf%20-%20May%202026&amp;utm_source=DevOps-Bulletin&amp;utm_medium=email" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!eQn3!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a9c0e2b-91d1-4d7c-abba-820aaed789b7_1200x640.png 424w, https://substackcdn.com/image/fetch/$s_!eQn3!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a9c0e2b-91d1-4d7c-abba-820aaed789b7_1200x640.png 848w, https://substackcdn.com/image/fetch/$s_!eQn3!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a9c0e2b-91d1-4d7c-abba-820aaed789b7_1200x640.png 1272w, https://substackcdn.com/image/fetch/$s_!eQn3!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a9c0e2b-91d1-4d7c-abba-820aaed789b7_1200x640.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!eQn3!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a9c0e2b-91d1-4d7c-abba-820aaed789b7_1200x640.png" width="1200" height="640" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2a9c0e2b-91d1-4d7c-abba-820aaed789b7_1200x640.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:640,&quot;width&quot;:1200,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:189357,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://www.iacconf.com/iacconf-2026?refid=DevOps-Bulletin&amp;utm_campaign=40984474-FY26%20-%20WW%20-%20Virtual%20Event%20-%20IaCConf%20-%20May%202026&amp;utm_source=DevOps-Bulletin&amp;utm_medium=email&quot;,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.devopsbulletin.com/i/196771244?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a9c0e2b-91d1-4d7c-abba-820aaed789b7_1200x640.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!eQn3!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a9c0e2b-91d1-4d7c-abba-820aaed789b7_1200x640.png 424w, https://substackcdn.com/image/fetch/$s_!eQn3!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a9c0e2b-91d1-4d7c-abba-820aaed789b7_1200x640.png 848w, https://substackcdn.com/image/fetch/$s_!eQn3!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a9c0e2b-91d1-4d7c-abba-820aaed789b7_1200x640.png 1272w, https://substackcdn.com/image/fetch/$s_!eQn3!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a9c0e2b-91d1-4d7c-abba-820aaed789b7_1200x640.png 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><a href="https://www.iacconf.com/iacconf-2026?refid=DevOps-Bulletin&amp;utm_campaign=40984474-FY26%20-%20WW%20-%20Virtual%20Event%20-%20IaCConf%20-%20May%202026&amp;utm_source=DevOps-Bulletin&amp;utm_medium=email">Join</a> the sharpest minds in platform engineering from Google, AHEAD, Mondelez, &amp; Weave Intelligence to learn if the metrics, abstractions, and practices you&#8217;re relying on today will still hold up as AI becomes a first-class consumer of your platform.</p><p><strong><a href="https://www.iacconf.com/iacconf-2026?refid=DevOps-Bulletin&amp;utm_campaign=40984474-FY26%20-%20WW%20-%20Virtual%20Event%20-%20IaCConf%20-%20May%202026&amp;utm_source=DevOps-Bulletin&amp;utm_medium=email">Register Now - May 14th</a></strong></p><h4>Newsworthy stories</h4><ul><li><p><strong><a href="https://grahamgilbert.com/blog/2026/04/20/terraform-is-dead/">Terraform is dead</a></strong></p></li><li><p><strong><a href="https://arman-bd.hashnode.dev/i-left-port-22-open-on-the-internet-for-54-days-here-s-who-showed-up">I left port 22 open on the internet for 54 days, here&#8217;s who showed up</a></strong></p></li><li><p><strong><a href="https://www.lastweekinaws.com/blog/s3-is-not-a-filesystem-but-now-theres-one-in-front-of-it/">S3 is not a filesystem, but now there&#8217;s one in front of it</a></strong></p></li><li><p><strong><a href="https://www.cncf.io/blog/2026/04/30/ai-sandboxing-is-having-its-kubernetes-moment">AI sandboxing is having its Kubernetes moment</a></strong></p></li><li><p><strong><a href="https://blog.postman.com/how-we-scaled-security-reviews-without-slowing-down-engineering/">How we scaled security reviews without slowing down engineering</a></strong></p></li><li><p><strong><a href="https://gordonmurray.ie/data/2026/05/02/s3-is-the-perfect-place-to-store-data-until-you-try-to-search-it.html">S3 is the perfect place to store data, until you try to search it</a></strong></p></li><li><p><strong><a href="https://docs.cloud.google.com/docs/security/threat-model/bigquery-threat-model">BigQuery threat model report</a></strong></p></li><li><p><strong><a href="https://www.csoonline.com/article/4167137/ai-finds-20-year-old-bugs-in-postgresql-and-mariadb.html">AI finds 20-year-old bugs in PostgreSQL and MariaDB</a></strong></p></li><li><p><strong><a href="https://codecraftdiary.com/2026/04/29/trunk-based-development-your-pull-requests-are-still-too-big">Trunk-based development: your pull requests are still too big</a></strong></p></li></ul><h4>Tutorials of the week</h4><ul><li><p><strong><a href="https://datalemur.com/sql-game">SQL Squid Game</a></strong></p></li><li><p><strong><a href="https://blog.devops.dev/building-a-pci-dss-compliant-gke-framework-for-financial-institutions-33868007fd6a">Building a PCI-DSS compliant GKE framework for financial institutions</a></strong></p></li><li><p><strong><a href="https://edjgeek.com/blog/s3-files-lambda-agents/">Lambda just got a file system. I put AI agents on it</a></strong></p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://edjgeek.com/blog/s3-files-lambda-agents/" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!BiQp!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4240e8cd-a61c-43b2-b5d8-2c0220e1472f_1200x730.png 424w, https://substackcdn.com/image/fetch/$s_!BiQp!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4240e8cd-a61c-43b2-b5d8-2c0220e1472f_1200x730.png 848w, https://substackcdn.com/image/fetch/$s_!BiQp!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4240e8cd-a61c-43b2-b5d8-2c0220e1472f_1200x730.png 1272w, https://substackcdn.com/image/fetch/$s_!BiQp!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4240e8cd-a61c-43b2-b5d8-2c0220e1472f_1200x730.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!BiQp!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4240e8cd-a61c-43b2-b5d8-2c0220e1472f_1200x730.png" width="1200" height="730" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4240e8cd-a61c-43b2-b5d8-2c0220e1472f_1200x730.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:730,&quot;width&quot;:1200,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Architecture diagram showing the orchestrator cloning a repo to the S3 Files mount, then security and style agents reading from the same mount in parallel&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:&quot;https://edjgeek.com/blog/s3-files-lambda-agents/&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Architecture diagram showing the orchestrator cloning a repo to the S3 Files mount, then security and style agents reading from the same mount in parallel" title="Architecture diagram showing the orchestrator cloning a repo to the S3 Files mount, then security and style agents reading from the same mount in parallel" srcset="https://substackcdn.com/image/fetch/$s_!BiQp!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4240e8cd-a61c-43b2-b5d8-2c0220e1472f_1200x730.png 424w, https://substackcdn.com/image/fetch/$s_!BiQp!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4240e8cd-a61c-43b2-b5d8-2c0220e1472f_1200x730.png 848w, https://substackcdn.com/image/fetch/$s_!BiQp!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4240e8cd-a61c-43b2-b5d8-2c0220e1472f_1200x730.png 1272w, https://substackcdn.com/image/fetch/$s_!BiQp!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4240e8cd-a61c-43b2-b5d8-2c0220e1472f_1200x730.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><ul><li><p><strong><a href="https://momjian.us/main/writings/pgsql/mcp.pdf">Building an MCP server using PostgreSQL</a></strong></p></li><li><p><strong><a href="https://securityboulevard.com/2026/04/how-do-i-fix-crashloopbackoff-in-kubernetes-step-by-step">How do I fix CrashLoopBackoff in Kubernetes? </a></strong></p></li><li><p><strong><a href="https://blogs.halodoc.io/secured-pii-encryption">Building secure PII encryption at scale</a></strong></p></li><li><p><strong><a href="https://cilium.io/blog/2026/05/06/securing-cicd-open-source-lessons-from-cilium">Securing CI/CD for an open source project</a></strong></p></li><li><p><strong><a href="https://slack.engineering/from-ssh-to-rest-a-security-driven-modernization-of-slacks-emr-data-pipelines">A security-driven modernization of Slack&#8217;s EMR data pipelines</a></strong></p></li><li><p><strong><a href="https://blog.sondera.ai/p/claude-code-data-leaks-security">How to stop Claude Code from leaking sensitive data</a></strong></p></li></ul><h4>Videos of the week</h4><div id="youtube2-w0SQGCt-6Ro" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;w0SQGCt-6Ro&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/w0SQGCt-6Ro?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><div id="youtube2-m5t08CREHcE" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;m5t08CREHcE&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/m5t08CREHcE?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><h4>Projects of the week</h4><ul><li><p><strong><a href="https://github.com/mpiorowski/late-sh">late.sh</a></strong> is a Rust-based terminal social platform over SSH with real-time chat, lofi streaming, and shared TUI games.</p></li><li><p><strong><a href="https://github.com/frakjs/frak">frak</a></strong> is a Node.js CLI that deploys files to remote servers via rsync over SSH with interactive diffs and post-deploy hooks.</p></li><li><p><strong><a href="https://github.com/1N3/Sn1per">Sn1per</a></strong> is a Shell/Lua offensive security platform consolidating recon, scanning, exploitation, and reporting across 90+ tools in one Docker workspace.</p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://github.com/1N3/Sn1per" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!psM0!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7c28d9b7-bc05-44cd-b4f7-f41465fe2d96_1720x1206.png 424w, https://substackcdn.com/image/fetch/$s_!psM0!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7c28d9b7-bc05-44cd-b4f7-f41465fe2d96_1720x1206.png 848w, https://substackcdn.com/image/fetch/$s_!psM0!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7c28d9b7-bc05-44cd-b4f7-f41465fe2d96_1720x1206.png 1272w, https://substackcdn.com/image/fetch/$s_!psM0!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7c28d9b7-bc05-44cd-b4f7-f41465fe2d96_1720x1206.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!psM0!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7c28d9b7-bc05-44cd-b4f7-f41465fe2d96_1720x1206.png" width="1456" height="1021" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7c28d9b7-bc05-44cd-b4f7-f41465fe2d96_1720x1206.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1021,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:255281,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://github.com/1N3/Sn1per&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.devopsbulletin.com/i/196771244?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7c28d9b7-bc05-44cd-b4f7-f41465fe2d96_1720x1206.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!psM0!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7c28d9b7-bc05-44cd-b4f7-f41465fe2d96_1720x1206.png 424w, https://substackcdn.com/image/fetch/$s_!psM0!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7c28d9b7-bc05-44cd-b4f7-f41465fe2d96_1720x1206.png 848w, https://substackcdn.com/image/fetch/$s_!psM0!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7c28d9b7-bc05-44cd-b4f7-f41465fe2d96_1720x1206.png 1272w, https://substackcdn.com/image/fetch/$s_!psM0!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7c28d9b7-bc05-44cd-b4f7-f41465fe2d96_1720x1206.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><ul><li><p><strong><a href="https://github.com/GreptimeTeam/greptimedb">GreptimeDB</a></strong> is a Rust observability database that unifies metrics, logs, and traces as a drop-in replacement for Prometheus, Loki, and Elasticsearch.</p></li><li><p><strong><a href="https://github.com/partly-notes/waffle">waffle</a></strong> is a Go CLI that runs AWS Well-Architected Framework reviews against Terraform files via Amazon Bedrock.</p></li><li><p><strong><a href="https://github.com/pgEdge/ai-dba-workbench">ai-dba-workbench</a></strong> is a Go/TypeScript PostgreSQL monitoring platform with AI anomaly detection and natural language cluster queries via MCP.</p></li><li><p><strong><a href="https://github.com/abdosorour7/git-commands-cheatsheet">git-commands-cheatsheet</a></strong> is a zero-dependency HTML reference covering 115 Git commands.</p></li><li><p><strong><a href="https://github.com/safishamsi/graphify">graphify</a></strong> is a Python tool that turns codebases, docs, PDFs, and videos into queryable knowledge graphs for Claude Code, Cursor, and GitHub Copilot.</p></li></ul><h4>Meme of the week</h4><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!XSUY!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F89193715-56fd-4a80-aff5-79efc156d338_651x616.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!XSUY!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F89193715-56fd-4a80-aff5-79efc156d338_651x616.jpeg 424w, https://substackcdn.com/image/fetch/$s_!XSUY!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F89193715-56fd-4a80-aff5-79efc156d338_651x616.jpeg 848w, https://substackcdn.com/image/fetch/$s_!XSUY!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F89193715-56fd-4a80-aff5-79efc156d338_651x616.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!XSUY!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F89193715-56fd-4a80-aff5-79efc156d338_651x616.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!XSUY!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F89193715-56fd-4a80-aff5-79efc156d338_651x616.jpeg" width="461" height="436.21505376344084" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/89193715-56fd-4a80-aff5-79efc156d338_651x616.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:616,&quot;width&quot;:651,&quot;resizeWidth&quot;:461,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;r/ProgrammerHumor - hearMeOutThisWillHappenLaterThisYear&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="r/ProgrammerHumor - hearMeOutThisWillHappenLaterThisYear" title="r/ProgrammerHumor - hearMeOutThisWillHappenLaterThisYear" srcset="https://substackcdn.com/image/fetch/$s_!XSUY!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F89193715-56fd-4a80-aff5-79efc156d338_651x616.jpeg 424w, https://substackcdn.com/image/fetch/$s_!XSUY!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F89193715-56fd-4a80-aff5-79efc156d338_651x616.jpeg 848w, https://substackcdn.com/image/fetch/$s_!XSUY!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F89193715-56fd-4a80-aff5-79efc156d338_651x616.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!XSUY!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F89193715-56fd-4a80-aff5-79efc156d338_651x616.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div class="pullquote"><p> If you have feedback to share or are interested in <a href="https://www.devopsbulletin.com/p/sponsorships">sponsoring</a> this newsletter, feel free to reach out via <em><a href="https://www.linkedin.com/in/mlabouardy/">LinkedIn</a></em> or simply reply to this email. </p></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.devopsbulletin.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading DevOps Bulletin! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[Digest #212: GitHub Actions Weakest Link, Lambda's Invisible Network, Cloudflare's AI Stack and Terragrunt is Dead]]></title><description><![CDATA[Pulling back the curtain on Lambda's invisible network to GitHub Actions being the biggest CI/CD attack surface. Add Cloudflare sharing the internal AI engineering stack they actually use.]]></description><link>https://www.devopsbulletin.com/p/digest-212-github-actions-weakest</link><guid isPermaLink="false">https://www.devopsbulletin.com/p/digest-212-github-actions-weakest</guid><dc:creator><![CDATA[Mohamed Labouardy]]></dc:creator><pubDate>Fri, 01 May 2026 15:54:24 GMT</pubDate><enclosure url="https://substackcdn.com/image/youtube/w_728,c_limit/P6u0K3-z2p4" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://info.jetbrains.com/teamcity-livestream-may12-2026.html?utm_source=newsletter_devops-bulletin&amp;utm_medium=cpc&amp;utm_campaign=dzone-nl-livestream" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!9KW_!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F18d00937-2800-4f55-b0e3-505a91de521d_268x76.png 424w, https://substackcdn.com/image/fetch/$s_!9KW_!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F18d00937-2800-4f55-b0e3-505a91de521d_268x76.png 848w, https://substackcdn.com/image/fetch/$s_!9KW_!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F18d00937-2800-4f55-b0e3-505a91de521d_268x76.png 1272w, https://substackcdn.com/image/fetch/$s_!9KW_!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F18d00937-2800-4f55-b0e3-505a91de521d_268x76.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!9KW_!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F18d00937-2800-4f55-b0e3-505a91de521d_268x76.png" width="268" height="76" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/18d00937-2800-4f55-b0e3-505a91de521d_268x76.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:76,&quot;width&quot;:268,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:5721,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://info.jetbrains.com/teamcity-livestream-may12-2026.html?utm_source=newsletter_devops-bulletin&amp;utm_medium=cpc&amp;utm_campaign=dzone-nl-livestream&quot;,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://www.devopsbulletin.com/i/196123668?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F18d00937-2800-4f55-b0e3-505a91de521d_268x76.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!9KW_!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F18d00937-2800-4f55-b0e3-505a91de521d_268x76.png 424w, https://substackcdn.com/image/fetch/$s_!9KW_!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F18d00937-2800-4f55-b0e3-505a91de521d_268x76.png 848w, https://substackcdn.com/image/fetch/$s_!9KW_!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F18d00937-2800-4f55-b0e3-505a91de521d_268x76.png 1272w, https://substackcdn.com/image/fetch/$s_!9KW_!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F18d00937-2800-4f55-b0e3-505a91de521d_268x76.png 1456w" sizes="100vw" fetchpriority="high"></picture><div></div></div></a></figure></div><p><a href="https://info.jetbrains.com/teamcity-livestream-may12-2026.html?utm_source=newsletter_devops-bulletin&amp;utm_medium=cpc&amp;utm_campaign=dzone-nl-livestream">TeamCity 2026.1</a> introduces a set of focused improvements that make your CI/CD more intuitive, intelligent, and enterprise-ready.</p><p>Werner Vogels published a detailed look at the engineering behind Lambda&#8217;s network. On the security side, GitHub Actions is identified as the weakest link in your CI/CD chain, with a thorough breakdown of how supply chain attacks can move through workflows. Cloudflare shared the internal AI engineering stack they actually run, including how they&#8217;re orchestrating AI code review at scale across their own engineering org. Halodoc documented their migration of AWS MSK from ZooKeeper to KRaft using a canary approach, and one team explains why Dockerfile practices cost you before they ever become a security problem.</p><p>On the tutorial side: a $1,432 to $233/month hosting cut by moving from DigitalOcean to Hetzner with zero downtime, Terraform module design via an AI agent skill built around design decisions first and code generation second, a detailed argument that Terragrunt&#8217;s run-all is broken beyond repair by multi-state transactions, benchmarking workflow execution scalability on Postgres, building a production MCP server in Go, auto-diagnosing Kubernetes alerts with HolmesGPT, and Cloudflare&#8217;s own AI code review pipeline in depth.</p><p>For videos this week: a practical terminal setup combining Tmux, btop, and GPU monitoring into a single system monitoring workflow, a real-world look at what a billion database rows actually looks like in production, and an investigation into why companies spend millions buying GitHub stars.</p><p>This week&#8217;s open source picks include JuiceFS, a Go-based POSIX file system that stores data in S3 and metadata in Redis or MySQL with 10x the sequential throughput of EFS; Gatus, a Go health dashboard that monitors over HTTP, TCP, DNS, gRPC, and 40+ alerting integrations; kured, the CNCF Sandbox Kubernetes daemonset that automates safe node reboots using API server locking; and RedAI, a TypeScript and Python workbench that validates AI-discovered vulnerabilities in live browser and simulator environments before generating reports.</p><h4>AI, Pipelines, and Enterprise CI/CD</h4><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://info.jetbrains.com/teamcity-livestream-may12-2026.html?utm_source=newsletter_devops-bulletin&amp;utm_medium=cpc&amp;utm_campaign=dzone-nl-livestream" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!fBav!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F600ad9b6-466d-49a1-94cd-7303adc6786d_2560x1440.png 424w, https://substackcdn.com/image/fetch/$s_!fBav!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F600ad9b6-466d-49a1-94cd-7303adc6786d_2560x1440.png 848w, https://substackcdn.com/image/fetch/$s_!fBav!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F600ad9b6-466d-49a1-94cd-7303adc6786d_2560x1440.png 1272w, https://substackcdn.com/image/fetch/$s_!fBav!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F600ad9b6-466d-49a1-94cd-7303adc6786d_2560x1440.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!fBav!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F600ad9b6-466d-49a1-94cd-7303adc6786d_2560x1440.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/600ad9b6-466d-49a1-94cd-7303adc6786d_2560x1440.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:683771,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://info.jetbrains.com/teamcity-livestream-may12-2026.html?utm_source=newsletter_devops-bulletin&amp;utm_medium=cpc&amp;utm_campaign=dzone-nl-livestream&quot;,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.devopsbulletin.com/i/196123668?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F600ad9b6-466d-49a1-94cd-7303adc6786d_2560x1440.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!fBav!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F600ad9b6-466d-49a1-94cd-7303adc6786d_2560x1440.png 424w, https://substackcdn.com/image/fetch/$s_!fBav!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F600ad9b6-466d-49a1-94cd-7303adc6786d_2560x1440.png 848w, https://substackcdn.com/image/fetch/$s_!fBav!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F600ad9b6-466d-49a1-94cd-7303adc6786d_2560x1440.png 1272w, https://substackcdn.com/image/fetch/$s_!fBav!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F600ad9b6-466d-49a1-94cd-7303adc6786d_2560x1440.png 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>TeamCity 2026.1 introduces a set of focused improvements that make your CI/CD more intuitive, intelligent, and enterprise-ready. <a href="https://info.jetbrains.com/teamcity-livestream-may12-2026.html?utm_source=newsletter_devops-bulletin&amp;utm_medium=cpc&amp;utm_campaign=dzone-nl-livestream">Join us</a> on May 12th for a live walkthrough of the latest updates, including the new TeamCity CLI and MCP support!</p><h4>Newsworthy stories</h4><ul><li><p><strong><a href="https://www.allthingsdistributed.com/2026/04/the-invisible-engineering-behind-lambdas-network.html">The invisible engineering behind Lambda&#8217;s network</a></strong></p></li><li><p><strong><a href="https://nesbitt.io/2026/04/28/github-actions-is-the-weakest-link.html">GitHub Actions is the weakest link</a></strong></p></li><li><p><strong><a href="https://blog.cloudflare.com/internal-ai-engineering-stack">The AI engineering stack we built internally</a></strong></p></li><li><p><strong><a href="https://cloudnativenow.com/contributed-content/dockerfile-practices-are-a-devops-tax-before-they-are-a-security-concern">Dockerfile practices are a DevOps tax before they are a security concern</a></strong></p></li><li><p><strong><a href="https://blogs.halodoc.io/migrating-aws-msk-from-zookeeper-to-kraft-a-canary-approach">Migrating AWS MSK from ZooKeeper to KRaft</a></strong></p></li></ul><h4>Tutorials of the week</h4><ul><li><p><strong><a href="https://thomasthornton.cloud/terraform-module-design-is-the-hard-part-so-i-built-an-agent-skill-for-it/">Terraform module design is the hard part, so I built an agent skill for it</a></strong></p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://thomasthornton.cloud/terraform-module-design-is-the-hard-part-so-i-built-an-agent-skill-for-it/" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!7bwu!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F22c301c5-c30b-4eaa-97cc-cd7422a8665d_825x563.png 424w, https://substackcdn.com/image/fetch/$s_!7bwu!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F22c301c5-c30b-4eaa-97cc-cd7422a8665d_825x563.png 848w, https://substackcdn.com/image/fetch/$s_!7bwu!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F22c301c5-c30b-4eaa-97cc-cd7422a8665d_825x563.png 1272w, https://substackcdn.com/image/fetch/$s_!7bwu!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F22c301c5-c30b-4eaa-97cc-cd7422a8665d_825x563.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!7bwu!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F22c301c5-c30b-4eaa-97cc-cd7422a8665d_825x563.png" width="825" height="563" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/22c301c5-c30b-4eaa-97cc-cd7422a8665d_825x563.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:563,&quot;width&quot;:825,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Diagram showing the MCP Tools integration with Terraform module creator skill&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:&quot;https://thomasthornton.cloud/terraform-module-design-is-the-hard-part-so-i-built-an-agent-skill-for-it/&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Diagram showing the MCP Tools integration with Terraform module creator skill" title="Diagram showing the MCP Tools integration with Terraform module creator skill" srcset="https://substackcdn.com/image/fetch/$s_!7bwu!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F22c301c5-c30b-4eaa-97cc-cd7422a8665d_825x563.png 424w, https://substackcdn.com/image/fetch/$s_!7bwu!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F22c301c5-c30b-4eaa-97cc-cd7422a8665d_825x563.png 848w, https://substackcdn.com/image/fetch/$s_!7bwu!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F22c301c5-c30b-4eaa-97cc-cd7422a8665d_825x563.png 1272w, https://substackcdn.com/image/fetch/$s_!7bwu!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F22c301c5-c30b-4eaa-97cc-cd7422a8665d_825x563.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><ul><li><p><strong><a href="https://isayeter.com/posts/digitalocean-to-hetzner-migration">Migrating from DigitalOcean to Hetzner: from $1,432 to $233/month with zero downtime</a></strong></p></li><li><p><strong><a href="https://stategraph.com/blog/terragrunt-is-dead">Terragrunt is dead: multi-state transactions killed run-all</a></strong></p></li><li><p><strong><a href="https://www.dbos.dev/blog/benchmarking-workflow-execution-scalability-on-postgres">Does Postgres scale?</a></strong></p></li><li><p><strong><a href="https://blog.cloudflare.com/ai-code-review">Orchestrating AI code review at scale</a></strong></p></li><li><p><strong><a href="https://blog.marcolancini.it/2026/blog-my-claude-code-setup">My Claude Code setup</a></strong></p></li><li><p><strong><a href="https://awsfundamentals.com/blog/aws-devops-agent">AWS DevOps Agent: your AI SRE is now on call</a></strong></p></li><li><p><strong><a href="https://www.cncf.io/blog/2026/04/21/auto-diagnosing-kubernetes-alerts-with-holmesgpt-and-cncf-tools/">Auto-diagnosing Kubernetes alerts with HolmesGPT and CNCF tools</a></strong></p></li><li><p><strong><a href="https://foojay.io/today/dockerizing-a-java-26-project-with-docker-init">Dockerizing a Java 26 project with Docker Init</a></strong></p></li><li><p><strong><a href="https://blog.arcjet.com/building-a-production-mcp-server-in-go">Building a production MCP server in Go</a></strong></p></li></ul><h4>Videos of the week</h4><div id="youtube2-xnQWLPGjcOQ" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;xnQWLPGjcOQ&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/xnQWLPGjcOQ?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><div id="youtube2-sEQ1ecQq0HI" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;sEQ1ecQq0HI&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/sEQ1ecQq0HI?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><div id="youtube2-P6u0K3-z2p4" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;P6u0K3-z2p4&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/P6u0K3-z2p4?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><h4>Projects of the week</h4><ul><li><p><strong><a href="https://github.com/juicedata/juicefs">JuiceFS</a></strong> is a Go-based POSIX distributed file system that stores data in S3 and metadata in Redis or MySQL, with 10x more throughput than EFS.</p></li><li><p><strong><a href="https://github.com/TwiN/gatus">Gatus</a></strong> is a Go health dashboard that monitors services over HTTP, TCP, DNS, gRPC, and SSH with 40+ alerting integrations.</p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://github.com/TwiN/gatus" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Vfeg!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9952974c-7ae5-4179-b7b7-e8e525a40206_2560x1760.jpeg 424w, https://substackcdn.com/image/fetch/$s_!Vfeg!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9952974c-7ae5-4179-b7b7-e8e525a40206_2560x1760.jpeg 848w, https://substackcdn.com/image/fetch/$s_!Vfeg!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9952974c-7ae5-4179-b7b7-e8e525a40206_2560x1760.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!Vfeg!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9952974c-7ae5-4179-b7b7-e8e525a40206_2560x1760.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Vfeg!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9952974c-7ae5-4179-b7b7-e8e525a40206_2560x1760.jpeg" width="1456" height="1001" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9952974c-7ae5-4179-b7b7-e8e525a40206_2560x1760.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1001,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:548995,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:&quot;https://github.com/TwiN/gatus&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.devopsbulletin.com/i/196123668?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9952974c-7ae5-4179-b7b7-e8e525a40206_2560x1760.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Vfeg!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9952974c-7ae5-4179-b7b7-e8e525a40206_2560x1760.jpeg 424w, https://substackcdn.com/image/fetch/$s_!Vfeg!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9952974c-7ae5-4179-b7b7-e8e525a40206_2560x1760.jpeg 848w, https://substackcdn.com/image/fetch/$s_!Vfeg!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9952974c-7ae5-4179-b7b7-e8e525a40206_2560x1760.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!Vfeg!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9952974c-7ae5-4179-b7b7-e8e525a40206_2560x1760.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><ul><li><p><strong><a href="https://github.com/kernalix7/winpodx">winpodx</a></strong> is a Python tool that runs Windows apps as native Linux windows using FreeRDP RemoteApp and a containerized Windows instance.</p></li><li><p><strong><a href="https://github.com/kubereboot/kured">kured</a></strong> is a Go Kubernetes daemonset that safely reboots nodes one at a time using API server locking. CNCF Sandbox project.</p></li><li><p><strong><a href="https://github.com/kpolley/redai">RedAI</a></strong> is a TypeScript/Python workbench that uses AI agents to find and validate vulnerabilities in live browser and simulator environments.</p></li><li><p><strong><a href="https://github.com/rocky-data/rocky">Rocky</a></strong> is a Rust control plane for data warehouse pipelines with column-level lineage, schema drift detection, and compile-time data contracts.</p></li></ul><h4>Meme of the week</h4><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!cx3b!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fded75f94-1a1a-4dfd-8183-b3f76414be62_640x803.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!cx3b!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fded75f94-1a1a-4dfd-8183-b3f76414be62_640x803.jpeg 424w, https://substackcdn.com/image/fetch/$s_!cx3b!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fded75f94-1a1a-4dfd-8183-b3f76414be62_640x803.jpeg 848w, https://substackcdn.com/image/fetch/$s_!cx3b!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fded75f94-1a1a-4dfd-8183-b3f76414be62_640x803.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!cx3b!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fded75f94-1a1a-4dfd-8183-b3f76414be62_640x803.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!cx3b!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fded75f94-1a1a-4dfd-8183-b3f76414be62_640x803.jpeg" width="340" height="426.59375" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ded75f94-1a1a-4dfd-8183-b3f76414be62_640x803.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:803,&quot;width&quot;:640,&quot;resizeWidth&quot;:340,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;r/ProgrammerHumor - reasonBehindPrematureExhaustionOfTokens&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="r/ProgrammerHumor - reasonBehindPrematureExhaustionOfTokens" title="r/ProgrammerHumor - reasonBehindPrematureExhaustionOfTokens" srcset="https://substackcdn.com/image/fetch/$s_!cx3b!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fded75f94-1a1a-4dfd-8183-b3f76414be62_640x803.jpeg 424w, https://substackcdn.com/image/fetch/$s_!cx3b!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fded75f94-1a1a-4dfd-8183-b3f76414be62_640x803.jpeg 848w, https://substackcdn.com/image/fetch/$s_!cx3b!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fded75f94-1a1a-4dfd-8183-b3f76414be62_640x803.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!cx3b!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fded75f94-1a1a-4dfd-8183-b3f76414be62_640x803.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div class="pullquote"><p> If you have feedback to share or are interested in <a href="https://www.devopsbulletin.com/p/sponsorships">sponsoring</a> this newsletter, feel free to reach out via <em><a href="https://www.linkedin.com/in/mlabouardy/">LinkedIn</a></em> or simply reply to this email. </p></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.devopsbulletin.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading DevOps Bulletin! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[Digest #211: AWS DevOps Agent, AI Cloud Attacks and Security Skills for AI Agents]]></title><description><![CDATA[LMDeploy CVE exploited in 12 hours, autonomous AI cloud attacks, GitHub Actions threat model, and 7 open source tools for DevOps and security teams.]]></description><link>https://www.devopsbulletin.com/p/digest-211-aws-devops-agent-ai-cloud</link><guid isPermaLink="false">https://www.devopsbulletin.com/p/digest-211-aws-devops-agent-ai-cloud</guid><dc:creator><![CDATA[Mohamed Labouardy]]></dc:creator><pubDate>Wed, 29 Apr 2026 12:31:04 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!QBoN!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4fde2a46-8724-4570-973a-a08fa97b4296_700x383.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://brdta.com/star_cli_devopsbulletin" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Udo0!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd08ee2c2-6f1c-4d62-93e0-236cd2673cc1_268x85.png 424w, https://substackcdn.com/image/fetch/$s_!Udo0!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd08ee2c2-6f1c-4d62-93e0-236cd2673cc1_268x85.png 848w, https://substackcdn.com/image/fetch/$s_!Udo0!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd08ee2c2-6f1c-4d62-93e0-236cd2673cc1_268x85.png 1272w, https://substackcdn.com/image/fetch/$s_!Udo0!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd08ee2c2-6f1c-4d62-93e0-236cd2673cc1_268x85.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Udo0!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd08ee2c2-6f1c-4d62-93e0-236cd2673cc1_268x85.png" width="268" height="85" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d08ee2c2-6f1c-4d62-93e0-236cd2673cc1_268x85.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:85,&quot;width&quot;:268,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:&quot;https://brdta.com/star_cli_devopsbulletin&quot;,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Udo0!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd08ee2c2-6f1c-4d62-93e0-236cd2673cc1_268x85.png 424w, https://substackcdn.com/image/fetch/$s_!Udo0!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd08ee2c2-6f1c-4d62-93e0-236cd2673cc1_268x85.png 848w, https://substackcdn.com/image/fetch/$s_!Udo0!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd08ee2c2-6f1c-4d62-93e0-236cd2673cc1_268x85.png 1272w, https://substackcdn.com/image/fetch/$s_!Udo0!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd08ee2c2-6f1c-4d62-93e0-236cd2673cc1_268x85.png 1456w" sizes="100vw" fetchpriority="high"></picture><div></div></div></a></figure></div><p><a href="https://brdta.com/star_cli_devopsbulletin">Bright Data CLI</a> gives coding agents (Claude Code, Cursor, Copilot) real-time web scraping and structured data extraction from 40+ platforms, directly from the terminal, at 10-32x the cost of MCP for equivalent tasks.</p><p>Sysdig documented how CVE-2026-33626 enabled a published LMDeploy advisory to become a working SSRF exploit within 12.5 hours, with attackers probing for AWS IMDS credentials, Redis, and MySQL endpoints. Palo Alto&#8217;s Unit 42 took it further, publishing findings from building an autonomous AI agent that attacks cloud infrastructure on its own. Wiz published a detailed GitHub Actions threat model, and Synthesia shared what actually moved the needle when scaling vulnerability management with AI.</p><p>On the tutorial side, we cover migrating from Ingress NGINX to Traefik or Gateway API without the usual pain, building eBPF-based bandwidth limiting in the AWS Network Policy Agent, deploying Docker apps to Linux with K3s, and using Claude Code for DevSecOps on AWS. Plus: automating incident investigation with the AWS DevOps Agent.</p><p>This week&#8217;s open source picks include clawsec, a security suite that protects AI agents from prompt injection; pmg, a Go-based package manager guard that blocks malicious npm, pip, and yarn packages before they run; pgweb, a zero-dependency Postgres web UI that ships as a single Go binary; and GreenKube, a Python tool for tracking and reducing the carbon footprint of Kubernetes clusters. </p><h4>Your AI agent can&#8217;t see the web. Fix that in 30 seconds.</h4><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://brdta.com/star_cli_devopsbulletin" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!W4iF!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4a825f80-91e6-4613-ba7b-a6ba21e2e331_1376x768.png 424w, https://substackcdn.com/image/fetch/$s_!W4iF!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4a825f80-91e6-4613-ba7b-a6ba21e2e331_1376x768.png 848w, https://substackcdn.com/image/fetch/$s_!W4iF!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4a825f80-91e6-4613-ba7b-a6ba21e2e331_1376x768.png 1272w, https://substackcdn.com/image/fetch/$s_!W4iF!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4a825f80-91e6-4613-ba7b-a6ba21e2e331_1376x768.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!W4iF!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4a825f80-91e6-4613-ba7b-a6ba21e2e331_1376x768.png" width="1376" height="768" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4a825f80-91e6-4613-ba7b-a6ba21e2e331_1376x768.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:768,&quot;width&quot;:1376,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1467094,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://brdta.com/star_cli_devopsbulletin&quot;,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.devopsbulletin.com/i/195361000?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4a825f80-91e6-4613-ba7b-a6ba21e2e331_1376x768.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!W4iF!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4a825f80-91e6-4613-ba7b-a6ba21e2e331_1376x768.png 424w, https://substackcdn.com/image/fetch/$s_!W4iF!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4a825f80-91e6-4613-ba7b-a6ba21e2e331_1376x768.png 848w, https://substackcdn.com/image/fetch/$s_!W4iF!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4a825f80-91e6-4613-ba7b-a6ba21e2e331_1376x768.png 1272w, https://substackcdn.com/image/fetch/$s_!W4iF!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4a825f80-91e6-4613-ba7b-a6ba21e2e331_1376x768.png 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><a href="https://brdta.com/star_cli_devopsbulletin">Bright Data CLI</a> gives coding agents (Claude Code, Cursor, Copilot) real-time web scraping, search, and structured data extraction from 40+ platforms - directly from the terminal. One command. No MCP overhead. No schema bloat. 10-32x cheaper than MCP for equivalent tasks - <a href="https://brdta.com/star_cli_devopsbulletin">Check out the GitHub repo</a></p><h4>Newsworthy stories</h4><ul><li><p><strong><a href="https://www.wiz.io/blog/github-actions-security-threat-model-and-defenses">Primer on GitHub Actions security</a></strong></p></li><li><p><strong><a href="https://unit42.paloaltonetworks.com/autonomous-ai-cloud-attacks">Can AI attack the cloud?</a></strong></p></li><li><p><strong><a href="https://dev.ongoro.top/post/most-devs-ignore-git-worktree-heres-why-theyre-wrong">Most devs ignore git worktree</a></strong></p></li><li><p><strong><a href="https://infrahouse.com/blog/2026-03-28-iso-27001-on-aws/">ISO 27001 on AWS: building compliance into the architecture</a></strong></p></li><li><p><strong><a href="https://www.synthesia.io/post/scaling-vulnerability-management-with-ai-what-actually-worked">Scaling vulnerability management with AI: what actually worked</a></strong></p></li><li><p><strong><a href="https://newsletter.manager.dev/p/the-engineering-manager-s-attention-budget">The engineering manager&#8217;s attention budget</a></strong></p></li></ul><h4>Tutorials of the week</h4><ul><li><p><strong><a href="https://aws.amazon.com/blogs/devops/automating-incident-investigation-with-aws-devops-agent-and-salesforce-mcp-server">Automating incident investigation with AWS DevOps Agent</a></strong></p></li><li><p><strong><a href="https://blog.kubesimplify.com/ing-switch-migrate-from-ingress-nginx-to-traefik-or-gateway-api-in-minutes-not-days">Migrate from Ingress NGINX to Traefik or Gateway API in minutes, not days</a></strong></p></li><li><p><strong><a href="https://spin.atomicobject.com/k3s-deploy-docker-app-linux">A better way to deploy a Docker app to a Linux server</a></strong></p></li><li><p><strong><a href="https://aws.amazon.com/blogs/security/a-framework-for-securely-collecting-forensic-artifacts-into-s3-buckets/">A framework for securely collecting forensic artifacts into S3 buckets</a></strong></p></li><li><p><strong><a href="https://blog.devops.dev/prompt-secure-infrastructure-the-claude-code-devsecops-shift-on-aws-cf0a3ce3f264">The Claude Code DevSecOps shift on AWS</a></strong></p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://blog.devops.dev/prompt-secure-infrastructure-the-claude-code-devsecops-shift-on-aws-cf0a3ce3f264" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!QBoN!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4fde2a46-8724-4570-973a-a08fa97b4296_700x383.jpeg 424w, https://substackcdn.com/image/fetch/$s_!QBoN!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4fde2a46-8724-4570-973a-a08fa97b4296_700x383.jpeg 848w, https://substackcdn.com/image/fetch/$s_!QBoN!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4fde2a46-8724-4570-973a-a08fa97b4296_700x383.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!QBoN!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4fde2a46-8724-4570-973a-a08fa97b4296_700x383.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!QBoN!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4fde2a46-8724-4570-973a-a08fa97b4296_700x383.jpeg" width="700" height="383" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4fde2a46-8724-4570-973a-a08fa97b4296_700x383.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:383,&quot;width&quot;:700,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:&quot;https://blog.devops.dev/prompt-secure-infrastructure-the-claude-code-devsecops-shift-on-aws-cf0a3ce3f264&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!QBoN!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4fde2a46-8724-4570-973a-a08fa97b4296_700x383.jpeg 424w, https://substackcdn.com/image/fetch/$s_!QBoN!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4fde2a46-8724-4570-973a-a08fa97b4296_700x383.jpeg 848w, https://substackcdn.com/image/fetch/$s_!QBoN!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4fde2a46-8724-4570-973a-a08fa97b4296_700x383.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!QBoN!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4fde2a46-8724-4570-973a-a08fa97b4296_700x383.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><ul><li><p><strong><a href="https://medium.com/@jayanthvn_55441/building-ebpf-based-bandwidth-limiting-in-aws-network-policy-agent-why-vibe-coding-isnt-enough-f8c6681aa278">Building eBPF-based bandwidth limiting in AWS Network Policy Agent</a></strong></p></li><li><p><strong><a href="https://webflow.sysdig.com/blog/cve-2026-33626-how-attackers-exploited-lmdeploy-llm-inference-engines-in-12-hours">How attackers exploited LMDeploy LLM inference engines in 12 hours</a></strong></p></li></ul><h4>Videos of the week</h4><div id="youtube2-fFIjrtH6qjc" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;fFIjrtH6qjc&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/fFIjrtH6qjc?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><div id="youtube2-zMpn9ICagdE" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;zMpn9ICagdE&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/zMpn9ICagdE?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><div id="youtube2-kHDrC92UwZE" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;kHDrC92UwZE&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/kHDrC92UwZE?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><h4>Projects of the week</h4><ul><li><p><strong><a href="https://github.com/prompt-security/clawsec">clawsec</a></strong> is a security skill suite for AI agents that defends against prompt injection and provides dedicated protection modules for OpenClaw, NanoClaw, and Hermes.</p></li><li><p><strong><a href="https://github.com/xataio/xata">xata</a></strong> is a cloud-native platform for self-hosting Postgres on Kubernetes with copy-on-write branching (copy TBs in seconds).</p></li><li><p><strong><a href="https://github.com/gabrielsoltz/clauditor">clauditor</a></strong> is a security scanner that audits Claude Code configuration across user, project, local, and managed scopes with 50+ built-in checks, severity ratings, and a hardened settings generator for CI/CD pipelines.</p></li><li><p><strong><a href="https://github.com/safedep/pmg">pmg</a></strong> is a Go-based package manager guard that intercepts npm, pip, yarn, pnpm, bun, and uv installations to block malicious packages using real-time threat intelligence.</p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://github.com/safedep/pmg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!9DM1!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0c84c063-d4b2-4795-a4ff-707ebc66ce5d_1400x1000.gif 424w, https://substackcdn.com/image/fetch/$s_!9DM1!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0c84c063-d4b2-4795-a4ff-707ebc66ce5d_1400x1000.gif 848w, https://substackcdn.com/image/fetch/$s_!9DM1!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0c84c063-d4b2-4795-a4ff-707ebc66ce5d_1400x1000.gif 1272w, https://substackcdn.com/image/fetch/$s_!9DM1!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0c84c063-d4b2-4795-a4ff-707ebc66ce5d_1400x1000.gif 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!9DM1!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0c84c063-d4b2-4795-a4ff-707ebc66ce5d_1400x1000.gif" width="1400" height="1000" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/0c84c063-d4b2-4795-a4ff-707ebc66ce5d_1400x1000.gif&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1000,&quot;width&quot;:1400,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:178185,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/gif&quot;,&quot;href&quot;:&quot;https://github.com/safedep/pmg&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.devopsbulletin.com/i/195361000?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0c84c063-d4b2-4795-a4ff-707ebc66ce5d_1400x1000.gif&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!9DM1!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0c84c063-d4b2-4795-a4ff-707ebc66ce5d_1400x1000.gif 424w, https://substackcdn.com/image/fetch/$s_!9DM1!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0c84c063-d4b2-4795-a4ff-707ebc66ce5d_1400x1000.gif 848w, https://substackcdn.com/image/fetch/$s_!9DM1!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0c84c063-d4b2-4795-a4ff-707ebc66ce5d_1400x1000.gif 1272w, https://substackcdn.com/image/fetch/$s_!9DM1!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0c84c063-d4b2-4795-a4ff-707ebc66ce5d_1400x1000.gif 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><ul><li><p><strong><a href="https://github.com/huggingface/ml-intern">ml-intern</a></strong> is an autonomous ML engineer agent that reads papers, trains models, and ships through a 300-iteration agentic loop.</p></li><li><p><strong><a href="https://github.com/sosedoff/pgweb">pgweb</a></strong> is a web UI for PostgreSQL that ships as a single binary with no dependencies, supporting SSH tunnels, multiple concurrent sessions, and data export.</p></li><li><p><strong><a href="https://github.com/GreenKubeCloud/GreenKube">GreenKube</a></strong> is a tool for monitoring and reducing the carbon footprint of Kubernetes clusters.</p></li></ul><h4>Meme of the week</h4><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!JLq_!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F25bacb72-92b6-4fba-91cd-aeabb0384fdc_1000x1000.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!JLq_!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F25bacb72-92b6-4fba-91cd-aeabb0384fdc_1000x1000.jpeg 424w, https://substackcdn.com/image/fetch/$s_!JLq_!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F25bacb72-92b6-4fba-91cd-aeabb0384fdc_1000x1000.jpeg 848w, https://substackcdn.com/image/fetch/$s_!JLq_!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F25bacb72-92b6-4fba-91cd-aeabb0384fdc_1000x1000.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!JLq_!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F25bacb72-92b6-4fba-91cd-aeabb0384fdc_1000x1000.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!JLq_!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F25bacb72-92b6-4fba-91cd-aeabb0384fdc_1000x1000.jpeg" width="528" height="528" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/25bacb72-92b6-4fba-91cd-aeabb0384fdc_1000x1000.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1000,&quot;width&quot;:1000,&quot;resizeWidth&quot;:528,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Too Dangerous To Release&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Too Dangerous To Release" title="Too Dangerous To Release" srcset="https://substackcdn.com/image/fetch/$s_!JLq_!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F25bacb72-92b6-4fba-91cd-aeabb0384fdc_1000x1000.jpeg 424w, https://substackcdn.com/image/fetch/$s_!JLq_!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F25bacb72-92b6-4fba-91cd-aeabb0384fdc_1000x1000.jpeg 848w, https://substackcdn.com/image/fetch/$s_!JLq_!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F25bacb72-92b6-4fba-91cd-aeabb0384fdc_1000x1000.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!JLq_!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F25bacb72-92b6-4fba-91cd-aeabb0384fdc_1000x1000.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div class="pullquote"><p> If you have feedback to share or are interested in <a href="https://www.devopsbulletin.com/p/sponsorships">sponsoring</a> this newsletter, feel free to reach out via <em><a href="https://www.linkedin.com/in/mlabouardy/">LinkedIn</a></em> or simply reply to this email. </p></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.devopsbulletin.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading DevOps Bulletin! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[Digest #210: Claude Code Security Bypass, prt-scan Supply Chain Attack, Duolingo EKS Migration and Cloudflare Artifacts]]></title><description><![CDATA[Claude Code security bypass, GitHub Actions supply chain attack, Duolingo's EKS migration, Cloudflare Artifacts for agents, MCP on ECS, and 8 open source DevOps tools.]]></description><link>https://www.devopsbulletin.com/p/digest-210-claude-code-security-bypass</link><guid isPermaLink="false">https://www.devopsbulletin.com/p/digest-210-claude-code-security-bypass</guid><dc:creator><![CDATA[Mohamed Labouardy]]></dc:creator><pubDate>Fri, 17 Apr 2026 16:57:43 GMT</pubDate><enclosure url="https://substackcdn.com/image/youtube/w_728,c_limit/TdondBmyNXc" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://www.iacconf.com/iacconf-2026?refid=DevOps-Bulletin&amp;utm_campaign=40984474-FY26%20-%20WW%20-%20Virtual%20Event%20-%20IaCConf%20-%20May%202026&amp;utm_source=DevOps-Bulletin&amp;utm_medium=paid_newsletter" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!cMSn!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3a6c02f1-19c9-4125-b185-7abd26d37a72_268x83.png 424w, https://substackcdn.com/image/fetch/$s_!cMSn!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3a6c02f1-19c9-4125-b185-7abd26d37a72_268x83.png 848w, https://substackcdn.com/image/fetch/$s_!cMSn!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3a6c02f1-19c9-4125-b185-7abd26d37a72_268x83.png 1272w, https://substackcdn.com/image/fetch/$s_!cMSn!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3a6c02f1-19c9-4125-b185-7abd26d37a72_268x83.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!cMSn!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3a6c02f1-19c9-4125-b185-7abd26d37a72_268x83.png" width="268" height="83" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/3a6c02f1-19c9-4125-b185-7abd26d37a72_268x83.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:83,&quot;width&quot;:268,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:&quot;https://www.iacconf.com/iacconf-2026?refid=DevOps-Bulletin&amp;utm_campaign=40984474-FY26%20-%20WW%20-%20Virtual%20Event%20-%20IaCConf%20-%20May%202026&amp;utm_source=DevOps-Bulletin&amp;utm_medium=paid_newsletter&quot;,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!cMSn!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3a6c02f1-19c9-4125-b185-7abd26d37a72_268x83.png 424w, https://substackcdn.com/image/fetch/$s_!cMSn!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3a6c02f1-19c9-4125-b185-7abd26d37a72_268x83.png 848w, https://substackcdn.com/image/fetch/$s_!cMSn!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3a6c02f1-19c9-4125-b185-7abd26d37a72_268x83.png 1272w, https://substackcdn.com/image/fetch/$s_!cMSn!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3a6c02f1-19c9-4125-b185-7abd26d37a72_268x83.png 1456w" sizes="100vw" fetchpriority="high"></picture><div></div></div></a></figure></div><p>IaCConf 2026 is back on May 14, free and virtual. Corey Quinn is keynoting on <a href="https://www.iacconf.com/iacconf-2026?refid=DevOps-Bulletin&amp;utm_campaign=40984474-FY26%20-%20WW%20-%20Virtual%20Event%20-%20IaCConf%20-%20May%202026&amp;utm_source=DevOps-Bulletin&amp;utm_medium=paid_newsletter">AI writing Terraform code</a>, and if that&#8217;s part of your stack, it&#8217;s worth the two hours.</p><p>Wiz traced a GitHub Actions supply chain campaign to six accounts pushing AI-generated malicious packages under the prt-scan name. A researcher also found that Claude Code&#8217;s deny rules are silently bypassed when the token cost of running security checks gets too high. Cloudflare shipped Artifacts, versioned storage that speaks Git and targets agent workflows, and Duolingo walked through migrating 500+ backend services from ECS to EKS with Argo CD and IPv6-only pod networking.</p><p>On the tutorial side: Grafana&#8217;s Kubernetes monitoring Helm chart v4, deploying MCP servers on Amazon ECS, how Slack manages context in long-running agentic applications, Cloudflare&#8217;s reference architecture for safer enterprise MCP deployments, and a straight question: do you even need a database?</p><p>Open source this week includes codeburn, a terminal dashboard tracking AI coding token costs across Claude Code, Codex, Cursor, and Copilot, tigerfs for mounting PostgreSQL as a filesystem you can browse with ls and cat, mergetopus for parallelizing large Git merges across multiple developers, and aimock, a single-package mock for LLM APIs, MCP, vector DBs, and search.</p><h4><strong>Join the IaCConf 2026 Keynote: &#8220;AI Speaks Terraform Like a Tourist&#8221;</strong></h4><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://www.iacconf.com/iacconf-2026?refid=DevOps-Bulletin&amp;utm_campaign=40984474-FY26%20-%20WW%20-%20Virtual%20Event%20-%20IaCConf%20-%20May%202026&amp;utm_source=DevOps-Bulletin&amp;utm_medium=paid_newsletter" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!iD1q!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F23194e7d-8d30-4ba9-b0f1-cbcbd1dbc727_1200x640.png 424w, https://substackcdn.com/image/fetch/$s_!iD1q!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F23194e7d-8d30-4ba9-b0f1-cbcbd1dbc727_1200x640.png 848w, https://substackcdn.com/image/fetch/$s_!iD1q!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F23194e7d-8d30-4ba9-b0f1-cbcbd1dbc727_1200x640.png 1272w, https://substackcdn.com/image/fetch/$s_!iD1q!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F23194e7d-8d30-4ba9-b0f1-cbcbd1dbc727_1200x640.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!iD1q!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F23194e7d-8d30-4ba9-b0f1-cbcbd1dbc727_1200x640.png" width="1200" height="640" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/23194e7d-8d30-4ba9-b0f1-cbcbd1dbc727_1200x640.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:640,&quot;width&quot;:1200,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:639331,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://www.iacconf.com/iacconf-2026?refid=DevOps-Bulletin&amp;utm_campaign=40984474-FY26%20-%20WW%20-%20Virtual%20Event%20-%20IaCConf%20-%20May%202026&amp;utm_source=DevOps-Bulletin&amp;utm_medium=paid_newsletter&quot;,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.devopsbulletin.com/i/194526182?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F23194e7d-8d30-4ba9-b0f1-cbcbd1dbc727_1200x640.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!iD1q!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F23194e7d-8d30-4ba9-b0f1-cbcbd1dbc727_1200x640.png 424w, https://substackcdn.com/image/fetch/$s_!iD1q!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F23194e7d-8d30-4ba9-b0f1-cbcbd1dbc727_1200x640.png 848w, https://substackcdn.com/image/fetch/$s_!iD1q!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F23194e7d-8d30-4ba9-b0f1-cbcbd1dbc727_1200x640.png 1272w, https://substackcdn.com/image/fetch/$s_!iD1q!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F23194e7d-8d30-4ba9-b0f1-cbcbd1dbc727_1200x640.png 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Nobody calls out cloud infrastructure nonsense quite like Corey Quinn. If your team is using AI to write infrastructure code, you NEED to come hear this. <a href="https://www.iacconf.com/iacconf-2026?refid=DevOps-Bulletin&amp;utm_campaign=40984474-FY26%20-%20WW%20-%20Virtual%20Event%20-%20IaCConf%20-%20May%202026&amp;utm_source=DevOps-Bulletin&amp;utm_medium=paid_newsletter">Join us for his keynote</a> at the free virtual conference built for engineers who manage infrastructure at scale - <strong><a href="https://www.iacconf.com/iacconf-2026?refid=DevOps-Bulletin&amp;utm_campaign=40984474-FY26%20-%20WW%20-%20Virtual%20Event%20-%20IaCConf%20-%20May%202026&amp;utm_source=DevOps-Bulletin&amp;utm_medium=paid_newsletter">Grab your free spot</a></strong></p><h4>Newsworthy stories</h4><ul><li><p><strong><a href="https://www.wiz.io/blog/six-accounts-one-actor-inside-the-prt-scan-supply-chain-campaign">Inside the prt-scan supply chain campaign</a></strong></p></li><li><p><strong><a href="https://github.blog/engineering/infrastructure/how-github-uses-ebpf-to-improve-deployment-safety/">How GitHub uses eBPF to improve deployment safety</a></strong></p></li><li><p><strong><a href="https://shatteredsilicon.net/aws-lambda-kiss-of-death/">The AWS Lambda &#8220;kiss of death&#8221;</a></strong></p></li><li><p><strong><a href="https://oseifert.ch/blog/linux-kernel-pgit">I imported the Linux kernel into PostgreSQL</a></strong></p></li><li><p><strong><a href="https://blog.cloudflare.com/artifacts-git-for-agents-beta/">Versioned storage that speaks Git</a></strong></p></li><li><p><strong><a href="https://www.infoq.com/presentations/duolingo-eks-kubernetes">Duolingo&#8217;s Kubernetes leap</a></strong></p></li><li><p><strong><a href="https://adversa.ai/blog/claude-code-security-bypass-deny-rules-disabled/">Critical Claude Code vulnerability</a></strong></p></li><li><p><strong><a href="https://sockpuppet.org/blog/2026/03/30/vulnerability-research-is-cooked/">Vulnerability research is cooked</a></strong></p></li></ul><h4>Tutorials of the week</h4><ul><li><p><strong><a href="https://grafana.com/blog/kubernetes-monitoring-helm-chart-v4-biggest-update-ever-">Kubernetes monitoring Helm chart v4</a></strong></p></li><li><p><strong><a href="https://build5nines.com/stop-wasting-hours-writing-unit-tests-use-github-copilot-to-explode-code-coverage-fast/">Using GitHub Copilot to write unit tests fast</a></strong></p></li><li><p><strong><a href="https://blog.devops.dev/prompt-secure-infrastructure-the-claude-code-devsecops-shift-on-aws-cf0a3ce3f264">The Claude Code DevSecOps shift on AWS</a></strong></p></li><li><p><strong><a href="https://aws.amazon.com/blogs/aws-cloud-financial-management/transforming-finops-with-the-latest-amazon-q-cost-capabilities/">Transforming FinOps with the latest Amazon Q cost capabilities</a></strong></p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://aws.amazon.com/blogs/aws-cloud-financial-management/transforming-finops-with-the-latest-amazon-q-cost-capabilities/" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!YvdH!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd2ebfb12-7847-4f6b-87ef-3d8a62e07487_3192x1390.png 424w, https://substackcdn.com/image/fetch/$s_!YvdH!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd2ebfb12-7847-4f6b-87ef-3d8a62e07487_3192x1390.png 848w, https://substackcdn.com/image/fetch/$s_!YvdH!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd2ebfb12-7847-4f6b-87ef-3d8a62e07487_3192x1390.png 1272w, https://substackcdn.com/image/fetch/$s_!YvdH!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd2ebfb12-7847-4f6b-87ef-3d8a62e07487_3192x1390.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!YvdH!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd2ebfb12-7847-4f6b-87ef-3d8a62e07487_3192x1390.png" width="1456" height="634" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d2ebfb12-7847-4f6b-87ef-3d8a62e07487_3192x1390.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:634,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Figure 3 - Example of clicking the &#8216;View in Cost Explorer&#8217; link&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:&quot;https://aws.amazon.com/blogs/aws-cloud-financial-management/transforming-finops-with-the-latest-amazon-q-cost-capabilities/&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Figure 3 - Example of clicking the &#8216;View in Cost Explorer&#8217; link" title="Figure 3 - Example of clicking the &#8216;View in Cost Explorer&#8217; link" srcset="https://substackcdn.com/image/fetch/$s_!YvdH!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd2ebfb12-7847-4f6b-87ef-3d8a62e07487_3192x1390.png 424w, https://substackcdn.com/image/fetch/$s_!YvdH!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd2ebfb12-7847-4f6b-87ef-3d8a62e07487_3192x1390.png 848w, https://substackcdn.com/image/fetch/$s_!YvdH!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd2ebfb12-7847-4f6b-87ef-3d8a62e07487_3192x1390.png 1272w, https://substackcdn.com/image/fetch/$s_!YvdH!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd2ebfb12-7847-4f6b-87ef-3d8a62e07487_3192x1390.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><ul><li><p><strong><a href="https://www.dbpro.app/blog/do-you-even-need-a-database">Do you even need a database?</a></strong></p></li><li><p><strong><a href="https://aws.amazon.com/blogs/containers/deploying-model-context-protocol-mcp-servers-on-amazon-ecs/">Deploying MCP servers on Amazon ECS</a></strong></p></li><li><p><strong><a href="https://slack.engineering/managing-context-in-long-run-agentic-applications/">Managing context in long-run agentic applications</a></strong></p></li><li><p><strong><a href="https://blog.cloudflare.com/enterprise-mcp">Reference architecture for enterprise deployments of MCP</a></strong></p></li><li><p><strong><a href="https://blog.frankel.ch/agentic-github-workflows">A GitHub agentic workflow</a></strong></p></li><li><p><strong><a href="https://blog.alexewerlof.com/p/multi-agent-system-reliability">Multi-agent system reliability</a></strong></p></li></ul><h4>Videos of the week</h4><div id="youtube2-u3GjIXP9N0s" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;u3GjIXP9N0s&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/u3GjIXP9N0s?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><div id="youtube2-TdondBmyNXc" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;TdondBmyNXc&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/TdondBmyNXc?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><h4>Projects of the week</h4><ul><li><p><strong><a href="https://github.com/pompelmi/pompelmi">pompelmi</a></strong> is a minimal Node.js wrapper around ClamAV that scans any file for malware.</p></li><li><p><strong><a href="https://github.com/SethPyle376/hiraeth">hiraeth</a></strong> is a local AWS emulator built for fast SQS integration testing, with SQLite state persistence and a built-in web debugging interface.</p></li><li><p><strong><a href="https://github.com/AgentSeal/codeburn">codeburn</a></strong> is a terminal UI dashboard that tracks AI coding token usage and costs across Claude Code, Codex, Cursor, and GitHub Copilot.</p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://github.com/AgentSeal/codeburn" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ELsj!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8602865c-9855-4134-981c-c7b05b892a41_3840x2880.jpeg 424w, https://substackcdn.com/image/fetch/$s_!ELsj!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8602865c-9855-4134-981c-c7b05b892a41_3840x2880.jpeg 848w, https://substackcdn.com/image/fetch/$s_!ELsj!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8602865c-9855-4134-981c-c7b05b892a41_3840x2880.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!ELsj!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8602865c-9855-4134-981c-c7b05b892a41_3840x2880.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ELsj!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8602865c-9855-4134-981c-c7b05b892a41_3840x2880.jpeg" width="584" height="438" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8602865c-9855-4134-981c-c7b05b892a41_3840x2880.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1092,&quot;width&quot;:1456,&quot;resizeWidth&quot;:584,&quot;bytes&quot;:509309,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:&quot;https://github.com/AgentSeal/codeburn&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.devopsbulletin.com/i/194526182?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8602865c-9855-4134-981c-c7b05b892a41_3840x2880.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!ELsj!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8602865c-9855-4134-981c-c7b05b892a41_3840x2880.jpeg 424w, https://substackcdn.com/image/fetch/$s_!ELsj!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8602865c-9855-4134-981c-c7b05b892a41_3840x2880.jpeg 848w, https://substackcdn.com/image/fetch/$s_!ELsj!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8602865c-9855-4134-981c-c7b05b892a41_3840x2880.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!ELsj!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8602865c-9855-4134-981c-c7b05b892a41_3840x2880.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><ul><li><p><strong><a href="https://github.com/mwallner/mergetopus">mergetopus</a></strong> is a tool that untangles complex Git merges by splitting conflicted files into parallel slice branches, letting multiple developers resolve different conflicts at the same time.</p></li><li><p><strong><a href="https://github.com/timescale/tigerfs">tigerfs</a></strong> is a Go filesystem interface backed by PostgreSQL that lets you mount a database and browse it with standard Unix tools.</p></li><li><p><strong><a href="https://github.com/google/osv.dev">osv.dev</a></strong> is Google&#8217;s open source vulnerability database and triage service, tracking vulnerabilities across multiple package ecosystems.</p></li></ul><h4>Meme of the week</h4><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!51-A!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F83ae8081-fe48-459e-8dcf-0887a60175a2_959x1121.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!51-A!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F83ae8081-fe48-459e-8dcf-0887a60175a2_959x1121.jpeg 424w, https://substackcdn.com/image/fetch/$s_!51-A!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F83ae8081-fe48-459e-8dcf-0887a60175a2_959x1121.jpeg 848w, https://substackcdn.com/image/fetch/$s_!51-A!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F83ae8081-fe48-459e-8dcf-0887a60175a2_959x1121.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!51-A!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F83ae8081-fe48-459e-8dcf-0887a60175a2_959x1121.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!51-A!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F83ae8081-fe48-459e-8dcf-0887a60175a2_959x1121.jpeg" width="440" height="514.3274244004172" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/83ae8081-fe48-459e-8dcf-0887a60175a2_959x1121.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1121,&quot;width&quot;:959,&quot;resizeWidth&quot;:440,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;The Age Of AI&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="The Age Of AI" title="The Age Of AI" srcset="https://substackcdn.com/image/fetch/$s_!51-A!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F83ae8081-fe48-459e-8dcf-0887a60175a2_959x1121.jpeg 424w, https://substackcdn.com/image/fetch/$s_!51-A!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F83ae8081-fe48-459e-8dcf-0887a60175a2_959x1121.jpeg 848w, https://substackcdn.com/image/fetch/$s_!51-A!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F83ae8081-fe48-459e-8dcf-0887a60175a2_959x1121.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!51-A!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F83ae8081-fe48-459e-8dcf-0887a60175a2_959x1121.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div class="pullquote"><p> If you have feedback to share or are interested in <a href="https://www.devopsbulletin.com/p/sponsorships">sponsoring</a> this newsletter, feel free to reach out via <em><a href="https://www.linkedin.com/in/mlabouardy/">LinkedIn</a></em> or simply reply to this email. </p></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.devopsbulletin.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading DevOps Bulletin! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[Digest #209: OpenAI Codex Command Injection, Live Kubernetes Migration and SRE Agents]]></title><description><![CDATA[From Claude Code's source code being exposed through npm source maps, to a command injection flaw in OpenAI Codex leaking GitHub tokens.]]></description><link>https://www.devopsbulletin.com/p/digest-209-openai-codex-command-injection</link><guid isPermaLink="false">https://www.devopsbulletin.com/p/digest-209-openai-codex-command-injection</guid><dc:creator><![CDATA[Mohamed Labouardy]]></dc:creator><pubDate>Fri, 10 Apr 2026 14:02:01 GMT</pubDate><enclosure url="https://substackcdn.com/image/youtube/w_728,c_limit/S7sJA51CxIo" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://noros.ai/?utm_source=sponsorship&amp;utm_medium=tldrdevops&amp;utm_campaign=nmrk-tldrdevops-awareness-devops-us-noros2&amp;utm_content=lp_north" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!sRnV!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffb90984c-fac6-468b-98f5-e653d7b5f0fe_268x71.png 424w, https://substackcdn.com/image/fetch/$s_!sRnV!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffb90984c-fac6-468b-98f5-e653d7b5f0fe_268x71.png 848w, https://substackcdn.com/image/fetch/$s_!sRnV!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffb90984c-fac6-468b-98f5-e653d7b5f0fe_268x71.png 1272w, https://substackcdn.com/image/fetch/$s_!sRnV!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffb90984c-fac6-468b-98f5-e653d7b5f0fe_268x71.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!sRnV!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffb90984c-fac6-468b-98f5-e653d7b5f0fe_268x71.png" width="268" height="71" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/fb90984c-fac6-468b-98f5-e653d7b5f0fe_268x71.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:71,&quot;width&quot;:268,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:9154,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://noros.ai/?utm_source=sponsorship&amp;utm_medium=tldrdevops&amp;utm_campaign=nmrk-tldrdevops-awareness-devops-us-noros2&amp;utm_content=lp_north&quot;,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://www.devopsbulletin.com/i/193781366?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffb90984c-fac6-468b-98f5-e653d7b5f0fe_268x71.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!sRnV!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffb90984c-fac6-468b-98f5-e653d7b5f0fe_268x71.png 424w, https://substackcdn.com/image/fetch/$s_!sRnV!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffb90984c-fac6-468b-98f5-e653d7b5f0fe_268x71.png 848w, https://substackcdn.com/image/fetch/$s_!sRnV!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffb90984c-fac6-468b-98f5-e653d7b5f0fe_268x71.png 1272w, https://substackcdn.com/image/fetch/$s_!sRnV!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffb90984c-fac6-468b-98f5-e653d7b5f0fe_268x71.png 1456w" sizes="100vw" fetchpriority="high"></picture><div></div></div></a></figure></div><p>Noros connects to your AWS, GCP, and Azure accounts in 5 minutes and answers questions like &#8220;why did my spend spike this month?&#8221; in seconds. DevOps Bulletin readers get a <a href="https://noros.ai/?utm_source=sponsorship&amp;utm_medium=tldrdevops&amp;utm_campaign=nmrk-tldrdevops-awareness-devops-us-noros2&amp;utm_content=lp_north">free month</a> at launch.</p><p>This week, BeyondTrust uncovered a command injection flaw in OpenAI Codex that exposed GitHub tokens, and Claude Code&#8217;s source code was leaked through npm source maps. Giant Swarm detailed how they live-migrated hundreds of Kubernetes clusters to the Cluster API with zero downtime.</p><p>On the tutorial side: AWS launched S3 Files to let you mount buckets as file systems; Ingress NGINX hit EOL, and Datadog walks through migrating to Kubernetes Gateway API; SpecterOps shows how Claude Code raises the bar for secure code reviews in pentesting engagements. Plus: why you should never let AI near your production database, how Slack replaced custom network tooling with Prometheus for HTTP/3 readiness, a complete Terraform setup for EKS Auto Mode, and the Git commands worth running before touching any unfamiliar codebase.</p><p>This week&#8217;s open source picks include PentAGI, a fully autonomous AI pentest agent in Go with 14.7k stars; Gardener, which manages Kubernetes clusters at scale across any infrastructure using hosted control planes; keeper, a Go cryptographic secret store; and skrun, which deploys agent skills defined in SKILL.md files as callable REST APIs.</p><h4>What if you could ask your cloud bill anything?</h4><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://noros.ai/?utm_source=sponsorship&amp;utm_medium=tldrdevops&amp;utm_campaign=nmrk-tldrdevops-awareness-devops-us-noros2&amp;utm_content=lp_north" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!SqeB!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb348c902-1910-4ef5-a4c1-73a3ee2e3096_1200x640.png 424w, https://substackcdn.com/image/fetch/$s_!SqeB!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb348c902-1910-4ef5-a4c1-73a3ee2e3096_1200x640.png 848w, https://substackcdn.com/image/fetch/$s_!SqeB!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb348c902-1910-4ef5-a4c1-73a3ee2e3096_1200x640.png 1272w, https://substackcdn.com/image/fetch/$s_!SqeB!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb348c902-1910-4ef5-a4c1-73a3ee2e3096_1200x640.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!SqeB!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb348c902-1910-4ef5-a4c1-73a3ee2e3096_1200x640.png" width="1200" height="640" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b348c902-1910-4ef5-a4c1-73a3ee2e3096_1200x640.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:640,&quot;width&quot;:1200,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:186555,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://noros.ai/?utm_source=sponsorship&amp;utm_medium=tldrdevops&amp;utm_campaign=nmrk-tldrdevops-awareness-devops-us-noros2&amp;utm_content=lp_north&quot;,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.devopsbulletin.com/i/193781366?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb348c902-1910-4ef5-a4c1-73a3ee2e3096_1200x640.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!SqeB!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb348c902-1910-4ef5-a4c1-73a3ee2e3096_1200x640.png 424w, https://substackcdn.com/image/fetch/$s_!SqeB!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb348c902-1910-4ef5-a4c1-73a3ee2e3096_1200x640.png 848w, https://substackcdn.com/image/fetch/$s_!SqeB!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb348c902-1910-4ef5-a4c1-73a3ee2e3096_1200x640.png 1272w, https://substackcdn.com/image/fetch/$s_!SqeB!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb348c902-1910-4ef5-a4c1-73a3ee2e3096_1200x640.png 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Why is my spend 5% higher this month?&#8221; Noros is the AI agent that answers in seconds. Ask about anomalies, overprovisioned instances, cost spikes, and more across AWS, GCP, and Azure. DevOps Bulletin readers get a <a href="https://noros.ai/?utm_source=sponsorship&amp;utm_medium=tldrdevops&amp;utm_campaign=nmrk-tldrdevops-awareness-devops-us-noros2&amp;utm_content=lp_north">free month</a> at launch.</p><p><a href="https://noros.ai/?utm_source=sponsorship&amp;utm_medium=tldrdevops&amp;utm_campaign=nmrk-tldrdevops-awareness-devops-us-noros2&amp;utm_content=lp_north">Join the waitlist.</a></p><h4>Newsworthy stories</h4><ul><li><p><strong><a href="https://astral.sh/blog/open-source-security-at-astral">Open source security at Astral</a></strong></p></li><li><p><strong><a href="https://www.giantswarm.io/blog/live-migrating-hundreds-of-kubernetes-clusters-to-cluster-api">Live migrating hundreds of Kubernetes clusters to Cluster API</a></strong></p></li><li><p><strong><a href="https://www.beyondtrust.com/blog/entry/openai-codex-command-injection-vulnerability-github-token">OpenAI Codex command injection vulnerability exposes GitHub tokens</a></strong></p></li><li><p><strong><a href="https://devops-daily.com/posts/claude-code-source-leak-what-devops-engineers-should-learn">Claude Code source leaked via npm source maps: lessons for every DevOps team</a></strong></p></li><li><p><strong><a href="https://codecraftdiary.com/2026/04/04/trunk-based-development-why-most-teams-think-they-use-it-but-dont">Trunk-based development: why most teams think they use it (but don&#8217;t)</a></strong></p></li><li><p><strong><a href="https://www.datadoghq.com/blog/engineering/bits-ai-eval-platform">How we built a real-world evaluation platform for autonomous SRE agents at scale</a></strong></p></li></ul><h4>Tutorials of the week</h4><ul><li><p><strong><a href="https://sonraisecurity.com/enforcing-ai-governance-across-aws-orgs">Enforcing AI governance across AWS organizations</a></strong></p></li><li><p><strong><a href="https://aws.amazon.com/blogs/aws/launching-s3-files-making-s3-buckets-accessible-as-file-systems">Launching S3 Files, making S3 buckets accessible as file systems</a></strong></p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://aws.amazon.com/blogs/aws/launching-s3-files-making-s3-buckets-accessible-as-file-systems/" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!09Lo!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd78b3f81-fbd8-45db-99b2-4dc507f6f8b5_1024x542.png 424w, https://substackcdn.com/image/fetch/$s_!09Lo!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd78b3f81-fbd8-45db-99b2-4dc507f6f8b5_1024x542.png 848w, https://substackcdn.com/image/fetch/$s_!09Lo!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd78b3f81-fbd8-45db-99b2-4dc507f6f8b5_1024x542.png 1272w, https://substackcdn.com/image/fetch/$s_!09Lo!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd78b3f81-fbd8-45db-99b2-4dc507f6f8b5_1024x542.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!09Lo!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd78b3f81-fbd8-45db-99b2-4dc507f6f8b5_1024x542.png" width="1024" height="542" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d78b3f81-fbd8-45db-99b2-4dc507f6f8b5_1024x542.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:542,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:82166,&quot;alt&quot;:&quot;S3 Files demo architecture&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://aws.amazon.com/blogs/aws/launching-s3-files-making-s3-buckets-accessible-as-file-systems/&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="S3 Files demo architecture" title="S3 Files demo architecture" srcset="https://substackcdn.com/image/fetch/$s_!09Lo!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd78b3f81-fbd8-45db-99b2-4dc507f6f8b5_1024x542.png 424w, https://substackcdn.com/image/fetch/$s_!09Lo!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd78b3f81-fbd8-45db-99b2-4dc507f6f8b5_1024x542.png 848w, https://substackcdn.com/image/fetch/$s_!09Lo!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd78b3f81-fbd8-45db-99b2-4dc507f6f8b5_1024x542.png 1272w, https://substackcdn.com/image/fetch/$s_!09Lo!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd78b3f81-fbd8-45db-99b2-4dc507f6f8b5_1024x542.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><ul><li><p><strong><a href="https://boringsql.com/posts/dont-let-ai-to-prod/">Don&#8217;t let AI touch your production database</a></strong></p></li><li><p><strong><a href="https://www.xda-developers.com/i-replaced-portainer-grafana-and-prometheus-with-this-stack">I replaced Portainer, Grafana, and Prometheus with this stack</a></strong></p></li><li><p><strong><a href="https://specterops.io/blog/2026/03/26/leveling-up-secure-code-reviews-with-claude-code">Leveling up secure code reviews with Claude Code</a></strong></p></li><li><p><strong><a href="https://piechowski.io/post/git-commands-before-reading-code/">The Git commands I run before reading any code</a></strong></p></li></ul><div class="pullquote"><p><strong>Enjoying the Bulletin?</strong> Consider supporting it with a <a href="https://www.devopsbulletin.com/subscribe">paid subscription</a>. You&#8217;ll keep the free Friday issues <em>and</em> get extras like bonus deep-dives, templates, and the full archive.</p></div><ul><li><p><strong><a href="https://blog.logrocket.com/claude-pr-review-caught-vs-missed">I let Claude review my PRs: what it caught and missed</a></strong></p></li><li><p><strong><a href="https://www.datadoghq.com/blog/migrate-to-gateway-api">A practical guide for migrating to Kubernetes Gateway API</a></strong></p></li><li><p><strong><a href="https://darryl-ruggles.cloud/a-complete-terraform-setup-for-eks-auto-mode-is-it-right-for-you">A complete Terraform setup for EKS Auto Mode: is it right for you?</a></strong></p></li><li><p><strong><a href="https://slack.engineering/from-custom-to-open-scalable-network-probing-and-http-3-readiness-with-prometheus">Scalable network probing and HTTP/3 readiness with Prometheus</a></strong></p></li><li><p><strong><a href="https://www.josephspurrier.com/google-cloud-run-deployment">Deploying Go apps to Google Cloud Run</a></strong></p></li></ul><h4>Videos of the week</h4><div id="youtube2-S7sJA51CxIo" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;S7sJA51CxIo&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/S7sJA51CxIo?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><h4>Projects of the week</h4><ul><li><p><strong><a href="https://github.com/agberohq/keeper">keeper</a></strong> is a Go cryptographic secret store that encrypts payloads at rest.</p></li><li><p><strong><a href="https://github.com/lirantal/npm-security-best-practices">npm-security-best-practices</a></strong> is a list of security best practices across supply chain attack mitigation, dependency resolution, and vulnerability scanning.</p></li><li><p><strong><a href="https://github.com/vxcontrol/pentagi">PentAGI</a></strong> is a fully autonomous AI agent system for penetration testing, packing 20+ built-in security tools.</p></li><li><p><strong><a href="https://github.com/onesuper/tui-use">tui-use</a></strong> is a tool that lets AI agents control interactive terminal programs (REPLs, debuggers, TUI apps) that normally require a human at the keyboard.</p></li><li><p><strong><a href="https://github.com/drifthoundhq/drifthound">DriftHound</a></strong> is an app that receives Terraform drift reports via API and provides a centralized dashboard for tracking infrastructure drift across projects.</p></li><li><p><strong><a href="https://github.com/gardener/gardener">Gardener</a></strong> is a Go platform for managing homogeneous Kubernetes clusters at scale across any infrastructure using hosted control planes.</p></li><li><p><strong><a href="https://github.com/skrun-dev/skrun">skrun</a></strong> is a framework that deploys agent skills defined in SKILL.md files as callable REST APIs.</p></li></ul><h4>Meme of the week</h4><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Vrb4!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F30d91fdc-3167-4466-803e-f913a5c74757_864x877.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Vrb4!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F30d91fdc-3167-4466-803e-f913a5c74757_864x877.png 424w, https://substackcdn.com/image/fetch/$s_!Vrb4!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F30d91fdc-3167-4466-803e-f913a5c74757_864x877.png 848w, https://substackcdn.com/image/fetch/$s_!Vrb4!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F30d91fdc-3167-4466-803e-f913a5c74757_864x877.png 1272w, https://substackcdn.com/image/fetch/$s_!Vrb4!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F30d91fdc-3167-4466-803e-f913a5c74757_864x877.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Vrb4!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F30d91fdc-3167-4466-803e-f913a5c74757_864x877.png" width="432" height="438.5" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/30d91fdc-3167-4466-803e-f913a5c74757_864x877.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:877,&quot;width&quot;:864,&quot;resizeWidth&quot;:432,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Average Windows Experience&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Average Windows Experience" title="Average Windows Experience" srcset="https://substackcdn.com/image/fetch/$s_!Vrb4!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F30d91fdc-3167-4466-803e-f913a5c74757_864x877.png 424w, https://substackcdn.com/image/fetch/$s_!Vrb4!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F30d91fdc-3167-4466-803e-f913a5c74757_864x877.png 848w, https://substackcdn.com/image/fetch/$s_!Vrb4!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F30d91fdc-3167-4466-803e-f913a5c74757_864x877.png 1272w, https://substackcdn.com/image/fetch/$s_!Vrb4!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F30d91fdc-3167-4466-803e-f913a5c74757_864x877.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div class="pullquote"><p> If you have feedback to share or are interested in <a href="https://www.devopsbulletin.com/p/sponsorships">sponsoring</a> this newsletter, feel free to reach out via <em><a href="https://www.linkedin.com/in/mlabouardy/">LinkedIn</a></em> or simply reply to this email. </p></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.devopsbulletin.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading DevOps Bulletin! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[Digest #208: Axios Supply Chain Attack, Agentic Incident Response, LLMs on Kubernetes and VSCode Malwares]]></title><description><![CDATA[A critical axios npm compromise affecting millions of downloads, while teams began automating incident response with AI agents.]]></description><link>https://www.devopsbulletin.com/p/digest-208-axios-supply-chain-attack</link><guid isPermaLink="false">https://www.devopsbulletin.com/p/digest-208-axios-supply-chain-attack</guid><dc:creator><![CDATA[Mohamed Labouardy]]></dc:creator><pubDate>Fri, 03 Apr 2026 18:40:03 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!ycLG!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6ce7b762-e00a-441c-a96f-464632aa2bfd_544x500.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://www.iacconf.com/iacconf-2026?refid=DevOps-Bulletin&amp;utm_campaign=40984474-FY26%20-%20WW%20-%20Virtual%20Event%20-%20IaCConf%20-%20May%202026&amp;utm_source=DevOps-Bulletin&amp;utm_medium=paid_newsletter" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!cMSn!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3a6c02f1-19c9-4125-b185-7abd26d37a72_268x83.png 424w, https://substackcdn.com/image/fetch/$s_!cMSn!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3a6c02f1-19c9-4125-b185-7abd26d37a72_268x83.png 848w, https://substackcdn.com/image/fetch/$s_!cMSn!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3a6c02f1-19c9-4125-b185-7abd26d37a72_268x83.png 1272w, https://substackcdn.com/image/fetch/$s_!cMSn!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3a6c02f1-19c9-4125-b185-7abd26d37a72_268x83.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!cMSn!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3a6c02f1-19c9-4125-b185-7abd26d37a72_268x83.png" width="268" height="83" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/3a6c02f1-19c9-4125-b185-7abd26d37a72_268x83.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:83,&quot;width&quot;:268,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:&quot;https://www.iacconf.com/iacconf-2026?refid=DevOps-Bulletin&amp;utm_campaign=40984474-FY26%20-%20WW%20-%20Virtual%20Event%20-%20IaCConf%20-%20May%202026&amp;utm_source=DevOps-Bulletin&amp;utm_medium=paid_newsletter&quot;,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!cMSn!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3a6c02f1-19c9-4125-b185-7abd26d37a72_268x83.png 424w, https://substackcdn.com/image/fetch/$s_!cMSn!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3a6c02f1-19c9-4125-b185-7abd26d37a72_268x83.png 848w, https://substackcdn.com/image/fetch/$s_!cMSn!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3a6c02f1-19c9-4125-b185-7abd26d37a72_268x83.png 1272w, https://substackcdn.com/image/fetch/$s_!cMSn!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3a6c02f1-19c9-4125-b185-7abd26d37a72_268x83.png 1456w" sizes="100vw" fetchpriority="high"></picture><div></div></div></a></figure></div><p>Welcome to this week&#8217;s edition of the DevOps Bulletin.</p><p>The Axios npm library was compromised through a targeted attack on the maintainer&#8217;s computer, exposing how vulnerable open-source projects can be&#8230;</p>
      <p>
          <a href="https://www.devopsbulletin.com/p/digest-208-axios-supply-chain-attack">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[Digest #207: LiteLLM Malware Attack, Dropbox 87GB monorepo, Cursor's Security Agents and K8s One-Line Fix]]></title><description><![CDATA[The LiteLLM supply chain attack, Dropbox monorepo optimization, Postgres WAL debugging, Kubernetes performance fixes, and open source tools for LLM security.]]></description><link>https://www.devopsbulletin.com/p/digest-207-litellm-malware-attack</link><guid isPermaLink="false">https://www.devopsbulletin.com/p/digest-207-litellm-malware-attack</guid><dc:creator><![CDATA[Mohamed Labouardy]]></dc:creator><pubDate>Fri, 27 Mar 2026 16:41:51 GMT</pubDate><enclosure url="https://substackcdn.com/image/youtube/w_728,c_limit/wfeiCZK0mNs" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://www.iacconf.com/iacconf-2026?refid=DevOps-Bulletin&amp;utm_campaign=40984474-FY26%20-%20WW%20-%20Virtual%20Event%20-%20IaCConf%20-%20May%202026&amp;utm_source=DevOps-Bulletin&amp;utm_medium=paid_newsletter" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!cMSn!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3a6c02f1-19c9-4125-b185-7abd26d37a72_268x83.png 424w, https://substackcdn.com/image/fetch/$s_!cMSn!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3a6c02f1-19c9-4125-b185-7abd26d37a72_268x83.png 848w, https://substackcdn.com/image/fetch/$s_!cMSn!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3a6c02f1-19c9-4125-b185-7abd26d37a72_268x83.png 1272w, https://substackcdn.com/image/fetch/$s_!cMSn!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3a6c02f1-19c9-4125-b185-7abd26d37a72_268x83.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!cMSn!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3a6c02f1-19c9-4125-b185-7abd26d37a72_268x83.png" width="268" height="83" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/3a6c02f1-19c9-4125-b185-7abd26d37a72_268x83.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:83,&quot;width&quot;:268,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:&quot;https://www.iacconf.com/iacconf-2026?refid=DevOps-Bulletin&amp;utm_campaign=40984474-FY26%20-%20WW%20-%20Virtual%20Event%20-%20IaCConf%20-%20May%202026&amp;utm_source=DevOps-Bulletin&amp;utm_medium=paid_newsletter&quot;,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!cMSn!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3a6c02f1-19c9-4125-b185-7abd26d37a72_268x83.png 424w, https://substackcdn.com/image/fetch/$s_!cMSn!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3a6c02f1-19c9-4125-b185-7abd26d37a72_268x83.png 848w, https://substackcdn.com/image/fetch/$s_!cMSn!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3a6c02f1-19c9-4125-b185-7abd26d37a72_268x83.png 1272w, https://substackcdn.com/image/fetch/$s_!cMSn!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3a6c02f1-19c9-4125-b185-7abd26d37a72_268x83.png 1456w" sizes="100vw" fetchpriority="high"></picture><div></div></div></a></figure></div><p>Welcome to this week&#8217;s edition of the DevOps Bulletin.</p><p>Malware hit PyPI through a poisoned LiteLLM package last week, and the full minute-by-minute response took just 72 minutes from discovery to publ&#8230;</p>
      <p>
          <a href="https://www.devopsbulletin.com/p/digest-207-litellm-malware-attack">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[Digest #206: S3 Bucketsquatting Dead, AI Agents Writing Go, Reddit Kafka Migration and CI/CD Security]]></title><description><![CDATA[AWS S3 namespace protection, Reddit's petabyte Kafka migration to Kubernetes, AI agents writing Go, CI/CD pipeline security scanning, and AWS phishing campaigns.]]></description><link>https://www.devopsbulletin.com/p/digest-206-s3-bucketsquatting-dead</link><guid isPermaLink="false">https://www.devopsbulletin.com/p/digest-206-s3-bucketsquatting-dead</guid><dc:creator><![CDATA[Mohamed Labouardy]]></dc:creator><pubDate>Mon, 23 Mar 2026 09:11:42 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!7cWE!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb9d2fc5f-351f-4707-a8a1-39d9eded7427_2972x1522.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Welcome to this week&#8217;s edition of the DevOps Bulletin.</p><p>From S3 bucketsquatting finally being dead after a decade of exploitation, to Reddit migrating petabyte-scale Kafka from EC2 to Kubernetes with z&#8230;</p>
      <p>
          <a href="https://www.devopsbulletin.com/p/digest-206-s3-bucketsquatting-dead">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[Digest #205: GitHub Actions Exploitation, Terraform Internals, Passkeys Warning and Go Runtime]]></title><description><![CDATA[A bot exploiting GitHub Actions across Microsoft and CNCF projects, Terraform internals deep-dive, npm token theft via CI, and Go runtime scheduler explained.]]></description><link>https://www.devopsbulletin.com/p/digest-205-github-actions-exploitation</link><guid isPermaLink="false">https://www.devopsbulletin.com/p/digest-205-github-actions-exploitation</guid><dc:creator><![CDATA[Mohamed Labouardy]]></dc:creator><pubDate>Fri, 13 Mar 2026 19:04:44 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!iZ1J!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F46c67a81-a47a-42af-9c05-a761173e7711_1999x1091.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Welcome to this week&#8217;s edition of the DevOps Bulletin.</p><p>An autonomous bot spent 7 days exploiting GitHub Actions across Microsoft, DataDog, Aqua Security, and CNCF projects &#8212; exfiltrating tokens with w&#8230;</p>
      <p>
          <a href="https://www.devopsbulletin.com/p/digest-205-github-actions-exploitation">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[Digest #204: AWS Data Centers Hit, Kubernetes Full Course, LLM Caching and AI Pentesting]]></title><description><![CDATA[AWS data centers struck by drones in UAE, 2,863 Google API keys exposed to Gemini, LLM caching architectures, Terraform feature flags, and AI pentesting tools.]]></description><link>https://www.devopsbulletin.com/p/digest-204-aws-data-centers-hit-kubernetes</link><guid isPermaLink="false">https://www.devopsbulletin.com/p/digest-204-aws-data-centers-hit-kubernetes</guid><dc:creator><![CDATA[Mohamed Labouardy]]></dc:creator><pubDate>Fri, 06 Mar 2026 19:21:50 GMT</pubDate><enclosure url="https://substackcdn.com/image/youtube/w_728,c_limit/V-lI7AmusGs" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://events.spacelift.io/multiplayer-iac-solving-state-people-and-system-level-iac-challenge?refid=DevOps-Bulletin&amp;utm_campaign=37789623-FY26%20-%20Webinar%20-%20Multiplayer%20IaC&amp;utm_source=DevOps-Bulletin&amp;utm_medium=paid_newsletter" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!cMSn!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3a6c02f1-19c9-4125-b185-7abd26d37a72_268x83.png 424w, https://substackcdn.com/image/fetch/$s_!cMSn!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3a6c02f1-19c9-4125-b185-7abd26d37a72_268x83.png 848w, https://substackcdn.com/image/fetch/$s_!cMSn!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3a6c02f1-19c9-4125-b185-7abd26d37a72_268x83.png 1272w, https://substackcdn.com/image/fetch/$s_!cMSn!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3a6c02f1-19c9-4125-b185-7abd26d37a72_268x83.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!cMSn!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3a6c02f1-19c9-4125-b185-7abd26d37a72_268x83.png" width="268" height="83" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/3a6c02f1-19c9-4125-b185-7abd26d37a72_268x83.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:83,&quot;width&quot;:268,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:7558,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://events.spacelift.io/multiplayer-iac-solving-state-people-and-system-level-iac-challenge?refid=DevOps-Bulletin&amp;utm_campaign=37789623-FY26%20-%20Webinar%20-%20Multiplayer%20IaC&amp;utm_source=DevOps-Bulletin&amp;utm_medium=paid_newsletter&quot;,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://www.devopsbulletin.com/i/190122742?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3a6c02f1-19c9-4125-b185-7abd26d37a72_268x83.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!cMSn!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3a6c02f1-19c9-4125-b185-7abd26d37a72_268x83.png 424w, https://substackcdn.com/image/fetch/$s_!cMSn!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3a6c02f1-19c9-4125-b185-7abd26d37a72_268x83.png 848w, https://substackcdn.com/image/fetch/$s_!cMSn!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3a6c02f1-19c9-4125-b185-7abd26d37a72_268x83.png 1272w, https://substackcdn.com/image/fetch/$s_!cMSn!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3a6c02f1-19c9-4125-b185-7abd26d37a72_268x83.png 1456w" sizes="100vw" fetchpriority="high"></picture><div></div></div></a></figure></div><p>Welcome to this week&#8217;s edition of the DevOps Bulletin.</p><p>From Iranian drone strikes taking down AWS data centers in the UAE and Bahrain, to Truffle Security finding 2,863 live Google API keys on the pub&#8230;</p>
      <p>
          <a href="https://www.devopsbulletin.com/p/digest-204-aws-data-centers-hit-kubernetes">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[Digest #203: AWS 100K Credits, Scaling GitOps, Git inside Postgres and OpenClaw Security]]></title><description><![CDATA[Reducing Go agent binaries by 77% and saving 70% on S3 at petabyte scale, to automating RDS to Aurora migrations and scaling GitOps in the enterprise. Also, MCP server security and scaling GitOps.]]></description><link>https://www.devopsbulletin.com/p/digest-203-aws-100k-credits-scaling</link><guid isPermaLink="false">https://www.devopsbulletin.com/p/digest-203-aws-100k-credits-scaling</guid><dc:creator><![CDATA[Mohamed Labouardy]]></dc:creator><pubDate>Fri, 27 Feb 2026 16:37:30 GMT</pubDate><enclosure url="https://substackcdn.com/image/youtube/w_728,c_limit/GQ6piqfwr5c" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://hubs.li/Q044vwL-0" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!e7pv!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcecb7aea-d306-4ac3-98b1-f33ec3c0cb99_268x77.png 424w, https://substackcdn.com/image/fetch/$s_!e7pv!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcecb7aea-d306-4ac3-98b1-f33ec3c0cb99_268x77.png 848w, https://substackcdn.com/image/fetch/$s_!e7pv!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcecb7aea-d306-4ac3-98b1-f33ec3c0cb99_268x77.png 1272w, https://substackcdn.com/image/fetch/$s_!e7pv!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcecb7aea-d306-4ac3-98b1-f33ec3c0cb99_268x77.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!e7pv!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcecb7aea-d306-4ac3-98b1-f33ec3c0cb99_268x77.png" width="228" height="65.50746268656717" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/cecb7aea-d306-4ac3-98b1-f33ec3c0cb99_268x77.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:77,&quot;width&quot;:268,&quot;resizeWidth&quot;:228,&quot;bytes&quot;:9407,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://hubs.li/Q044vwL-0&quot;,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://www.devopsbulletin.com/i/189230465?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcecb7aea-d306-4ac3-98b1-f33ec3c0cb99_268x77.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!e7pv!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcecb7aea-d306-4ac3-98b1-f33ec3c0cb99_268x77.png 424w, https://substackcdn.com/image/fetch/$s_!e7pv!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcecb7aea-d306-4ac3-98b1-f33ec3c0cb99_268x77.png 848w, https://substackcdn.com/image/fetch/$s_!e7pv!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcecb7aea-d306-4ac3-98b1-f33ec3c0cb99_268x77.png 1272w, https://substackcdn.com/image/fetch/$s_!e7pv!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcecb7aea-d306-4ac3-98b1-f33ec3c0cb99_268x77.png 1456w" sizes="100vw" fetchpriority="high"></picture><div></div></div></a></figure></div><p>Welcome to this week&#8217;s edition of the DevOps Bulletin.</p><p>Big news this week includes an exclusive offer for DevOps Bulletin subscribers: up to <a href="https://hubs.li/Q044vwL-0">$100k in free credits</a> for building or scaling your stack on&#8230;</p>
      <p>
          <a href="https://www.devopsbulletin.com/p/digest-203-aws-100k-credits-scaling">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[Digest #202: Terraform Claude Skills, FinOps FOCUS 1.2, AI Fatigue for Cloud Engineers, and MCP for Web Data Extraction]]></title><description><![CDATA[Gaps in FOCUS 1.2 billing data, the truth about AI fatigue for cloud engineers, and the three AI skills that matter most. Plus, latest DevOps, FinOps, cloud security, Postgres, Docker, and projects.]]></description><link>https://www.devopsbulletin.com/p/digest-202-terraform-claude-skills</link><guid isPermaLink="false">https://www.devopsbulletin.com/p/digest-202-terraform-claude-skills</guid><dc:creator><![CDATA[Mohamed Labouardy]]></dc:creator><pubDate>Fri, 20 Feb 2026 16:28:30 GMT</pubDate><enclosure url="https://substackcdn.com/image/youtube/w_728,c_limit/yP8ELodU0zs" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://brightdata.com/ai/mcp-server?utm_source=brand&amp;utm_campaign=brnd-mkt_newsletter_devopsbulletin" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Udo0!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd08ee2c2-6f1c-4d62-93e0-236cd2673cc1_268x85.png 424w, https://substackcdn.com/image/fetch/$s_!Udo0!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd08ee2c2-6f1c-4d62-93e0-236cd2673cc1_268x85.png 848w, https://substackcdn.com/image/fetch/$s_!Udo0!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd08ee2c2-6f1c-4d62-93e0-236cd2673cc1_268x85.png 1272w, https://substackcdn.com/image/fetch/$s_!Udo0!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd08ee2c2-6f1c-4d62-93e0-236cd2673cc1_268x85.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Udo0!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd08ee2c2-6f1c-4d62-93e0-236cd2673cc1_268x85.png" width="268" height="85" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d08ee2c2-6f1c-4d62-93e0-236cd2673cc1_268x85.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:85,&quot;width&quot;:268,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:10218,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://brightdata.com/ai/mcp-server?utm_source=brand&amp;utm_campaign=brnd-mkt_newsletter_devopsbulletin&quot;,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://www.devopsbulletin.com/i/188620508?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd08ee2c2-6f1c-4d62-93e0-236cd2673cc1_268x85.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Udo0!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd08ee2c2-6f1c-4d62-93e0-236cd2673cc1_268x85.png 424w, https://substackcdn.com/image/fetch/$s_!Udo0!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd08ee2c2-6f1c-4d62-93e0-236cd2673cc1_268x85.png 848w, https://substackcdn.com/image/fetch/$s_!Udo0!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd08ee2c2-6f1c-4d62-93e0-236cd2673cc1_268x85.png 1272w, https://substackcdn.com/image/fetch/$s_!Udo0!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd08ee2c2-6f1c-4d62-93e0-236cd2673cc1_268x85.png 1456w" sizes="100vw" fetchpriority="high"></picture><div></div></div></a></figure></div><p>Welcome to this week&#8217;s edition of the DevOps Bulletin.</p><p>In this week&#8217;s news, we unpack the hidden friction inside FOCUS 1.2 and what happens when a clean FinOps specification collides with messy real b&#8230;</p>
      <p>
          <a href="https://www.devopsbulletin.com/p/digest-202-terraform-claude-skills">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[Digest #201: Heroku Shutdown, GitLab at Scale, DDoS with Golang, and AI Agents Security]]></title><description><![CDATA[Heroku&#8217;s effective shutdown, how GitLab deploys at massive scale, why Postgres postmaster doesn&#8217;t scale, scaling Kubernetes from zero, AWS Cost Categories, Terraform PR reviews and AI agents security.]]></description><link>https://www.devopsbulletin.com/p/digest-201-heroku-shutdown-gitlab</link><guid isPermaLink="false">https://www.devopsbulletin.com/p/digest-201-heroku-shutdown-gitlab</guid><dc:creator><![CDATA[Mohamed Labouardy]]></dc:creator><pubDate>Fri, 13 Feb 2026 17:13:53 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/0d439215-a74e-4062-8e85-16417b0ad191_697x500.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Welcome to this week&#8217;s edition of the DevOps Bulletin.</p><p>In this week&#8217;s news, we look at what Heroku&#8217;s &#8220;sustaining engineering&#8221; announcement really means for teams still running production workloads the&#8230;</p>
      <p>
          <a href="https://www.devopsbulletin.com/p/digest-201-heroku-shutdown-gitlab">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[Digest #200: Kubernetes in Container, Git Shitstorm, $5M Data Centers and SDLC Threat Framework]]></title><description><![CDATA[Why GitHub Actions is slowing teams down, what it really takes to run a $5M private data center. We also break down a new SDLC threat framework, why AI-driven SRE needs system topology, real-world Terraform practices at Preply, and deep technical guides on Kubernetes, PostgreSQL, supply-chain security, and production reliability.]]></description><link>https://www.devopsbulletin.com/p/digest-200-kubernetes-in-container</link><guid isPermaLink="false">https://www.devopsbulletin.com/p/digest-200-kubernetes-in-container</guid><dc:creator><![CDATA[Mohamed Labouardy]]></dc:creator><pubDate>Fri, 06 Feb 2026 16:18:17 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/041b1c16-3f2c-461c-bd45-b85f63ea03aa_675x499.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Welcome to this week&#8217;s edition of the DevOps Bulletin.</p><p>In this week&#8217;s news, we look at why GitHub Actions is becoming a serious productivity bottleneck for many teams, what it actually takes to own a &#8230;</p>
      <p>
          <a href="https://www.devopsbulletin.com/p/digest-200-kubernetes-in-container">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[Digest #199: Claude Skill for Terraform, Google SRE with Gemini, Postgres Tips and Moltbot Security]]></title><description><![CDATA[Why SRE may be replacing traditional software engineering, and how teams are improving Docker, Kubernetes, and cloud cost efficiency in production. We also cover Postgres best practices for AI agents.]]></description><link>https://www.devopsbulletin.com/p/digest-199-claude-skill-for-terraform</link><guid isPermaLink="false">https://www.devopsbulletin.com/p/digest-199-claude-skill-for-terraform</guid><dc:creator><![CDATA[Mohamed Labouardy]]></dc:creator><pubDate>Fri, 30 Jan 2026 20:12:17 GMT</pubDate><enclosure url="https://substackcdn.com/image/youtube/w_728,c_limit/kSno1-xOjwI" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://events.cyberhaven.com/winter-2026-launch/?utm_campaign=wbn-2026-02-03-product-launch-winter-2026&amp;utm_source=passionfroot&amp;utm_medium=paid-influencers&amp;utm_content=devopsbulletin" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Ag2e!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb0198cdc-2b06-4a9c-8a44-322cb3f843dd_268x87.png 424w, https://substackcdn.com/image/fetch/$s_!Ag2e!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb0198cdc-2b06-4a9c-8a44-322cb3f843dd_268x87.png 848w, https://substackcdn.com/image/fetch/$s_!Ag2e!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb0198cdc-2b06-4a9c-8a44-322cb3f843dd_268x87.png 1272w, https://substackcdn.com/image/fetch/$s_!Ag2e!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb0198cdc-2b06-4a9c-8a44-322cb3f843dd_268x87.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Ag2e!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb0198cdc-2b06-4a9c-8a44-322cb3f843dd_268x87.png" width="268" height="87" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b0198cdc-2b06-4a9c-8a44-322cb3f843dd_268x87.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:87,&quot;width&quot;:268,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:8764,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://events.cyberhaven.com/winter-2026-launch/?utm_campaign=wbn-2026-02-03-product-launch-winter-2026&amp;utm_source=passionfroot&amp;utm_medium=paid-influencers&amp;utm_content=devopsbulletin&quot;,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://www.devopsbulletin.com/i/186314049?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb0198cdc-2b06-4a9c-8a44-322cb3f843dd_268x87.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Ag2e!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb0198cdc-2b06-4a9c-8a44-322cb3f843dd_268x87.png 424w, https://substackcdn.com/image/fetch/$s_!Ag2e!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb0198cdc-2b06-4a9c-8a44-322cb3f843dd_268x87.png 848w, https://substackcdn.com/image/fetch/$s_!Ag2e!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb0198cdc-2b06-4a9c-8a44-322cb3f843dd_268x87.png 1272w, https://substackcdn.com/image/fetch/$s_!Ag2e!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb0198cdc-2b06-4a9c-8a44-322cb3f843dd_268x87.png 1456w" sizes="100vw" fetchpriority="high"></picture><div></div></div></a></figure></div><p>Welcome to this week&#8217;s edition of the DevOps Bulletin.</p><p>We open with a growing problem security teams are quietly struggling with. AI tools are <a href="https://events.cyberhaven.com/winter-2026-launch/?utm_campaign=wbn-2026-02-03-product-launch-winter-2026&amp;utm_source=passionfroot&amp;utm_medium=paid-influencers&amp;utm_content=devopsbulletin">moving sensitive data</a> across SaaS and internal systems in&#8230;</p>
      <p>
          <a href="https://www.devopsbulletin.com/p/digest-199-claude-skill-for-terraform">
              Read more
          </a>
      </p>
   ]]></content:encoded></item></channel></rss>