Security

How we can promiseMeridian won't touch your Azure.

Not a policy or a checklist. Four defensive layers in code make mutation architecturally impossible. Read the layers, then read the source — every claim is verifiable.

Reader-only on Azure · no writes · no server-side data retention
The guarantee

Four layers. Zero write paths.

Not a policy or a checklist. Four independent defensive layers in code make mutation architecturally impossible. All four must fail simultaneously for a write to happen — and the middle two are impossible to bypass at all.

L1
GET-only ARM proxy
405 on POST · PUT · PATCH · DELETE

The proxy that talks to Azure only accepts read verbs. Any request that would create, change, or delete a resource is rejected before it leaves the app.

L2
Query engine, not a mutation surface
Kusto has no INSERT · UPDATE · DELETE

Cross-subscription searches go through Azure's read-only query engine. It has no write primitives — no query text can ever change a resource, by design.

L3
No write SDK loaded
@azure/arm-* not in the bundle

The Azure client libraries that could theoretically perform write operations are never imported. Adding one is a diff a reviewer can catch.

L4
State stays in the browser
IndexedDB · no server DB · no KV

Drift snapshots and anomaly baselines are cached in your own browser and never sent to a server. There is no server copy to leak.

FAQ

The questions everyone asks first.

How is this different from an inventory viewer?+

Inventory is the entry point, not the product. Meridian traces network paths for any VM, simulates NSG traffic decisions, scores your estate against the Well-Architected Framework, audits twelve CIS controls, grades every Advisor right-sizing suggestion against real metrics, classifies drift changes by risk, and flags anomalies against your own baselines.

Do the intelligence signals stay read-only?+

Yes. All three signals — right-sizing verdicts, drift risk, and anomaly detection — are pure classifiers running in your browser on data Meridian already fetched. The only new Azure calls are GETs to Azure Monitor for VM CPU metrics. Baselines live in your browser's IndexedDB, never on a server.

Can this app modify anything in my Azure account?+

No. Every request the app makes to Azure is a read. Any write attempt is rejected before it leaves the app, and no write client is loaded in the first place.

Where do my credentials live?+

Encrypted server-side and referenced by a session cookie your browser cannot read. The session expires after 8 hours or when you click Logout.

What data do you keep server-side?+

Almost nothing, and only transiently. VM prices (public data) are cached briefly, and recent cost totals are cached at the edge for a few hours — each entry scoped to your own credentials so no other user can ever read it — purely to stay within Azure's Cost Management rate limits. No inventory, drift snapshots, or anomaly baselines are ever stored server-side; those live only in your browser.

Do I need to install anything in Azure?+

No. Either sign in with your own Azure AD account (no app registration needed in your tenant) or paste in a Service Principal you already have.

Are the prices real or estimates?+

VM PAYG / 1-Yr / 3-Yr RI rates come from Microsoft's public Azure Retail Prices API. Disks, IPs, storage, and App Services use conservative fallback rates when usage-based cost can't be inferred from inventory alone.

Is Azure Lighthouse supported?+

Yes. Tick the Lighthouse checkbox on the login form. Every subscription your account can see is listed and marked as either HOME or delegated.