/projects/$id/topology, linked from a project’s own detail page) draws a project’s apps, databases, and shared volumes as a diagram, with lines representing every relationship between them. It is read-only and requires no configuration: every fact on the page already exists in the project’s desired state, just arranged as a graph instead of a list.
Network topology groups everything on the mesh by node and draws only app-to-database connections. This page is scoped to one project, groups by resource kind, and draws every edge kind the project’s configuration carries: database bindings, service dependencies, shared volumes, and egress allow-rules.
What you see
Three columns, left to right: Apps, Databases, Volumes. A column only appears when the project has at least one resource of that kind. Each app and database box shows the same status dot and label used everywhere else in the dashboard (Healthy, Attention needed, Stopped, Reconciling, No status yet), so a degraded app is just as visible here as it is on the apps list.
What each edge means
Every edge is derived from one specific field on the project’s apps and databases. None are inferred or illustrative: an edge only appears when the underlying configuration actually declares the relationship.
Network shares (
/api/v1/network-shares) are left off this diagram: nothing in a project’s stored configuration links a share to an app, so an edge would be a guess.
CLI and API
--json for the raw response. The API is GET /api/v1/projects/{id}/topology (read ability). Whole-mesh data comes from levelrail-cli nodes topology, covered on Network topology.
Multi-service apps
A multi-service app (created from acompose: build or POST /apps/{name}/compose) shows one box per member service, not one collapsed box for the whole app: dependsOn and database bindings are declared per service, so collapsing them would hide exactly the relationships this page exists to show.
See also
- Network topology - the whole-mesh, node-grouped view with live mesh reachability
- Projects and organizations - what a project is and how apps/databases get filed under one
- Connecting apps to databases - how a database binding is created in the first place
- App spec reference -
dependsOn:,volumes:, andenv: { from: ... }syntax - API reference -
GET /api/v1/projects/{id}/topology’s full request/response shape