Introducing azfetch.nvim: Fetch Azure Function App Settings in Neovim

Introducing azfetch.nvim: Fetch Azure Function App Settings in Neovim If you're a Neovim user like I am, you know the joy of having a blazing-fast, customizable editor that feels like home. However, as someone who works a lot with Azure, I quickly ran into a challenge: there's no Azure plugin for Neovim, and I needed a way to fetch Azure Function App settings directly from my editor. The Azure extension in Visual Studio Code is great, but for those of us who live in terminal-based editors, opening VS Code just to fetch or decrypt app settings felt like overkill. So, I decided to solve the problem myself — and that's how azfetch.nvim was born. The Problem When working with Azure Function Apps, you often need access to application settings: Debugging issues locally. Setting up configurations for deployment. Decrypting sensitive values for troubleshooting. Visual Studio Code users have the luxury of the Azure Functions extension, but for Neovim users, there simply wasn't an equivalent. I wanted a tool that: Let me fetch Azure Function App settings without leaving Neovim. Supported optional decryption of sensitive settings. Was lightweight and configurable. The Solution: azfetch.nvim azfetch.nvim is a Neovim plugin written in Lua that integrates directly with Azure CLI to fetch and optionally decrypt Azure Function App settings. With just a few key presses, you can have your app settings available in your editor, ready for use. Features Fetch settings from any Azure Function App. Optional decryption of sensitive settings. Fully configurable keybindings. Lightweight and designed specifically for Neovim. Built-in versioning for easy updates and compatibility. Installation You can easily install azfetch.nvim using your favorite plugin manager. Here's how to do it with packer.nvim: use({ "edwinboon/azfetch.nvim", config = function() require("azfetch").setup({ decrypt = true, -- Enable decryption keymap = "af", -- Set your custom keybinding }) end, }) For lazy.nvim users: require("lazy").setup({ { "edwinboon/azfetch.nvim", version = "0.0.1", -- Pin to a specific version config = function() require("azfetch").setup({ decrypt = true, -- Enable decryption keymap = "af", -- Set your custom keybinding }) end, }, }) Configuration The plugin is simple to configure and offers a few options to meet your needs: Option Type Default Description decrypt boolean false Whether to decrypt settings after fetching. keymap string az Keybinding to trigger the fetch action. Example configuration: require("azfetch").setup({ decrypt = true, -- Enable decryption keymap = "af", -- Set your custom keybinding }) Usage Once installed and configured, using azfetch.nvim is as simple as pressing your configured keybinding (default: az). Here's how it works: Press your keybinding in normal mode. A prompt will ask you for the name of the Azure Function App you want to fetch settings for. The plugin fetches the settings and decrypts them if decrypt is enabled. How It Works The plugin leverages the power of the Azure CLI to perform the heavy lifting: It runs az functionapp config appsettings list to fetch the settings. If decryption is enabled, it decrypts the settings using the same CLI. The results are displayed in Neovim for easy access. This means you need to have the Azure CLI installed and logged in (az login) before using the plugin. Why I Built This As someone who uses Neovim daily, I needed a solution that fit into my workflow. Switching to Visual Studio Code just to fetch app settings broke my flow and slowed me down. With azfetch.nvim, I can now perform these tasks without ever leaving Neovim. What's Next? This is just the beginning! Here are some ideas for future updates: Support for other Azure resources (e.g., Key Vault secrets). Enhanced decryption options. Better error handling and logging. If you have feature requests or ideas, feel free to open an issue on GitHub. Conclusion If you're a Neovim user working with Azure, I hope azfetch.nvim makes your workflow a little smoother. It's lightweight, easy to use, and designed with Neovim users in mind. Give it a try and let me know what you think! You can find the plugin on GitHub: azfetch.nvim Happy coding!

Apr 22, 2025 - 10:03
 0
Introducing azfetch.nvim: Fetch Azure Function App Settings in Neovim

Introducing azfetch.nvim: Fetch Azure Function App Settings in Neovim

If you're a Neovim user like I am, you know the joy of having a blazing-fast, customizable editor that feels like home. However, as someone who works a lot with Azure, I quickly ran into a challenge: there's no Azure plugin for Neovim, and I needed a way to fetch Azure Function App settings directly from my editor.

The Azure extension in Visual Studio Code is great, but for those of us who live in terminal-based editors, opening VS Code just to fetch or decrypt app settings felt like overkill. So, I decided to solve the problem myself — and that's how azfetch.nvim was born.

The Problem

When working with Azure Function Apps, you often need access to application settings:

  • Debugging issues locally.
  • Setting up configurations for deployment.
  • Decrypting sensitive values for troubleshooting.

Visual Studio Code users have the luxury of the Azure Functions extension, but for Neovim users, there simply wasn't an equivalent.

I wanted a tool that:

  1. Let me fetch Azure Function App settings without leaving Neovim.
  2. Supported optional decryption of sensitive settings.
  3. Was lightweight and configurable.

The Solution: azfetch.nvim

azfetch.nvim is a Neovim plugin written in Lua that integrates directly with Azure CLI to fetch and optionally decrypt Azure Function App settings. With just a few key presses, you can have your app settings available in your editor, ready for use.

Features

  • Fetch settings from any Azure Function App.
  • Optional decryption of sensitive settings.
  • Fully configurable keybindings.
  • Lightweight and designed specifically for Neovim.
  • Built-in versioning for easy updates and compatibility.

Installation

You can easily install azfetch.nvim using your favorite plugin manager. Here's how to do it with packer.nvim:

use({
    "edwinboon/azfetch.nvim",
    config = function()
        require("azfetch").setup({
            decrypt = true, -- Enable decryption
            keymap = "af", -- Set your custom keybinding
        })
    end,
})

For lazy.nvim users:

require("lazy").setup({
    {
        "edwinboon/azfetch.nvim",
        version = "0.0.1", -- Pin to a specific version
        config = function()
            require("azfetch").setup({
                decrypt = true, -- Enable decryption
                keymap = "af", -- Set your custom keybinding
            })
        end,
    },
})

Configuration

The plugin is simple to configure and offers a few options to meet your needs:

Option Type Default Description
decrypt boolean false Whether to decrypt settings after fetching.
keymap string az Keybinding to trigger the fetch action.

Example configuration:

require("azfetch").setup({
    decrypt = true, -- Enable decryption
    keymap = "af", -- Set your custom keybinding
})

Usage

Once installed and configured, using azfetch.nvim is as simple as pressing your configured keybinding (default: az). Here's how it works:

  1. Press your keybinding in normal mode.
  2. A prompt will ask you for the name of the Azure Function App you want to fetch settings for.
  3. The plugin fetches the settings and decrypts them if decrypt is enabled.

How It Works

The plugin leverages the power of the Azure CLI to perform the heavy lifting:

  1. It runs az functionapp config appsettings list to fetch the settings.
  2. If decryption is enabled, it decrypts the settings using the same CLI.
  3. The results are displayed in Neovim for easy access.

This means you need to have the Azure CLI installed and logged in (az login) before using the plugin.

Why I Built This

As someone who uses Neovim daily, I needed a solution that fit into my workflow. Switching to Visual Studio Code just to fetch app settings broke my flow and slowed me down. With azfetch.nvim, I can now perform these tasks without ever leaving Neovim.

What's Next?

This is just the beginning! Here are some ideas for future updates:

  • Support for other Azure resources (e.g., Key Vault secrets).
  • Enhanced decryption options.
  • Better error handling and logging.

If you have feature requests or ideas, feel free to open an issue on GitHub.

Conclusion

If you're a Neovim user working with Azure, I hope azfetch.nvim makes your workflow a little smoother. It's lightweight, easy to use, and designed with Neovim users in mind. Give it a try and let me know what you think!

You can find the plugin on GitHub: azfetch.nvim

Happy coding!