# What shipped at Anyshift

Week of July 20, 2026

Annie Graph in the CLI, Graph Query Language, Graph SDK resolve, Grafana Tempo, Backstage beta, and Azure Activity Log in the graph.

Author: Anyshift

Published: 2026-07-27

Source: https://anyshift.io/blog/anyshift-shipped-week-of-2026-07-20

The week of July 20, 2026 covered 6 product areas across [Annie](/product) and the [Anyshift Product Updates](/blog/series/anyshift-product-updates) series.

The headline is Annie Graph in the terminal. Around it: a public Graph Query Language reference, typed resource resolution in the Graph SDK, Grafana Tempo as a graph APM source, a Backstage integration beta, and Azure Activity Log events in the graph. For the narrative arc, start with the [Annie Graph series](/blog/annie-graph-production-facts-terminal) and the earlier [Graph API launch](/blog/introducing-graph-api).

## Annie Graph lands in the CLI

[annie-cli](https://docs.anyshift.io/pages/product/integration/cli) now ships Annie Graph: 19 deterministic production queries from your terminal. Upgrade to v0.8.12 (or later), then run commands like:

```bash
annie graph search checkout
annie graph blast checkout
annie graph triage checkout
annie graph check checkout
annie graph explore
```

The surface covers discovery (`search`, `show`, `deps`, `path`, `blast`, `tree`, `diagram`), incident and posture workflows (`timeline`, `triage`, `brief`, `owners`, `posture`), automation (`check`, `top`, `query`), and an interactive `explore` TUI. Every non-interactive command supports `--output text|json` with the `annie.cli/v1` envelope.

This is the delta after [last week's annie-cli v0.8.0](/blog/anyshift-shipped-week-of-2026-07-13) project, conversation, and report workflows. Graph commands do not start an Annie chat: they return evidence directly. Open-ended investigation still goes through `annie ask`.

## Graph Query Language reference

The [Graph Query Language reference](https://docs.anyshift.io/pages/product/integration/graph_query_language) is now public. It documents every deterministic query target, filter, accepted value, alias, and valid form behind `annie graph query` and the Graph API.

Inspect the catalog from the terminal before you automate:

```bash
annie graph query --list
annie graph query --describe blast_radius
annie graph query 'SELECT * FROM connections WHERE resource = checkout'
```

## Graph SDK resource resolution

[`@anyshift/graph-sdk`](https://docs.anyshift.io/pages/product/integration/sdk) moved from last week's v0.2.0 contract cut through v0.3.0 and v0.4.1. The headline addition is typed resource resolution:

```bash
npm install @anyshift/graph-sdk@0.4.1
```

```ts
const matches = await graph.resolve({ term: "checkout", limit: 10 });
// pick the exact K8S_DEPLOYMENT, then:
const path = await graph.path({
  from: { name: "checkout-api", type: "K8S_DEPLOYMENT" },
  to: { name: "postgresql", type: "TEMPO_DATASTORE" },
  scope: "operational",
});
```

When a Service and a Deployment share a name, resolution lets you pin the type instead of guessing. The [SDK capabilities](https://docs.anyshift.io/pages/product/integration/sdk_capabilities) matrix covers the helpers that consume those selectors. The same resolve path is available from the [Graph API](/graph-api).

## Grafana Tempo in the graph

[Grafana Tempo](https://docs.anyshift.io/pages/integration/grafana) is now a first-class APM source for graph queries. Tempo-backed edges connect Kubernetes workloads to Tempo services and datastores, so operational `path`, `serviceTree`, and topology helpers can follow the same dependency story Datadog already provided.

Pass `source: "tempo"` or `source: "auto"` on the helpers that accept an APM source. Tempo mode reads services, calls, datastores, messaging destinations, and Kubernetes identity bridges derived from traces. It does not expose individual span search.

## Backstage integration beta

You can install Anyshift production context into your own Backstage. The [Backstage setup guide](https://docs.anyshift.io/pages/product/integration/backstage) walks through the beta npm packages:

```bash
yarn workspace app add @anyshift/backstage-plugin-anyshift@next
yarn workspace backend add @anyshift/backstage-plugin-anyshift-backend@next
```

Service pages get live dependencies, monitors, changes, and blast radius from the Graph API. A catalog backend module can synchronize infrastructure resources. Packages are published under the `next` dist-tag while the integration is in beta. See also the [Backstage product overview](https://docs.anyshift.io/pages/product/graph-api/backstage).

## Azure Activity Log in the graph

[Azure](https://docs.anyshift.io/pages/integration/azure) Activity Log control-plane events now feed the production graph. Annie sees who changed what, when, and which operation ran, on deterministic per-operation chains.

When a write completes, Anyshift refetches the affected resource so properties stay current and ownership edges update in the same cycle (for example a subnet detach removing the NSG edge while unrelated edges survive). Folded sub-resources such as NSG rules retarget to their parent owner instead of leaving orphan events.

## FAQ

### What shipped at Anyshift the week of July 20, 2026?

Six customer-facing updates. Annie Graph landed in annie-cli with 19 deterministic production queries, the Graph Query Language reference went public, Graph SDK gained typed resource resolution through v0.4.1, Grafana Tempo became a graph APM source, a Backstage integration beta published on npm, and Azure Activity Log events now feed the production graph.

### What is Annie Graph in the CLI?

Annie Graph is a set of 19 deterministic, read-only commands in annie-cli for production discovery, blast radius, incident triage, posture checks, and CI gates. Commands return text for operators or versioned JSON for automation, without starting an Annie conversation.

### How does Graph SDK resource resolution work?

Graph SDK v0.3 and later add graph.resolve so agents and scripts can pick an exact resource when several share a name. Pass a type like K8S_DEPLOYMENT to disambiguate Service versus Deployment before path, blast, or dependency queries.

### What does Grafana Tempo add to the Anyshift graph?

Tempo-backed APM edges let graph.path and related helpers follow operational paths through Tempo services and datastores. You can select source tempo or auto alongside Datadog when building service trees and topology.

### What does Azure Activity Log add to the Anyshift graph?

Azure Activity Log control-plane events land in the production graph with who, when, and what-operation attribution. Terminal writes trigger a targeted refetch so resource properties and ownership edges stay current after the change.

## What shipped at Anyshift the week of July 20, 2026?

Six customer-facing updates. Annie Graph landed in annie-cli with 19 deterministic production queries, the Graph Query Language reference went public, Graph SDK gained typed resource resolution through v0.4.1, Grafana Tempo became a graph APM source, a Backstage integration beta published on npm, and Azure Activity Log events now feed the production graph.

## What is Annie Graph in the CLI?

Annie Graph is a set of 19 deterministic, read-only commands in annie-cli for production discovery, blast radius, incident triage, posture checks, and CI gates. Commands return text for operators or versioned JSON for automation, without starting an Annie conversation.

## How does Graph SDK resource resolution work?

Graph SDK v0.3 and later add graph.resolve so agents and scripts can pick an exact resource when several share a name. Pass a type like K8S_DEPLOYMENT to disambiguate Service versus Deployment before path, blast, or dependency queries.

## What does Grafana Tempo add to the Anyshift graph?

Tempo-backed APM edges let graph.path and related helpers follow operational paths through Tempo services and datastores. You can select source tempo or auto alongside Datadog when building service trees and topology.

## What does Azure Activity Log add to the Anyshift graph?

Azure Activity Log control-plane events land in the production graph with who, when, and what-operation attribution. Terminal writes trigger a targeted refetch so resource properties and ownership edges stay current after the change.

