> ## Documentation Index
> Fetch the complete documentation index at: https://docs.infrawatch.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Changelog

> New features, improvements, and changes to Infrawatch

<Update label="v0.2" description="July 2026">
  0.2 is the largest release Infrawatch has shipped. [InfrAI](/infrai/overview) becomes a working
  analyst rather than a chat window: give it an observation and it fans out across every dataset,
  streams each step as it runs, and hands back an evidence graph you keep. It also writes your
  InfraQL, drafts your detection rules, and tells you how to fix what it finds.

  Infrawatch is now programmable. A complete [customer API](/api-reference/introduction) exposes
  **135 operations** across search, external surface intelligence, detection rules, alerting, and
  the remote browser, and an [MCP server](/infrai/mcp) puts all of it inside Claude, ChatGPT, and
  Cursor with one URL and your existing API key.

  Scheduled queries close the loop: schedule a search, and **alerting** tells you when the answer
  changes, by email or signed webhook.

  Three new product surfaces ship: [AI surface](/external-surface/ai-surface),
  [Open Directories](/platform/open-directories), and Host Intelligence.

  ## InfrAI

  InfrAI cuts an investigation from hours to minutes. Give it an IP, a domain, a range, or a report
  indicator, and it searches across Infrawatch datasets, streams each step as it runs, and builds a
  connected evidence graph you can keep.

  * **It writes the query.** Ask in plain language and InfrAI produces the InfraQL, runs it, and
    previews the results inline with a summary of what it executed. Results link through to the full
    search, and DNS answers link into DNS search.
  * **It drafts your detections.** Describe what you want to catch and InfrAI writes the rule source,
    name, description, categories, and classification, with its rationale and a validation result
    attached. When the description is ambiguous it asks clarifying questions with one-click answers,
    and the draft is yours to review before anything is saved.
  * **It tells you how to fix things.** Dangling DNS findings come back with ordered, step-by-step
    remediation.
  * **It shows its working.** Reasoning steps stream as InfrAI runs, so you can follow the pivot it
    chose and why, instead of waiting at a spinner.
  * Analyst actions are surfaced as buttons, kept visually distinct from suggested prompts.
  * Long-running work streams its progress, stays connected as you navigate away, and can be
    cancelled while queued.
  * Conversations persist across sessions, can be archived, and keep their links to every
    investigation they produced.
  * Reachable from the report indicator list and the dashboard as well as the chat surface.

  ## Live investigations

  When a question contains both an intent and an observable, InfrAI runs a
  [live investigation](/infrai/live-investigations) instead of answering from context. It fans out
  across datasets in parallel, reports each step as it completes, and seeds a pivot graph with what
  it found.

  * Graphs are persistent and evolve live: seeded on the canvas, streamed as they build, with
    animated arrivals and a docked agent panel.
  * **Pivots are replayable**, so you can step back through exactly how an investigation was
    assembled and show your reasoning to someone else.
  * Direct graph editing, with contextual entity entry for adding pivots of your own.
  * Evidence nodes render distinctly from entities, and edges stay behind labels and markers.
  * Investigations link bidirectionally to agent chats and to reports, and report investigation
    nodes open straight into the live graph view.
  * Investigations are included in project activity and exports.
  * Full investigation queries shown on tab hover, tab identity preserved when you return, and
    investigation context that survives host pivots.
  * Layout menu for rearranging large graphs.

  ## MCP server

  The [Infrawatch MCP server](/infrai/mcp) puts the internet's attack surface inside Claude,
  ChatGPT, Cursor, or anything else that speaks the Model Context Protocol. Your agents already
  write the queries; now they can run them. No wrapper, no proxy, no SDK.

  * Search, count, aggregate, and bulk-lookup tools each take a `dataset` argument to select hosts,
    services, or DNS, so an agent learns one tool and one schema per operation rather than one per
    dataset.
  * `get_dataset_schema` and a searchable schema catalogue let an agent discover the fields, types,
    and operators a dataset accepts before it writes a query.
  * `validate_search_query` checks a query against a dataset's rules without running it, so an agent
    can correct itself without spending quota.
  * Passive DNS, detection rules and their observation history, remote browser sessions, projects,
    and API usage are all exposed as tools.
  * Browser screenshots come back as images, and query results as structured content.
  * **A key is only ever shown the tools its scopes allow**, so an agent cannot attempt work the
    credential cannot do.
  * Install guides for Claude, ChatGPT and Codex, and Cursor.

  ## Customer API

  A complete [REST API](/api-reference/introduction) covering **135 operations**:

  | Area             | What it covers                                                                                                         |
  | ---------------- | ---------------------------------------------------------------------------------------------------------------------- |
  | Search           | `hosts`, `services`, and `dns`, each with search, count, aggregate, bulk lookup, schema, and validation                |
  | Passive DNS      | Subdomain enumeration and summaries                                                                                    |
  | External surface | Inventory, assets, brands, imports, facets, scan schedules and runs, and all finding types with full lifecycle control |
  | Detection rules  | Authoring, validation, formatting, tags, and observation history                                                       |
  | Alerting         | Alert rules, destinations, silences, and an alert inbox with acknowledge and resolve                                   |
  | Remote Browser   | Sessions, navigation, replay, screenshots, network events, and live stream tickets                                     |
  | Reports          | Catalogue, facets, and indicators                                                                                      |
  | Projects         | Project listing, with every project-scoped surface addressable by UUID                                                 |
  | Usage            | Per-key consumption against your quota                                                                                 |

  * [Authenticate](/api-reference/authentication) with an `X-API-Key` header. Usage is metered per
    key against your plan's quota.
  * Interactive playground on every endpoint, with autogenerated cURL, Python, JavaScript, and Go
    examples.
  * Rejected queries explain specifically what was wrong with them rather than failing generically.
  * [InfraQL operator semantics](/infraql/operators) documented in full.

  ## AI surface

  AI infrastructure is being deployed faster than it is being inventoried, and an MCP server or LLM
  gateway is a network service like any other, except that it often ships with no authentication and
  reaches internal tools on purpose.

  [AI surface](/external-surface/ai-surface) finds that infrastructure on your surface and tells you
  what it is:

  | Type             | What it is                                                     |
  | ---------------- | -------------------------------------------------------------- |
  | `mcp_server`     | A Model Context Protocol server exposing tools to an AI client |
  | `llm_gateway`    | A proxy or router in front of one or more model providers      |
  | `model_runtime`  | A server running a model directly                              |
  | `agent_endpoint` | An endpoint an autonomous agent acts through                   |
  | `ai_application` | A user-facing application built on a model                     |

  Anything recognised as AI infrastructure but not yet classified is kept as `unknown` rather than
  dropped, so the surface stays complete. The dashboard also carries a curated search for exposed
  MCP servers across the whole internet, not just your own estate.

  ## Open Directories

  A new [surface](/platform/open-directories) for the open directories Infrawatch collects, built
  for working through what is actually in them.

  * Inline directory tree with per-file inspection and pivots straight into search.
  * Classification and category facets, based on crawler file verdicts.
  * **Download individual collected files or full directory archives**, streamed from Infrawatch
    rather than from the origin, so you never touch hostile infrastructure.
  * Open directories link through to the scan services that found them.
  * File matches grouped by site, with risk tags and readable timestamps.
  * Row context menus, sortable listing table, and fast result loading.

  ## Host Intelligence

  A dedicated host surface that pulls everything Infrawatch knows about a single host into one
  place.

  * **Tag history timeline** showing how a host's tags changed over time, so you can see when
    something appeared, changed, or went away.
  * Network summary leading with ISP, with country flags and a condensed tag summary.
  * Full raw service banners, with scrollable tabs.
  * Rule hits rendered for the host, with links into rule history.

  ## Secrets

  [Secret exposures](/external-surface/secrets) find credential material on your external surface
  and give you enough to confirm and revoke it.

  A finding returns a **SHA-256 fingerprint, never the secret itself**. The fingerprint is enough to
  confirm a match against your own copy and to track the same exposure over time. That constraint is
  deliberate: documentation, exports, and API responses about a leaked credential are themselves a
  place credentials leak, so the value never enters them.

  Findings carry the secret kind, severity, confidence, subject and target, the host, port, and
  protocol it was found on, and the provider the credential is for. Scans can be scheduled to run on
  a recurring basis, with run history and counts.

  ## Remote Browser

  [Remote Browser](/platform/remote-browser) gives you an isolated Chromium session for visiting
  infrastructure you do not trust. The page loads on Infrawatch hardware, egressing from a country
  you choose, so nothing touches your network and nothing you visit learns anything about you.

  * Choose exit country, browser profile (`windows`, `macos`, or `linux`), and viewport.
  * **Private targets are refused.** Credentials in the URL, loopback, link-local, metadata,
    localhost, and local-network addresses are all rejected, so a session cannot be pointed back at
    your own infrastructure.
  * Evidence is kept: screenshots, network events, and session replay.
  * Live streaming, with stream tickets for embedding a session.
  * Sessions are scoped to a project, and everything a session produces stays private to the
    credential that opened it.
  * Available through both the workspace and the customer API, with a redesigned launch console.

  ## Search

  * **Server-side query validation** catches malformed queries before they run, and is available as
    its own endpoint so you can check a query without spending quota.
  * Host counts can report an approximate total for very large result sets.
  * **Country heat maps** on search summaries, exportable as PNG.
  * Tags are shown and searched by name throughout: chips, facets, and host detail cards no longer
    surface raw identifiers, and categorized tags are presented consistently across surfaces.
  * [Fingerprint](/platform/fingerprints) filters, including filtering on a specific fingerprint
    value.
  * Attribution facets, with complete country labels.
  * Facets load lazily and in parallel with results, so results appear without waiting on
    aggregations.
  * Permalinks for finding filters, so a filtered view can be shared.
  * Saved queries recalled from the search control, and bulk lookups that accept a pasted list of
    indicators.
  * Tab and search state preserved when you navigate back.

  ## Passive DNS

  * **Rebuilt [DNS views](/platform/dns) around observation segments.** Open segments draw as
    continuous timeline windows and closed segments as bounded bars, coloured by record type, so you
    can see at a glance when a record was live and when it went away.
  * Last-seen timestamps and observation dates throughout.
  * Subdomain enumeration and DNS summaries, both also on the API.
  * DNS entry targets grouped by record type.
  * Noticeably faster DNS search.

  ## External Surface Inventory

  Four finding types now ship on the [external surface](/external-surface/overview): dangling DNS,
  typosquatting, secret exposures, and AI surface.

  * **Dangling DNS.** Full [findings surface](/external-surface/dns-risks) with lifecycle states,
    resolved findings kept in history, automatic resolution when the dangling record disappears, and
    a reopen action for findings that come back. Resolution paths are visualized.
  * **Typosquatting.** [Filtering controls](/external-surface/typosquatting), a sweep lifecycle,
    visual side-by-side review, findings attributed to your brand inventory, and inconclusive
    findings retained rather than discarded. Badges filter the result set on click, and for-sale
    domains are presented separately and classified as low severity.
  * **ASN inventory.** Dedicated workflow for adding and reviewing ASNs, with manually added assets
    approved by default.
  * **Scheduled service scans** of your own [inventory](/external-surface/inventory), with run
    history and counts.
  * Bulk lifecycle updates across findings, and bulk indicator import.
  * Filter options and multi-value filters, scoped correctly to finding state, with a live provider
    summary.
  * Normalized findings evidence, with image evidence support.
  * Inventory onboarding and setup flows.
  * Resizable finding table columns, coloured risk badges, and explicit sorting.
  * Large inventories load significantly faster.

  ## Detection rules and tags

  * **Layered rule visibility and ownership filters**, so your own
    [rules](/scanning/rules/writing-rules) are cleanly separated from Infrawatch-managed ones, and
    edit permissions are respected throughout.
  * Redesigned signature authoring workflow and a simplified rules workspace hierarchy.
  * **Rule activity rebuilt on aggregate data**, with sparklines and an interactive time series
    chart, and an explanation when activity is genuinely unavailable rather than an empty chart.
  * Tags get their own dashboard, and you can list every rule carrying a given tag.
  * Redesigned rule library filters with categories in the facet rail, and archived rules restorable
    from the library.
  * Rule authoring, validation, formatting, tags, and observation history are all on the API.
  * Added a KVM rule subcategory.

  ## Projects

  [Projects](/platform/projects) give a team a durable workspace for an investigation or monitored
  environment, keeping operational context beside the Infrawatch data used to build it.

  * **Case files** holding the operational record of an investigation.
  * **Saved queries** stored per project and secured against the project's permissions.
  * **Notes** in Markdown, toggleable while editing.
  * **Indicators** importable in bulk, with the result linking straight back to the project.
  * **Activity feed** covering changes to investigations, saved queries, notes, and indicators.
  * **Project tags**, with a shared tag input across project surfaces.
  * External surface inventory and findings live in project context, and the workspace resolves the
    right project for the product you are in.
  * Projects are listable over the API, and every project-scoped surface is addressable by UUID.

  ## Scheduled queries and alerting

  Scheduled queries and alerting together turn a saved search into monitoring. Schedule the query,
  and get told when its answer changes.

  * Schedule saved queries to run on **timezone-aware** recurring schedules.
  * Each run is snapshotted, so you can see what a query returned at the time it ran rather than
    only what it returns now.
  * **Alert rules** attach to a schedule and fire on the events you care about: results `ADDED`,
    `REMOVED`, or `CHANGED`. Each rule carries a severity of low, medium, high, or critical, a group
    wait so a burst of changes arrives as one alert, and an option to notify on resolution too.
  * **Destinations** are email or signed HTTPS webhook. A webhook's signing secret is returned once,
    at creation, and never again. Destinations are organisation-owned and cannot be deleted while an
    enabled rule still uses them.
  * **Silences** suppress alerts during planned work without disabling the rule.
  * **Alert inbox** with acknowledge and resolve, plus delivery history so you can confirm a
    notification actually went out.
  * External surface scans have schedules of their own: recurring service and secret-exposure scans
    of your own inventory, each with run history and counts.

  ## Reports

  * [Report](/platform/reports) catalogue filters and sorting, ordered by publication date by
    default.
  * Report indicators can be handed to InfrAI, with visible progress on the action.
  * Integrated indicator list with clearer infrastructure indicator labels.
  * Improved OSINT report investigation UI, with investigation nodes that open in the graph view.
  * Catalogue, facets, and indicators available over the API.

  ## Accounts and access

  * Organisation session and inactivity policies, including **Never** options and the ability to
    turn session limits off entirely, with the current choice always visible.
  * Rebuilt account workflows and consolidated group access management.
  * Roles, groups, and invitations, with per-group limits on API keys and projects.
  * Product access is driven by real entitlements, so the workspace distinguishes "nothing found"
    from "not included in your plan".

  ## Fixes and polish

  * Maintenance page shown across the product during planned maintenance, separate from not-found,
    with no login redirect loop.
  * Centralized error pages with a clear recovery path, and backend error text no longer leaking
    into product copy.
  * Standardized loading feedback, global breadcrumbs, an icon-collapsible sidebar with reorganized
    sections, and smoother page scrolling.
  * Global search trigger available from anywhere, hidden on surfaces that already have search.
  * Dashboard suggested searches for high-signal categories, with one-click investigation hooks.
  * In-product support ticket dialog.
  * Filter values survive a refresh, filter actions stay stable while results reload, and section
    navigation refreshes the data behind it.
  * Search filters no longer stretch the page scroll, and pagination numbers fit at every result
    count.
  * Directory tree chevrons reserved for folders, and previews hidden where a file cannot be
    rendered.
  * Rule breadcrumbs resolve to rule names, and signature counts reflect reality.
  * Inventory acronym labels preserved, and redundant ASN row detail hidden.
  * Refreshed brand mark and logo throughout the app chrome.
  * Broad visual pass across shared controls: buttons, inputs, selects, toggles, tooltips, and data
    tables, now consistent and sortable product-wide.

  ## Removed and changed

  * **Retired the `osint` search dataset.** It was a duplicate of report data, and public
    intelligence reports are no longer queried through InfraQL search. Use the dedicated
    [report endpoints](/platform/reports) instead, which cover the catalogue, facets, and per-report
    indicators. The `/search/osint` endpoints have been removed from the API.
  * Removed the search export.
  * Removed the dashboard intelligence rail and the project inventory view.
  * Typosquatting distance values are no longer shown as raw numbers.
</Update>
