<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Ryan Mitchell</title>
    <description>The latest articles on DEV Community by Ryan Mitchell (@ryan_mitchell_728538f7301).</description>
    <link>https://dev.to/ryan_mitchell_728538f7301</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3876631%2F77cb250f-35f9-4684-b4ad-0089d543c776.jpg</url>
      <title>DEV Community: Ryan Mitchell</title>
      <link>https://dev.to/ryan_mitchell_728538f7301</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/ryan_mitchell_728538f7301"/>
    <language>en</language>
    <item>
      <title>Shift-Left npm Security: Adding Aikido safe-chain locally &amp; in Azure CI/CD</title>
      <dc:creator>Ryan Mitchell</dc:creator>
      <pubDate>Mon, 13 Apr 2026 11:35:32 +0000</pubDate>
      <link>https://dev.to/ryan_mitchell_728538f7301/shift-left-npm-security-adding-aikido-safe-chain-locally-in-azure-cicd-3fdn</link>
      <guid>https://dev.to/ryan_mitchell_728538f7301/shift-left-npm-security-adding-aikido-safe-chain-locally-in-azure-cicd-3fdn</guid>
      <description>&lt;h3&gt;
  
  
  &lt;strong&gt;Intro&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Supply chain security has never been more critical. The recent malicious Axios package — a JavaScript library downloaded over 100 million times a week — demonstrated the scale of disruption a single compromised dependency can cause. Fortunately, there are practical steps you can take to protect yourself. In this post, I’ll walk through implementing Aikido Safe-Chain both locally and in your Azure DevOps pipelines.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Stop Firefighting. Start Preventing&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Traditionally, security scanning happened late — during QA, pen testing, or worst case, after a breach in production. Shift-left moves those checks to where you write code, not where you run it. You can take steps both locally and in your CI/CD pipelines to catch vulnerabilities before they get anywhere near production.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What is Aikido?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;There are several tools available for supply chain security, but in this post I’m focusing on Aikido. Aikido is a developer-first security platform that scans your code, dependencies, and infrastructure for vulnerabilities.&lt;/p&gt;

&lt;p&gt;Aikido Safe-Chain&lt;/p&gt;

&lt;p&gt;Safe-Chain sits between you and your package manager — such as npm — checking every download in real time before it hits your machine or runs in a pipeline. If a compromised package is detected, it blocks the install. It also quarantines packages less than 48 hours old by default, giving public vulnerability databases time to catch up. This helps prevent things like the recent Axios incident affecting you.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Implementing&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;As mentioned, you can implement Safe-Chain both locally and in your pipeline. I’ll walk through both setups below.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Locally&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 1. Install via terminal&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
&lt;code&gt;npm install -g @aikidosec/safe-chain&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 2. Set-up Shell Integration&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
&lt;code&gt;safe-chain setup&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 3. Restart Terminal&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 4. Verify the Installation&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
&lt;code&gt;npm install safe-chain-test&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;When its installed and working correctly you should see output like this in the terminal:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F54ey5z6pmdrvbigonpi2.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F54ey5z6pmdrvbigonpi2.webp" width="800" height="109"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;CI/CD – Azure pipelines in this case&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;In order to set up in your azure pipeline you add the set-up and test (temporarily to verify) as per below:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0vnxqhpuutxddtmegdta.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0vnxqhpuutxddtmegdta.png" alt=" " width="546" height="170"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;When its set-up and working in the pipeline you should expect to see a result like below, and when this is confirmed you can remove the safe-chain-test part of the script.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fl3h1bisykbmetcsv7t8y.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fl3h1bisykbmetcsv7t8y.png" alt=" " width="790" height="241"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Conclusion&lt;/strong&gt;  &lt;/p&gt;

&lt;p&gt;Hopefully, this has demonstrated some simple steps that you can take in order to introduce security into your local and CI/CD at an earlier point “shift left”, moving to prevention instead of reaction.&lt;/p&gt;

</description>
      <category>azuredevops</category>
      <category>security</category>
      <category>ai</category>
      <category>aikido</category>
    </item>
  </channel>
</rss>
