AuditGraph Map · Monitor · Secure Book an assessment
PlatformIdentity GraphAI IdentitiesTechnologyIndustriesPricingCompanyPilot observationsTrust Center
Technology

See how every number is produced before you trust one.

Discovery that never writes. A canonical fact layer with exactly one owner per metric. Engines that compute consequence rather than infer it. A significance layer that decides what deserves a human's attention. And a governance fabric wrapping every one of them.

This page walks the whole architecture in order. It is deliberately long — it exists so a conversation about how AuditGraph works can happen on a screen share instead of in a slide deck.

If you only read one section

Five claims a security architect can check.

01 No write scope exists Not "we choose not to write" — no write permission is ever requested, so the product cannot change your tenant.
02 One producer per metric A second piece of code computing the same number is a build failure. That is why two screens cannot disagree.
03 Nothing depends on your logs Decline the audit-log scope and every conclusion still computes, from configuration alone.
04 No model in the reasoning path Deterministic by construction. The same estate produces the same answer twice — a property generative pipelines cannot offer.
05 Isolation enforced in the database Row-level security on every tenant-scoped table. Not application code remembering to add a filter.
The stack

Five layers. Facts only travel up.

Facts flow up. Nothing flows down. A layer may only read from the layer beneath it, and no layer recomputes what a lower one already owns — which is why two screens cannot disagree without it being a defect.

Experience what the reader touches — one decision, above the fold
Executive SummaryInvestigationIdentity GraphData reachabilityAuditor Pack
Significance what deserves attention: Condition → Finding
ConditionsFindings engineRanking by consequenceDecision
Engines computation, never storage
ReachabilityBlast radiusAttack pathsReasoningLineage verdicts
Canonical facts one definition, one owner, per metric
Fact viewsidentity_factsAuthority registryReconciliation
Discovery agentless, read-only, architecture-derived
Microsoft GraphARMPIMFederated credentialsGitHub OIDC
Provenance · Unknown · Determinism · Tenant isolation · Audit — the governance fabric wraps every layer
Layer 1 · Discovery

No agent. No write scope. Nothing to approve twice.

Every identity across every class, with the authority each one holds. No agent is deployed, no code runs in your tenant, no custom role is created, and no write scope is ever requested.

What is read

Role assignments, scope strings, directory objects, app registrations, service principals, managed identities, federated identity credentials, PIM eligibility, conditional access policy, resource topology.

What is never read

The contents of your storage accounts, databases, or datasets. Classification is structural — by resource type, configuration, and labeling — not by inspecting data.

What is optional

Audit logs. They enrich activity signals where you have them, but nothing gates on them. Decline the scope and every conclusion on this page still computes.

Layer 3 · Blast radius

Bands from measured counts and published thresholds — yours to override.

There is no proprietary 0–10 number. There are flags that fire on measured counts, with published defaults you can override per tenant. When you ask why something is flagged, the answer is an integer and a threshold.

Risk flag
Fires when
Escalation
broad_blast_radius
Identity can reach ≥ 50 resources
Escalates at ≥ 100
privileged_wide_reach
Privileged role across ≥ 3 subscriptions
Escalates at ≥ 5
ai_excessive_blast
AI agent identity reaching ≥ 20 resources
—
dormant_high_blast
Dormant identity still reaching ≥ 10 resources
Escalates at ≥ 30

Defaults shown. Every threshold is tenant-overridable — your definition of "wide reach" should be yours, and the product should not pretend its default is a law of nature.

Layer 4 · Significance

The layer between true and worth your time.

Most security products have two layers: what is true, and what to do. Between them sits a third that usually has no owner — what deserves the executive's attention.

Ranking is by business consequence — exposure removed, attack paths closed, privilege authority. Never by how many identities are in a cohort. A big number is not an argument.

Condition

A business situation, computed from canonical facts. Carries its own evidence and band.

Finding

What the accountable reader is shown. One lead condition, ranked by consequence.

Decision

The one move, with projected outcome labeled as projected, and the evidence attached.

Provenance

Every number tells you how it was arrived at.

Numbers on a security dashboard are usually indistinguishable: a measured count looks exactly like a vendor's estimate. AuditGraph makes the difference structural — every executive value is wrapped in an envelope that says how it was arrived at.

01
measured
Counted directly from discovered configuration.
02
computed
Derived deterministically from measured values.
03
projected
A forward estimate. Labeled as such, never as an outcome.
04
estimated
Uses an external model or cost factor, with its source cited.
05
attested
Asserted by a human in your organization, with attribution.
06
unknown
We cannot determine this. A first-class answer, not a gap.

Ordered by honesty. A value with no basis does not render at all.

In a security review

The four questions your reviewer will ask first.

What permissions are you asking for, exactly?
Read scopes on Microsoft Graph and ARM. No write scope is requested, no custom role is created, and no agent is installed — consent is reviewed in your own portal before anything runs.
Does our data leave the tenant?
We read configuration — role assignments, scopes, directory objects, federation, resource topology. We never read the contents of your storage accounts, databases or datasets. Classification is structural.
How are our tenants isolated from other customers?
Row-level security on every tenant-scoped table, enforced in the database. Isolation does not depend on application code remembering to add a filter, so a missed filter is not a data-exposure event.
Is an LLM making any of these decisions?
No. No language model sits in any reasoning, ranking or narration path. Argus formats conclusions the engines reached; it cannot improvise, and the same estate produces the same answer twice.
Integration

Runs beside your IGA, CSPM and SIEM — and replaces none of them.

Agentless — nothing deployed in your tenantRead-only — no write scope, everSSO / SAMLRole-based accessAPI accessRuns alongside your IGA, CSPM and SIEMAzure-native discoverySnapshot history for drift

Scale, stated with a number.

Validated to a documented baseline of 100,000 identities and 950,000 role assignments. Beyond that, we size with you before onboarding rather than finding out together.

100k
identities
950k
role assignments
Get started

Find the reach you never granted.

A scoped assessment against your own Azure tenant. Read-only, agentless, and nothing is written to your environment — ever.

Free forever — 1 subscription, 500 identities · 30-day trial unlocks everything · No credit card

Read-only access · No agents · No log ingestion · Azure generally available