CT-Ops
Host Networks
How to define CT-Ops networks, review discovered networks, and manage network membership.
Use Hosts -> Networks to organise hosts by network. CT-Ops networks are defined by CIDR, so hosts can be assigned automatically when an agent heartbeat reports an IP address inside a known subnet.
Use this area when operators need to model real infrastructure boundaries such as office LANs, datacentre VLANs, VPN ranges, customer subnets, lab networks, or cloud private ranges. Network membership is instance-scoped: users only see networks and hosts for the current CT-Ops instance.
Create and manage networks
The Hosts -> Networks page opens at /hosts/networks. It has four main
controls in the page header:
| Control | What it does | When to use it |
|---|---|---|
| Table | Shows the managed networks table. | Use it for normal administration, auditing, creation, editing, and deletion. |
| Graph | Shows a topology graph for all managed networks and, when enabled, discovered networks. | Use it to see shared hosts, disconnected ranges, or relationships across many networks. |
| Discovered | Toggles the discovered networks panel and discovered graph nodes. It is on by default for the current page session. | Turn it off when the discovered list is noisy or when you only want known, managed networks. |
| New Network | Opens the create network dialog. | Use it when a subnet should become a managed CT-Ops network. |
Networks table
The networks table shows one row per managed network, sorted by network name.
| Column | Meaning |
|---|---|
| Name | The operator-facing network name. Select it to open the network detail page. |
| CIDR | The subnet definition used for automatic host membership, shown as a monospace CIDR badge. |
| Description | Optional operator notes about the network’s purpose. Empty descriptions show as -. |
| Hosts | Number of current host memberships for the network. This includes both automatic and manual memberships. |
| Apps | Detected installed-app coverage across member hosts, shown as app icons. Use it to spot networks that contain services such as databases, web servers, or automation components. |
| Created | The network record creation date and time, formatted by the instance Display Settings. |
| Actions | Pencil opens edit. Trash opens the delete confirmation. |
If there are no managed networks, CT-Ops shows an empty state with New Network. Create the first network when you want heartbeat IPs to start producing automatic membership.
Network form fields
The create and edit dialogs use the same fields:
| Field | Required | Validation and behaviour |
|---|---|---|
| Name | Yes | 1 to 100 characters. Use a stable name operators will recognise during incidents, for example Office LAN or Production VPN. |
| CIDR | Yes | Must match IPv4 CIDR shape such as 192.168.1.0/24. CT-Ops uses the CIDR to compare against heartbeat IP addresses. Keep the network address and prefix accurate, because malformed or non-matching CIDRs will not create useful automatic membership. |
| Description | No | Up to 500 characters. Use it for location, ownership, purpose, routing notes, or escalation context. Blank descriptions are saved as empty. |
Cancel closes the dialog without saving. Create Network creates a new record. Save Changes updates the selected record. The submit button shows a spinner while the request is running.
Creating, editing, hiding discovered networks, and deleting managed networks require an instance administrator role. Users without permission may still be able to view the page, but the server rejects protected actions.
Delete behaviour
Deleting a network removes network membership records. It does not delete the hosts. The confirmation explains that auto-assigned hosts can be re-added on a later heartbeat if their IP address still falls inside the CIDR after a network with the same CIDR is created again.
Use discovered networks
The Discovered toggle shows CIDRs observed from hourly internal connection
samples. CT-Ops asks online hosts for connection samples at most once per hour,
stores private remote networks, and infers discovered ranges as IPv4 /24
CIDRs for RFC1918 addresses or IPv6 /64 CIDRs for private IPv6 addresses.
Public remote addresses and addresses that cannot be parsed are ignored.
Discovered networks are separate from managed networks. A discovered CIDR is not shown in the discovered list once a managed network with the same CIDR exists.
Discovered networks panel
When discovered networks are available, CT-Ops shows a Discovered networks panel above the managed table. The panel includes a Hide discovered shortcut that turns off the discovered section for the current page session.
| Column | Meaning |
|---|---|
| CIDR | The inferred private network range observed from connection samples. |
| Observed | How many unique remote IPs were seen and how many monitored hosts reported connections into that range. |
| Last seen | The most recent observation time, formatted by Display Settings. |
| Actions | Add as known promotes the CIDR into the managed network form. The eye-off icon hides that discovered CIDR. |
Use Add as known when the discovered range is operationally meaningful and should be tracked like other managed networks. The create dialog is prefilled with:
| Prefilled field | Value |
|---|---|
| Name | Discovered <CIDR> |
| CIDR | The discovered CIDR |
| Description | A summary of monitored source hosts and unmonitored remote IPs that produced the discovery |
After the managed network is created, CT-Ops marks the discovered row as promoted and refreshes the managed and discovered lists.
Use the eye-off action when a discovered CIDR is expected noise, a transient test range, or a network operators do not want to track. Hidden discovered networks are removed from the default discovered list.
Switch between table and graph views
The networks page supports Table and Graph views. Table view is better for creating, editing, and auditing known networks. Graph view is better for seeing how networks and hosts relate across the estate.
Network detail pages also support table and graph views for the selected network.
All-networks graph
The all-networks graph loads when you select Graph. It is lazy-loaded so normal table administration stays fast on large fleets.
| Graph item | What it shows |
|---|---|
| Managed network node | Network name and CIDR. Managed networks use a solid primary-colour border. |
| Discovered network node | Discovered network plus the inferred CIDR. Discovered nodes use a muted dashed border and only appear while Discovered is enabled. |
| Monitored host node | Host display name, status icon, first IP address, extra IP count, and installed-app icons. |
| Remote discovered host node | An unmonitored remote IP observed during discovery. It shows the remote IP as the node name and protocol/remote port as the secondary line. |
| Edges | Animated links between networks and hosts. In the discovered section, edges connect monitored source hosts to the discovered network and the discovered network to remote IP nodes. |
Hosts that belong to more than one managed network are drawn once and connected to each network they belong to. In the graph canvas, operators can pan, zoom, drag nodes, use the React Flow controls, and use the minimap to navigate larger topologies.
Host node context menu
Right-click a monitored host node in either graph to open the host-node context menu:
| Action | What it does |
|---|---|
| Open Terminal | Opens a terminal connection dialog for that host. It is governed by Terminal Access Settings, host terminal policy, user role, and SSH host-key trust. |
| View Host | Opens the host detail page for the selected host. |
The terminal dialog asks for:
| Field | Required | Validation and behaviour |
|---|---|---|
| Username | Yes | SSH username for the target host. CT-Ops remembers the last username per host in browser local storage when a connection is attempted. |
| SSH Port | Yes | Defaults to 22. Must be a whole number from 1 to 65535. CT-Ops remembers the last valid port per host in browser local storage. |
| Password | Yes | SSH password for the supplied username. Password input is cleared after a connection attempt and is not recorded by terminal session logging. |
| Connect | Yes | Opens the in-app terminal panel when the fields are valid and the terminal policy allows access. |
Right-clicking discovered remote IP nodes does not open host actions because they are not CT-Ops host records.
Manage network members
Open a network name from the table or graph to see its detail page at
/hosts/networks/<network-id>. The page header shows All Networks back
navigation, network name, CIDR, optional description, a Table / Graph
toggle, and Add Host.
Network member table
The member table shows hosts that currently belong to the selected network.
| Column | Meaning |
|---|---|
| Host | Host display name, hostname, or ID. Select it to open the host detail page. Installed-app icons appear under the host name when CT-Ops has detected apps on that host. |
| IP Addresses | All IP addresses currently stored for the host, joined with commas. Empty values show as -. |
| Status | Host status with an icon: online, offline, or unknown. |
| Assignment | Auto means CT-Ops added the host from CIDR matching. Manual means an operator added it directly. |
| Added | The host record creation date currently rendered in this column, using Display Settings. It is not currently the membership creation timestamp. |
| Remove | Trash button that opens a remove confirmation. |
Assignments can be:
- Auto, meaning the host was assigned because its heartbeat reported an IP address inside the network CIDR.
- Manual, meaning an operator added the host directly.
Use Add Host to add a host manually. Use the remove action to remove a membership. If an auto-assigned host still reports an IP inside the CIDR, CT-Ops can re-add it on a later heartbeat.
Add Host dialog
Add Host opens a searchable host picker for hosts that are not already in the network.
| Control | What it does |
|---|---|
| Search hosts… | Filters available hosts by hostname or display name. The search is case-insensitive. |
| Host rows | Show status icon, host display name or hostname, and the first IP address. Selecting a row adds that host to the network as a manual membership. |
| Empty state | Shows No hosts match your search when the filter has no results, or All hosts are already in this network when every host is already a member. |
Manual add and remove actions require an engineer, instance administrator, or super administrator role.
Remove confirmation
Removing a host deletes that membership only. It does not delete the host. If the host was auto-assigned and still reports an IP inside the network CIDR, CT-Ops can recreate the membership on the next heartbeat. Manual memberships are not removed by heartbeat CIDR sync unless an operator removes them.
Network detail graph
The network detail Graph view shows the selected network node above a grid of member host nodes. It uses the same node labels, installed-app icons, animated edges, pan and zoom controls, minimap, drag behaviour, and host-node context menu as the all-networks graph.
Use the detail graph when a network has many hosts and you want a visual membership map without leaving the selected network.
Use networks from host detail
You can also manage network membership from a host detail page under Infrastructure -> Networks. That view is useful when you are investigating one host and need to confirm which CT-Ops networks it belongs to.
The host-detail networks tab loads only when the tab is active. It shows Networks this host belongs to, an Add to Network button, and one row per current network membership.
| Host-detail item | Meaning |
|---|---|
| Network name | Opens the network detail page. |
| CIDR | Shows the managed network CIDR. |
| Auto badge | The membership came from heartbeat CIDR matching. |
| Manual badge | The membership was added by an operator. |
| Trash action | Removes this host from the selected network. |
If the host is not in any networks, CT-Ops explains that the host will be added automatically when its IP matches a defined CIDR and offers Add to Network.
The Add to Network dialog lists managed networks that do not already contain
the host. Each row shows the network name, CIDR, and an Add button. If the
host already belongs to every managed network, the dialog shows This host is already in all available networks.
Use the host-detail view when the investigation starts from one host. Use the network detail view when the question is about all hosts in one subnet.
Automatic membership behaviour
On every heartbeat, CT-Ops compares the host’s reported IP addresses with all managed network CIDRs for the instance.
| Condition | Behaviour |
|---|---|
| A host IP is inside a network CIDR and the host is not already a member | CT-Ops creates an Auto membership. |
| An existing Auto membership no longer matches any current host IP | CT-Ops removes that auto membership. |
| An existing Manual membership no longer matches the host IPs | CT-Ops leaves it in place. |
A host has an IP with prefix notation, such as 192.168.1.25/24 | CT-Ops strips the prefix before matching the IP against managed CIDRs. |
| A network CIDR cannot be parsed by the heartbeat sync code | CT-Ops skips that CIDR for automatic matching. |
A host can belong to multiple networks. That is expected for hosts with multiple interfaces, VPN addresses, overlay networks, or manual memberships that model operational ownership rather than pure IP topology.
Permissions
| Action | Required role |
|---|---|
| View networks, discovered networks, network detail, and graph views | Any authenticated user with instance access |
| Create, edit, or delete a managed network | instance_admin or super_admin |
| Hide or promote a discovered network | instance_admin or super_admin |
| Add or remove host memberships | engineer, instance_admin, or super_admin |
| Open a terminal from a graph host node | Requires terminal access to be enabled globally, allowed on the host, allowed for the user, and available under the user’s role |
Network date fields use Display Settings. Graph terminal actions use Terminal Access Settings.