Skip to content

Repository files navigation

Azure Automation MindMap

An interactive visual explorer for Azure Automation Accounts — runbooks, assets, job history, and dependencies — powered by your own Azure credentials.

ViewsAuthRead-onlyNext.jsLicense


What is this?

Update 3 May 2026: Added a dashboard summary for all the runbooks in an Automation account, still basic, but will add more later on

Azure Automation MindMap connects to your Azure tenant using your own credentials (MSAL / Azure Entra ID) and renders your Automation Account as a live interactive graph — no service principal, no stored secrets.

It helps Systems Engineers and Automation Architects answer questions like:

  • Which runbooks use this credential / variable / connection?
  • Which runbooks have failed recently or have hidden errors?
  • Are there hardcoded secrets or deprecated RunAs accounts in my scripts?
  • What external systems does this runbook call — VMs, storage, databases, email?

Wordpress article with images and step by step Azure Automation Mindmap


Features

FeatureDescription
🗺 Runbooks ViewDependency tree — each runbook and all its linked assets
📦 Objects ViewAsset-centric — see which runbooks consume each variable/credential/connection
📋 Table ViewSortable list with expandable detail cards
Summary ViewAccount-level health overview — donut chart per runbook (last 30 runs, success/fail), certificate expiry sidebar, click-through to runbook detail
📜 Job HistoryLatest 10 jobs per runbook, load-more, pre-loaded error/warning status
🔴 Security ScannerDetects hardcoded secrets, deprecated RunAs accounts
📡 Dependency ParsingHTTP requests, VM usage, child runbook calls, storage, SQL, email
🔒 100% Read-onlyEvery API call is a GET — nothing is ever written or deleted
🔑 MSAL AuthSign in with your existing Azure account — no service principal needed

Quick Start

# 1. Clone the repository
git clone https://github.com/farismalaeb/AutomationMindMap.git
cd AutomationMindMap
# 2. Install dependencies
npm install
# 3. Configure environment
cp .env.example .env.local
# Edit .env.local — add your Azure App Registration Client ID and Tenant ID# 4. Start the dev server
npm run dev
# → Open http://localhost:3000

Full setup guide: docs/SETUP.md


Prerequisites

Software

ToolVersion
Node.js20 LTS or later
npm9+

Azure

RequirementDetails
Azure SubscriptionSigned-in user must have Reader role
Azure Automation AccountSigned-in user must have Reader role
Azure Entra ID App RegistrationSingle-page application (SPA) with user_impersonation permission on Azure Service Management

Step-by-step guide: docs/APP_REGISTRATION.md


Environment Variables

Create .env.local from the template:

cp .env.example .env.local
# Required — from your Azure Entra ID App RegistrationNEXT_PUBLIC_AZURE_CLIENT_ID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxNEXT_PUBLIC_AZURE_TENANT_ID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx# Optional — defaults to window.location.origin if omitted# NEXT_PUBLIC_REDIRECT_URI=http://localhost:3000

⚠️NEXT_PUBLIC_* variables are baked into the build at compile time. Rebuild after any change.


Documentation

DocumentDescription
docs/SETUP.mdLocal development setup, project structure, troubleshooting
docs/APP_REGISTRATION.mdCreate App Registration, configure API permissions and RBAC
docs/AZURE_WEB_APP_SETUP.mdCreate and configure an Azure Web App via the Portal
docs/DEPLOYMENT.mdBuild, package, and deploy to Azure App Service

Project Structure

├── src/
│ ├── app/ # Next.js App Router
│ ├── components/
│ │ ├── auth/ # MSAL login/logout
│ │ └── mindmap/ # All UI components
│ │ ├── MindMapDashboard # Main layout + view switching
│ │ ├── AccountSummary # Account-level summary donuts + cert sidebar
│ │ ├── MindMap # React Flow canvas
│ │ ├── NodeDetailPanel # Right-panel detail view
│ │ ├── TableView # Table view
│ │ ├── JobHistoryChart # Job history charts
│ │ └── ScheduleHealth # Schedule health cards
│ ├── config/
│ │ └── authConfig.ts # MSAL configuration
│ ├── services/
│ │ └── azureService.ts # Azure ARM REST API (read-only)
│ └── utils/
│ ├── mindmapTransform.ts # Data → React Flow nodes/edges
│ └── scriptParser.ts # PowerShell dependency parser
├── public/ # Static assets
├── test-runbooks/ # Sample PowerShell runbooks for testing
├── docs/ # Documentation
├── .env.example # Environment template
└── README.md

Technology Stack

LayerTechnology
FrameworkNext.js 16 (App Router, standalone output)
LanguageTypeScript
AuthMSAL.js (@azure/msal-browser, @azure/msal-react)
Graph / CanvasReact Flow + Dagre layout
StylingTailwind CSS
IconsLucide React

Security

  • Zero write operations — all API calls are HTTP GET
  • No stored credentials — MSAL handles token lifecycle in the browser
  • No backend — static Next.js SPA; Azure ARM is called directly from the browser using the user's delegated token
  • Secret scanning — detects hardcoded passwords/tokens in runbook scripts and flags them in the UI

Contributing

Pull requests are welcome. For major changes, please open an issue first.


License

MIT — free to use, modify, and distribute.

About

No description, website, or topics provided.

Resources

Stars

3 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages