<?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>Sun, 02 Aug 2026 20:39:15 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 #225: GitHub Actions abuse powers a cPanel exploit wave, AWS's Claude apps gateway and auto-applied Terraform]]></title><description><![CDATA[Also: an AI SRE agent that triages incidents before you open your laptop, why your pod died of "out of ephemeral storage" on a half-empty disk, and the one Redis key no amount of sharding can save.]]></description><link>https://www.devopsbulletin.com/p/digest-225-github-actions-abuse-powers</link><guid isPermaLink="false">https://www.devopsbulletin.com/p/digest-225-github-actions-abuse-powers</guid><dc:creator><![CDATA[Mohamed Labouardy]]></dc:creator><pubDate>Fri, 31 Jul 2026 16:17:29 GMT</pubDate><enclosure url="https://substackcdn.com/image/youtube/w_728,c_limit/0G5_w2lX02o" 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/the-best-infrastructure-platform-stays-out-of-your-way?refid=DevOpsBulletin&amp;utm_campaign=49404317-FY26%20-%20Webinar%20-%20Rogo%20found%20an%20IaC%20platform%20-%20August%202026&amp;utm_source=DevOpsBulletin&amp;utm_medium=email&amp;utm_content=Email%20placement%20-%20Webinar%20-%20Rogo%20Customer%20Webinar%20-%20Variation%20A" 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="154" height="47.69402985074627" 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;:154,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:&quot;https://events.spacelift.io/the-best-infrastructure-platform-stays-out-of-your-way?refid=DevOpsBulletin&amp;utm_campaign=49404317-FY26%20-%20Webinar%20-%20Rogo%20found%20an%20IaC%20platform%20-%20August%202026&amp;utm_source=DevOpsBulletin&amp;utm_medium=email&amp;utm_content=Email%20placement%20-%20Webinar%20-%20Rogo%20Customer%20Webinar%20-%20Variation%20A&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><blockquote><p><span>Attackers turned compromised PHP repositories into a botnet this week, using GitHub Actions runners to scan and exploit cPanel and WHM servers at scale.<br>It is the clearest sign yet that your CI minutes are somebody else's free infrastructure.<br>Elsewhere, PlanetScale explains how 768 database servers manage to look like one, and AWS shipped a control plane that finally gives platform teams a policy and cost story for Claude Code.</span></p></blockquote><h4><strong>Learn Rogo&#8217;s IaC approach</strong></h4><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://events.spacelift.io/the-best-infrastructure-platform-stays-out-of-your-way?refid=DevOpsBulletin&amp;utm_campaign=49404317-FY26%20-%20Webinar%20-%20Rogo%20found%20an%20IaC%20platform%20-%20August%202026&amp;utm_source=DevOpsBulletin&amp;utm_medium=email&amp;utm_content=Email%20placement%20-%20Webinar%20-%20Rogo%20Customer%20Webinar%20-%20Variation%20A" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!KXlW!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55daec34-6275-47cb-b9fb-cf05d39867c8_2400x1280.png 424w, https://substackcdn.com/image/fetch/$s_!KXlW!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55daec34-6275-47cb-b9fb-cf05d39867c8_2400x1280.png 848w, https://substackcdn.com/image/fetch/$s_!KXlW!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55daec34-6275-47cb-b9fb-cf05d39867c8_2400x1280.png 1272w, https://substackcdn.com/image/fetch/$s_!KXlW!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55daec34-6275-47cb-b9fb-cf05d39867c8_2400x1280.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!KXlW!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55daec34-6275-47cb-b9fb-cf05d39867c8_2400x1280.png" width="1456" height="777" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/55daec34-6275-47cb-b9fb-cf05d39867c8_2400x1280.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:777,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:3190557,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://events.spacelift.io/the-best-infrastructure-platform-stays-out-of-your-way?refid=DevOpsBulletin&amp;utm_campaign=49404317-FY26%20-%20Webinar%20-%20Rogo%20found%20an%20IaC%20platform%20-%20August%202026&amp;utm_source=DevOpsBulletin&amp;utm_medium=email&amp;utm_content=Email%20placement%20-%20Webinar%20-%20Rogo%20Customer%20Webinar%20-%20Variation%20A&quot;,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.devopsbulletin.com/i/209266292?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55daec34-6275-47cb-b9fb-cf05d39867c8_2400x1280.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_!KXlW!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55daec34-6275-47cb-b9fb-cf05d39867c8_2400x1280.png 424w, https://substackcdn.com/image/fetch/$s_!KXlW!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55daec34-6275-47cb-b9fb-cf05d39867c8_2400x1280.png 848w, https://substackcdn.com/image/fetch/$s_!KXlW!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55daec34-6275-47cb-b9fb-cf05d39867c8_2400x1280.png 1272w, https://substackcdn.com/image/fetch/$s_!KXlW!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55daec34-6275-47cb-b9fb-cf05d39867c8_2400x1280.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 aria-hidden="true" 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><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>How do platform engineers keep pace with a growing development team at a $2B AI company? On August 11, Lawrence Aiello, Platform Engineering Lead at Rogo, shares how. He&#8217;ll cover the modern IaC platforms Rogo weighed, the criteria that mattered, and how infrastructure that runs without attention frees his team to focus on enabling developers. Take Rogo&#8217;s criteria into your own platform decision - <a href="https://events.spacelift.io/the-best-infrastructure-platform-stays-out-of-your-way?refid=DevOpsBulletin&amp;utm_campaign=49404317-FY26%20-%20Webinar%20-%20Rogo%20found%20an%20IaC%20platform%20-%20August%202026&amp;utm_source=DevOpsBulletin&amp;utm_medium=email&amp;utm_content=Email%20placement%20-%20Webinar%20-%20Rogo%20Customer%20Webinar%20-%20Variation%20A">Register Now</a></p><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><h4><strong>Newsworthy stories</strong></h4><ul><li><p><strong><a href="https://socket.dev/blog/github-actions-abuse-powers-cpanel-and-whm-exploitation?utm_source=devopsbulletin.com">Large-scale GitHub Actions abuse powers a distributed cPanel and WHM exploitation campaign</a></strong></p></li><li><p><strong><a href="https://planetscale.com/blog/making-768-servers-look-like-1?utm_source=devopsbulletin.com">Making 768 servers look like 1</a></strong></p></li><li><p><strong><a href="https://aws.amazon.com/blogs/machine-learning/introducing-claude-apps-gateway-for-aws/?utm_source=devopsbulletin.com">Introducing Claude apps gateway for AWS</a></strong></p></li><li><p><strong><a href="https://codecraftdiary.com/2026/07/26/merge-conflicts-process-problem?utm_source=devopsbulletin.com">Merge conflicts are a process problem, not a Git problem</a></strong></p></li><li><p><strong><a href="https://www.fairwinds.com/blog/why-kubernetes-experts-choose-managed-kubernetes-as-a-service?utm_source=devopsbulletin.com">Why do Kubernetes experts choose managed Kubernetes-as-a-service?</a></strong></p></li></ul><h4><strong>Tutorials of the week</strong></h4><ul><li><p><strong><a href="https://aws.amazon.com/blogs/mt/automate-ci-cd-troubleshooting-with-aws-devops-agent-and-github?utm_source=devopsbulletin.com">Automate CI/CD troubleshooting with AWS DevOps Agent and GitHub</a></strong></p></li><li><p><strong><a href="https://www.bejarano.io/terraform-autoapply?utm_source=devopsbulletin.com">Safe Terraform auto-apply with conftest</a></strong></p></li><li><p><strong><a href="https://cloudnativenow.com/contributed-content/a-green-kubernetes-deployment-does-not-mean-a-healthy-application?utm_source=devopsbulletin.com">A green Kubernetes deployment does not mean a healthy application</a></strong></p></li><li><p><strong><a href="https://hackernoon.com/i-built-an-ai-sre-agent-that-diagnoses-incidents-before-i-open-my-laptop?utm_source=devopsbulletin.com">I built an AI SRE agent that diagnoses incidents before I open my laptop</a></strong></p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://hackernoon.com/i-built-an-ai-sre-agent-that-diagnoses-incidents-before-i-open-my-laptop?utm_source=devopsbulletin.com" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!afED!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd8335f85-a17e-4114-b487-b7deece2c9ed_1536x1024.jpeg 424w, https://substackcdn.com/image/fetch/$s_!afED!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd8335f85-a17e-4114-b487-b7deece2c9ed_1536x1024.jpeg 848w, https://substackcdn.com/image/fetch/$s_!afED!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd8335f85-a17e-4114-b487-b7deece2c9ed_1536x1024.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!afED!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd8335f85-a17e-4114-b487-b7deece2c9ed_1536x1024.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!afED!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd8335f85-a17e-4114-b487-b7deece2c9ed_1536x1024.jpeg" width="1456" height="971" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d8335f85-a17e-4114-b487-b7deece2c9ed_1536x1024.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:971,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Architecture diagram&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:&quot;https://hackernoon.com/i-built-an-ai-sre-agent-that-diagnoses-incidents-before-i-open-my-laptop?utm_source=devopsbulletin.com&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" title="Architecture diagram" srcset="https://substackcdn.com/image/fetch/$s_!afED!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd8335f85-a17e-4114-b487-b7deece2c9ed_1536x1024.jpeg 424w, https://substackcdn.com/image/fetch/$s_!afED!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd8335f85-a17e-4114-b487-b7deece2c9ed_1536x1024.jpeg 848w, https://substackcdn.com/image/fetch/$s_!afED!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd8335f85-a17e-4114-b487-b7deece2c9ed_1536x1024.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!afED!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd8335f85-a17e-4114-b487-b7deece2c9ed_1536x1024.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 aria-hidden="true" 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><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://itnext.io/your-pod-died-of-out-of-ephemeral-storage-but-the-disk-is-half-empty-775851ccd08c?utm_source=devopsbulletin.com">Your pod died of &#8220;out of ephemeral storage&#8221; but the disk is half empty</a></strong></p></li><li><p><strong><a href="https://github.com/alexpusch/rust-magic-patterns/tree/master/delightful-integration-tests?utm_source=devopsbulletin.com">Delightful integration tests in Rust</a></strong></p></li><li><p><strong><a href="https://claude.com/blog/ciso-guide-to-agentic-ai?utm_source=devopsbulletin.com">A CISO&#8217;s guide to agentic AI</a></strong></p></li></ul><h4><strong>Videos of the week</strong></h4><div id="youtube2-0G5_w2lX02o" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;0G5_w2lX02o&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/0G5_w2lX02o?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><strong>Projects of the week</strong></h4><ul><li><p><strong><a href="https://github.com/omarismail/terraform-plan-tui?utm_source=devopsbulletin.com">tfplantui</a></strong> turns a Terraform plan into a navigable dependency graph in your terminal.</p></li><li><p><strong><a href="https://github.com/betocmn/widen?utm_source=devopsbulletin.com">Widen</a></strong> is a native Postgres GUI for macOS that answers questions in plain English and shows you the SQL before it runs.</p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://github.com/betocmn/widen?utm_source=devopsbulletin.com" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!tib2!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd59f5904-06d3-48fc-a1b7-ea741b1ba922_1226x473.png 424w, https://substackcdn.com/image/fetch/$s_!tib2!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd59f5904-06d3-48fc-a1b7-ea741b1ba922_1226x473.png 848w, https://substackcdn.com/image/fetch/$s_!tib2!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd59f5904-06d3-48fc-a1b7-ea741b1ba922_1226x473.png 1272w, https://substackcdn.com/image/fetch/$s_!tib2!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd59f5904-06d3-48fc-a1b7-ea741b1ba922_1226x473.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!tib2!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd59f5904-06d3-48fc-a1b7-ea741b1ba922_1226x473.png" width="1226" height="473" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d59f5904-06d3-48fc-a1b7-ea741b1ba922_1226x473.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:473,&quot;width&quot;:1226,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:370216,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://github.com/betocmn/widen?utm_source=devopsbulletin.com&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.devopsbulletin.com/i/209266292?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd59f5904-06d3-48fc-a1b7-ea741b1ba922_1226x473.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_!tib2!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd59f5904-06d3-48fc-a1b7-ea741b1ba922_1226x473.png 424w, https://substackcdn.com/image/fetch/$s_!tib2!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd59f5904-06d3-48fc-a1b7-ea741b1ba922_1226x473.png 848w, https://substackcdn.com/image/fetch/$s_!tib2!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd59f5904-06d3-48fc-a1b7-ea741b1ba922_1226x473.png 1272w, https://substackcdn.com/image/fetch/$s_!tib2!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd59f5904-06d3-48fc-a1b7-ea741b1ba922_1226x473.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 aria-hidden="true" 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><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/agavra/tuicr?utm_source=devopsbulletin.com">tuicr</a></strong> reviews code in a vim-keybound TUI and exports the result straight to GitHub or GitLab.</p></li><li><p><strong><a href="https://github.com/raesene/zeedumper?utm_source=devopsbulletin.com">zeedumper</a></strong> dumps the flagz, statusz and configz pages from Kubernetes components through the API server proxy.</p></li><li><p><strong><a href="https://github.com/ironsh/iron-proxy?utm_source=devopsbulletin.com">iron-proxy</a></strong> blocks all egress from untrusted workloads by default and swaps sandbox tokens for real credentials at the boundary.</p></li></ul><h4><strong>Meme of the week</strong></h4><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!vAcF!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4aa3fc26-f0c5-4c55-a04d-968bdb1b1009_804x867.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!vAcF!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4aa3fc26-f0c5-4c55-a04d-968bdb1b1009_804x867.png 424w, https://substackcdn.com/image/fetch/$s_!vAcF!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4aa3fc26-f0c5-4c55-a04d-968bdb1b1009_804x867.png 848w, https://substackcdn.com/image/fetch/$s_!vAcF!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4aa3fc26-f0c5-4c55-a04d-968bdb1b1009_804x867.png 1272w, https://substackcdn.com/image/fetch/$s_!vAcF!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4aa3fc26-f0c5-4c55-a04d-968bdb1b1009_804x867.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!vAcF!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4aa3fc26-f0c5-4c55-a04d-968bdb1b1009_804x867.png" width="356" height="383.8955223880597" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4aa3fc26-f0c5-4c55-a04d-968bdb1b1009_804x867.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:867,&quot;width&quot;:804,&quot;resizeWidth&quot;:356,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;It Deleted The Assertion&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="It Deleted The Assertion" title="It Deleted The Assertion" srcset="https://substackcdn.com/image/fetch/$s_!vAcF!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4aa3fc26-f0c5-4c55-a04d-968bdb1b1009_804x867.png 424w, https://substackcdn.com/image/fetch/$s_!vAcF!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4aa3fc26-f0c5-4c55-a04d-968bdb1b1009_804x867.png 848w, https://substackcdn.com/image/fetch/$s_!vAcF!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4aa3fc26-f0c5-4c55-a04d-968bdb1b1009_804x867.png 1272w, https://substackcdn.com/image/fetch/$s_!vAcF!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4aa3fc26-f0c5-4c55-a04d-968bdb1b1009_804x867.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 aria-hidden="true" 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><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>]]></content:encoded></item><item><title><![CDATA[Digest #224: AsyncAPI npm packages hijacked in 8 minutes, 222 fake GitHub repos, an Azure tenant lost in an hour and the death of small PRs]]></title><description><![CDATA[Also inside: HashiCorp's HCL-native policy engine for Terraform, a $19-a-month hosting bill cut to zero, and a Kubernetes rewritten from scratch in Rust that passes 94% of conformance tests.]]></description><link>https://www.devopsbulletin.com/p/digest-224-asyncapi-npm-packages</link><guid isPermaLink="false">https://www.devopsbulletin.com/p/digest-224-asyncapi-npm-packages</guid><dc:creator><![CDATA[Mohamed Labouardy]]></dc:creator><pubDate>Fri, 24 Jul 2026 16:21:55 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!0gaP!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4abd926c-3860-4f20-97aa-c1aca6f662b9_1301x639.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<blockquote><p>An attacker opened 37 pull requests against AsyncAPI last week, and eight minutes after the malicious one landed, the CI secrets were gone and four npm packages with 3 million weekly downloads were shipping a three-stage payload. The same week, Socket mapped a network of 222 fake GitHub repos pushing a Go module that was really a Windows malware loader, and Sysdig walked through an Azure tenant that fell in about an hour because permissions live across five systems that don&#8217;t talk to each other. The most interesting read, though, might be Rootly explaining why they killed their two-year-old small-PR rule now that 80% of their PRs are written by agents.</p></blockquote><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><h4>Newsworthy stories</h4><ul><li><p><strong><a href="https://www.wiz.io/blog/m-red-team-asyncapi-supply-chain-compromise-via-github-actions?utm_source=devopsbulletin.com">AsyncAPI supply chain compromise via GitHub Actions</a></strong></p></li><li><p><strong><a href="https://socket.dev/blog/malicious-go-module-exposes-github-malware-lure-network?utm_source=devopsbulletin.com">Malicious Go module exposes GitHub malware lure network spanning 222 repositories</a></strong></p></li><li><p><strong><a href="https://www.sysdig.com/blog/no-single-pane-of-glass-anatomy-of-an-azure-permission-takeover?utm_source=devopsbulletin.com">Anatomy of an Azure permission takeover</a></strong></p></li><li><p><strong><a href="https://www.hashicorp.com/fr/blog/introducing-tfpolicy-a-declarative-policy-workflow-built-for-terraform?utm_source=devopsbulletin.com">Introducing a policy workflow built for Terraform</a></strong></p></li><li><p><strong><a href="https://rootly.com/blog/why-we-got-rid-of-our-small-pr-rule?utm_source=devopsbulletin.com">Why we got rid of our small-PR rule</a></strong></p></li><li><p><strong><a href="https://milanjovanovic.tech/blog/how-i-migrated-my-website-to-cloudflare-and-saved-228-dollars?utm_source=devopsbulletin.com">How I migrated my website to Cloudflare and saved $228</a></strong></p></li><li><p><strong><a href="https://www.honeycomb.io/blog/could-should-first-year-managing-sre-team?utm_source=devopsbulletin.com">The first year managing an SRE team</a></strong></p></li></ul><h4>Tutorials of the week</h4><ul><li><p><strong><a href="https://hatchet.run/blog/postgres-survival-guide?utm_source=devopsbulletin.com">The startup&#8217;s Postgres survival guide</a></strong></p></li><li><p><strong><a href="https://holdmybeersecurity.com/2026/07/14/hunting-malware-and-malicious-mcps-in-memory-on-kubernetes-with-fleetdm-osquery-yara/?utm_source=devopsbulletin.com">Hunting malware and malicious MCPs in memory on Kubernetes</a></strong></p></li><li><p><strong><a href="https://medium.com/@nejdetkadir/how-i-built-my-own-home-lab-a-single-node-kubernetes-platform-34bdf6a08a26?utm_source=devopsbulletin.com">How I built my own home-lab: a single-node Kubernetes platform</a></strong></p></li><li><p><strong><a href="https://aws.amazon.com/blogs/security/authenticate-legitimate-ai-agent-traffic-with-aws-waf-bot-control?utm_source=devopsbulletin.com">Authenticate legitimate AI agent traffic with AWS WAF Bot Control</a></strong></p></li><li><p><strong><a href="https://dev.to/mateenali66/finops-guardrails-at-provisioning-time-stop-paying-for-mistakes-you-could-have-blocked-in-terraform-2oep?utm_source=devopsbulletin.com">FinOps guardrails at provisioning time</a></strong></p></li><li><p><strong><a href="https://github.blog/security/6-security-settings-every-github-maintainer-should-enable-this-week/?utm_source=devopsbulletin.com">6 security settings every GitHub maintainer should enable this week</a></strong></p></li><li><p><strong><a href="https://www.cncf.io/blog/2026/07/22/multi-cluster-databases-on-kubernetes-architecture-and-deployment?utm_source=devopsbulletin.com">Multi-cluster databases on Kubernetes: architecture and deployment</a></strong></p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://www.cncf.io/blog/2026/07/22/multi-cluster-databases-on-kubernetes-architecture-and-deployment/" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!0gaP!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4abd926c-3860-4f20-97aa-c1aca6f662b9_1301x639.png 424w, https://substackcdn.com/image/fetch/$s_!0gaP!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4abd926c-3860-4f20-97aa-c1aca6f662b9_1301x639.png 848w, https://substackcdn.com/image/fetch/$s_!0gaP!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4abd926c-3860-4f20-97aa-c1aca6f662b9_1301x639.png 1272w, https://substackcdn.com/image/fetch/$s_!0gaP!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4abd926c-3860-4f20-97aa-c1aca6f662b9_1301x639.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!0gaP!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4abd926c-3860-4f20-97aa-c1aca6f662b9_1301x639.png" width="1301" height="639" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4abd926c-3860-4f20-97aa-c1aca6f662b9_1301x639.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:639,&quot;width&quot;:1301,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Image: Failover in a multi-cluster MongoDB deployment using the Kubernetes MCS API&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:&quot;https://www.cncf.io/blog/2026/07/22/multi-cluster-databases-on-kubernetes-architecture-and-deployment/&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="Image: Failover in a multi-cluster MongoDB deployment using the Kubernetes MCS API" title="Image: Failover in a multi-cluster MongoDB deployment using the Kubernetes MCS API" srcset="https://substackcdn.com/image/fetch/$s_!0gaP!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4abd926c-3860-4f20-97aa-c1aca6f662b9_1301x639.png 424w, https://substackcdn.com/image/fetch/$s_!0gaP!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4abd926c-3860-4f20-97aa-c1aca6f662b9_1301x639.png 848w, https://substackcdn.com/image/fetch/$s_!0gaP!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4abd926c-3860-4f20-97aa-c1aca6f662b9_1301x639.png 1272w, https://substackcdn.com/image/fetch/$s_!0gaP!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4abd926c-3860-4f20-97aa-c1aca6f662b9_1301x639.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 aria-hidden="true" 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><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://nickjanetakis.com/blog/how-to-back-up-postgresql-in-docker-local-s3-and-plakar?utm_source=devopsbulletin.com">How to back up PostgreSQL in Docker</a></strong></p></li><li><p><strong><a href="https://dev.to/kalpit_swami/from-terraform-spaghetti-to-a-production-grade-gitops-platform-14i2?utm_source=devopsbulletin.com">From Terraform spaghetti to a production-grade GitOps platform</a></strong></p></li><li><p><strong><a href="https://joereis.substack.com/p/to-every-agent-its-own-database?utm_source=devopsbulletin.com">To every agent its own database</a></strong></p></li></ul><h4>Videos of the week</h4><div id="youtube2-aZ_y2M2OuEA" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;aZ_y2M2OuEA&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/aZ_y2M2OuEA?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-opbyn71T35I" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;opbyn71T35I&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/opbyn71T35I?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/cleatdev/cleat?utm_source=devopsbulletin.com">Cleat</a></strong> gives AI coding agents a per-project Docker sandbox so they can run fully autonomously without touching your host.</p></li><li><p><strong><a href="https://github.com/calfonso/rusternetes?utm_source=devopsbulletin.com">Rusternetes</a></strong> is a ground-up reimplementation of Kubernetes in Rust that already passes 94% of the official conformance suite.</p></li><li><p><strong><a href="https://github.com/Dicklesworthstone/destructive_command_guard?utm_source=devopsbulletin.com">Destructive Command Guard</a></strong> intercepts destructive shell commands before an AI agent gets to run them.</p></li><li><p><strong><a href="https://github.com/Cloudgeni-ai/opengeni?utm_source=devopsbulletin.com">OpenGeni</a></strong> is a self-hostable agent runtime with durable sessions, human approvals, and governed credentials.</p></li><li><p><strong><a href="https://github.com/fatedier/frp?utm_source=devopsbulletin.com">frp</a></strong> exposes a local server sitting behind NAT or a firewall to the internet.</p></li><li><p><strong><a href="https://github.com/backnotprop/plannotator?utm_source=devopsbulletin.com">Plannotator</a></strong> is a local browser UI for marking up an agent&#8217;s plans and diffs, then sending the feedback straight back to it.</p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://github.com/backnotprop/plannotator?utm_source=devopsbulletin.com" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!uUuI!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb119a67f-9d53-4a96-9466-910a33df8f68_1995x1261.webp 424w, https://substackcdn.com/image/fetch/$s_!uUuI!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb119a67f-9d53-4a96-9466-910a33df8f68_1995x1261.webp 848w, https://substackcdn.com/image/fetch/$s_!uUuI!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb119a67f-9d53-4a96-9466-910a33df8f68_1995x1261.webp 1272w, https://substackcdn.com/image/fetch/$s_!uUuI!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb119a67f-9d53-4a96-9466-910a33df8f68_1995x1261.webp 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!uUuI!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb119a67f-9d53-4a96-9466-910a33df8f68_1995x1261.webp" width="1456" height="920" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b119a67f-9d53-4a96-9466-910a33df8f68_1995x1261.webp&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:920,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:177030,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/webp&quot;,&quot;href&quot;:&quot;https://github.com/backnotprop/plannotator?utm_source=devopsbulletin.com&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.devopsbulletin.com/i/208180429?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb119a67f-9d53-4a96-9466-910a33df8f68_1995x1261.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_!uUuI!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb119a67f-9d53-4a96-9466-910a33df8f68_1995x1261.webp 424w, https://substackcdn.com/image/fetch/$s_!uUuI!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb119a67f-9d53-4a96-9466-910a33df8f68_1995x1261.webp 848w, https://substackcdn.com/image/fetch/$s_!uUuI!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb119a67f-9d53-4a96-9466-910a33df8f68_1995x1261.webp 1272w, https://substackcdn.com/image/fetch/$s_!uUuI!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb119a67f-9d53-4a96-9466-910a33df8f68_1995x1261.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 aria-hidden="true" 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><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/newren/git-filter-repo?utm_source=devopsbulletin.com">git-filter-repo</a></strong> rewrites Git history to extract subdirectories, rename paths, or strip secrets.</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_!2Sa3!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a509471-4199-4478-8435-d588abbd0e3f_1080x529.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!2Sa3!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a509471-4199-4478-8435-d588abbd0e3f_1080x529.jpeg 424w, https://substackcdn.com/image/fetch/$s_!2Sa3!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a509471-4199-4478-8435-d588abbd0e3f_1080x529.jpeg 848w, https://substackcdn.com/image/fetch/$s_!2Sa3!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a509471-4199-4478-8435-d588abbd0e3f_1080x529.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!2Sa3!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a509471-4199-4478-8435-d588abbd0e3f_1080x529.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!2Sa3!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a509471-4199-4478-8435-d588abbd0e3f_1080x529.jpeg" width="553" height="270.8675925925926" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2a509471-4199-4478-8435-d588abbd0e3f_1080x529.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:529,&quot;width&quot;:1080,&quot;resizeWidth&quot;:553,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Skill Me Daddy&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="Skill Me Daddy" title="Skill Me Daddy" srcset="https://substackcdn.com/image/fetch/$s_!2Sa3!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a509471-4199-4478-8435-d588abbd0e3f_1080x529.jpeg 424w, https://substackcdn.com/image/fetch/$s_!2Sa3!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a509471-4199-4478-8435-d588abbd0e3f_1080x529.jpeg 848w, https://substackcdn.com/image/fetch/$s_!2Sa3!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a509471-4199-4478-8435-d588abbd0e3f_1080x529.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!2Sa3!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a509471-4199-4478-8435-d588abbd0e3f_1080x529.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 aria-hidden="true" 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><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>I advise infra, devtools, and AI startups on AI product strategy, cloud security/FinOps, and tech M&amp;A.  If that's you, just reply to this email.</p></div>]]></content:encoded></item><item><title><![CDATA[Digest #223: AWS bills a user $140B, a kubelet leak in Kubernetes 1.36, Slack's Shipyard EC2 platform and pods vs AI agents]]></title><description><![CDATA[Plus the four horsemen behind thousands of Postgres outages, how Uber solved the identity crisis for AI agents, and catching full table scans in SQLite before they catch you.]]></description><link>https://www.devopsbulletin.com/p/digest-223-aws-bills-a-user-140b</link><guid isPermaLink="false">https://www.devopsbulletin.com/p/digest-223-aws-bills-a-user-140b</guid><dc:creator><![CDATA[Mohamed Labouardy]]></dc:creator><pubDate>Fri, 17 Jul 2026 16:20:58 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!Oruh!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F00a3ac9d-1640-4269-af9b-58adec4e8541_600x504.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://spacelift.io/infrastructure-automation-survey-2026?utm_campaign=48496167-FY26%20-%20WW%20-%20Strategic%20-%20infrastructure%20Automation%20Report%202026&amp;utm_source=DevOps-Bulletin&amp;utm_medium=email&amp;utm_content=DevOps%20Bulletin%20-%20Infrastructure%20automation%20survey" 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="192" height="59.46268656716418" 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;:192,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:&quot;https://spacelift.io/infrastructure-automation-survey-2026?utm_campaign=48496167-FY26%20-%20WW%20-%20Strategic%20-%20infrastructure%20Automation%20Report%202026&amp;utm_source=DevOps-Bulletin&amp;utm_medium=email&amp;utm_content=DevOps%20Bulletin%20-%20Infrastructure%20automation%20survey&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><blockquote><p>Someone opened their AWS console this week to a billing alert projecting $140 billion for the month, on an account that normally spends $2-3 on S3. Underneath the meme-worthy screenshot, the real theme was infrastructure hitting its limits: a kubelet memory leak in Kubernetes 1.36, four recurring failure patterns behind thousands of Postgres outages, and Slack rebuilding its entire EC2 fleet management from scratch. And with half this week&#8217;s tutorials about giving AI agents identity, memory, and APIs, the CNCF is already asking whether a pod is even the right place to run one.</p></blockquote><h4><strong>AI is hitting your infra faster than you can govern it</strong></h4><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://spacelift.io/infrastructure-automation-survey-2026?utm_campaign=48496167-FY26%20-%20WW%20-%20Strategic%20-%20infrastructure%20Automation%20Report%202026&amp;utm_source=DevOps-Bulletin&amp;utm_medium=email&amp;utm_content=DevOps%20Bulletin%20-%20Infrastructure%20automation%20survey" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!F_XN!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5d65436-2cae-48bd-ad69-525e26d35c7b_1200x640.png 424w, https://substackcdn.com/image/fetch/$s_!F_XN!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5d65436-2cae-48bd-ad69-525e26d35c7b_1200x640.png 848w, https://substackcdn.com/image/fetch/$s_!F_XN!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5d65436-2cae-48bd-ad69-525e26d35c7b_1200x640.png 1272w, https://substackcdn.com/image/fetch/$s_!F_XN!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5d65436-2cae-48bd-ad69-525e26d35c7b_1200x640.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!F_XN!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5d65436-2cae-48bd-ad69-525e26d35c7b_1200x640.png" width="1200" height="640" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d5d65436-2cae-48bd-ad69-525e26d35c7b_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;:500063,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://spacelift.io/infrastructure-automation-survey-2026?utm_campaign=48496167-FY26%20-%20WW%20-%20Strategic%20-%20infrastructure%20Automation%20Report%202026&amp;utm_source=DevOps-Bulletin&amp;utm_medium=email&amp;utm_content=DevOps%20Bulletin%20-%20Infrastructure%20automation%20survey&quot;,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.devopsbulletin.com/i/207428924?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5d65436-2cae-48bd-ad69-525e26d35c7b_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_!F_XN!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5d65436-2cae-48bd-ad69-525e26d35c7b_1200x640.png 424w, https://substackcdn.com/image/fetch/$s_!F_XN!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5d65436-2cae-48bd-ad69-525e26d35c7b_1200x640.png 848w, https://substackcdn.com/image/fetch/$s_!F_XN!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5d65436-2cae-48bd-ad69-525e26d35c7b_1200x640.png 1272w, https://substackcdn.com/image/fetch/$s_!F_XN!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5d65436-2cae-48bd-ad69-525e26d35c7b_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 aria-hidden="true" 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><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 is reshaping infrastructure, but the teams winning aren't adopting fastest, they're governing best. Spacelift surveyed 406 infrastructure and platform engineering leaders and found 93% have already had an AI-caused incident, while only 30% have a formal AI policy. The report reveals what separates the Pioneers, from platform engineering to the AI-specific signals most teams still aren't tracking.</p><p><strong><a href="https://spacelift.io/infrastructure-automation-survey-2026?utm_campaign=48496167-FY26%20-%20WW%20-%20Strategic%20-%20infrastructure%20Automation%20Report%202026&amp;utm_source=DevOps-Bulletin&amp;utm_medium=email&amp;utm_content=DevOps%20Bulletin%20-%20Infrastructure%20automation%20survey">Download the report to see what the most advanced teams do differently.</a></strong></p><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><h4>Newsworthy stories</h4><ul><li><p><strong><a href="https://news.ycombinator.com/item?id=48945606&amp;utm_source=devopsbulletin.com">Just got an AWS billing alert projecting my monthly cost at $140B</a></strong></p></li><li><p><strong><a href="https://heyoncall.com/blog/fixing-kubernetes-kubelet-memory-leak?utm_source=devopsbulletin.com">Fixing a kubelet memory leak in Kubernetes 1.36</a></strong></p></li><li><p><strong><a href="https://medium.com/@meSATYA95/caught-in-the-octopus-trap-inside-the-unpatched-argocd-rce-that-leads-to-k8s-cluster-takeover-a4d7f65acb4a?utm_source=devopsbulletin.com">Inside the unpatched Argo CD RCE that leads to K8s cluster takeover</a></strong></p></li><li><p><strong><a href="https://www.cncf.io/blog/2026/07/14/is-a-pod-the-right-deployment-unit-for-an-ai-agent?utm_source=devopsbulletin.com">Is a pod the right deployment unit for an AI agent?</a></strong></p></li><li><p><strong><a href="https://slack.engineering/shipyard-how-we-built-slacks-next-generation-ec2-platform/?utm_source=devopsbulletin.com">How we built Slack&#8217;s next-generation EC2 platform</a></strong></p></li><li><p><strong><a href="https://malisper.me/the-four-horsemen-behind-thousands-of-postgres-outages/?utm_source=devopsbulletin.com">The four horsemen behind thousands of Postgres outages</a></strong></p></li><li><p><strong><a href="https://practicaldatamodeling.substack.com/p/the-database-is-not-the-data-model?utm_source=devopsbulletin.com">The database is not the data model</a></strong></p></li></ul><h4>Tutorials of the week</h4><ul><li><p><strong><a href="https://www.dbos.dev/blog/making-postgres-queues-scale?utm_source=devopsbulletin.com">Just use Postgres for job queues</a></strong></p></li><li><p><strong><a href="https://dataengineeringcentral.substack.com/p/cloudflare-as-a-data-platform?utm_source=devopsbulletin.com">Cloudflare as a data platform?</a></strong></p></li><li><p><strong><a href="https://spacelift.io/blog/terraform-state-encryption?utm_source=devopsbulletin.com">How to encrypt Terraform state files</a></strong></p></li><li><p><strong><a href="https://www.decodingai.com/p/how-to-implement-a-unified-memory-from-scratch?utm_source=devopsbulletin.com">Implement a unified memory from scratch via knowledge graphs</a></strong></p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://www.decodingai.com/p/how-to-implement-a-unified-memory-from-scratch?utm_source=devopsbulletin.com" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Oruh!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F00a3ac9d-1640-4269-af9b-58adec4e8541_600x504.png 424w, https://substackcdn.com/image/fetch/$s_!Oruh!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F00a3ac9d-1640-4269-af9b-58adec4e8541_600x504.png 848w, https://substackcdn.com/image/fetch/$s_!Oruh!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F00a3ac9d-1640-4269-af9b-58adec4e8541_600x504.png 1272w, https://substackcdn.com/image/fetch/$s_!Oruh!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F00a3ac9d-1640-4269-af9b-58adec4e8541_600x504.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Oruh!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F00a3ac9d-1640-4269-af9b-58adec4e8541_600x504.png" width="600" height="504" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/00a3ac9d-1640-4269-af9b-58adec4e8541_600x504.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:504,&quot;width&quot;:600,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:102035,&quot;alt&quot;:&quot;The full dataflow &#8212; data pipeline, memory pipeline, one MongoDB engine, the MCP server, and the harness with its skills.&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://www.decodingai.com/p/how-to-implement-a-unified-memory-from-scratch?utm_source=devopsbulletin.com&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="The full dataflow &#8212; data pipeline, memory pipeline, one MongoDB engine, the MCP server, and the harness with its skills." title="The full dataflow &#8212; data pipeline, memory pipeline, one MongoDB engine, the MCP server, and the harness with its skills." srcset="https://substackcdn.com/image/fetch/$s_!Oruh!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F00a3ac9d-1640-4269-af9b-58adec4e8541_600x504.png 424w, https://substackcdn.com/image/fetch/$s_!Oruh!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F00a3ac9d-1640-4269-af9b-58adec4e8541_600x504.png 848w, https://substackcdn.com/image/fetch/$s_!Oruh!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F00a3ac9d-1640-4269-af9b-58adec4e8541_600x504.png 1272w, https://substackcdn.com/image/fetch/$s_!Oruh!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F00a3ac9d-1640-4269-af9b-58adec4e8541_600x504.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 aria-hidden="true" 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><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.davidsobsessions.com/p/one-year-of-gomobile?utm_source=devopsbulletin.com">Using Go for mobile apps</a></strong></p></li><li><p><strong><a href="https://github.blog/ai-and-ml/github-copilot/automating-cross-repo-documentation-with-github-agentic-workflows?utm_source=devopsbulletin.com">Automating cross-repo documentation with GitHub Agentic Workflows</a></strong></p></li><li><p><strong><a href="https://aws.amazon.com/blogs/devops/automated-incident-remediation-with-aws-devops-agent-and-kiro-cli/?utm_source=devopsbulletin.com">Automated incident remediation with AWS DevOps Agent and Kiro CLI</a></strong></p></li><li><p><strong><a href="https://tenderlovemaking.com/2026/07/15/detecting-full-table-scans-with-sqlite?utm_source=devopsbulletin.com">Detecting full table scans with SQLite</a></strong></p></li><li><p><strong><a href="https://www.uber.com/us/en/blog/solving-the-agent-identity-crisis?utm_source=devopsbulletin.com">Solving the identity crisis for AI agents</a></strong></p></li><li><p><strong><a href="https://www.freestyle.sh/blog/opinion/designing-apis-for-agents?utm_source=devopsbulletin.com">Designing APIs for agents</a></strong></p></li></ul><h4>Videos of the week</h4><div id="youtube2-iH4KiqtXjQs" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;iH4KiqtXjQs&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/iH4KiqtXjQs?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-SxIgD1OfU_A" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;SxIgD1OfU_A&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/SxIgD1OfU_A?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/ctresb/portero?utm_source=devopsbulletin.com">Portero</a></strong> shows every listening port on your machine, which process owns it, and lets you kill it or block the port from a built-in firewall.</p></li><li><p><strong><a href="https://github.com/greybeam/greysight?utm_source=devopsbulletin.com">Greysight</a></strong> is an open-source dashboard for Snowflake cost observability that automatically suspends idle warehouses.</p></li></ul><ul><li><p><strong><a href="https://github.com/watzon/goshot?utm_source=devopsbulletin.com">Goshot</a></strong> generates polished code and terminal screenshots with syntax highlighting and automatic secret redaction.</p></li><li><p><strong><a href="https://github.com/vshulcz/deja-vu?utm_source=devopsbulletin.com">deja-vu</a></strong> is a memory index for coding agents that searches past session logs so they can recall previous solutions.</p></li><li><p><strong><a href="https://github.com/davesavic/pgsavvy?utm_source=devopsbulletin.com">pgsavvy</a></strong> is a terminal UI for PostgreSQL that works like &#8220;the lazygit for Postgres.&#8221;</p></li><li><p><strong><a href="https://github.com/khoj-ai/khoj?utm_source=devopsbulletin.com">Khoj</a></strong> is a self-hostable AI second brain for semantic search and chat over your own documents.</p></li><li><p><strong><a href="https://github.com/lobehub/lobehub?utm_source=devopsbulletin.com">LobeHub</a></strong> is a platform for managing a team of AI agents as coordinated, schedulable units of work.</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_!Cw7n!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb2c4ee0a-20cd-43f4-ba21-57a42699b221_500x500.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Cw7n!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb2c4ee0a-20cd-43f4-ba21-57a42699b221_500x500.jpeg 424w, https://substackcdn.com/image/fetch/$s_!Cw7n!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb2c4ee0a-20cd-43f4-ba21-57a42699b221_500x500.jpeg 848w, https://substackcdn.com/image/fetch/$s_!Cw7n!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb2c4ee0a-20cd-43f4-ba21-57a42699b221_500x500.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!Cw7n!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb2c4ee0a-20cd-43f4-ba21-57a42699b221_500x500.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Cw7n!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb2c4ee0a-20cd-43f4-ba21-57a42699b221_500x500.jpeg" width="424" height="424" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b2c4ee0a-20cd-43f4-ba21-57a42699b221_500x500.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:500,&quot;width&quot;:500,&quot;resizeWidth&quot;:424,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Efficient Tokenmaxxing&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="Efficient Tokenmaxxing" title="Efficient Tokenmaxxing" srcset="https://substackcdn.com/image/fetch/$s_!Cw7n!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb2c4ee0a-20cd-43f4-ba21-57a42699b221_500x500.jpeg 424w, https://substackcdn.com/image/fetch/$s_!Cw7n!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb2c4ee0a-20cd-43f4-ba21-57a42699b221_500x500.jpeg 848w, https://substackcdn.com/image/fetch/$s_!Cw7n!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb2c4ee0a-20cd-43f4-ba21-57a42699b221_500x500.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!Cw7n!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb2c4ee0a-20cd-43f4-ba21-57a42699b221_500x500.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 aria-hidden="true" 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><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>I advise infra, devtools, and AI startups on AI product strategy, cloud security/FinOps, and tech M&amp;A.  If that's you, just reply to this email.</p></div>]]></content:encoded></item><item><title><![CDATA[Digest #222: AI breaches AWS in 72 hours, GitHub's agent leaks private repos, Argo CD cluster takeover and Lambda MicroVMs replace CI runners]]></title><description><![CDATA[Plus why you shouldn't trust Trusted Publishing, running local models for agentic coding, and PR preview environments that cut staging costs 78%.]]></description><link>https://www.devopsbulletin.com/p/digest-222-ai-breaches-aws-in-72</link><guid isPermaLink="false">https://www.devopsbulletin.com/p/digest-222-ai-breaches-aws-in-72</guid><dc:creator><![CDATA[Mohamed Labouardy]]></dc:creator><pubDate>Fri, 10 Jul 2026 14:36:15 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!Akro!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fee6b55d5-e41b-409f-8d3f-a40c6f860e0b_800x421.webp" 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="186" height="52.05223880597015" 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;:186,&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><blockquote><p>A single attacker chained together application services, CI/CD pipelines, and secrets stores to compromise an entire AWS environment in 72 hours, and the responders tracking it say human-in-the-loop SIEM triage can&#8217;t keep pace with an AI moving that fast. The same week, GitHub&#8217;s AI agent was caught handing private repos to anyone who posted a nicely worded issue in a public repo, while an unpatched Argo CD flaw gave attackers full control of Kubernetes clusters. If you were counting on &#8220;Trusted Publishing&#8221; to keep your supply chain clean, one writeup this week argues that&#8217;s the wrong thing to trust.</p></blockquote><h4><strong>Platform engineering on autopilot</strong></h4><p><a href="https://www.mendral.com/?utm_source=devopsbulletin">Mendral</a><span> 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 - </span><a href="https://www.mendral.com/?utm_source=devopsbulletin">Try it out!</a></p><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><h4>Newsworthy stories</h4><ul><li><p><strong><a href="https://www.darkreading.com/cloud-security/lone-attacker-ai-breach-aws-cloud-environment">Lone attacker uses AI to breach AWS cloud environment in 72 hours</a></strong></p></li><li><p><strong><a href="https://cloudnativenow.com/features/security-flaw-in-argo-cd-can-let-attackers-take-over-kubernetes-clusters">Security flaw in Argo CD can let attackers take over Kubernetes clusters</a></strong></p></li><li><p><strong><a href="https://lucvandonkersgoed.com/2026/07/01/i-replaced-my-github-runners-with-lambda-microvms-and-maybe-you-should-too">I replaced my GitHub runners with Lambda MicroVMs, and maybe you should too</a></strong></p></li><li><p><strong><a href="https://www.cncf.io/blog/2026/07/07/why-sandboxing-your-agent-is-not-enough">Why sandboxing your agent is not enough</a></strong></p></li><li><p><strong><a href="https://blog.yossarian.net/2026/07/07/You-shouldnt-trust-trusted-publishing">You shouldn&#8217;t trust Trusted Publishing</a></strong></p></li><li><p><strong><a href="https://franklyspeaking.substack.com/p/why-ai-has-made-security-hard">Why AI has made security hard</a></strong></p></li></ul><h4>Tutorials of the week</h4><ul><li><p><strong><a href="https://blog.cloudflare.com/build-your-own-vulnerability-harness/">Build your own vulnerability harness</a></strong></p></li><li><p><strong><a href="https://noma.security/blog/gitlost-how-we-tricked-githubs-ai-agent-into-leaking-private-repos/">How we tricked GitHub&#8217;s AI agent into leaking private repos</a></strong></p></li><li><p><strong><a href="https://aws.amazon.com/blogs/mt/turn-your-amazon-cloudwatch-alarms-into-actionable-signals/">Turn your Amazon CloudWatch alarms into actionable signals</a></strong></p></li><li><p><strong><a href="https://xata.io/blog/postgres-as-a-temporal-db">PostgreSQL as a temporal database</a></strong></p></li><li><p><strong><a href="https://dev.to/aws/i-built-pr-preview-environments-with-aws-lambda-microvms-and-cut-staging-costs-by-78-2d3i">I built PR preview environments with AWS Lambda MicroVMs and cut staging costs by 78%</a></strong></p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://dev.to/aws/i-built-pr-preview-environments-with-aws-lambda-microvms-and-cut-staging-costs-by-78-2d3i" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Akro!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fee6b55d5-e41b-409f-8d3f-a40c6f860e0b_800x421.webp 424w, https://substackcdn.com/image/fetch/$s_!Akro!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fee6b55d5-e41b-409f-8d3f-a40c6f860e0b_800x421.webp 848w, https://substackcdn.com/image/fetch/$s_!Akro!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fee6b55d5-e41b-409f-8d3f-a40c6f860e0b_800x421.webp 1272w, https://substackcdn.com/image/fetch/$s_!Akro!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fee6b55d5-e41b-409f-8d3f-a40c6f860e0b_800x421.webp 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Akro!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fee6b55d5-e41b-409f-8d3f-a40c6f860e0b_800x421.webp" width="800" height="421" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ee6b55d5-e41b-409f-8d3f-a40c6f860e0b_800x421.webp&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:421,&quot;width&quot;:800,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;architecture&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:&quot;https://dev.to/aws/i-built-pr-preview-environments-with-aws-lambda-microvms-and-cut-staging-costs-by-78-2d3i&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" title="architecture" srcset="https://substackcdn.com/image/fetch/$s_!Akro!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fee6b55d5-e41b-409f-8d3f-a40c6f860e0b_800x421.webp 424w, https://substackcdn.com/image/fetch/$s_!Akro!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fee6b55d5-e41b-409f-8d3f-a40c6f860e0b_800x421.webp 848w, https://substackcdn.com/image/fetch/$s_!Akro!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fee6b55d5-e41b-409f-8d3f-a40c6f860e0b_800x421.webp 1272w, https://substackcdn.com/image/fetch/$s_!Akro!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fee6b55d5-e41b-409f-8d3f-a40c6f860e0b_800x421.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 aria-hidden="true" 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><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://dev.to/sudarshan_thakur_1e141b99/setting-up-continuous-terraform-drift-monitoring-with-github-actions-and-slack-5af3">Setting up continuous Terraform drift monitoring</a></strong></p></li><li><p><strong><a href="https://martinfowler.com/articles/exploring-gen-ai/local-models-for-coding-experiences.html">Experiences with local models for coding</a></strong></p></li><li><p><strong><a href="https://kanenarraway.com/posts/agent-identity-models/">Three ways to give an AI agent an identity</a></strong></p></li><li><p><strong><a href="https://medium.com/@mohitgupta_0470/multi-account-aws-is-about-ownership-not-accounts-55fc3935a82f">Multi-account AWS is about ownership, not accounts</a></strong></p></li></ul><h4>Videos of the week</h4><iframe class="spotify-wrap podcast" data-attrs="{&quot;image&quot;:&quot;https://i.scdn.co/image/ab6765630000ba8af3d2c1a1ebf238dcd1e1fe7d&quot;,&quot;title&quot;:&quot;Enterprises are concerned about AI Costs, Governance and Trust&quot;,&quot;subtitle&quot;:&quot;Massive Studios&quot;,&quot;description&quot;:&quot;Episode&quot;,&quot;url&quot;:&quot;https://open.spotify.com/episode/2LyrEUv7F8aNdpYIqJMCpX&quot;,&quot;belowTheFold&quot;:true,&quot;noScroll&quot;:false}" src="https://open.spotify.com/embed/episode/2LyrEUv7F8aNdpYIqJMCpX" frameborder="0" gesture="media" allowfullscreen="true" allow="encrypted-media" loading="lazy" data-component-name="Spotify2ToDOM"></iframe><div id="youtube2-sY1UqUuBqQQ" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;sY1UqUuBqQQ&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/sY1UqUuBqQQ?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/kptdev/kpt">kpt</a></strong> is a package-centric toolchain that treats Kubernetes configuration as data, allowing you to edit and deliver manifests using reusable transformation functions rather than templating.</p></li><li><p><strong><a href="https://github.com/kernelstub/Nox">Nox</a></strong> is a modular Go framework for attack surface management that bundles 300 built-in modules across 24 phases, taking you from passive OSINT to active vulnerability scanning.</p></li><li><p><strong><a href="https://github.com/dotenvx/dotenvx">dotenvx</a></strong> is a secure env manager from the creator of dotenv, encrypting .env files with public-key cryptography.</p></li><li><p><strong><a href="https://github.com/aiursoftweb/anduinos-2">AnduinOS 2</a></strong> is an Ubuntu-based Linux distribution designed to give newcomers a familiar, low-friction path to Linux, packaged almost entirely as shell scripts.</p></li><li><p><strong><a href="https://github.com/dekart-xyz/geosql">GeoSQL</a></strong> is a Python skill that turns Claude, Codex, and Copilot into geospatial analytics agents across PostGIS, BigQuery, and Snowflake.</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_!wrFH!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F46816f9b-883b-48ee-9c83-cc8121388b2e_500x532.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!wrFH!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F46816f9b-883b-48ee-9c83-cc8121388b2e_500x532.jpeg 424w, https://substackcdn.com/image/fetch/$s_!wrFH!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F46816f9b-883b-48ee-9c83-cc8121388b2e_500x532.jpeg 848w, https://substackcdn.com/image/fetch/$s_!wrFH!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F46816f9b-883b-48ee-9c83-cc8121388b2e_500x532.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!wrFH!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F46816f9b-883b-48ee-9c83-cc8121388b2e_500x532.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!wrFH!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F46816f9b-883b-48ee-9c83-cc8121388b2e_500x532.jpeg" width="398" height="423.472" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/46816f9b-883b-48ee-9c83-cc8121388b2e_500x532.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:532,&quot;width&quot;:500,&quot;resizeWidth&quot;:398,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;r/ProgrammerHumor - gitBlameClaude&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 - gitBlameClaude" title="r/ProgrammerHumor - gitBlameClaude" srcset="https://substackcdn.com/image/fetch/$s_!wrFH!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F46816f9b-883b-48ee-9c83-cc8121388b2e_500x532.jpeg 424w, https://substackcdn.com/image/fetch/$s_!wrFH!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F46816f9b-883b-48ee-9c83-cc8121388b2e_500x532.jpeg 848w, https://substackcdn.com/image/fetch/$s_!wrFH!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F46816f9b-883b-48ee-9c83-cc8121388b2e_500x532.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!wrFH!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F46816f9b-883b-48ee-9c83-cc8121388b2e_500x532.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 aria-hidden="true" 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><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="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 #221: LLMjacking goes offensive, scaling to 1 million Lambda functions, databases off Kubernetes and Ingress NGINX to Gateway API]]></title><description><![CDATA[Plus: attackers weaponizing stolen AI compute, pgvector at scale on Aurora, Claude Code for IaC, and how to corrupt a SQLite file on purpose.]]></description><link>https://www.devopsbulletin.com/p/digest-221-databases-on-kubernetes</link><guid isPermaLink="false">https://www.devopsbulletin.com/p/digest-221-databases-on-kubernetes</guid><dc:creator><![CDATA[Mohamed Labouardy]]></dc:creator><pubDate>Fri, 03 Jul 2026 15:32:09 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!wx3I!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffacd3b69-5ead-4e5f-b6bf-ba305eaf3ed7_1091x411.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<blockquote><p>This week, someone makes the case for keeping your databases off Kubernetes, AWS shares what breaks when you scale to 1 million Lambda functions, and LLMjacking takes an ugly turn: attackers are wiring stolen AI compute into autonomous pentesting agents. Also inside: a production migration off Ingress NGINX, pgvector running at scale on Aurora, and a field guide to corrupting SQLite on purpose.</p></blockquote><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><h4>Newsworthy stories</h4><ul><li><p><strong><a href="https://www.percona.com/blog/why-i-havent-run-my-databases-on-kubernetes?utm_source=devopsbulletin.com">Why I haven&#8217;t run my databases on Kubernetes</a></strong></p></li><li><p><strong><a href="https://aws.amazon.com/blogs/architecture/lessons-learned-from-scaling-to-1-million-lambda-functions/?utm_source=devopsbulletin.com">Lessons learned from scaling to 1 million Lambda functions</a></strong></p></li><li><p><strong><a href="https://awsteele.com/blog/2026/06/19/cloudtrail-in-cloudwatch-isnt-very-good.html?utm_source=devopsbulletin.com">CloudTrail in CloudWatch isn&#8217;t very good</a></strong></p></li><li><p><strong><a href="https://www.cybertec-postgresql.com/en/too-many-tables-are-bad/?utm_source=devopsbulletin.com">Too many Postgres tables are bad</a></strong></p></li><li><p><strong><a href="https://www.fairwinds.com/blog/migrated-production-cluster-from-ingress-nginx-to-gateway-api?utm_source=devopsbulletin.com">How we migrated a production cluster from Ingress NGINX to Gateway API</a></strong></p></li><li><p><strong><a href="https://www.sysdig.com/blog/llmjacking-evolved-attackers-are-using-stolen-ai-compute-to-build-offensive-agentic-tools?utm_source=devopsbulletin.com">Attackers are using stolen AI compute to build offensive agentic tools</a></strong></p></li></ul><h4>Tutorials of the week</h4><ul><li><p><strong><a href="https://spacelift.io/blog/claude-code-for-infrastructure-as-code?utm_source=devopsbulletin.com">Claude Code for infrastructure as code</a></strong></p></li><li><p><strong><a href="https://aws.amazon.com/blogs/aws-cloud-financial-management/optimize-llm-costs-on-amazon-bedrock-from-billing-attribution-to-operational-telemetry/?utm_source=devopsbulletin.com">Optimize LLM costs on Amazon Bedrock</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/optimize-llm-costs-on-amazon-bedrock-from-billing-attribution-to-operational-telemetry/?utm_source=devopsbulletin.com" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!wx3I!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffacd3b69-5ead-4e5f-b6bf-ba305eaf3ed7_1091x411.png 424w, https://substackcdn.com/image/fetch/$s_!wx3I!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffacd3b69-5ead-4e5f-b6bf-ba305eaf3ed7_1091x411.png 848w, https://substackcdn.com/image/fetch/$s_!wx3I!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffacd3b69-5ead-4e5f-b6bf-ba305eaf3ed7_1091x411.png 1272w, https://substackcdn.com/image/fetch/$s_!wx3I!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffacd3b69-5ead-4e5f-b6bf-ba305eaf3ed7_1091x411.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!wx3I!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffacd3b69-5ead-4e5f-b6bf-ba305eaf3ed7_1091x411.png" width="1091" height="411" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/facd3b69-5ead-4e5f-b6bf-ba305eaf3ed7_1091x411.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:411,&quot;width&quot;:1091,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Architecture diagram showing Amazon Bedrock model invocation logging flow. Amazon Bedrock sends real-time logs to CloudWatch Logs and long-term logs to Amazon S3. Both CloudWatch Logs and S3 feed queries into Amazon Athena, which then sends visualizations to Amazon QuickSight. Arrows indicate data flow direction, with a \&quot;Log Destinations\&quot; label grouping CloudWatch Logs and S3, and \&quot;Query\&quot; and \&quot;Visualize\&quot; labels on the downstream arrows.&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:&quot;https://aws.amazon.com/blogs/aws-cloud-financial-management/optimize-llm-costs-on-amazon-bedrock-from-billing-attribution-to-operational-telemetry/?utm_source=devopsbulletin.com&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="Architecture diagram showing Amazon Bedrock model invocation logging flow. Amazon Bedrock sends real-time logs to CloudWatch Logs and long-term logs to Amazon S3. Both CloudWatch Logs and S3 feed queries into Amazon Athena, which then sends visualizations to Amazon QuickSight. Arrows indicate data flow direction, with a &quot;Log Destinations&quot; label grouping CloudWatch Logs and S3, and &quot;Query&quot; and &quot;Visualize&quot; labels on the downstream arrows." title="Architecture diagram showing Amazon Bedrock model invocation logging flow. Amazon Bedrock sends real-time logs to CloudWatch Logs and long-term logs to Amazon S3. Both CloudWatch Logs and S3 feed queries into Amazon Athena, which then sends visualizations to Amazon QuickSight. Arrows indicate data flow direction, with a &quot;Log Destinations&quot; label grouping CloudWatch Logs and S3, and &quot;Query&quot; and &quot;Visualize&quot; labels on the downstream arrows." srcset="https://substackcdn.com/image/fetch/$s_!wx3I!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffacd3b69-5ead-4e5f-b6bf-ba305eaf3ed7_1091x411.png 424w, https://substackcdn.com/image/fetch/$s_!wx3I!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffacd3b69-5ead-4e5f-b6bf-ba305eaf3ed7_1091x411.png 848w, https://substackcdn.com/image/fetch/$s_!wx3I!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffacd3b69-5ead-4e5f-b6bf-ba305eaf3ed7_1091x411.png 1272w, https://substackcdn.com/image/fetch/$s_!wx3I!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffacd3b69-5ead-4e5f-b6bf-ba305eaf3ed7_1091x411.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 aria-hidden="true" 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><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://cilium.io/blog/2026/06/13/multi-cluster-kubernetes-explained?utm_source=devopsbulletin.com">Multi-cluster Kubernetes explained</a></strong></p></li><li><p><strong><a href="https://vercel.com/blog/dockerfile-on-vercel?utm_source=devopsbulletin.com">Run any Dockerfile on Vercel</a></strong></p></li><li><p><strong><a href="https://dev.to/mierune/aws-amplify-lambda-microvms-a-serverless-linux-desktop-1eif?utm_source=devopsbulletin.com">AWS Amplify + Lambda MicroVMs</a></strong></p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://dev.to/mierune/aws-amplify-lambda-microvms-a-serverless-linux-desktop-1eif?utm_source=devopsbulletin.com" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!yVP0!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4074b4ec-f079-42ed-bd8f-b1eeb2ad6f5e_800x500.webp 424w, https://substackcdn.com/image/fetch/$s_!yVP0!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4074b4ec-f079-42ed-bd8f-b1eeb2ad6f5e_800x500.webp 848w, https://substackcdn.com/image/fetch/$s_!yVP0!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4074b4ec-f079-42ed-bd8f-b1eeb2ad6f5e_800x500.webp 1272w, https://substackcdn.com/image/fetch/$s_!yVP0!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4074b4ec-f079-42ed-bd8f-b1eeb2ad6f5e_800x500.webp 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!yVP0!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4074b4ec-f079-42ed-bd8f-b1eeb2ad6f5e_800x500.webp" width="800" height="500" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4074b4ec-f079-42ed-bd8f-b1eeb2ad6f5e_800x500.webp&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:500,&quot;width&quot;:800,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot; &quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:&quot;https://dev.to/mierune/aws-amplify-lambda-microvms-a-serverless-linux-desktop-1eif?utm_source=devopsbulletin.com&quot;,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt=" " title=" " srcset="https://substackcdn.com/image/fetch/$s_!yVP0!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4074b4ec-f079-42ed-bd8f-b1eeb2ad6f5e_800x500.webp 424w, https://substackcdn.com/image/fetch/$s_!yVP0!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4074b4ec-f079-42ed-bd8f-b1eeb2ad6f5e_800x500.webp 848w, https://substackcdn.com/image/fetch/$s_!yVP0!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4074b4ec-f079-42ed-bd8f-b1eeb2ad6f5e_800x500.webp 1272w, https://substackcdn.com/image/fetch/$s_!yVP0!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4074b4ec-f079-42ed-bd8f-b1eeb2ad6f5e_800x500.webp 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 aria-hidden="true" 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><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://aws.amazon.com/blogs/database/running-pgvector-in-production-on-amazon-aurora-postgresql/?utm_source=devopsbulletin.com">Running pgvector in production on Amazon Aurora PostgreSQL</a></strong></p></li><li><p><strong><a href="https://github.com/aidansteele/microvm-fun?utm_source=devopsbulletin.com">Kubernetes on a fleet of AWS Lambda MicroVMs</a></strong></p></li><li><p><strong><a href="https://octopus.com/blog/blue-green-deployments-kubernetes-argo?utm_source=devopsbulletin.com">Blue/green deployments on Kubernetes with Argo Rollouts</a></strong></p></li><li><p><strong><a href="https://claude.com/blog/getting-started-with-loops?utm_source=devopsbulletin.com">Getting started with Claude loops</a></strong></p></li><li><p><strong><a href="https://www.sqlite.org/howtocorrupt.html?utm_source=devopsbulletin.com">How to corrupt an SQLite database file</a></strong></p></li></ul><h4>Videos of the week</h4><div id="youtube2-5KyfW79Ld4g" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;5KyfW79Ld4g&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/5KyfW79Ld4g?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-5paRa6E5rCM" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;5paRa6E5rCM&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/5paRa6E5rCM?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/infiniumtek/terraform-review-agent?utm_source=devopsbulletin.com">terraform-review-agent</a></strong> reviews Terraform PRs with parallel security, cost, and style agents and posts one severity-ranked comment.</p></li><li><p><strong><a href="https://github.com/DataDog/datadog-saist?utm_source=devopsbulletin.com">datadog-saist</a></strong> is an AI-native SAST tool in Go that uses LLMs to catch vulnerabilities in Java, Python, and Go.</p></li><li><p><strong><a href="https://github.com/Barre/ZeroFS?utm_source=devopsbulletin.com">ZeroFS</a></strong> serves S3 buckets as POSIX filesystems over NFS, 9P, and NBD, with built-in compression and encryption.</p></li><li><p><strong><a href="https://github.com/toluaina/pgsync?utm_source=devopsbulletin.com">pgsync</a></strong> syncs Postgres, MySQL, or MariaDB to Elasticsearch or OpenSearch in real time from a JSON document schema.</p></li><li><p><strong><a href="https://github.com/Tight-Line/ballast?utm_source=devopsbulletin.com">ballast</a></strong> is a Kubernetes operator that right-sizes pod CPU and memory requests from real usage with in-place resize.</p></li><li><p><strong><a href="https://github.com/pingcap/tidb?utm_source=devopsbulletin.com">tidb</a></strong> is a distributed, MySQL-compatible SQL database with HTAP and native vector search.</p></li><li><p><strong><a href="https://github.com/ogulcancelik/herdr?utm_source=devopsbulletin.com">herdr</a></strong> is a Rust terminal multiplexer for running multiple coding agents in parallel workspaces.</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_!lDlj!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F16086289-f494-4ee2-9426-055804479e6e_1290x1141.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!lDlj!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F16086289-f494-4ee2-9426-055804479e6e_1290x1141.jpeg 424w, https://substackcdn.com/image/fetch/$s_!lDlj!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F16086289-f494-4ee2-9426-055804479e6e_1290x1141.jpeg 848w, https://substackcdn.com/image/fetch/$s_!lDlj!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F16086289-f494-4ee2-9426-055804479e6e_1290x1141.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!lDlj!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F16086289-f494-4ee2-9426-055804479e6e_1290x1141.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!lDlj!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F16086289-f494-4ee2-9426-055804479e6e_1290x1141.jpeg" width="422" height="373.2573643410853" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/16086289-f494-4ee2-9426-055804479e6e_1290x1141.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1141,&quot;width&quot;:1290,&quot;resizeWidth&quot;:422,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Make No Mistakes&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="Make No Mistakes" title="Make No Mistakes" srcset="https://substackcdn.com/image/fetch/$s_!lDlj!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F16086289-f494-4ee2-9426-055804479e6e_1290x1141.jpeg 424w, https://substackcdn.com/image/fetch/$s_!lDlj!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F16086289-f494-4ee2-9426-055804479e6e_1290x1141.jpeg 848w, https://substackcdn.com/image/fetch/$s_!lDlj!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F16086289-f494-4ee2-9426-055804479e6e_1290x1141.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!lDlj!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F16086289-f494-4ee2-9426-055804479e6e_1290x1141.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 aria-hidden="true" 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><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>Do you run your databases on Kubernetes? I go back and forth on it. Hit reply and tell me where you landed - I&#8217;ll feature the best answers next week.</p></div>]]></content:encoded></item><item><title><![CDATA[Digest #220: Red Hat's npm supply chain attack, malware in AI instruction files, AWS Lambda MicroVMs and a 2x faster test suite]]></title><description><![CDATA[This week in DevOps: the Red Hat npm credential-stealing attack, malware in AI agent files, AWS Lambda MicroVMs, Postgres 19 beta, and how to get good at Kubernetes.]]></description><link>https://www.devopsbulletin.com/p/digest-220-red-hats-npm-supply-chain</link><guid isPermaLink="false">https://www.devopsbulletin.com/p/digest-220-red-hats-npm-supply-chain</guid><dc:creator><![CDATA[Mohamed Labouardy]]></dc:creator><pubDate>Fri, 26 Jun 2026 17:14:18 GMT</pubDate><enclosure url="https://substackcdn.com/image/youtube/w_728,c_limit/s4EOVsBO7Ck" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://cleric.ai/product/early-preview" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!iTyl!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F154ada8f-c45f-4b5e-86f8-8a478bf65305_1228x326.png 424w, https://substackcdn.com/image/fetch/$s_!iTyl!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F154ada8f-c45f-4b5e-86f8-8a478bf65305_1228x326.png 848w, https://substackcdn.com/image/fetch/$s_!iTyl!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F154ada8f-c45f-4b5e-86f8-8a478bf65305_1228x326.png 1272w, https://substackcdn.com/image/fetch/$s_!iTyl!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F154ada8f-c45f-4b5e-86f8-8a478bf65305_1228x326.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!iTyl!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F154ada8f-c45f-4b5e-86f8-8a478bf65305_1228x326.png" width="208" height="55.21824104234528" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/154ada8f-c45f-4b5e-86f8-8a478bf65305_1228x326.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:326,&quot;width&quot;:1228,&quot;resizeWidth&quot;:208,&quot;bytes&quot;:27247,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://cleric.ai/product/early-preview&quot;,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://www.devopsbulletin.com/i/203724252?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F154ada8f-c45f-4b5e-86f8-8a478bf65305_1228x326.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_!iTyl!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F154ada8f-c45f-4b5e-86f8-8a478bf65305_1228x326.png 424w, https://substackcdn.com/image/fetch/$s_!iTyl!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F154ada8f-c45f-4b5e-86f8-8a478bf65305_1228x326.png 848w, https://substackcdn.com/image/fetch/$s_!iTyl!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F154ada8f-c45f-4b5e-86f8-8a478bf65305_1228x326.png 1272w, https://substackcdn.com/image/fetch/$s_!iTyl!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F154ada8f-c45f-4b5e-86f8-8a478bf65305_1228x326.png 1456w" sizes="100vw" fetchpriority="high"></picture><div></div></div></a></figure></div><p>This week&#8217;s supply chain news is rough: 32 malicious @redhat-cloud-services npm packages stealing credentials via a preinstall hook, and Mitiga finding spyware and 1,230+ leaked API keys hidden inside AI agent instruction files. On the building side, AWS shipped Lambda MicroVMs for running untrusted and AI-generated code in isolation, Postgres 19 hit beta, and one engineer doubled their test suite by dropping per-test SQL migrations.</p><h4><strong>Feature deployed. Did it actually work?</strong></h4><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://cleric.ai/product/early-preview" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!vIaq!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb23eb5e1-8c0c-4fb8-9baf-87b17ce441f1_1200x640.png 424w, https://substackcdn.com/image/fetch/$s_!vIaq!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb23eb5e1-8c0c-4fb8-9baf-87b17ce441f1_1200x640.png 848w, https://substackcdn.com/image/fetch/$s_!vIaq!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb23eb5e1-8c0c-4fb8-9baf-87b17ce441f1_1200x640.png 1272w, https://substackcdn.com/image/fetch/$s_!vIaq!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb23eb5e1-8c0c-4fb8-9baf-87b17ce441f1_1200x640.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!vIaq!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb23eb5e1-8c0c-4fb8-9baf-87b17ce441f1_1200x640.png" width="1200" height="640" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b23eb5e1-8c0c-4fb8-9baf-87b17ce441f1_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;:797352,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://cleric.ai/product/early-preview&quot;,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.devopsbulletin.com/i/203724252?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb23eb5e1-8c0c-4fb8-9baf-87b17ce441f1_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_!vIaq!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb23eb5e1-8c0c-4fb8-9baf-87b17ce441f1_1200x640.png 424w, https://substackcdn.com/image/fetch/$s_!vIaq!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb23eb5e1-8c0c-4fb8-9baf-87b17ce441f1_1200x640.png 848w, https://substackcdn.com/image/fetch/$s_!vIaq!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb23eb5e1-8c0c-4fb8-9baf-87b17ce441f1_1200x640.png 1272w, https://substackcdn.com/image/fetch/$s_!vIaq!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb23eb5e1-8c0c-4fb8-9baf-87b17ce441f1_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 aria-hidden="true" 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><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 change can pass CI and review and still break checkout the moment it deploys. <a href="https://cleric.ai/product/early-preview">Cleric</a> follows every agent-written change into production, checks that it did what you meant, and gives you a verdict: it worked, fix this, or roll back - <a href="https://cleric.ai/product/early-preview">See it work on a real change.</a></p><h4>Newsworthy stories</h4><ul><li><p><strong><a href="https://medium.com/@f8010/how-to-become-ridiculously-good-at-kubernetes-00538d4e8627?utm_source=devopsbulletin.com">How to become ridiculously good at Kubernetes</a></strong></p></li><li><p><strong><a href="https://www.mitiga.io/blog/malware-in-ai-instruction-files-skillgate?utm_source=devopsbulletin.com">Malware in AI instruction files, plus 1,230+ leaking API keys</a></strong></p></li><li><p><strong><a href="https://pierre.computer/writing/on-rendering-diffs?utm_source=devopsbulletin.com">How to render giant code diffs in the browser</a></strong></p></li><li><p><strong><a href="https://www.snowflake.com/en/blog/engineering/postgresql-19-features-beta/?utm_source=devopsbulletin.com">What&#8217;s coming in the Postgres 19 beta</a></strong></p></li><li><p><strong><a href="https://gaultier.github.io/blog/I_sped_up_the_test_suite_by_x2.html?utm_source=devopsbulletin.com">Cutting SQL migrations from tests doubled the suite speed</a></strong></p></li><li><p><strong><a href="https://theburningmonk.com/2026/06/what-you-need-to-know-about-lambda-microvms?utm_source=devopsbulletin.com">Lambda MicroVMs: what you need to know</a></strong></p></li><li><p><strong><a href="https://www.microsoft.com/en-us/security/blog/2026/06/02/preinstall-persistence-inside-red-hat-npm-miasma-credential-stealing-campaign?utm_source=devopsbulletin.com">Inside the Red Hat npm &#8220;Miasma&#8221; credential-stealing campaign</a></strong></p></li></ul><h4>Tutorials of the week</h4><ul><li><p><strong><a href="https://aws.amazon.com/blogs/aws/run-isolated-sandboxes-with-full-lifecycle-control-aws-lambda-introduces-microvms/?utm_source=devopsbulletin.com">Running isolated sandboxes with Lambda MicroVMs</a></strong></p></li><li><p><strong><a href="https://kodekloud.com/blog/running-ai-agents-safely-inside-kubernetes?utm_source=devopsbulletin.com">Running AI agents safely inside Kubernetes</a></strong></p></li><li><p><strong><a href="https://www.kubeblogs.com/automate-postgresql-backups-to-s3/?utm_source=devopsbulletin.com">Automating PostgreSQL backups to S3 with Airflow</a></strong></p></li><li><p><strong><a href="https://medium.com/nontechcompany/building-an-incident-management-workflow-with-superplane-18604f9595be?utm_source=devopsbulletin.com">Building an incident management workflow</a></strong></p></li><li><p><strong><a href="https://aws.amazon.com/blogs/database/postgresql-18-on-amazon-aurora-and-amazon-rds-performance-enhancements/?utm_source=devopsbulletin.com">PostgreSQL 18 performance wins on Aurora and RDS</a></strong></p></li><li><p><strong><a href="https://planetscale.com/blog/the-feedback-loops-behind-kubernetes?utm_source=devopsbulletin.com">The feedback loops behind Kubernetes</a></strong></p></li><li><p><strong><a href="https://fortem.dev/blog/ecs-environment-clone?utm_source=devopsbulletin.com">Cloning an ECS environment without rewriting Terraform</a></strong></p></li><li><p><strong><a href="https://aws.amazon.com/blogs/opensource/governing-ai-assets-at-scale-with-mcp-gateway-and-registry?utm_source=devopsbulletin.com">Governing AI assets at scale with MCP Gateway and Registry</a></strong></p></li></ul><h4>Videos of the week</h4><div id="youtube2-ppGO7r2sEkE" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;ppGO7r2sEkE&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/ppGO7r2sEkE?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-iQyg-KypKAA" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;iQyg-KypKAA&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/iQyg-KypKAA?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-s4EOVsBO7Ck" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;s4EOVsBO7Ck&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/s4EOVsBO7Ck?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/kunchenguid/no-mistakes?utm_source=devopsbulletin.com">no-mistakes</a></strong> is a Go local Git proxy that runs an AI review, test, and lint pipeline in an isolated worktree before pushing, then opens a clean PR.</p></li><li><p><strong><a href="https://github.com/modem-dev/hunk?utm_source=devopsbulletin.com">Hunk</a></strong> is a terminal diff viewer built for reviewing agent-authored changesets, with inline AI annotations.</p></li><li><p><strong><a href="https://github.com/jR4dh3y/BoxBox?utm_source=devopsbulletin.com">BoxBox</a></strong> is a self-hosted file manager for homelabs that supports chunked and resumable uploads.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://github.com/jR4dh3y/BoxBox?utm_source=devopsbulletin.com" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!X-F5!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F114570da-cc89-4ad6-87b1-ac2ee759fb47_1387x739.png 424w, https://substackcdn.com/image/fetch/$s_!X-F5!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F114570da-cc89-4ad6-87b1-ac2ee759fb47_1387x739.png 848w, https://substackcdn.com/image/fetch/$s_!X-F5!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F114570da-cc89-4ad6-87b1-ac2ee759fb47_1387x739.png 1272w, https://substackcdn.com/image/fetch/$s_!X-F5!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F114570da-cc89-4ad6-87b1-ac2ee759fb47_1387x739.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!X-F5!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F114570da-cc89-4ad6-87b1-ac2ee759fb47_1387x739.png" width="1387" height="739" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/114570da-cc89-4ad6-87b1-ac2ee759fb47_1387x739.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:739,&quot;width&quot;:1387,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:181074,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://github.com/jR4dh3y/BoxBox?utm_source=devopsbulletin.com&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.devopsbulletin.com/i/203724252?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F114570da-cc89-4ad6-87b1-ac2ee759fb47_1387x739.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_!X-F5!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F114570da-cc89-4ad6-87b1-ac2ee759fb47_1387x739.png 424w, https://substackcdn.com/image/fetch/$s_!X-F5!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F114570da-cc89-4ad6-87b1-ac2ee759fb47_1387x739.png 848w, https://substackcdn.com/image/fetch/$s_!X-F5!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F114570da-cc89-4ad6-87b1-ac2ee759fb47_1387x739.png 1272w, https://substackcdn.com/image/fetch/$s_!X-F5!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F114570da-cc89-4ad6-87b1-ac2ee759fb47_1387x739.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 aria-hidden="true" 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><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></ul><ul><li><p><strong><a href="https://github.com/dbtrail/dbtrail?utm_source=devopsbulletin.com">dbtrail</a></strong> is a point-in-time recovery tool for MySQL that runs time-travel queries and can undo cascade deletes without locks or restores.</p></li><li><p><strong><a href="https://github.com/renatoworks/oh-my-reddit?utm_source=devopsbulletin.com">oh-my-reddit</a></strong> is a terminal Reddit client on Bubble Tea, with live-streaming comments and automatic browser session reuse.</p></li><li><p><strong><a href="https://github.com/stablyai/orca?utm_source=devopsbulletin.com">Orca</a></strong> is an agent orchestrator that runs Claude Code, Codex, and 40+ other CLI agents in parallel within git worktrees from a single desktop app.</p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://github.com/stablyai/orca?utm_source=devopsbulletin.com" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!luW8!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe302e2f1-5fb0-4820-8d6e-26a523272cf3_827x511.png 424w, https://substackcdn.com/image/fetch/$s_!luW8!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe302e2f1-5fb0-4820-8d6e-26a523272cf3_827x511.png 848w, https://substackcdn.com/image/fetch/$s_!luW8!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe302e2f1-5fb0-4820-8d6e-26a523272cf3_827x511.png 1272w, https://substackcdn.com/image/fetch/$s_!luW8!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe302e2f1-5fb0-4820-8d6e-26a523272cf3_827x511.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!luW8!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe302e2f1-5fb0-4820-8d6e-26a523272cf3_827x511.png" width="827" height="511" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e302e2f1-5fb0-4820-8d6e-26a523272cf3_827x511.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:511,&quot;width&quot;:827,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:215923,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://github.com/stablyai/orca?utm_source=devopsbulletin.com&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.devopsbulletin.com/i/203724252?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe302e2f1-5fb0-4820-8d6e-26a523272cf3_827x511.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_!luW8!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe302e2f1-5fb0-4820-8d6e-26a523272cf3_827x511.png 424w, https://substackcdn.com/image/fetch/$s_!luW8!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe302e2f1-5fb0-4820-8d6e-26a523272cf3_827x511.png 848w, https://substackcdn.com/image/fetch/$s_!luW8!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe302e2f1-5fb0-4820-8d6e-26a523272cf3_827x511.png 1272w, https://substackcdn.com/image/fetch/$s_!luW8!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe302e2f1-5fb0-4820-8d6e-26a523272cf3_827x511.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 aria-hidden="true" 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><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><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_!YaHD!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4402dd5-0cac-4b70-b76a-c23a36a475a3_665x980.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!YaHD!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4402dd5-0cac-4b70-b76a-c23a36a475a3_665x980.jpeg 424w, https://substackcdn.com/image/fetch/$s_!YaHD!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4402dd5-0cac-4b70-b76a-c23a36a475a3_665x980.jpeg 848w, https://substackcdn.com/image/fetch/$s_!YaHD!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4402dd5-0cac-4b70-b76a-c23a36a475a3_665x980.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!YaHD!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4402dd5-0cac-4b70-b76a-c23a36a475a3_665x980.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!YaHD!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4402dd5-0cac-4b70-b76a-c23a36a475a3_665x980.jpeg" width="313" height="461.2631578947368" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b4402dd5-0cac-4b70-b76a-c23a36a475a3_665x980.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:980,&quot;width&quot;:665,&quot;resizeWidth&quot;:313,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Now I Have The Full Picture&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="Now I Have The Full Picture" title="Now I Have The Full Picture" srcset="https://substackcdn.com/image/fetch/$s_!YaHD!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4402dd5-0cac-4b70-b76a-c23a36a475a3_665x980.jpeg 424w, https://substackcdn.com/image/fetch/$s_!YaHD!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4402dd5-0cac-4b70-b76a-c23a36a475a3_665x980.jpeg 848w, https://substackcdn.com/image/fetch/$s_!YaHD!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4402dd5-0cac-4b70-b76a-c23a36a475a3_665x980.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!YaHD!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4402dd5-0cac-4b70-b76a-c23a36a475a3_665x980.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 aria-hidden="true" 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><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 #219: Fable 5's 1,810-line PR in 30 minutes, GitHub's rebuild revolt, Postgres' only scalable delete and AI-narrated crypto malware]]></title><description><![CDATA[From an AI model opening an 1,810-line pull request on its own in half an hour, to Cursor, GitLab and Zed all agreeing GitHub is broken while disagreeing on the fix.]]></description><link>https://www.devopsbulletin.com/p/digest-219-fable-5s-1810-line-pr</link><guid isPermaLink="false">https://www.devopsbulletin.com/p/digest-219-fable-5s-1810-line-pr</guid><dc:creator><![CDATA[Mohamed Labouardy]]></dc:creator><pubDate>Fri, 19 Jun 2026 18:11:30 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!Y8YW!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0f8e5e8d-316b-4808-8ed4-b67b7837c6fc_3393x5406.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.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;:&quot;&quot;,&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="" title="" 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>Fable 5 opened a 1,810-line pull request on Tabularis this week. Thirty-seven new tests, all passing, in about half an hour. The line count isn&#8217;t the interesting part. It&#8217;s that it didn&#8217;t just build the feature it was asked for. It refactored the shared connection logic first, as the maintainers said they would have done themselves.</p><p>A few days later, Cloudflare pointed a different kind of agent at its own code. A harness that hunts for vulnerabilities, then hands every finding to a second, different model to argue it down. It surfaced 13,841 real bugs across 145 repositories. One model finds, another model doubts, and only what survives reaches a human.</p><p>While two teams were teaching AI to build and audit code, someone else was teaching it to sell malware. A Rust clipboard hijacker shipped with roughly 15,500 wallet addresses baked in, fronted by AI-generated YouTube narrators reading polished tutorials to an audience of coordinated fake comments.</p><p>Notice the pattern. The same kind of autonomous agent is now writing production code, auditing it, and, in the wrong hands, packaging the attack. The more capable they get, the more of the unglamorous work they can actually own. That&#8217;s the bet behind <a href="https://www.mendral.com/?utm_source=devopsbulletin">Mendral</a>: an autonomous AI DevOps engineer that takes the jobs your team shouldn&#8217;t be doing by hand, like supply chain security, and just handles them.</p><p>In the tutorials: how a single prompt injection turned Claude Code&#8217;s own GitHub Action into a way to read your API keys, the gameday that proved Datadog&#8217;s Postgres failover wasn&#8217;t actually safe, and why one NULL can make a NOT IN query quietly return nothing at all.</p><p>On video: Postgres branching that clones a database in under a second and scales to zero, plus why slow learning still wins in the AI era.</p><p>Then six devtools worth a look, including a Kubernetes desktop client that installs nothing in your cluster, a bastion that fronts SSH, Postgres, and Kubernetes with no client software, and an MCP server that indexes the entire Linux kernel in three minutes.</p><h4><strong>Platform engineering on autopilot</strong></h4><p><a href="https://www.mendral.com/?utm_source=devopsbulletin">Mendral</a><span> 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 - </span><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.greybeam.ai/blog/duckdb-internals-part-1">Why is DuckDB fast? </a></strong></p></li><li><p><strong><a href="https://gbhackers.com/ai-generated-youtube-narrators">Hackers use AI-generated YouTube narrators to promote Crypto malware</a></strong></p></li><li><p><strong><a href="https://notnotp.com/notes/what-job-interviews-taught-me-about-kubernetes">What job interviews taught me about Kubernetes</a></strong></p></li><li><p><strong><a href="https://tabularis.dev/blog/fable-5-opened-a-1800-line-pr-in-30-minutes">Fable 5 opened a 1,810-line, 37-test PR on Tabularis in 30 minutes</a></strong></p></li><li><p><strong><a href="https://vickiboykis.com/2026/06/15/running-local-models-is-good-now/">Running local models is good now</a></strong></p></li><li><p><strong><a href="https://sakul-learning.github.io/2026/06/02/iac-repo-structure">Infrastructure as Code needs software engineering, not more config tooling</a></strong></p></li><li><p><strong><a href="https://thenewstack.io/cursor-origin-github-disruption">Cursor, GitLab, and Zed agree GitHub is breaking</a></strong></p></li><li><p><strong><a href="https://planetscale.com/blog/the-only-scalable-delete">The only scalable delete in Postgres is DROP TABLE</a></strong></p></li><li><p><strong><a href="https://blog.cloudflare.com/build-your-own-vulnerability-harness">How Cloudflare&#8217;s multi-agent harness found 13,841 bugs across 145 repos</a></strong></p></li></ul><h4>Tutorials of the week</h4><ul><li><p><strong><a href="https://www.datadoghq.com/blog/engineering/postgresql-ha-kubernetes/">Building high-availability PostgreSQL on Kubernetes</a></strong></p></li><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://medium.com/@chiragmehta900/cut-your-aws-fargate-bill-by-40-10-waste-patterns-i-fixed-in-production-d657d61469d2">Cut your AWS Fargate bill by 40%</a></strong></p></li><li><p><strong><a href="https://www.pulumi.com/blog/getting-started-aks-pulumi-csharp/">Getting started with AKS using Pulumi and C#</a></strong></p></li><li><p><strong><a href="https://ahakimx.id/posts/building-a-rag-powered-sre-knowledge-base-with-amazon-bedrock">Building a RAG-powered SRE knowledge base with Amazon Bedrock</a></strong></p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://ahakimx.id/posts/building-a-rag-powered-sre-knowledge-base-with-amazon-bedrock/" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Y8YW!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0f8e5e8d-316b-4808-8ed4-b67b7837c6fc_3393x5406.png 424w, https://substackcdn.com/image/fetch/$s_!Y8YW!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0f8e5e8d-316b-4808-8ed4-b67b7837c6fc_3393x5406.png 848w, https://substackcdn.com/image/fetch/$s_!Y8YW!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0f8e5e8d-316b-4808-8ed4-b67b7837c6fc_3393x5406.png 1272w, https://substackcdn.com/image/fetch/$s_!Y8YW!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0f8e5e8d-316b-4808-8ed4-b67b7837c6fc_3393x5406.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Y8YW!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0f8e5e8d-316b-4808-8ed4-b67b7837c6fc_3393x5406.png" width="292" height="465.27472527472526" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/0f8e5e8d-316b-4808-8ed4-b67b7837c6fc_3393x5406.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:2320,&quot;width&quot;:1456,&quot;resizeWidth&quot;:292,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;architecture&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:&quot;https://ahakimx.id/posts/building-a-rag-powered-sre-knowledge-base-with-amazon-bedrock/&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" title="architecture" srcset="https://substackcdn.com/image/fetch/$s_!Y8YW!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0f8e5e8d-316b-4808-8ed4-b67b7837c6fc_3393x5406.png 424w, https://substackcdn.com/image/fetch/$s_!Y8YW!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0f8e5e8d-316b-4808-8ed4-b67b7837c6fc_3393x5406.png 848w, https://substackcdn.com/image/fetch/$s_!Y8YW!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0f8e5e8d-316b-4808-8ed4-b67b7837c6fc_3393x5406.png 1272w, https://substackcdn.com/image/fetch/$s_!Y8YW!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0f8e5e8d-316b-4808-8ed4-b67b7837c6fc_3393x5406.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 aria-hidden="true" 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><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.microsoft.com/en-us/security/blog/2026/06/05/securing-ci-cd-in-agentic-world-claude-code-github-action-case">Securing CI/CD in an agentic world: Claude Code GitHub action case</a></strong></p></li><li><p><strong><a href="https://dev.to/qasim157/run-your-email-agent-on-serverless-42d2">Run your email agent on serverless</a></strong></p></li><li><p><strong><a href="https://rednafi.com/shards/2026/06/go-goroutine-leak-profile/">A goroutine leak profile in the Go standard library</a></strong></p></li><li><p><strong><a href="https://specterops.io/blog/2026/06/10/oops-i-weaponized-the-database-abusing-ai-features-in-mssql-2025">Abusing AI features in SQL Server 2025</a></strong></p></li><li><p><strong><a href="https://boringsql.com/posts/not-in-null">The NULL in your NOT IN</a></strong></p></li><li><p><strong><a href="https://aws.amazon.com/blogs/security/operationalizing-aws-security-a-maturity-roadmap">Operationalizing AWS security: a maturity roadmap</a></strong></p></li></ul><h4>Videos of the week</h4><div id="youtube2-Sntj4HmuykI" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;Sntj4HmuykI&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/Sntj4HmuykI?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-zyQYMBt7mkM" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;zyQYMBt7mkM&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/zyQYMBt7mkM?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-BAgxGp2WEu4" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;BAgxGp2WEu4&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/BAgxGp2WEu4?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/SametKUM/klustr?utm_source=devopsbulletin">Klustr</a></strong> is a native Go/React Kubernetes desktop client that drives Helm, Argo CD, Flux, and cert-manager from your kubeconfig with no in-cluster components.</p></li><li><p><strong><a href="https://github.com/milan0x/local-cloud-browser?utm_source=devopsbulletin">Local Cloud Browser</a></strong> is a native macOS GUI for 28 AWS-compatible services, using Keychain credentials and 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/milan0x/local-cloud-browser?utm_source=devopsbulletin" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!PaJB!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1cda25de-3074-430c-b640-f60e2798662f_3094x1758.png 424w, https://substackcdn.com/image/fetch/$s_!PaJB!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1cda25de-3074-430c-b640-f60e2798662f_3094x1758.png 848w, https://substackcdn.com/image/fetch/$s_!PaJB!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1cda25de-3074-430c-b640-f60e2798662f_3094x1758.png 1272w, https://substackcdn.com/image/fetch/$s_!PaJB!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1cda25de-3074-430c-b640-f60e2798662f_3094x1758.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!PaJB!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1cda25de-3074-430c-b640-f60e2798662f_3094x1758.png" width="1456" height="827" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/1cda25de-3074-430c-b640-f60e2798662f_3094x1758.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:827,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:818493,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://github.com/milan0x/local-cloud-browser?utm_source=devopsbulletin&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.devopsbulletin.com/i/202748386?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1cda25de-3074-430c-b640-f60e2798662f_3094x1758.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_!PaJB!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1cda25de-3074-430c-b640-f60e2798662f_3094x1758.png 424w, https://substackcdn.com/image/fetch/$s_!PaJB!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1cda25de-3074-430c-b640-f60e2798662f_3094x1758.png 848w, https://substackcdn.com/image/fetch/$s_!PaJB!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1cda25de-3074-430c-b640-f60e2798662f_3094x1758.png 1272w, https://substackcdn.com/image/fetch/$s_!PaJB!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1cda25de-3074-430c-b640-f60e2798662f_3094x1758.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 aria-hidden="true" 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><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?utm_source=devopsbulletin">WinPodX</a></strong> runs Windows apps as native Linux windows via FreeRDP RemoteApp, built in Python and Qt6.</p></li><li><p><strong><a href="https://github.com/alibaba/zvec?utm_source=devopsbulletin">Zvec</a></strong> is Alibaba&#8217;s in-process C++ vector database that searches billions of vectors in milliseconds with hybrid retrieval.</p></li><li><p><strong><a href="https://github.com/DeusData/codebase-memory-mcp?utm_source=devopsbulletin">codebase-memory-mcp</a></strong> is an MCP server that builds code knowledge graphs, enabling AI agents to skip re-reading files and index the 28M-line Linux kernel in 3 minutes.</p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://github.com/DeusData/codebase-memory-mcp?utm_source=devopsbulletin" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!OUxk!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F64bdc3d7-9c71-4f91-a32e-936ec30b73aa_795x461.png 424w, https://substackcdn.com/image/fetch/$s_!OUxk!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F64bdc3d7-9c71-4f91-a32e-936ec30b73aa_795x461.png 848w, https://substackcdn.com/image/fetch/$s_!OUxk!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F64bdc3d7-9c71-4f91-a32e-936ec30b73aa_795x461.png 1272w, https://substackcdn.com/image/fetch/$s_!OUxk!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F64bdc3d7-9c71-4f91-a32e-936ec30b73aa_795x461.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!OUxk!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F64bdc3d7-9c71-4f91-a32e-936ec30b73aa_795x461.png" width="795" height="461" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/64bdc3d7-9c71-4f91-a32e-936ec30b73aa_795x461.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:461,&quot;width&quot;:795,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:386571,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://github.com/DeusData/codebase-memory-mcp?utm_source=devopsbulletin&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.devopsbulletin.com/i/202748386?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F64bdc3d7-9c71-4f91-a32e-936ec30b73aa_795x461.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_!OUxk!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F64bdc3d7-9c71-4f91-a32e-936ec30b73aa_795x461.png 424w, https://substackcdn.com/image/fetch/$s_!OUxk!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F64bdc3d7-9c71-4f91-a32e-936ec30b73aa_795x461.png 848w, https://substackcdn.com/image/fetch/$s_!OUxk!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F64bdc3d7-9c71-4f91-a32e-936ec30b73aa_795x461.png 1272w, https://substackcdn.com/image/fetch/$s_!OUxk!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F64bdc3d7-9c71-4f91-a32e-936ec30b73aa_795x461.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 aria-hidden="true" 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><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/warp-tech/warpgate?utm_source=devopsbulletin">Warpgate</a></strong> is a transparent Rust bastion and PAM for SSH, HTTPS, Kubernetes, MySQL, and Postgres with no client-side software.</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_!Noqf!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffea4f80e-df2e-4e92-a7d4-4e920390ac9e_640x882.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Noqf!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffea4f80e-df2e-4e92-a7d4-4e920390ac9e_640x882.png 424w, https://substackcdn.com/image/fetch/$s_!Noqf!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffea4f80e-df2e-4e92-a7d4-4e920390ac9e_640x882.png 848w, https://substackcdn.com/image/fetch/$s_!Noqf!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffea4f80e-df2e-4e92-a7d4-4e920390ac9e_640x882.png 1272w, https://substackcdn.com/image/fetch/$s_!Noqf!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffea4f80e-df2e-4e92-a7d4-4e920390ac9e_640x882.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Noqf!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffea4f80e-df2e-4e92-a7d4-4e920390ac9e_640x882.png" width="330" height="454.78125" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/fea4f80e-df2e-4e92-a7d4-4e920390ac9e_640x882.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:882,&quot;width&quot;:640,&quot;resizeWidth&quot;:330,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Anthropic Being Anthropic&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="Anthropic Being Anthropic" title="Anthropic Being Anthropic" srcset="https://substackcdn.com/image/fetch/$s_!Noqf!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffea4f80e-df2e-4e92-a7d4-4e920390ac9e_640x882.png 424w, https://substackcdn.com/image/fetch/$s_!Noqf!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffea4f80e-df2e-4e92-a7d4-4e920390ac9e_640x882.png 848w, https://substackcdn.com/image/fetch/$s_!Noqf!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffea4f80e-df2e-4e92-a7d4-4e920390ac9e_640x882.png 1272w, https://substackcdn.com/image/fetch/$s_!Noqf!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffea4f80e-df2e-4e92-a7d4-4e920390ac9e_640x882.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 aria-hidden="true" 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><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 #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 aria-hidden="true" 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><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 aria-hidden="true" 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><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 aria-hidden="true" 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><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 aria-hidden="true" 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><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 aria-hidden="true" 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><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 aria-hidden="true" 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><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 aria-hidden="true" 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><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 aria-hidden="true" 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><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 aria-hidden="true" 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><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 aria-hidden="true" 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><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 aria-hidden="true" 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><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 aria-hidden="true" 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><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 aria-hidden="true" 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><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 aria-hidden="true" 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><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 aria-hidden="true" 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><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 aria-hidden="true" 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><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 aria-hidden="true" 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><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 infrastr&#8230;</p>
      <p>
          <a href="https://www.devopsbulletin.com/p/digest-213-terraform-is-dead-ai-finds">
              Read more
          </a>
      </p>
   ]]></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 attac&#8230;</p>
      <p>
          <a href="https://www.devopsbulletin.com/p/digest-212-github-actions-weakest">
              Read more
          </a>
      </p>
   ]]></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 attacke&#8230;</p>
      <p>
          <a href="https://www.devopsbulletin.com/p/digest-211-aws-devops-agent-ai-cloud">
              Read more
          </a>
      </p>
   ]]></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 si&#8230;</p>
      <p>
          <a href="https://www.devopsbulletin.com/p/digest-210-claude-code-security-bypass">
              Read more
          </a>
      </p>
   ]]></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 m&#8230;</p>
      <p>
          <a href="https://www.devopsbulletin.com/p/digest-209-openai-codex-command-injection">
              Read more
          </a>
      </p>
   ]]></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. At the same time, developers are switching from traditional SSH keys to certificates for better security, and attackers are using fake VS Code alerts on G&#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 public disclosure. Dropbox shrank its server monorepo from 87 GB to 20 GB. BeyondTrust got a full DNS reverse shell running inside AWS AgentCore&#8217;s supposedly is&#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 zero downtime, and an active phishing campaign targeting AWS console credentials using adversary-in-the-middle proxies.</p><p>On the tutorial side, we look at how A&#8230;</p>
      <p>
          <a href="https://www.devopsbulletin.com/p/digest-206-s3-bucketsquatting-dead">
              Read more
          </a>
      </p>
   ]]></content:encoded></item></channel></rss>