Skip to content

simonhedlund-exs/azure-bulk-toggle

Repository files navigation

Azure Function Bulk Toggle - Chrome Extension

En Chrome Extension (Manifest V3) för att hantera Azure Function Apps direkt från Azure Portal.

🎯 MVP Funktioner (Steg 1)

  • ✅ Läser aktiv URL för att identifiera Function App (Subscription, Resource Group, App Name)
  • ✅ Hämtar Bearer Token från Azure Portal session (via localStorage)
  • ✅ Listar alla funktioner i den aktuella appen
  • ✅ Visar status (Enabled/Disabled) för varje funktion

📁 Filstruktur

azure-bulk-toggle/
├── manifest.json          # Extension manifest (Manifest V3)
├── popup.html            # UI för popup
├── popup.js              # Huvudlogik för popup
├── content.js            # Content script (körs på portal.azure.com)
├── background.js         # Service worker
├── styles.css            # Styling för popup
└── README.md             # Denna fil

🚀 Installation

  1. Öppna Chrome och gå till chrome://extensions/
  2. Aktivera "Developer mode" (högst upp till höger)
  3. Klicka på "Load unpacked"
  4. Välj mappen azure-bulk-toggle
  5. Extensionen är nu installerad!

📋 Användning

  1. Navigera till en Function App i Azure Portal
  2. Klicka på extension-ikonen i Chrome toolbar
  3. Extensionen visar automatiskt:
    • Function App namn
    • Resource Group
    • Subscription ID
    • Lista över alla funktioner med deras status

🔧 Tekniska Detaljer

Token-hantering

Extensionen extraherar Azure Management API token från localStorage på portal.azure.com. Tokens följer MSAL-formatet och söker efter:

  • Nycklar som innehåller accesstoken och https://management
  • Fältet secret som innehåller själva Bearer token
  • Verifierar att token inte har gått ut

URL-parsing

Extensionen parsar Azure Portal URL enligt mönstret:

/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Web/sites/{appName}

Azure REST API

Använder Azure Management API endpoint:

GET https://management.azure.com/subscriptions/{id}/resourceGroups/{rg}/providers/Microsoft.Web/sites/{app}/functions?api-version=2022-03-01

Status-logik

  • properties.config.disabled === true → Funktionen är disabled
  • properties.config.disabled === false eller undefined → Funktionen är enabled

⚠️ Begränsningar i MVP

  • Bara läsning av funktioner (ingen toggle-funktionalitet än)
  • Fungerar bara när du är på en Function App-sida i Azure Portal
  • Kräver giltig Azure Portal session

🔮 Framtida Features (Steg 2+)

  • Toggle individual functions (enable/disable)
  • Bulk toggle (enable/disable alla funktioner)
  • Batch operations med progress bar
  • Cache för funktionslista
  • Support för Function App Slots

🐛 Felsökning

"Kunde inte hämta Azure token"

  • Kontrollera att du är inloggad på Azure Portal
  • Försök ladda om sidan

"Kunde inte identifiera Function App från URL"

  • Se till att du är på en Function App-sida (inte översiktssida eller annan resurs)

"Azure API error (401)"

  • Token har gått ut, ladda om Azure Portal

📄 Licens

MIT

👨‍💻 Utvecklare

Byggd med vanilla JavaScript för enkelhetens skull.

About

No description, website, or topics provided.

Resources

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors