{"version":13,"id":"d_network_management","name":"Network management","createdAt":"2026-10-11T00:00:00.000Z","updatedAt":"2026-10-11T00:00:00.000Z","layers":[{"id":"l_software","name":"Software","visible":true,"locked":false},{"id":"l_network","name":"Network","visible":true,"locked":false},{"id":"l_hardware","name":"Hardware","visible":true,"locked":false}],"propertiesVisible":true,"notesVisible":true,"nodes":{"n_datacenter":{"id":"n_datacenter","layerIds":["l_hardware"],"position":{"x":1200,"y":0},"labels":["DataCenter"],"properties":{"id":"INTEGER","name":"VARCHAR(100)","location":"VARCHAR(100)"},"primaryKey":["id"],"identity":["id"],"style":{"fill":"#ff9500"}},"n_type":{"id":"n_type","layerIds":["l_hardware"],"position":{"x":0,"y":360},"labels":["Type"],"properties":{"id":"INTEGER","name":"VARCHAR(100)","type":"VARCHAR(100)","cpu":"INTEGER","ram":"INTEGER","disk":"INTEGER"},"primaryKey":["id"],"style":{"fill":"#ff9500"}},"n_machine":{"id":"n_machine","layerIds":["l_hardware"],"position":{"x":400,"y":360},"labels":["Machine"],"properties":{"id":"INTEGER","name":"VARCHAR(100)","rackId":"INTEGER","typeId":"INTEGER","updateToVersionId":"INTEGER","updateRequestedAt":"TIMESTAMPTZ"},"primaryKey":["id"],"indexes":[{"name":"idx_machine_name","columns":["name"]}],"style":{"fill":"#ff9500"}},"n_rack":{"id":"n_rack","layerIds":["l_hardware"],"position":{"x":800,"y":360},"labels":["Rack"],"properties":{"id":"INTEGER","name":"VARCHAR(100)","rack":"INTEGER","zone":"INTEGER","dataCenterId":"INTEGER"},"primaryKey":["id"],"identity":["id"],"style":{"fill":"#ff9500"}},"n_switch":{"id":"n_switch","layerIds":["l_hardware"],"position":{"x":1200,"y":360},"labels":["Switch"],"properties":{"id":"INTEGER","ip":"INET","rack":"INTEGER","rackId":"INTEGER"},"primaryKey":["id"],"identity":["id"],"style":{"fill":"#ff9500"}},"n_router":{"id":"n_router","layerIds":["l_hardware"],"position":{"x":1600,"y":360},"labels":["Router"],"properties":{"id":"INTEGER","name":"VARCHAR(100)","zone":"INTEGER","dataCenterId":"INTEGER"},"primaryKey":["id"],"identity":["id"],"style":{"fill":"#ff9500"}},"n_router_egress":{"id":"n_router_egress","layerIds":["l_hardware"],"position":{"x":2000,"y":360},"labels":["Router","Egress"],"properties":{"id":"INTEGER","name":"VARCHAR(100)","dataCenterId":"INTEGER"},"primaryKey":["id"],"identity":["id"],"style":{"fill":"#ff9500"}},"n_interface":{"id":"n_interface","layerIds":["l_network"],"position":{"x":1200,"y":720},"labels":["Interface"],"properties":{"id":"INTEGER","ip":"INET","routerId":"INTEGER","routerEgressId":"INTEGER","switchId":"INTEGER","machineId":"INTEGER","networkZoneId":"INTEGER","connectsNetworkZoneId":"INTEGER","connectsInterfaceId":"INTEGER","connectionsInterfaceId":"INTEGER"},"primaryKey":["id"],"identity":["id"],"indexes":[{"name":"idx_interface_ip","columns":["ip"],"unique":true}],"style":{"fill":"#0a84ff"}},"n_network_zone":{"id":"n_network_zone","layerIds":["l_network"],"position":{"x":2000,"y":720},"labels":["Network","Zone"],"properties":{"id":"INTEGER","ip":"INET","size":"INTEGER","zone":"INTEGER"},"primaryKey":["id"],"identity":["id"],"style":{"fill":"#0a84ff"}},"n_port":{"id":"n_port","layerIds":["l_network"],"position":{"x":1200,"y":1080},"labels":["Port"],"properties":{"id":"INTEGER","port":"INTEGER","interfaceId":"INTEGER","opensInterfaceId":"INTEGER","listensInterfaceId":"INTEGER"},"primaryKey":["id"],"identity":["id"],"style":{"fill":"#0a84ff"}},"n_connection":{"id":"n_connection","layerIds":["l_network"],"position":{"x":2000,"y":1080},"labels":["Connection"],"properties":{"id":"VARCHAR(64)","source":"VARCHAR(100)","target":"VARCHAR(100)","user":"VARCHAR(100)","time":"INTEGER","fromPortId":"INTEGER","toPortId":"INTEGER"},"primaryKey":["id"],"indexes":[{"name":"idx_connection_time","columns":["time"]}],"style":{"fill":"#0a84ff"}},"n_os_process":{"id":"n_os_process","layerIds":["l_software"],"position":{"x":0,"y":720},"labels":["Os","Process"],"properties":{"id":"INTEGER","name":"VARCHAR(100)","startTime":"INTEGER","machineId":"INTEGER","versionId":"INTEGER"},"primaryKey":["id"],"identity":["id"],"style":{"fill":"#34c759"}},"n_application_process":{"id":"n_application_process","layerIds":["l_software"],"position":{"x":800,"y":1080},"labels":["Application","Process"],"properties":{"id":"INTEGER","name":"VARCHAR(100)","pid":"INTEGER","startTime":"INTEGER","machineId":"INTEGER","portId":"INTEGER","serviceProcessId":"INTEGER","softwareApplicationId":"INTEGER"},"primaryKey":["id"],"identity":["id"],"style":{"fill":"#34c759"}},"n_service_process":{"id":"n_service_process","layerIds":["l_software"],"position":{"x":400,"y":1440},"labels":["Service","Process"],"properties":{"id":"INTEGER","name":"VARCHAR(100)","pid":"INTEGER","startTime":"INTEGER","machineId":"INTEGER","portId":"INTEGER","softwareServiceId":"INTEGER","versionId":"INTEGER"},"primaryKey":["id"],"identity":["id"],"style":{"fill":"#34c759"}},"n_version":{"id":"n_version","layerIds":["l_software"],"position":{"x":0,"y":1440},"labels":["Version"],"properties":{"id":"INTEGER","name":"VARCHAR(100)","softwareOsId":"INTEGER","softwareServiceId":"INTEGER","softwareId":"INTEGER","previousVersionId":"INTEGER"},"primaryKey":["id"],"identity":["id"],"style":{"fill":"#34c759"}},"n_software_os":{"id":"n_software_os","layerIds":["l_software"],"position":{"x":0,"y":1800},"labels":["Software","Os"],"properties":{"id":"INTEGER","name":"VARCHAR(100)","versions":"TEXT[]"},"primaryKey":["id"],"identity":["id"],"style":{"fill":"#34c759"}},"n_software_application":{"id":"n_software_application","layerIds":["l_software"],"position":{"x":800,"y":1800},"labels":["Software","Application"],"properties":{"id":"INTEGER","name":"VARCHAR(100)","ports":"INTEGER[]","dependencies":"TEXT[]","versionId":"INTEGER","softwareServiceId":"INTEGER","softwareId":"INTEGER"},"primaryKey":["id"],"identity":["id"],"style":{"fill":"#34c759"}},"n_software_service":{"id":"n_software_service","layerIds":["l_software"],"position":{"x":400,"y":1800},"labels":["Software","Service"],"properties":{"id":"INTEGER","name":"VARCHAR(100)","versions":"TEXT[]","ports":"INTEGER[]","dependencies":"TEXT[]","versionId":"INTEGER"},"primaryKey":["id"],"identity":["id"],"style":{"fill":"#34c759"}},"n_software":{"id":"n_software","layerIds":["l_software"],"position":{"x":400,"y":2160},"labels":["Software"],"properties":{"id":"INTEGER","name":"VARCHAR(100)"},"primaryKey":["id"],"identity":["id"],"indexes":[{"name":"idx_software_name","columns":["name"]}],"style":{"fill":"#34c759"}}},"relationships":{"r_datacenter_contains_router":{"id":"r_datacenter_contains_router","fromId":"n_router","toId":"n_datacenter","type":"CONTAINS","properties":{},"columns":[{"from":"dataCenterId","to":"id"}],"style":{}},"r_datacenter_contains_router_egress":{"id":"r_datacenter_contains_router_egress","fromId":"n_router_egress","toId":"n_datacenter","type":"CONTAINS","properties":{},"columns":[{"from":"dataCenterId","to":"id"}],"style":{}},"r_datacenter_contains_rack":{"id":"r_datacenter_contains_rack","fromId":"n_rack","toId":"n_datacenter","type":"CONTAINS","properties":{},"columns":[{"from":"dataCenterId","to":"id"}],"style":{}},"r_rack_holds_switch":{"id":"r_rack_holds_switch","fromId":"n_switch","toId":"n_rack","type":"HOLDS","properties":{},"columns":[{"from":"rackId","to":"id"}],"style":{}},"r_rack_holds_machine":{"id":"r_rack_holds_machine","fromId":"n_machine","toId":"n_rack","type":"HOLDS","properties":{},"columns":[{"from":"rackId","to":"id"}],"style":{}},"r_machine_type_type":{"id":"r_machine_type_type","fromId":"n_machine","toId":"n_type","type":"TYPE","properties":{},"columns":[{"from":"typeId","to":"id"}],"style":{}},"r_router_routes_interface":{"id":"r_router_routes_interface","fromId":"n_interface","toId":"n_router","type":"ROUTES","properties":{},"columns":[{"from":"routerId","to":"id"}],"style":{}},"r_router_egress_routes_interface":{"id":"r_router_egress_routes_interface","fromId":"n_interface","toId":"n_router_egress","type":"ROUTES","properties":{},"columns":[{"from":"routerEgressId","to":"id"}],"style":{}},"r_switch_routes_interface":{"id":"r_switch_routes_interface","fromId":"n_interface","toId":"n_switch","type":"ROUTES","properties":{},"columns":[{"from":"switchId","to":"id"}],"style":{}},"r_machine_routes_interface":{"id":"r_machine_routes_interface","fromId":"n_interface","toId":"n_machine","type":"ROUTES","properties":{},"columns":[{"from":"machineId","to":"id"}],"style":{}},"r_network_zone_routes_interface":{"id":"r_network_zone_routes_interface","fromId":"n_interface","toId":"n_network_zone","type":"ROUTES","properties":{},"columns":[{"from":"networkZoneId","to":"id"}],"style":{}},"r_interface_connects_network_zone":{"id":"r_interface_connects_network_zone","fromId":"n_interface","toId":"n_network_zone","type":"CONNECTS","properties":{},"columns":[{"from":"connectsNetworkZoneId","to":"id"}],"style":{}},"r_interface_connects_interface":{"id":"r_interface_connects_interface","fromId":"n_interface","toId":"n_interface","type":"CONNECTS","properties":{},"columns":[{"from":"connectsInterfaceId","to":"id"}],"style":{}},"r_interface_connections_interface":{"id":"r_interface_connections_interface","fromId":"n_interface","toId":"n_interface","type":"CONNECTIONS","properties":{},"columns":[{"from":"connectionsInterfaceId","to":"id"}],"style":{}},"r_interface_exposes_port":{"id":"r_interface_exposes_port","fromId":"n_port","toId":"n_interface","type":"EXPOSES","properties":{},"columns":[{"from":"interfaceId","to":"id"}],"style":{}},"r_interface_opens_port":{"id":"r_interface_opens_port","fromId":"n_port","toId":"n_interface","type":"OPENS","properties":{},"columns":[{"from":"opensInterfaceId","to":"id"}],"style":{}},"r_interface_listens_port":{"id":"r_interface_listens_port","fromId":"n_port","toId":"n_interface","type":"LISTENS","properties":{},"columns":[{"from":"listensInterfaceId","to":"id"}],"style":{}},"r_connection_from_port":{"id":"r_connection_from_port","fromId":"n_connection","toId":"n_port","type":"FROM","properties":{},"columns":[{"from":"fromPortId","to":"id"}],"style":{}},"r_connection_to_port":{"id":"r_connection_to_port","fromId":"n_connection","toId":"n_port","type":"TO","properties":{},"columns":[{"from":"toPortId","to":"id"}],"style":{}},"r_machine_runs_os_process":{"id":"r_machine_runs_os_process","fromId":"n_os_process","toId":"n_machine","type":"RUNS","properties":{},"columns":[{"from":"machineId","to":"id"}],"style":{}},"r_machine_runs_application_process":{"id":"r_machine_runs_application_process","fromId":"n_application_process","toId":"n_machine","type":"RUNS","properties":{},"columns":[{"from":"machineId","to":"id"}],"style":{}},"r_machine_runs_service_process":{"id":"r_machine_runs_service_process","fromId":"n_service_process","toId":"n_machine","type":"RUNS","properties":{},"columns":[{"from":"machineId","to":"id"}],"style":{}},"r_machine_update_to_version":{"id":"r_machine_update_to_version","fromId":"n_machine","toId":"n_version","type":"UPDATE_TO","properties":{},"columns":[{"from":"updateToVersionId","to":"id"}],"style":{}},"r_application_process_listens_port":{"id":"r_application_process_listens_port","fromId":"n_application_process","toId":"n_port","type":"LISTENS","properties":{},"columns":[{"from":"portId","to":"id"}],"style":{}},"r_service_process_listens_port":{"id":"r_service_process_listens_port","fromId":"n_service_process","toId":"n_port","type":"LISTENS","properties":{},"columns":[{"from":"portId","to":"id"}],"style":{}},"r_application_process_depends_on_service_process":{"id":"r_application_process_depends_on_service_process","fromId":"n_application_process","toId":"n_service_process","type":"DEPENDS_ON","properties":{},"columns":[{"from":"serviceProcessId","to":"id"}],"style":{}},"r_os_process_instance_version":{"id":"r_os_process_instance_version","fromId":"n_os_process","toId":"n_version","type":"INSTANCE","properties":{},"columns":[{"from":"versionId","to":"id"}],"style":{}},"r_application_process_instance_software_application":{"id":"r_application_process_instance_software_application","fromId":"n_application_process","toId":"n_software_application","type":"INSTANCE","properties":{},"columns":[{"from":"softwareApplicationId","to":"id"}],"style":{}},"r_service_process_instance_software_service":{"id":"r_service_process_instance_software_service","fromId":"n_service_process","toId":"n_software_service","type":"INSTANCE","properties":{},"columns":[{"from":"softwareServiceId","to":"id"}],"style":{}},"r_service_process_instance_version":{"id":"r_service_process_instance_version","fromId":"n_service_process","toId":"n_version","type":"INSTANCE","properties":{},"columns":[{"from":"versionId","to":"id"}],"style":{}},"r_software_os_version_version":{"id":"r_software_os_version_version","fromId":"n_version","toId":"n_software_os","type":"VERSION","properties":{},"columns":[{"from":"softwareOsId","to":"id"}],"style":{}},"r_software_service_version_version":{"id":"r_software_service_version_version","fromId":"n_version","toId":"n_software_service","type":"VERSION","properties":{},"columns":[{"from":"softwareServiceId","to":"id"}],"style":{}},"r_software_version_version":{"id":"r_software_version_version","fromId":"n_version","toId":"n_software","type":"VERSION","properties":{},"columns":[{"from":"softwareId","to":"id"}],"style":{}},"r_version_previous_version":{"id":"r_version_previous_version","fromId":"n_version","toId":"n_version","type":"PREVIOUS","properties":{},"columns":[{"from":"previousVersionId","to":"id"}],"style":{}},"r_software_service_depends_on_version":{"id":"r_software_service_depends_on_version","fromId":"n_software_service","toId":"n_version","type":"DEPENDS_ON","properties":{},"columns":[{"from":"versionId","to":"id"}],"style":{}},"r_software_application_depends_on_version":{"id":"r_software_application_depends_on_version","fromId":"n_software_application","toId":"n_version","type":"DEPENDS_ON","properties":{},"columns":[{"from":"versionId","to":"id"}],"style":{}},"r_software_application_depends_on_software_service":{"id":"r_software_application_depends_on_software_service","fromId":"n_software_application","toId":"n_software_service","type":"DEPENDS_ON","properties":{},"columns":[{"from":"softwareServiceId","to":"id"}],"style":{}},"r_software_application_depends_on_software":{"id":"r_software_application_depends_on_software","fromId":"n_software_application","toId":"n_software","type":"DEPENDS_ON","properties":{},"columns":[{"from":"softwareId","to":"id"}],"style":{}}},"notes":{"t_1":{"id":"t_1","position":{"x":2140,"y":162},"size":{"w":260,"h":108},"text":"Egress routers get a table of their own, so a query can go straight to them instead of filtering every router by a column.","color":"#ffffff","borderColor":"#000000","borderWidth":2,"textColor":"#1b1f27","fontSize":14,"align":"left","attachedTo":[{"kind":"node","id":"n_router_egress"}]},"t_2":{"id":"t_2","position":{"x":-300,"y":1278},"size":{"w":230,"h":160},"text":"PREVIOUS points from each version to the one before it, so the versions form a chain. The chain tells you which of two versions is older, even when their names would sort in the wrong order.","color":"#ffffff","borderColor":"#000000","borderWidth":2,"textColor":"#1b1f27","fontSize":14,"align":"left","attachedTo":[{"kind":"relationship","id":"r_version_previous_version"}]},"t_3":{"id":"t_3","position":{"x":-300,"y":900},"size":{"w":190,"h":160},"text":"UPDATE_TO flags a machine for an upgrade to a newer version. Its updateRequestedAt column records when the upgrade was requested.","color":"#ffffff","borderColor":"#000000","borderWidth":2,"textColor":"#1b1f27","fontSize":14,"align":"left","attachedTo":[{"kind":"relationship","id":"r_machine_update_to_version"}]},"t_4":{"id":"t_4","position":{"x":2140,"y":1242},"size":{"w":280,"h":125},"text":"Connection is a link table: FROM and TO point to the two ports it joins. Because it's a table rather than a single foreign key, other tables can point to a connection too.","color":"#ffffff","borderColor":"#000000","borderWidth":2,"textColor":"#1b1f27","fontSize":14,"align":"left","attachedTo":[{"kind":"node","id":"n_connection"}]},"t_5":{"id":"t_5","position":{"x":-340,"y":648},"size":{"w":250,"h":108},"text":"Each row in Process is one running instance of a program. INSTANCE points to the software it runs, or to the exact version.","color":"#ffffff","borderColor":"#000000","borderWidth":2,"textColor":"#1b1f27","fontSize":14,"align":"left","attachedTo":[{"kind":"node","id":"n_os_process"}]}},"style":{"node":{},"relationship":{},"background":"#f3f3f3"},"database":"postgresql"}
