User manual Back to the app
RoamRock Fiber Manager

Demo City Fiber — User Manual

Fiber asset and splice management: map, search, splice editor, end-to-end trace, OTDR results, A → Z dark fiber, reservations, circuits, open conduit, reports and data health.

Application version 1.5Data model v1.0Demo data — fictional network

Every name, address and record in the Demo City Fiber network is invented. Search this manual with the box at the top left (press /); press ? in the application to open it.

Introduction and concepts

This chapter explains what the application is for and the network concepts it is built on. If you already work with outside-plant fiber records, skim the tables and go to .

About this manual

The manual follows the layout of the application: a chapter for each sidebar tab and dialog, followed by keyboard shortcuts, administration, the data model and import, troubleshooting and a glossary.

Conventions used in this manual
ConventionMeaning
ConnectA button, tab, menu item, field or other label exactly as it appears on screen.
C, Ctrl+ZA key or key combination.
PD-WT.144A #37Data values, labels, file names, settings and commands.
Search › Location cardA path through the interface.
Numbered stepsA procedure. Do the steps in order. The text after the steps describes the result.

NoteNotes give extra information that helps you understand a feature.

TipTips are shortcuts and better ways of doing a task.

CautionCautions warn about actions that change or discard data, or break a working circuit.

What the application does

The Fiber Manager keeps the physical fiber plant of a city, utility, ISP or campus in one place and lets you work with it on a map:

  • Map of facilities, cabinets, manholes and handholes, conduit colored by how full it is, and fiber cables by type.
  • Search by ID, name, address, street, cable, circuit or device, with location cards that show what is available at a site.
  • Splice editor: two cables side by side, buffer tubes and fibers in TIA-598 colors, with drawn splice lines. Connect, disconnect, splice a tube or a whole cable straight across, undo, and trace any fiber.
  • Trace of any fiber from end to end with a hop list, length, an estimated loss budget and the recorded OTDR or power-meter result.
  • A → Z dark fiber search between two locations, and fiber reservations.
  • Circuits, the open conduit finder, printable reports, CSV export and data health checks.

The installation described here is a demonstration loaded with the fictional Demo City Fiber network: 11 sites (8 facilities and 3 cabinets), 67 manholes and handholes, about 8.2 km of conduit, 14 cables with 924 fiber strands, 382 splices, 10 lit circuits and 1 reservation.

Structures

A structure is any place you can stand: a facility, a cabinet, a manhole or a handhole. Every structure is a point on the map with a label, a name and, for buildings, an address. Facilities and cabinets also have a short site code (for example CH for City Hall or WT for the North Water Tower POP). Site codes are used in cable labels.

Structure types in the demo network
TypeDescriptionExample
Facility / POPA building with racks, splice enclosures, patch panels and active equipment.CH Demo City Hall — Core POP
CabinetA street cabinet, such as a traffic signal or camera pole cabinet.TS1, CM1
ManholeA below-grade vault on the conduit route. Labelled StreetCode.Block.W2.350
Splice point (manhole)A manhole that holds a splice case and has its own site code.MH7 (label W4.150)
HandholeA smaller pull box on the conduit route.—

Inside a structure, equipment is nested: a rack holds splice enclosures and patch panels, and an enclosure holds splice trays. Active devices (routers, switches, media converters and so on) sit in racks. The location card lists all of them (see ).

Conduit and ducts

A conduit is one pipe or bundle between two structures. It has a material (for example HDPE or Schedule 40 PVC), a size in inches, a color, a placement (bore or trench) and a length. A conduit contains one or more ducts: innerducts or microducts identified by a position letter, such as CD-042.B. Each duct has a status: occupied, spare, reserved or damaged.

The fill of a conduit is the share of its ducts that are occupied. The map colors every conduit by fill:

ColorFill
GreenEmpty: no duct is occupied.
YellowPartly used: some ducts are occupied, under 60 %.
OrangeBusy: 60 % or more of the ducts are occupied, at least one is free.
RedFull: no spare duct is left.
DashedPlanned conduit (designed, not built).

Cables

A cable runs from its A end structure to its Z end structure through a sequence of conduit ducts called spans. Its length includes slack loops left in manholes. Cables are labelled A-Z.FiberCount+Letter, where the letter tells parallel cables apart: WT-WP.96A is the first 96-fiber cable from WT to WP.

Cable types
TypeUseFiber counts in the demoMap symbol
BackboneThe ring between facilities.96–144Thick blue
DistributionBranches from the ring to sites and splice points.24–48Cyan
DropThe last run to a cabinet or a single building.12Thin violet

Buffer tubes, strands and TIA-598 colors

The fibers in a cable are grouped in buffer tubes, usually 12 fibers per tube. Tubes and fibers are colored with the TIA-598 standard, in this order:

TIA-598 color order (tube and fiber)
#ColorCode#ColorCode
1BlueBL7RedRD
2OrangeOR8BlackBK
3GreenGR9YellowYL
4BrownBR10VioletVI
5SlateSL11RoseRS
6WhiteWH12AquaAQ

A single fiber is a strand. Strands are numbered 1 to the fiber count of the cable, and the number is what identifies the strand. Tube and fiber color are worked out from the number:

  • tube = the strand number divided by fibers per tube, rounded up;
  • fiber in the tube = the remainder, counting from 1.

With 12 fibers per tube, strand 37 is tube 4 (Brown), fiber 1 (Blue). The application shows it as PD-WT.144A #37, with the long form (tube 4 Brown / fiber 1 Blue) and the short code BR.BL (tube code, then fiber code). BL.OR is strand 2 and OR.BL is strand 13.

NoteColor codes such as BL.OR are for display only. Records always refer to a strand by cable and number, so a strand keeps its identity even if a different color standard is shown.

Splices, terminations and jumpers

Where cables meet inside a structure, fibers are joined in a splice tray inside a splice enclosure. Each join is a splice (a connection) between one strand of one cable and one strand of another. A splice is usually fusion; mechanical splices are also recorded. Splices can carry the measured splice loss, the date and the technician.

A termination puts a strand on a port of a patch panel. A jumper (patch cord) connects a patch-panel port to a port on a device, such as CH-CORE-01 Te1/0/1.

The rule that keeps the records consistent: at any one structure, each end of a strand has at most one splice or termination. The splice editor enforces this as you work (see ).

A splice where a fiber simply continues to the next cable, without being dropped at that site, is called an express splice. Express splices matter when you reserve dark fiber (see ).

Circuits and reservations

A circuit is a service carried on one or more strands, usually a transmit/receive pair. It is labelled CKT-### and has a name, a service type (for example SCADA, Public safety LAN, Internet transit), a bandwidth and an owner. Its status is one of:

  • lit — in service, shown in green;
  • reserved — fibers held for a future use until a hold-until date, shown in amber.

The data model also knows the statuses planned and decommissioned; the demo network uses lit and reserved. A circuit stores only its starting strands at the A end. The path itself is never typed in: it is found by tracing, so it always matches the splices on record.

Fibers that carry no circuit are dark. A reservation is a circuit with status reserved, created from the A → Z search (see ).

Traces and the loss budget

A trace follows a strand from splice to splice in both directions until it reaches a patch-panel termination, an open (unspliced) end, or a loop. The result is the list of cables, splices and end points the light passes through, the total length, and an estimated loss:

estimated loss = length (km) × fiber loss (dB/km)
               + fusion splices × fusion splice loss
               + mechanical splices × mechanical splice loss
               + connector pairs × connector pair loss

The assumptions are part of the network data and are always shown with the result. For Demo City Fiber they are:

AssumptionValue
Wavelength1310 nm
Fiber attenuation0.35 dB/km
Fusion splice0.1 dB each
Mechanical splice0.3 dB each
Connector pair0.5 dB each (one for every end that lands on a patch panel)

A measured OTDR or power-meter result, when recorded, is shown next to the estimate (see ).

Verified and unverified records

Every record carries where it came from and how much it can be trusted:

FieldValuesMeaning
Lifecycleplanned, as-built, abandonedDesigned but not built; built; kept for history only. Abandoned conduit is ignored by the open conduit finder.
Confidenceverified, unverified, estimatedField-checked; imported but not checked; derived (for example a straight-line conduit drawn between two structures).
SourcetextWhere the record came from, for example legacy-spreadsheet or web-editor.
Updateddate · userWhen and by whom the record was last changed.

On the map, a structure that is not verified has a dashed amber outline. Detail cards show a green verified pill or an amber unverified · source pill, and the identify popup adds unverified after the type. The Q1 data health check lists every unverified structure as a field-verification work list (see ). In the demo, NBUR.100A and W6.550 are unverified records from a legacy spreadsheet.

Splices you make in the splice editor are saved with lifecycle as-built, source web-editor and confidence verified.

Getting started

This chapter covers opening the application, the parts of the screen, roles, and how your changes are kept.

Opening the application

The application is a set of web pages. Open index.html in a current browser (Microsoft Edge, Google Chrome, Firefox or Safari), either from the web address your administrator gives you or straight from a folder on disk.

While it loads, the map is empty. When the network data has loaded, the map draws the network and the sidebar shows network statistics.

NoteThe browser needs internet access to load the map library (OpenLayers, from cdn.jsdelivr.net) and the basemap tiles (from server.arcgisonline.com). Without the map library the map shows The map library could not load (offline?). Reload when connected. Closed networks can host both locally; see .

The screen layout

The main window: top bar, sidebar with the Search tab and network statistics, and the map with Layers and Legend panels
The main window with the Search tab open.
Parts of the main window
AreaWhat it is for
Top barPanel button, product name and organisation, demo badge, role switch, Reset demo data and User manual. See .
Sidebar tabsSearch, A → Z, Circuits, Conduit and Reports. Each tab is one tool.
Sidebar panelThe active tool, or a detail card (location, cable, conduit, trace). Detail cards have a Back button that returns to the last tab.
MapThe network on a basemap, with zoom (+ / −), home and scale controls at the left.
Layers panelTop right of the map. Turns network layers on and off and switches the basemap.
Legend panelBottom right of the map. Explains every symbol and color.
PopupOpens on the map when you click a feature (identify).
MessagesShort confirmations (for example Reserved CKT-012: …) appear for a few seconds at the bottom center of the window.

Dialogs open over the main window for the splice editor, reports and the reservation form.

The top bar

The top bar
The top bar in demo mode.
ItemDescription
Panel button (☰)Hides or shows the sidebar so the map gets the full width. On a phone it opens a menu: the search and tools panel, Reset demo data and the user manual.
Fiber Asset & Splice ManagerThe product name (Fiber Manager on a phone). The small line under it names the organisation whose network this is (Demo network in the demo), set by orgName in config.json.
Demo data — fictional networkBadge reminding you that every record is invented (demo only). On narrow screens it is a small Demo data chip at the bottom left of the map, above the scale bar.
Viewer / EditorRole switch, demo mode only. See .
Reset demo dataDiscards your changes and reloads the original network. Demo mode only. On a phone it is in the ☰ menu.
User manualOpens this manual in a new browser tab. On a phone the button reads ?. Pressing ? anywhere in the application does the same.
User name · roleShown instead of the role switch when the application is deployed in static or rest mode, for example Viewer · viewer (read-only). See .

Roles: Viewer and Editor

There are two roles:

  • Viewer can see and search everything, trace fibers, run reports, export CSV and run data health checks.
  • Editor can also change splices, reserve and release fiber, and save OTDR results.

To switch roles in the demo

  1. In the top bar, click Viewer or Editor.

The highlighted button shows the current role. The choice is remembered in this browser.

As a Viewer, editing buttons are disabled: Connect, Disconnect, Tube straight across, All straight across and Undo in the splice editor (which also shows Viewer: read-only), Reserve… in A → Z results, Release reservation, and the OTDR form. If a change is attempted anyway, the message Viewer role: switch to Editor to make changes. appears.

CautionThe Viewer/Editor switch is a demonstration aid, not security. In a production deployment the user and role come from the web server's sign-in (for example Windows Authentication), and the switch is not shown. See .

The live totals banner and guided scenarios

A slim banner under the top bar shows the network's totals. It is always visible and updates the moment anything changes: a total that changed flashes briefly. Click lit circuits or reserved to list those circuits in the Circuits tab. On a narrow screen, swipe the banner sideways to see every total.

Live totals
TotalCounts
sitesStructures with a site code, except splice-point manholes.
manholes & handholesAll other structures.
conduitTotal conduit length in km.
cables / fiber strandsNumber of cables and the sum of their fiber counts.
splicesAll splices on record.
on patch panelsAll patch-panel terminations on record.
lit circuits / reservedCircuits by status.

When the search box is empty, the Search tab shows the guided scenarios.

The Guided scenarios are staged examples on the fictional demo network. Each one jumps straight to a single tool, already set up, so you can see what it does at a glance. They are starting points, not limits: everything they open stays fully editable, and Reset demo data puts the network back.

ScenarioWhat it opens
Splice editorThe splice editor at the Police Department (PD) hub: backbone fibers spliced straight through, local fibers on patch panels, and a camera drop spliced onto its own cable.
End-to-end traceCKT-001, City Hall core ⇄ Water Plant SCADA, with loss budget and a recorded OTDR test.
A → Z dark fiber searchDark fiber routes from City Hall (CH) to the North Water Tower POP (WT), ready to reserve.
Open conduit finderOpen conduit from Fire Station 1 (FS) to the Public Works yard (PW).
Circuit reportThe printable report for CKT-001, with CSV export.

The demo network is deliberately conventional so the tools read clearly: backbone fibers splice straight across, each cable lands on its own patch panel with port N carrying fiber N, and only a handful of simple exceptions exist. shows how the tool handles messier, real-world splicing.

Saving your work and resetting the demo data

In the demo there is no Save button: every change is saved as soon as you make it, in this browser's local storage. That includes splices, reservations, released reservations and OTDR results. When you open the application again in the same browser, the message Restored your saved demo edits. Use “Reset demo data” to start over. confirms that your changes were loaded.

To reset the demo data

  1. In the top bar, click Reset demo data.
  2. Read the confirmation Reset the demo? This discards your splices, reservations and OTDR entries in this browser. and click OK.

The original network is reloaded, the map highlight is cleared, the Search tab opens and the message Demo data reset to the original network. appears.

CautionReset cannot be undone. Your changes are also lost if you clear the browser's site data, and they are not shared with other browsers or other people. If the browser blocks storage (some private windows do), the message Browser storage is blocked: edits will last until you reload. appears.

NoteSaved changes belong to one version of the network data. When the administrator publishes a new network file, saved demo changes made against the old file are not loaded.

Using the application on a phone or tablet

On screens narrower than 760 pixels the sidebar becomes a bottom sheet with three heights: peek (just the handle and the tab names, so most of the screen is map), half and full (up to just below the top bar).

Phone layout with the bottom sheet closedPhone layout with the bottom sheet open
Phone layout: bottom sheet closed (left) and open (right).
  • Drag the sheet by its handle or its tab strip to any height; it settles on the nearest of the three. A quick flick moves it one step.
  • Tap the handle to step through peek, half and full. Tapping a tab while the sheet is at peek opens it to half; opening a detail card does the same.
  • While an edit tool is on, the sheet steps aside and the tool's own panel takes its place at the bottom: compact at first (the title, the one control you need, and Cancel / Done), with the chevron in its title bar to show every option. Hints say tap and double-tap on a touch screen.
  • The ☰ button opens a menu with the panel, Reset demo data and the user manual.
  • The Legend starts collapsed; tap it to open.
  • The splice editor and reports fill the whole screen. The fiber color codes and the keyboard hint are hidden to save room, and the splice editor's How to use folds into one row at the bottom: tap it to read it.

Map navigation

The map shows the network on a basemap. You can move around it, choose what is drawn, and click any feature to identify it.

Panning and zooming

ToDo this
PanDrag the map with the mouse, or drag with one finger.
Zoom in or outTurn the mouse wheel, click + or − at the top left, or pinch on a touch screen.
Zoom in one stepDouble-click the map.
Zoom to a boxHold Shift and drag a rectangle.
See the whole networkClick the home button (house icon) under the zoom buttons.

The map is limited to zoom levels 11 to 20, which keeps you within reach of the network. Facility and cabinet labels are always shown; manhole labels appear as you zoom in.

Home, scale bar and attribution

The home button (tooltip Zoom to whole network) fits the whole network in view. The scale bar at the bottom left shows distance in feet or miles. The attribution at the bottom right credits the basemap provider; on narrow screens it is collapsed behind a small button.

The Layers panel

The Layers panel with network layer check boxes and basemap choices
The Layers panel open.

Click Layers at the top right of the map to open or close the panel.

OptionShows
Network (check boxes, all on by default)
Facilities & cabinetsStructures with a site code: facilities, cabinets and splice-point manholes.
Manholes & handholesAll other structures.
Conduit (by fill)Conduit runs colored by fill.
Fiber cablesCables colored by type.
Basemap (choose one)
Dark streetsDark gray street map (default). Best contrast for the network colors.
Light streetsA standard street map.
Aerial imagerySatellite and aerial photos, slightly dimmed.

TipTurn off Fiber cables to judge conduit fill on its own, or turn off Conduit (by fill) to see cable routes clearly. Highlights from traces and searches are drawn on top whatever the layer settings.

The Legend

Click Legend to open or close it. It is open by default on a computer and closed on a phone. It lists only what the map is showing: each section appears and disappears with its switch in Layers, and an Abandoned plant section appears when that layer is on. When it is longer than the space below Layers, it scrolls inside its panel, and the edge with more hidden behind it fades out: the bottom edge at first, the top edge once you have scrolled down.

SymbolMeaning
Blue circleFacility / POP
Violet diamondCabinet
Orange hexagonSplice point (manhole)
Small gray circleManhole
Small gray diamondHandhole
Dashed amber outlineUnverified location
Blue / cyan / violet lineFiber cable: Backbone (96–144), Distribution (24–48), Drop (12)
Green / yellow / orange / red bandConduit fill: Empty, Partly used, Busy (≥ 60%), Full
Dashed bandPlanned conduit
Short white tick across a conduitWhere a conduit run ends, shown only while the structure it ends on is hidden (Facilities & cabinets or Manholes & handholes off in Layers), so you can still tell one run from the next.

Identifying features

Point at a feature to highlight it; the pointer changes to a hand. Click to identify it: a popup opens with a summary and buttons.

Identify popup for the North Water Tower POP
Identify popup for a facility.

When several features overlap, the click picks in this order: facilities and cabinets, then manholes and handholes, then cables, then conduit. So clicking a manhole picks the manhole, not the cable passing through it. Zoom in to pick a line between structures.

Popup contents and buttons
FeatureShowsButtons
StructureType (and unverified if so), label, name and address, number of cable ends and conduit runs.Splice editor (only where there is a splice enclosure), Details, Conduit from, Conduit to
CableType, label, fiber count, length, A → Z ends.Fibers & route
ConduitLabel (and planned if so), material, size, length, ducts used and spare, cables inside or Empty conduit.Ducts

Close the popup with its × button or by clicking an empty part of the map.

Map highlights

Search results, traces and the finders draw a highlight on top of the network and zoom the map to it. End points are marked with yellow tags such as A · CH and Z · WP.

Highlight colorDrawn by
GreenTrace of a lit circuit; open conduit segment with a free duct.
AmberTrace of a reserved circuit.
YellowTrace of a dark fiber; the selected A → Z route.
BlueThe selected cable.
RedFull conduit segment on the open conduit route.

Click Back in a detail card to clear the highlight.

Splice editor

The splice editor shows two cables side by side at one location, with every buffer tube and fiber in its TIA-598 color, and draws a line for every splice between them. You use it to record, change and check splices, and to trace any fiber from where you stand.

Opening the splice editor

The splice editor works at any structure with a splice enclosure (facilities, cabinets and splice-point manholes such as MH7). Open it from:

  • the Splice editor button in a structure's identify popup;
  • Open splice editor on a location card;
  • Splices at A (…) or Splices at Z (…) on a cable card;
  • the edit link on a splice in a trace, or Splices at End A under a trace (the traced fiber is selected for you);
  • Splice editor under Guided scenarios (Police Department).

The editor opens on the pair of cables with the most splices between them, with the cable that starts at this location on the right, so it reads “in → out”. It opens at tube 1; use Go to tube… to jump further down. If no cable ends at a structure, the message No cables end at this structure. appears instead.

Close the editor with the × button at the top right or Esc.

The splice editor window

The splice editor at the Police Department
The splice editor at the Police Department.
Parts of the splice editor
PartDescription
TitleEnclosure label and location name, for example PD.R1.SE1 — Police Department.
Summary lineNumber of splice trays (with their labels), splices, patch-panel terminations and cables at this location.
Left cable / Right cableThe two cables shown. Each option reads label · type · A end or Z end (which end of the cable is here).
Swap button (⇄)Swaps the left and right cables.
ConnectSplices the selected left fiber to the selected right fiber (C).
DisconnectRemoves the splice on the selected fiber, or lifts it off its patch-panel port (D).
TraceCloses the editor and shows the full trace of the selected fiber in the sidebar.
Tube selectors and Tube straight acrossPick a left tube and a right tube (for example T3 Green → T2 Orange) and splice the tube fiber for fiber.
All straight acrossSplices every fiber to the fiber with the same number on the other cable.
Undo: …Reverses your last change (U). The button names the change it will undo, for example Undo: Connect CH-PD.144A #40 ⇄ PD-WT.144A #40.
Add trayAdds a 24-splice tray to the splice case here (or a splice case, if there is none).
Tube header tray listThe tray the tube is routed to, for example → ST3 16/24. Choose another to move the tube and its splices.
All trays listHighlights the splices in one splice tray and dims everything else. Each option shows the tray and how full it is, for example ST3 · 24/24.
Go to tube…Scrolls the board to a buffer tube.
Status lineUnder the toolbar: the result of the last action, a warning, or a conflict (green, amber or red border).
Fiber boardLeft cable fibers, splice lines, right cable fibers. Scrolls vertically.
Information panelAt the right (below the board on a phone). Shows How to use, the splice counts per cable pair and the splice trays with what each holds, or the selected fiber's details and live End A / End Z.
FooterLegend for the lines (Lit circuit, Reserved, Spliced, dark) and the row badges (↪, PP1:13, ST2, open), and the keyboard keys.

Reading the fiber board

Each side lists the cable's fibers grouped by buffer tube: a 144-fiber cable has 12 tubes of 12 fibers, in the same TIA-598 color order as the fibers inside them. Each tube starts with a header such as T2 Orange, underlined in the tube color, that says what its fibers do here, for example 4 spliced · 8 on panel or 12 spliced. A tube with no lines across is not unfinished work: its fibers are spliced to a different cable or land on a patch panel, and the header says which.

Each fiber row shows:

ElementMeaning
Colored bar with numberThe strand number in the whole cable (1–144) on a bar in the fiber's color.
CodeThe fiber's position in its tube and its color, the way splicers name it: 1·BL is the first, blue fiber of the tube.
TrayFor a spliced fiber, the splice tray that holds the splice, for example ST3.
Circuit tagThe circuit on this fiber, for example CKT-005, green for lit or amber for reserved.
↪ MH7-TS1.12A #1Spliced here to a fiber of a third cable that is not shown on the other side. Click it (or press J) to put that cable on the other side.
PP2:26Terminated here on patch panel 2, port 26.
openNot spliced or terminated here: coiled in the splice case for later use.
(no badge, a line)Spliced to the fiber at the other end of the line.
Fiber and line states
AppearanceMeaning
Green glow on the bar, green lineFiber on a lit circuit.
Amber outline and hatching, dashed amber lineFiber on a reserved circuit.
Gray-blue lineSpliced, dark (no circuit).
Slightly thicker line crossing othersA crossed splice: strand numbers differ on the two sides (for example #13 → #1).
Blue highlight and outline on a row; white lineThe selected fiber and its splice.
Row flashing redThis fiber blocked the last action (a conflict).
Faded rows and linesNot in the splice tray picked in the All trays list.

Hover over a fiber for a tooltip with its full description, for example MH7-LB.24A #13, tube 2 Orange, fiber 1 Blue, spliced to CH-MH7.48A #25.

Choosing the cables to show

To show a different pair of cables

  1. Choose a cable in Left cable.
  2. Choose a cable in Right cable.
  3. To put them the other way round, click the swap button (⇄) between the lists.

The board redraws with the new pair and any selection is cleared. If you choose the cable that is already on the other side, the two sides swap.

Where only one cable ends at a location, Right cable reads — only one cable here — and the board explains that its fibers are terminated on the patch panel. The tube and all-fiber buttons are then disabled.

TipWith nothing selected, the information panel lists Splices at this location for every cable pair, for example CH-MH7.48A ⇄ MH7-TS1.12A 4. Use it to find which pairs to look at. A ↪ badge also tells you which other cable a fiber goes to: click it to show that cable on the other side, with both fibers selected.

Under the cable pairs, Splice trays lists each tray with the cable pairs it holds and how full it is. Click a tray to highlight its splices on the board (the same as choosing it in the All trays list); click it again to show all trays.

Selecting fibers

Click a fiber to select it. You can have one selected fiber on each side. Click a selected fiber again to deselect it.

The information panel then shows the most recently selected fiber:

A selected fiber with its End A and End Z in the information panel
Fiber CH-PD.144A #13 selected: the crossed camera drop, with live End A / End Z.
ItemDescription
Fiber headingStrand label, tube and fiber colors and the code (for example Tube 2 Orange · fiber 1 Blue · OR.BL).
Circuit lineThe circuit label, name and status, or Dark fiber — available.
HereWhat the fiber is attached to at this location: spliced to … in (tray) (with show that cable when the other cable is not on screen), on … ⇄ device port with a Lift from patch panel button, or unspliced with a port list and Terminate button.
End A / End ZWhere the fiber ends in each direction after following all splices: a patch-panel port and the device port it is patched to, Unspliced / open end, or Loop detected.
PathThe locations the fiber passes through, for example CH → MH7 → LB.
Length, Splices, Est. loss @1310Totals for the whole traced path.
Show full trace on mapCloses the editor and opens the trace view (same as Trace).

End A and End Z update instantly as you connect and disconnect, so you can check a change before you leave the editor.

Connecting two fibers

To splice two fibers

  1. Make sure you are in the Editor role.
  2. Click a fiber in the left cable.
  3. Click a fiber in the right cable. Connect becomes available when one fiber is selected on each side.
  4. Click Connect, or press C.

A line is drawn between the fibers and the status line reads, for example, Connected CH-MH7.48A #40 ⇄ MH7-LB.24A #20 on followed by the splice tray that holds the new splice. The selection is cleared so you can make the next splice.

To splice by dragging (mouse or pen)

  1. Press on a fiber's colored bar and drag toward the other cable. A dashed line follows the pointer.
  2. Move over a fiber on the other side. It glows green with a dashed outline when the splice is allowed, or red when it is not (the fiber is already spliced or terminated here).
  3. Release over the fiber. Press Esc while dragging to cancel.

A green drop makes the splice, exactly as Connect does. A red drop shows the conflict and changes nothing. Releasing anywhere else shows Not connected: drop the line on a fiber in the other cable. Near the top or bottom of the board, the board scrolls while you drag.

On touch screens, tap a fiber on each side and then Connect: the fiber rows are larger there, sized for a thumb.

New splices are recorded as fusion splices, dated today, with you as the technician. Each one goes on the tray its buffer tubes are routed to, adding a tray when needed and the case has room (see ).

If one of the fibers is already spliced or terminated here, nothing is changed: see .

Disconnecting a fiber

To remove a splice

  1. Click one of the two spliced fibers (either side).
  2. Click Disconnect, or press D or Delete.
  3. If a circuit runs through the splice, read the warning … runs through this splice. Disconnecting will break it. Continue? and click OK to go ahead or Cancel to keep it.

The line disappears and the status line reads Disconnected … ⇄ ….

CautionDisconnecting a fiber on a lit or reserved circuit breaks that circuit. The status line says so (CKT-005 is now broken — use Undo to restore.). Use Undo right away if this was a mistake.

A fiber that is neither spliced nor terminated here shows … is not spliced or terminated here.

Terminating a fiber on a patch panel

A fiber that lands in the building, rather than continuing on another cable, is terminated on a patch-panel port. You can move a fiber between the two.

To lift a fiber off its port

  1. Select a fiber with a PP… badge.
  2. Click Disconnect (or D), or Lift from patch panel in the information panel.
  3. If a circuit uses the fiber, confirm the warning.

The badge becomes open and the port is free. Any patch cord on the port stays in place, so terminating a fiber on that port later reconnects the device.

To terminate an open fiber

  1. Select a fiber marked open.
  2. In the information panel, choose a port in Terminate on a panel port. Free ports on the panel that serves this cable are listed first, starting with the port that matches the fiber number.
  3. Click Terminate.

The row shows the new PP… badge, and End A / End Z now stop at that port.

Both changes are single steps that Undo reverses.

Splicing a tube straight across

Splicing a whole buffer tube at once is the usual way to splice a branch cable into a ring. Fiber 1 of the left tube is joined to fiber 1 of the right tube, fiber 2 to fiber 2, and so on.

To splice a tube straight across

  1. In the toolbar, choose the left tube in the first tube list, for example T3 Green. You can also click a tube header on the left side of the board.
  2. Choose the right tube in the second list, for example T2 Orange, or click a tube header on the right side.
  3. Click Tube straight across.

The status line reports the result, for example Tube 3 Green → tube 2 Orange: 12 splices made.

Twelve new splice lines from tube 3 green to tube 2 orange
Tube 3 Green of CH-MH7.48A spliced straight across to tube 2 Orange of MH7-LB.24A at MH7.

Fibers that are already spliced or terminated are skipped, and the rest are spliced. The status line counts all three outcomes, for example All fibers straight across: nothing to change — 108 already straight across · 24 blocked because a fiber is spliced elsewhere or on a panel (flashing red). Blocked fibers flash red. Pairs already spliced to exactly the matching partner are counted as already straight across, not as blocked.

If the two tubes have a different number of fibers, only as many fibers as the smaller tube has are spliced.

Splicing all fibers straight across

To splice every fiber straight across

  1. Show the two cables to join (see ).
  2. Click All straight across.

Fiber 1 is spliced to fiber 1, fiber 2 to fiber 2, and so on up to the smaller fiber count. Blocked fibers are skipped as with a tube. The status line reads All fibers straight across: n splices made…

TipA tube or all-fiber splice is one change: a single Undo removes all the splices it made.

Conflict checks

Every change is checked before it is made. A strand end can have only one splice or termination at a location, so Connect is refused when:

  • both fibers are in the same cable (Both fibers are in the same cable.);
  • a fiber is already spliced here (… is already spliced to ….);
  • a fiber is terminated on a patch panel here (… is terminated on ….).
A conflict message in red with both fibers flashing
A refused connection: both fibers are already spliced.

The status line turns red, starts with Conflict: and ends with Disconnect it first (a fiber connects once per side). Both fibers flash red. Nothing is saved.

To move a splice to a different fiber

  1. Select the fiber whose splice you want to move and click Disconnect.
  2. Select the left and right fibers you want to join.
  3. Click Connect.

Undo

Click Undo or press U (or Ctrl+Z) to reverse the last change. The button itself names that change before you click, for example Undo: Tube 3 Green → tube 2 Orange, and the status line confirms what was undone. You can undo repeatedly, back to the first change of the session.

Undo covers every change: splices, terminations, circuits, and everything built, edited, moved, abandoned or deleted with the edit toolbar, wherever in the application you made it. The edit toolbar also has Redo. It does not cover OTDR results.

NoteThe undo history lasts until you reload the page. Your changes themselves stay saved after a reload; only the ability to undo them step by step is lost.

Tracing from the splice editor

Select any fiber and the information panel shows its End A and End Z at once. Press T to refresh the panel for the last selected fiber without leaving the editor.

To see the full trace on the map

  1. Select a fiber.
  2. Click Trace in the toolbar or Show full trace on map in the information panel.

The editor closes, the map highlights the path and the sidebar shows the trace view (see ).

Using the keyboard

The splice editor can be used entirely from the keyboard. Each fiber column is a single Tab stop; inside it, use the arrow keys.

KeyAction
↑ ↓Move to the previous or next fiber in the same column.
← →Move to the fiber in the same row of the other column.
Home EndMove to the first or last fiber in the column.
Space or EnterSelect or deselect the focused fiber.
CConnect the selected fibers.
D or DeleteDisconnect the selected fiber's splice, or lift it off its patch-panel port.
JFollow the selected fiber's ↪ splice: show the other cable on the other side.
TShow the selected fiber's trace in the information panel.
U or Ctrl+ZUndo.
EscClose the splice editor.

The letter keys do nothing while a cable or tube list has focus, so you can type to pick from a list.

The splice editor for viewers

Splice editor toolbar in Viewer role, with editing buttons disabled
In the Viewer role, editing buttons are disabled and Viewer: read-only is shown.

Viewers can open the editor, change the cables shown, select fibers, read End A / End Z and use Trace. Connect, Disconnect, Tube straight across, All straight across and Undo are disabled. Editing keys show Viewer role: switch to Editor (top right) to change splices.

The splice editor on a phone
The splice editor on a phone uses the full screen.

Real-world splicing: worked examples

The demo network is kept simple on purpose. Real plant is rarely that tidy: decades of repairs, re-feeds and contractors leave crossed fibers, tubes that change color between cables, and fibers that split off in the middle of a tube. The model handles all of it the same way, because every splice is a record that joins exactly one strand to another, and every path is traced from those records rather than typed in. These examples show how.

1. A drop cable spliced onto a different tube

In the demo: at the Police Department, fibers 13–16 of CH-PD.144A (tube 2, orange) are spliced to fibers 1–4 of the camera drop PD-CM1.12A (tube 1, blue). Branch cables almost always start at tube 1, so the color changes at the splice.

How the tool shows it: with both cables on screen, the four lines cross from orange to blue and are drawn slightly thicker. With another cable on the right, the rows read ↪ PD-CM1.12A #1; click it to follow the splice. The trace of fiber 13 lists the splice as crossed #13→#1 and still ends at the camera cabinet's media converter.

2. A rolled pair

In the demo: at the Water Treatment Plant, a repair crossed fibers 85 and 86 between WT-WP.96A and WP-PW.96A: 85 goes to 86 and 86 to 85.

How the tool shows it: two lines form an X in tube 8. A circuit on that pair still traces correctly end to end. If the pair was crossed by mistake, select one fiber, Disconnect both, and Connect them straight; End A and End Z update as you go.

3. A mid-tube tap

In the demo: at the Library, fibers 5–6 of MH7-LB.24A are spliced to fibers 1–2 of the traffic-signal drop LB-TS2.12A, while the rest of that tube lands on the library's patch panel.

How the tool shows it: the tube header reads 2 spliced · 10 on panel, and the two tapped fibers carry ↪ badges. A → Z search treats the tapped fibers as part of the signal circuit's path, not as free library fibers.

4. Fibers coiled in a manhole for later

In the demo: in the MH7 splice case, only tube 1 of CH-MH7.48A continues to the library and four fibers drop to the traffic signal. The rest stay coiled in the case.

How the tool shows it: those rows read open, and the tube headers count them (4 spliced · 8 open). When a new lateral is built, splice it with Tube straight across, or select individual fibers and Connect.

5. Where the tool goes beyond the demo

The same rules cover the messier cases found in legacy records, without special handling:

  • A fiber crossed between two different tubes at several locations. Each location is its own splice record, and the trace follows them in order, however many there are.
  • A cable re-fed from the other direction. Cable A and Z ends are fixed. A splice can join any end, so the trace walks correctly whichever way the fiber was re-routed.
  • Accidental loops. A path that comes back on itself is stopped and reported as Loop detected instead of running forever.
  • Conflicting legacy records. When imported spreadsheets claim two splices on one fiber end, the importer refuses them (rule V4) and the Data health report lists them for field checking, rather than guessing.
  • Mixed color standards or fiber counts. Tube and fiber colors are derived from the strand number, so a 288-count cable with 24 fibers per tube, or a 6-fiber drop, draws correctly with no extra setup.

Building and editing the network

Creating, changing and removing plant is done with the edit toolbar: the column of buttons on the map under Home. It appears in the Editor role. Plant is added the way it is built in the field: place the structures, lay conduit between them, pull cable through the conduit, then splice where cable ends meet. Every change is a single step that Undo reverses, is saved like any other edit, and is checked by .

The edit toolbar under Home with the Place a structure flyout open beside it
The edit toolbar, with the Place a structure tool's flyout open beside it.
The edit toolbar, top to bottom
ToolWhat it does
Select and edit (arrow)Click a structure, conduit or cable to edit its details, move or reshape it, abandon or delete it. See .
Place a structure (crosshair)Each click on the map places one; the tool stays on.
Lay conduitDraw conduit from structure to structure; the tool stays on for the next run.
Pull cableClick the A end, then the Z end, and pull a cable through spare ducts.
Splice cases and traysClick a structure to add a case or tray there, or open a mid-cable splice point.
Undo / RedoReverse or repeat the last change. Hover to see which change.

Clicking a tool opens its flyout beside the toolbar (a panel at the bottom of the screen on a phone). Click the tool again, the flyout's ×, or press Esc to put it away. While a tool is on, map clicks belong to it instead of opening pop-ups. When a tool is waiting for the map (placing, drawing, moving or reshaping), the top of its flyout says what to do next in one line, with How to use to unfold the details and the Cancel (and, where it applies, Done) buttons.

Placing a structure

To place a structure

  1. Click Place a structure in the edit toolbar.
  2. In the flyout, choose the Type: handhole, manhole, vault, pedestal, pole, cabinet or facility.
  3. Optionally type a Label (for a cabinet or facility, its Site code, such as NS1) and a Name.
  4. Click the map where the structure is. Keep clicking to place more; Esc or Cancel stops.

The structure appears on the map. An empty label is suggested from the naming conventions: a box near E12.400 becomes E12.400A, a cabinet CB1, a facility NS1. Cabinets and facilities get a rack.

Placing a structure on a conduit run

Click on a conduit to insert a handhole, manhole, vault, pedestal or pole into it. The structure lands exactly on the run, and the run is split in two at it: CD-042 now ends at the new structure, and a new run (for example CD-088) continues from it, with the same ducts and duct statuses. Cables in the run are not cut: they now pass through the new structure, with one more hop. The result offers Open a splice point on … for each of those cables, which turns the hop into a splice (see ). Cabinets and buildings sit beside the street, so they are never inserted into a run.

Laying conduit

To draw conduit along the street

  1. Click Lay conduit in the edit toolbar.
  2. In the flyout, choose the conduit: 2" HDPE with 3 innerducts, 4" PVC with 4, a 7-way microduct bundle, or a 2" PVC lateral with 2.
  3. Click a structure to start. The pointer snaps to structures as you get close.
  4. Click along the street at each bend.
  5. Double-click a structure to finish.

The conduit and its ducts are added, all spare. The status reads, for example, Added CD-088: 2" PVC lateral, 2 innerducts, 133 m, MH7 → NC1. A conduit that does not start and end on a structure is refused.

For a quick straight run, open Or a straight run between two structures, pick From and To, and click Add straight conduit. Lay conduit from here on a location card fills in From for you.

Pulling cable

To pull a new cable

  1. Click Pull cable in the edit toolbar, then click the A end and the Z end on the map (or pick From (A end) and To (Z end) in the flyout). The location card buttons Pull cable from here and Pull cable to here fill these in too.
  2. Choose the fiber count (12 to 144) and, if you like, the cable type.
  3. Leave land every fiber on a new patch panel ticked to terminate the cable at a building or cabinet end.
  4. Click Show route to see the conduit path on the map, then Pull cable.

The cable takes one spare duct in every conduit on the route, is labeled from its ends (for example MH7-NC1.12A), and its length includes 30 m of slack at each end. A summary lists what happened at each end, with a Splice it in at … button for every end where it meets other cables.

The route is the shortest one through conduit that still has a spare duct. If there is none, the route result says which conduit is full; lay conduit first.

At each end of the new cable:

The end is at…What the tool does
A building or cabinetWith the box ticked, adds a patch panel for this cable and lands every fiber on it, port N = fiber N (48 ports per panel).
A structure where other cables endThis is where cable ends meet, so they will be spliced. If there is no splice case yet, one is added with an empty tray: a rack-mount enclosure in a building or cabinet, a small dome case in a handhole, a larger case in a manhole or vault.
A structure where nothing else endsNothing; the fibers are left open (coiled) until something meets them.

Splice cases, trays and tube routing

A splice case holds a fixed number of trays; a tray holds a fixed number of splices (12 or 24). Each tray also lists the buffer tubes routed to it: in the field a tube is laid into one tray, and its fibers are spliced there.

Splice case presets
PresetTraysTypical place
Dome splice case4Handhole or small manhole
Large dome / inline splice case12Manhole or vault
Rack-mount splice enclosure12Building or cabinet

Use the Splice cases and trays tool: click a structure on the map (or pick it in the flyout; Add splice case / Add tray / case on a location card does the same) to add a case or a tray by hand. The panel lists each case with its trays and how full they are. Add tray is refused once the case holds all the trays it can: add another case.

In the splice editor, each tube header has a tray list showing where the tube is routed, for example → ST3 16/24. Choose another tray to move the tube, and its splices here move with it (the tubes they join to are routed there too). Add tray in the editor toolbar adds a tray to the case here, or a case if there is none.

New splices go where their tubes are routed. A tube pair always goes onto one tray together: a tray already holding both tubes, then one holding either, then an empty tray, then any tray with room. If none has room, a new tray is added while the case has space; otherwise the splice is refused with a message to add a case. The status line says when a tube was routed or a tray added, for example added tray W4.150.SC1.T2; routed MH7-NC1.12A T1 Blue to W4.150.SC1.T2.

Editing, moving and reshaping

Click Select and edit in the edit toolbar, then click a structure, conduit or cable on the map. (Edit / move / remove on a location card, cable card or conduit card opens the same form.) The flyout shows its details as a form, what is connected to it, and how it can be removed.

The Select and edit flyout showing a manhole's details form
Editing a manhole: details, lifecycle and confidence, actions, and what is connected to it.
RecordYou can changeActions
StructureLabel (site code for cabinets and buildings), type, name, address or lid size, lifecycle, confidence; its patch panels (see )Move (drag on map): drag it to its new spot. Conduit ends attached to it move with it, and the lengths of those runs and of the cables in them are updated.
ConduitLabel, placement, material, size, lifecycle, confidence; each spare duct's status (spare, reserved, damaged); add a duct (up to 7) or remove a spare oneReshape bends: drag a bend, drag the middle of a segment to add one, Alt+click a bend to remove it, then Done. The ends stay on their structures. Pull cable along it.
CableLabel, type, fiber type, year installed, lifecycle, confidenceReroute it onto other conduit runs (see ); open the cable card, or the splice editor at either end.

Click Save changes to apply the form. Labels must stay unique. An occupied duct's status is set by its cable and cannot be changed here. Setting Confidence to verified is how a field check is recorded: the record leaves the field-verification list in .

Patch panels

The edit flyout of a structure lists its patch panels under Patch panels: label, number of ports and how many fibers are landed on it (and the highest port in use).

ToDo this
Add a panelPick the size (12 to 144 ports) beside Add patch panel and click it. The panel goes in the structure's rack (a building or cabinet without one gets R1 first) and is labelled by convention, for example PD.R1.PP5. It starts empty.
RenameType the new label in its row and press Enter or leave the field. Labels must stay unique.
ResizePick another size in its row. A panel cannot shrink below the highest port in use; move those fibers first.
RemoveClick × in its row. Only an empty panel can be removed: one with fibers landed or patch cords plugged in shows the button greyed out. Lift the fibers in the splice editor first.

Fibers are landed on a panel's ports, and lifted off them, in the splice editor (see ). rule V10 also checks that no fiber sits on a port beyond its panel's size.

Rerouting a cable

A cable can be moved onto other conduit runs between the same two ends, for example around a damaged or full run. Its ends, splices and terminations do not change.

To reroute a cable

  1. Select the cable with Select and edit and click Reroute. Its current route is shown in green.
  2. Either click Suggest another route (the shortest route through conduit with a spare duct that avoids the current runs, or as many of them as possible), or click Pick runs on the map and click conduit runs one after another from the A end. Each run must start where the route has got to; click the last run again to take it back.
  3. When the route reaches the Z end, click Apply reroute.

The cable rides the new runs. The ducts it left become spare; in each new run it takes a spare duct (a run it stays in keeps its duct). Its length is recalculated, keeping the slack at its two ends. Undo puts it back.

A run with no spare duct cannot be used: add a duct to it (conduit edit form) or pick another run.

Change history

The edit flyout of every structure, conduit and cable ends with its History: each change, newest first, with what changed (for example name E 12th St → Main St manhole), when and who made it. A structure's history includes its patch panels, splice cases and splices (as counts: 12 splices added); a conduit's includes its ducts; a cable's shows reroutes. The last line says since when, and from which source, the record has been on file. Show all lists more than the last eight changes.

The history is saved with your edits in the same place (this browser in the demo; see ) and survives a reload; Reset demo data clears it. Each entry records who made the change: in the demo that is the demo editor; when sign-in is added, the signed-in user's name fills the same field.

Abandoning and deleting

Plant that exists, or existed, is abandoned, not erased, so the record keeps its history:

  • Abandon marks it out of service. It disappears from the map, routes and fiber searches, and stays on record. Turn on Abandoned plant in Layers to see it (dotted gray), and Restore to service brings it back.
  • Delete removes a record completely. It is only for mistakes: records still planned, or created in this session. For anything else the button is disabled.

Both are refused while something still depends on the record, and the message says what:

Removing a…Is refused while…Deleting it also removes…
Structureconduit runs, cables, splices, terminations or devices are attached (abandon or move those first)its empty racks, splice cases, trays and patch panels
Conduita cable is in itits ducts
Cablea circuit (lit or reserved) rides on it: release or move the circuit firstits spans, splices and patch-panel terminations (and panels installed only for it); its ducts become spare again

The Connected to it list in the flyout shows these dependencies before you try. Every abandon, restore and delete is one Undo step.

Opening a splice point mid-cable

Most splicing happens where cable ends meet. The exception is a mid-span access: tapping fibers out of a cable that passes straight through a manhole or handhole without a splice.

To open a splice point on a passing cable

  1. With the Splice cases and trays tool, click the structure on the map, or click Splice into a passing cable on its location card.
  2. Under the case details, click Open a splice point on … for the cable, and confirm.

The cable is split here into two cables, for example CH-PD.144A becomes CH-W2.200.144A and W2.200-PD.144A. A splice case is added if needed, and every fiber is spliced straight across, two buffer tubes per tray. Click Open the splice editor here to see the express lines.

Nothing changes end to end: every circuit on the cable still traces through, with one more splice in its loss budget. To tap fibers, select one, Disconnect it, and splice it to the new cable. The A-side cable keeps its record, so circuits and the A end are untouched. Records at the far end move to the Z-side cable. One Undo reverses the whole split.

Worked example: a new camera lateral

  1. Place a cabinet NC1 near the MH7 manhole.
  2. Lay conduit from MH7 to NC1: a 2" PVC lateral with 2 innerducts.
  3. Pull cable MH7 → NC1, 12 fibers. NC1 gets a patch panel with all 12 fibers on it; MH7 already has a splice case, so it is ready to splice.
  4. Click Splice it in at MH7. The splice editor opens with CH-MH7.48A on the left and the new cable on the right.
  5. Pick T3 Green → T1 Blue and click Tube straight across. The 12 splices go onto a new tray with both tubes routed to it.
  6. Select fiber 1 of the new cable: End A is City Hall's patch panel, End Z is NC1's. Trace or reserve it like any other fiber.

Trace and OTDR

A trace shows the complete path of a fiber from End A to End Z, every cable and splice in between, the totals and the loss budget. It is also where you record an OTDR or power-meter result.

Starting a trace

Start a trace from any of these:

  • a fiber chip in the Fibers grid of a cable card;
  • a circuit in the Circuits tab, in search results or under Fiber service at this location (the circuit's first strand is traced);
  • a fiber chip #n in an A → Z route;
  • Trace or Show full trace on map in the splice editor;
  • End-to-end trace under Guided scenarios.

Reading the trace view

Trace of circuit CKT-001 in the sidebar and on the map
Trace of CKT-001, City Hall core ⇄ Water Plant SCADA.
PartDescription
Taglit circuit, reserved circuit or Fiber trace · dark.
TitleCircuit label and name, or the strand label for a dark fiber.
Service lineService and bandwidth, and Traced from … with the full strand description.
Reservation noteFor a reserved circuit: reserved by, reserved on, hold until and notes.
Strand chipsFor a circuit on more than one fiber (for example a pair): one chip per strand. Click a chip to trace that strand.
End A / End ZThe location at each end and how the fiber ends there: patch-panel port ⇄ device port (for example CH.R1.PP2 port 26 ⇄ CH-CORE-01 Te1/0/1), a port with (no patch cord), Unspliced / open end, or Loop detected.
Cable hopStrand label, from → to, tube and fiber colors, and the cable length. The dot shows the fiber color.
Splice hopSplice tray label, splice kind, crossed #13→#1 when the strand number changes, the recorded splice loss, and an edit link that opens the splice editor there with the fiber selected.
TotalsLength, Splices, Connectors (ends on a patch panel) and Est. loss.
Loss assumptionsClick to expand the calculation; see .
OTDR / power-meter resultThe test result form; see .
Circuit reportOpens the printable circuit report (circuits only).
Release reservationReserved circuits only, Editor role. See .
Splices at End AOpens the splice editor at End A with the traced fiber selected.

The map highlights the path in green (lit), amber (reserved) or yellow (dark), marks every splice location with a dot, and tags the ends A · … and Z · ….

Totals and the loss budget

The length is the sum of the cable lengths on the path, including slack loops. The estimated loss uses the formula in . Expand Loss assumptions to see the calculation, for example:

0.35 dB/km at 1310 nm × 2.770 km = 0.97 dB · 0.1 dB per fusion splice · 0.5 dB per connector pair. Length includes slack loops. Recorded splice losses on this path total 0.10 dB.

The recorded splice losses are the values technicians entered for each splice. They are listed for comparison and are not part of the estimate.

Recording an OTDR or power-meter result

OTDR / power-meter result form with a saved measurement
The OTDR / power-meter result form, with a saved measurement.

To record a test result

  1. Trace the fiber or circuit you tested. You need the Editor role.
  2. Under OTDR / power-meter result, type the Measured loss (dB), for example 2.05.
  3. Enter the Test date. If you leave it empty, today's date is used.
  4. Optionally choose the Test report file (.sor, .pdf, .csv, .txt or .json).
  5. Click Save test result.

The message Test result saved. appears, and the form compares the measurement with the estimate.

FieldDescription
Measured loss (dB)End-to-end loss, 0 to 60 dB, two decimals. Results are recorded at 1310 nm.
Test dateDate of the test.
Test reportThe test file. Once saved, the label shows attached: file name.
ComparisonMeasured x dB vs estimate y dB → within 0.5 dB of budget, or investigate: differs by more than 0.5 dB.

NoteThe demo stores the name of the test file, not the file itself; the message says so when you attach one. Your name is recorded as the technician. For a circuit, the result belongs to the circuit and appears in the circuit report; for a dark fiber it belongs to the traced path.

TipA measurement more than 0.5 dB above the estimate usually points to a bad splice, a dirty connector or a tight bend. Use the splice hops and their recorded losses to decide where to look first.

A → Z dark fiber and reservations

The A → Z tool finds dark fiber that already runs, through existing splices, between two sites, and lets you reserve it for a future circuit.

Finding dark fiber routes

To find dark fiber between two sites

  1. Click the A → Z tab.
  2. Choose the start site in Location A and the end site in Location Z. Use the swap button between them to exchange A and Z.
  3. Click Find routes.

The routes are listed under n routes A → Z, and the first route is highlighted in yellow on the map.

The location lists contain every site with a site code, shown as code — name. You can also fill them from a location card with Use as A and Use as Z.

A to Z results from City Hall to the North Water Tower
A → Z routes from City Hall (CH) to the North Water Tower POP (WT).

If A and Z are the same, the panel asks you to Pick two different locations. If no fiber connects the two sites through existing splices, the panel says so and suggests opening the splice editor at an intermediate location to build the path.

Reading the route results

Fibers are grouped into routes: all fibers that follow the same sequence of cables. Routes with free fibers come first, then those that are ready to use without opening splices, then the shortest.

Route card
ItemDescription
Route nRoute number. The highlighted card has a yellow edge and is the one drawn on the map.
n dark fibers freeFibers on this route with no circuit (green), or no free fibers (red).
n in useFibers on this route already carrying a circuit.
Cable chainThe cables in order, for example CH-PD.144A → PD-WT.144A.
Length, Splices, Est. lossRoute length, number of splices, and the estimated loss including a connector pair at each end.
Ready to useyes — ends on panels: the free fibers already end at A and Z. needs n express splice opened: see .
Fiber chips #nUp to 8 free fibers, in their fiber color (+n more if there are more). Click one to trace it.
Show on mapHighlights this route on the map.
Reserve…Opens the reservation form for this route. Editor role only.

Express splices and “Ready to use”

A dark fiber can pass through A or Z on an express splice and continue to another site. Such a fiber does reach both sites, but to use it between A and Z the splice at the end of the route must be opened so the fiber ends there.

The route card tells you how many express splices would need opening for its best free fiber. When you reserve, the application opens them for you, and the reservation's notes record it (Opened n express splice(s) at the route ends.). The reservation form also warns about it before you confirm.

Reserving fiber

To reserve dark fiber on a route

  1. Find the routes (see ). You need the Editor role.
  2. On the route you want, click Reserve….
  3. In Reserve fiber path, check the route summary and fill in the form (see the table below).
  4. Click Reserve. To abandon the reservation, click Cancel or press Esc.

A new reserved circuit is created, for example Reserved CKT-012: Future: CH ⇄ WT, and its trace view opens. The reserved fibers turn amber in the splice editor and fiber grids.

The Reserve fiber path form
The Reserve fiber path form.
FieldDescription
SummaryThe route's cables, number of free fibers and length, and whether express splices will be opened.
Circuit nameRequired, up to 80 characters. Suggested: Future: A ⇄ Z.
Reserved byRequired, up to 60 characters.
Fibers1, 2 (pair) (default) or 4. The lowest-numbered free fibers are reserved.
Hold untilRequired. Defaults to one year from today.
NotesOptional, up to 160 characters.

A new reservation gets the next circuit number, the service Reserved capacity, today's date as reserved on, and the owner Demo City IT. If the route has fewer free fibers than requested, the message Not enough free fibers on this route. appears and nothing is reserved.

Releasing a reservation

To release reserved fiber

  1. Open the reserved circuit, for example from the Circuits tab with the Reserved filter.
  2. Click Release reservation (Editor role).
  3. Confirm Release reservation … ? The fibers become available again. with OK.

The circuit is removed, the message CKT-… released. appears and the Circuits tab opens.

CautionReleasing removes the circuit only. Express splices that were opened when the fiber was reserved stay open. To restore them as well, use Undo on the reservation instead (in the splice editor, during the same session), or re-splice them in the splice editor.

Circuits

The Circuits tab lists every circuit on the network.

The Circuits tab

The Circuits tab
The Circuits tab.

Use the filter chips All, Lit and Reserved to narrow the list. Each circuit shows:

  • a status tag (lit in green, reserved in amber) and a matching colored edge;
  • the label and name, for example CKT-005 · Library public Wi-Fi backhaul;
  • End A ⇄ End Z site codes, length, estimated loss, and for reservations the hold-until date.

Click a circuit to open its trace view, with the circuit report and test result. The list updates as soon as you reserve or release fiber.

Circuits in the demo network

CircuitNameServiceStatus
CKT-001City Hall core ⇄ Water Plant SCADASCADA, 10Glit
CKT-002City Hall ⇄ Police dispatch LANPublic safety LAN, 1Glit
CKT-003City Hall ⇄ Water Tower ISP hand-offInternet transit, 10Glit
CKT-004City Hall ⇄ Fire Station 1 alertingPublic safety LAN, 1Glit
CKT-005Library public Wi-Fi backhaulPublic Wi-Fi, 1Glit
CKT-006Traffic signal TS1 interconnectTraffic, 1Glit
CKT-007Traffic signal TS2 interconnectTraffic, 1Glit
CKT-008Public Works ⇄ Water Plant SCADASCADA, 1Glit
CKT-009Camera CM1 ⇄ City Hall video serverVideo, 1Glit
CKT-010School district WAN ⇄ Water Tower ISPInternet transit, 10Glit
CKT-011Future: Public Works ⇄ City Hall diverse pathSCADA (future), 1Greserved

Open conduit finder

The open conduit finder answers “can we pull a new cable from here to there without building conduit?” It finds the shortest conduit route between two structures on which every conduit still has a free duct.

Finding open conduit

To find open conduit between two structures

  1. Click the Conduit tab.
  2. Choose the From structure and the To structure. Both lists contain every structure, shown as label — name.
  3. Click Find open conduit.

A banner gives the answer, the conduit runs are listed in order, and the route is drawn on the map.

TipInstead of scrolling the lists, click a structure on the map and use Conduit from or Conduit to in its popup or location card. The tab opens with the structure filled in and the message Set as conduit search “From”. (or “To”).

Reading the results

Open conduit from Fire Station 1 to Public Works
Open conduit from Fire Station 1 (FS) to the Public Works yard (PW).
ResultMeaning
Green bannerOpen path found: every segment has at least one free duct. with the total length and number of conduit runs.
Red bannerNo continuous open path. The shortest conduit route is shown anyway; red segments are full and need new conduit or innerduct.
Run listEach conduit in order: label (click to open the conduit card), from → to, material, length, and free ducts A, B… or full, plus planned for planned conduit.
MapGreen segments have a free duct, red segments are full, dashed segments are planned.

Only ducts with status spare count as free; reserved and damaged ducts do not. Abandoned conduit is never used. If the two structures are the same, the panel asks you to Pick two different structures.; if no conduit connects them at all, it says These structures are not connected by conduit.

Reports and CSV export

The Reports tab produces printable reports, splice diagrams and map books for crews, spreadsheet (CSV) and GIS (GeoJSON) exports, and runs the data health checks.

The Reports tab

The Reports tab
The Reports tab.
CardControls
Circuit reportCircuit list and Open report.
Splice tray report and diagramSplice location list (every location with a splice enclosure), Open report and Splice diagram.
Map bookArea (whole network or current map view), Page scale and Open map book.
CSV exportCircuits, All strands, All splices, Conduits.
Data healthRun checks. See .

The circuit report

Open it from the Reports tab, from Circuit report in a trace view, or from Guided scenarios.

Circuit report for CKT-001
Circuit report for CKT-001.

The report contains:

  • the circuit label, name, service and status;
  • owner, bandwidth, A end and Z end (with the device), strands, total length, and for reservations who reserved it, when, until when, and notes;
  • a Path table for each strand: every hop with its type (End A, Cable, Fusion splice, Mechanical splice, End Z), location, detail and length;
  • the Loss budget table: fiber attenuation, splices and connector pairs, the estimated total, and the measured OTDR value if one is recorded;
  • the OTDR test: measured loss, wavelength, date, technician and report file, or No test recorded yet.;
  • signature lines for Tested by, Date and Approved, and a footer with the date and time it was generated.

Download CSV saves the path tables as CKT-###-circuit-report.csv with the columns circuit, strand, hop, type, location, detail, length.

The splice tray report

Open it from the Reports tab or from Splice report on a location card.

Splice tray report for the Police Department
Splice tray report for the Police Department.

The report lists the enclosure, the number of trays, splices and terminations, and the cables. Then, for each tray, every splice in strand order with strand A and strand B (label, tube and fiber color swatches and code), type, loss, date and technician, and circuit. For each patch panel, every port with its strand, what it is patched to and the circuit.

Download CSV saves the splices as <location>-splice-report.csv with the columns location, tray, strand_a, code_a, strand_b, code_b, kind, loss_db, date, technician, circuit.

The splice diagram

A printable drawing of one splice location for the crew working in it. Open it with Print diagram in the splice editor, Splice diagram on a location card, or Splice diagram on the Reports tab.

Splice diagram for the Police Department
Splice diagram for the Police Department.

It contains:

  • the location: label, name, address, latitude and longitude, lid size, and the number of splice cases, trays, splices and panel terminations;
  • Cables here: each cable with its type, fiber count (tubes × fibers per tube), which end is here (Z end = coming in, A end = going out), the other end, and how many of its fibers are spliced, on a patch panel or open here;
  • for each splice case, each tray as a diagram: fibers coming in on the left, fibers going out on the right, one line per splice. Each fiber shows its label, its colour code (tube.fiber), its tube colour and its fiber colour with its number in the tube. A line that changes height is a fiber that changes position (a rolled pair or a tube moved to another). Green lines are lit circuits, dashed amber are reserved, gray are spliced but dark; a dot marks a fusion splice and a square a mechanical one. The circuit label is at the right. The tray heading lists the buffer tubes routed to it. A tray of more than 36 splices continues in a second block;
  • each patch panel: every port in use, with its fiber, colour code, what it is patched to and the circuit;
  • the TIA-598 colour code (1 Blue to 12 Aqua) and signature lines for Spliced by, Date and Checked.

It prints on the printer's normal page (portrait), each tray kept whole on a page. Download CSV saves one row per splice as <location>-splice-diagram.csv: location, case, tray, in_strand, in_code, out_strand, out_code, kind, loss_db, circuit.

The map book

A set of printed map pages a crew can take into the field. On the Reports tab, pick the Area and the Page scale, then click Open map book.

Map book: the index sheet with the page grid
Map book: the index sheet with the page grid.
  • Area: Whole network, or Current map view (zoom the map to the area first).
  • Page scale: 1 in = 100, 200, 400 or 800 ft. The area is cut into a grid of squares, one printed page each, at that scale. Columns are lettered from the west (A, B, C …) and rows numbered from the north (1, 2, 3 …), so a square is named like B3. Squares with no plant get no page.
  • Page 1 is the index: the whole area with the grid on it, each square named with its page number, and the legend.
  • Each map page shows one square: facilities, cabinets, manholes and handholes with their labels (site names too), splice cases ringed in orange, conduit coloured by fill, cables by type with their labels, and street names. Arrows at the edges name the page that continues on that side. Under the map: a key map with this square highlighted, the legend, a scale bar in feet and metres, the scale and a north arrow.
  • The book ends with a location index: every structure (sites first, then by label) and the square it is on.

The book prints on Letter paper in landscape: print it at 100 % (no "fit to page") and the scale bar is true. Abandoned plant is included only when Abandoned plant is on in the Layers panel. The map pages are drawn from the network itself, without the basemap, so they print sharp in colour or gray and need no internet connection. Download CSV saves the location index (location, name, type, page, lat, lon).

NoteA map book is limited to 150 pages. For a big network, choose a smaller scale (more feet per inch) or print the current map view.

Printing and saving a report as PDF

To print a report or save it as PDF

  1. Open the report.
  2. Click Print / PDF.
  3. In the browser's print dialog, choose a printer, or choose Save as PDF (or Microsoft Print to PDF) as the destination.

Only the report is printed, on white pages, without the map, the sidebar or the report buttons. Long reports run over as many pages as they need. The map book prints in landscape; everything else uses the printer's normal page.

Close the report with the × button or Esc.

CSV exports

Click a button in the CSV export card to download the current data, including your changes. The message Exported n … rows. confirms the download. File names start with the organisation name from the top bar (demo-network in the demo).

ButtonFileOne row per · columns
Circuitsdemo-network-circuits.csvCircuit: label, name, service, status, a_end, z_end, strands, length_m, est_loss_db, otdr_db, reserved_by, reserved_until
All strandsdemo-network-strands.csvStrand of every cable: strand_id, cable, strand, tube, tube_color, fiber, fiber_color, code, status, circuit, end_a, end_z, path_length_m
All splicesdemo-network-connections.csvSplice: id, location, tray, strand_a, strand_b, kind, loss_db, date, technician, status, source
Conduitsdemo-network-conduits.csvConduit: label, from, to, material, size_in, length_m, ducts, occupied, reserved, spare, lifecycle, cables
Structuresdemo-network-structures.csvStructure: label, type, site_code, name, address, street, lat, lon, lid_size, cable_ends, splices, panel_terminations, lifecycle, confidence, source, updated_at, updated_by
Cablesdemo-network-cables.csvCable: label, type, fiber_count, tubes, fibers_per_tube, fiber_type, a_end, z_end, length_m, conduit_runs, route, lit, reserved, installed_year, lifecycle, confidence, source

NoteCSV files are UTF-8 with a byte-order mark, so Excel shows the ⇄ and — characters correctly when you double-click the file.

GeoJSON export

The GeoJSON export card downloads the network as map layers for a GIS (QGIS, ArcGIS Pro, or any web map): Structures (points), Conduits and Cables (lines), or All three in one file with a layer property. Coordinates are WGS 84 longitude/latitude (the GeoJSON standard). Each feature carries the record's details (label, type, lifecycle, confidence, source, last update) and a few derived values: cable ends and splices at a structure, duct fill and cables in a conduit, the A and Z ends and conduit runs of a cable.

Shapefiles and Esri file geodatabases are exported and imported with the administration tools rather than in the browser; see .

Data health

Data health runs the same validation rules in the browser that the importer runs on client spreadsheets, so you can check the network at any time, including after your own edits.

Running the checks

To check the data

  1. Click the Reports tab.
  2. In the Data health card, click Run checks.

Each rule is listed with a green ✓ (Pass), an amber ! (warning) or a red ✕ (error), the number of issues, and up to five examples.

Data health results
Data health results for the demo network.

The rules

RuleChecks that…
V1Text is trimmed, with no zero-width or other invisible characters.
V2Coordinates are in range, not swapped (inside the project area), and no two structures share the identical point.
V3Strand numbers are within the cable's fiber count, and tubes × fibers per tube equals the fiber count.
V4A strand has at most one connection (splice or termination) per side at a structure.
V5Cable spans connect one after another from the A end to the Z end.
V6Labels are unique for each kind of record.
V10No splice case holds more trays, and no tray more splices, than its capacity; every routed tube belongs to a real cable.
Q1Lists records awaiting field verification (warning, not an error). In the demo: NBUR.100A and W6.550.

The importer runs three more rules that need the original files: V7 (every reference resolves), V8 (a splice or termination is at a structure where the strand's cable has an end) and V9 (a duct holds at most one cable and its status matches). See .

Acting on the results

  • Q1 is a work list: send a crew to check each listed structure, then update its confidence to verified in the source data.
  • Errors in V1–V6 come from the source data, not from the editor: the splice editor prevents V4 problems as you work. Correct the source records and re-import.

Keyboard shortcuts

Every function can be reached with the keyboard. Use Tab and Shift+Tab to move between controls.

Application

KeyAction
?Open this user manual in a new tab (not while typing in a field).
← →In the sidebar tab bar: move to the previous or next tab.
EscClose the open dialog: splice editor, report, or reservation form (cancels the reservation).
Shift + dragZoom the map to a box.

Splice editor

KeyAction
↑ ↓Previous or next fiber in the column.
← →Same row in the other column.
Home EndFirst or last fiber in the column.
Space / EnterSelect or deselect the focused fiber.
CConnect.
D / DeleteDisconnect.
TTrace in the information panel.
U / Ctrl+ZUndo.
EscClose the editor.

This manual

KeyAction
/Put the cursor in the search box.
EnterIn the search box: go to the first result.
EscClear the search, the result list and the highlighted words.

Administration

This chapter is for the administrator who installs the application. It is a static web application: plain HTML, CSS and JavaScript files with no build step and no server code for the demo and static modes.

Files and folders

PathContents
index.htmlThe application page.
manual.html, assets/manual/This manual and its screenshots.
config.jsonData mode, data URL, API base and storage key.
web.configIIS settings: MIME types, default document, caching, security headers.
assets/css/app.cssStyles, including the print stylesheet for reports.
assets/js/util, store (data model, trace, edits, storage adapters), map (OpenLayers), splice, reports, ui, app (start-up).
assets/data/demo-network.json and a .js copy used when the page is opened from disk.
docs/DATA-MODEL.md and IMPORT-MAPPING.md.
schema/fiber-model.schema.json (JSON Schema of the network file).
templates/Blank CSV import templates with example rows.
tools/Python tools: demo generator, CSV importer, model library, end-to-end test, manual screenshots.

Deployment modes (config.json)

config.json sits next to index.html and selects how data is loaded and saved:

{
  "mode": "demo",
  "dataUrl": "assets/data/demo-network.json",
  "apiBase": "api/",
  "storageKey": "fiberDemo.edits.v1",
  "orgName": "Demo network",
  "demoBadge": true
}
Modes
modeLoads fromSaves toUser and role
demodataUrlThis browser's local storage: a snapshot of the edits and an audit log (operation, user, time; last 200 entries).Viewer/Editor switch in the top bar; Reset demo data shown.
staticdataUrlNothing: a read-only viewer of a published network file.Always Viewer. The top bar shows Viewer · viewer (read-only).
restGET {apiBase}networkPOST {apiBase}changes, one request per change.GET {apiBase}me returns { name, role }; if it fails, the user is Anonymous, Viewer.
Top bar in static mode with the user name and role instead of the role switch
Top bar in static mode: no role switch and no reset; the user and role are shown instead.
config.json keys
KeyDefaultDescription
modedemodemo, static or rest. Any other value means demo.
dataUrlassets/data/demo-network.jsonThe network file for demo and static. Use a relative URL.
apiBaseapi/Base URL of the REST API for rest.
storageKeyfiberDemo.edits.v1Local storage key for demo edits. Change it to give a second copy of the demo its own saved state.
orgNamethe network's nameThe organisation line under the product name in the top bar, for example the client's city. An empty string hides it. Without the key, the name stored in the network file (meta.name) is used.
demoBadgefalsetrue shows the Demo data — fictional network badge. Only the public demo sets it.
basemapLabelstruefalse drops the basemap's street and place-name labels (the light basemap becomes a label-free gray). The public demo uses this so its fictional city never shows a real town's name; a real deployment keeps the labels.

Noteconfig.json is optional. When the page is opened straight from disk (file://) the browser cannot read it, and the defaults above (demo mode) apply. The network data then loads from assets/data/demo-network.js.

CautionThe rest mode is a documented interface for a future server API; the server side is not part of this package. Use demo or static unless that API exists. See .

Deploying on IIS as a drop-in folder

To install on an existing IIS site

  1. Copy the folder into any folder or virtual directory of the IIS site, for example \\server\wwwroot\gis\fiber\. At a minimum copy index.html, config.json, web.config and assets/; add manual.html to include this manual. Every path is relative, so the folder name does not matter.
  2. Keep the included web.config (see ).
  3. Edit config.json: static for a read-only map of a network file you publish, or rest once the API exists. For static, replace assets/data/demo-network.json with your network file, for example the output of the importer.
  4. Browse to the folder, for example https://server/gis/fiber/. index.html is the default document.

TipAny static web server works the same way. The automated test serves the application from a nested path (/gis/apps/fiber/) to prove it runs from any subfolder.

web.config reference

SettingPurpose
MIME typesServes .json, .geojson, .csv and .js with the right type and UTF-8. Older IIS versions refuse to serve .json without it. Each type is removed first so the file does not fail where the server already defines it.
Client cacheStatic files are cached in the browser for 7 days.
No-cache locationsindex.html, config.json and assets/data are always revalidated, so a new configuration or network file shows immediately.
Default documentindex.html.
HeadersX-Content-Type-Options: nosniff and Referrer-Policy: strict-origin-when-cross-origin.
CompressionStatic compression on.

Updating the application

Because scripts and styles are cached for 7 days, each <script> and stylesheet tag in index.html carries a version, such as app.js?v=1.0. When you replace JavaScript or CSS files, increase that number in index.html so browsers fetch the new files. index.html itself is never cached.

To publish a new network file, replace the file named by dataUrl. It is not cached, so users get it on the next page load. In demo mode, saved browser edits made against the previous file are then ignored.

Identity and Windows Authentication

The Viewer/Editor switch exists only in demo mode and is not security. In production the user's identity always comes from the host, never from the page:

  • On an intranet, use IIS Windows Authentication (domain accounts), or put a sign-in provider (for example Entra ID / OpenID Connect) in front of the REST API.
  • The API returns the user's name and role from GET {apiBase}me, enforces the editor role on POST changes, and records who made each change.
  • The page only shows the name and hides editing controls for viewers.

To use Windows Authentication with the rest mode

  1. In IIS Manager, select the application folder and the API, and open Authentication.
  2. Enable Windows Authentication and disable Anonymous Authentication on both.
  3. Set "mode": "rest" in config.json.

The browser sends the user's credentials automatically with every API request.

NoteIn static mode no one can edit, so authentication only controls who may view the map. Enable Windows Authentication on the folder if the network data must stay internal.

Closed-network setup

Users' browsers need outbound access to:

  • cdn.jsdelivr.net — the OpenLayers map library (ol.js and ol.css, version 10.2.1);
  • server.arcgisonline.com — the three basemaps.

To run without internet access

  1. Download ol.js and ol.css (OpenLayers 10.2.1) and copy them into assets/vendor/.
  2. In index.html, point the OpenLayers <link> and <script> tags at assets/vendor/ol.css and assets/vendor/ol.js.
  3. Point the basemap at your own tile or WMS service (the basemap sources are defined at the start of M.init in assets/js/map.js), and bump the ?v= of map.js.

Without a reachable basemap the network still draws on a plain dark background, and every tool works.

Where demo edits are stored

Local storage keyContents
fiberDemo.edits.v1The working copy of splices, circuits, equipment (including trays added by the editor) and OTDR results for dark fibers, the version of the network file it belongs to, an audit log of the last 200 changes (operation, time, user), and the per-record change history of the last 2,000 changes (what changed, when, who).
fiberDemo.roleThe last role chosen with the Viewer/Editor switch.

Each browser profile on each computer has its own copy. Reset demo data deletes the edits key.

The REST interface

All data access goes through one storage-adapter interface in assets/js/store.js (load(), save(change), reset(), identity(), readOnly). The rest adapter expects a server with three endpoints:

RequestDescription
GET {apiBase}networkReturns the network in the canonical model (validates against schema/fiber-model.schema.json).
POST {apiBase}changesReceives one change per edit: op (label, added and removed connections and circuits, OTDR result) and a timestamp. The server validates it with the data model rules, stamps the user from the authenticated request, and returns 200, or 409 with the conflicts.
GET {apiBase}meReturns { "name": "…", "role": "viewer" | "editor" } from the host's authentication.

All requests are sent with credentials. If the server rejects a change, the user sees Server rejected the change (status). Reload to resync.

Data model and import

This chapter summarizes the canonical network model that client data is mapped into, and how to import it. The full references are docs/DATA-MODEL.md and docs/IMPORT-MAPPING.md; the machine-readable definition is schema/fiber-model.schema.json (JSON Schema 2020-12).

Design principles

  1. One structure table. Every place you can stand is a structure with a point: facility/POP, manhole, handhole, vault, pole, cabinet, pedestal.
  2. Containment, not columns. Racks, splice enclosures, splice trays and patch panels are equipment inside a structure, nested by parent (structure › rack › enclosure › tray, or structure › rack › patch panel).
  3. Pathways are separate from cables. A conduit runs between two structures and holds ducts; a cable occupies one duct per span.
  4. Strands have stable IDs. cableId:N. Tube and fiber color are derived; BL.OR is display, never a key.
  5. Connections are first-class rows. Splices, terminations and jumpers are records. End-to-end paths are derived by tracing, never typed in.
  6. Circuits reference strands, not paths.
  7. Every record carries provenance: ID, label, lifecycle, source, confidence, created and updated by and when.
  8. Geometry is GeoJSON in WGS 84 (EPSG:4326). The source coordinate system is kept, and importers reproject on the way in.

Entities

EntityKey fields
structurelabel, type, siteCode, name, address, street, lidSize, point geometry
equipmentlabel, type (rack, splice_enclosure, splice_tray, patch_panel), structure, parent, capacity, connector
devicelabel, type (router, switch, media_converter, server, battery_backup, olt, ont, radio, other), structure, rack, portCount, portPrefix
port (derived)ownerId:N from panel capacity or device port count
conduitlabel, from and to structure, material, sizeIn, color, placement, line geometry, lengthM
ductlabel (CD-042.B), conduit, position, kind, color, sizeMm, status, reservedFor
cablelabel, type, fiberCount, tubeCount, fibersPerTube, colorStandard, fiberType, A and Z structure, lengthM
cable_spancable, seq, from and to structure, conduit, duct, lengthM, slackLoops, slackM
strand (derived)cableId:N
connectiontray, structure, strand A, strand B, kind (fusion, mechanical, connector), lossDb, date, technician, status
terminationstrand, structure, patch panel, port, connector, lossDb
jumperport A, port B, structure, kind, lengthM
circuitlabel, name, service, status, strandIds, A and Z end, owner, bandwidth, reservedBy/On/Until, notes, otdr
metaname, modelVersion, crs, sourceCrs, colorStandard, colors, lossAssumptions, bbox

Naming conventions

ThingConventionExample
Facility / cabinetShort site codeWT, CH, TS1
Manhole / handholeStreetCode.Block (direction letter + street + block; suffix A, B on collision)E12.400, W2.350, NBUR.100A
Splice point in a manholeSite code for cable labels; the label staysMH7 (W4.150)
RackSite.R#WT.R1
Splice enclosureSite.R#.SE#; manhole case Box.SC#WT.R1.SE1, E12.400.SC1
Splice traySite.R#.ST#; manhole Box.SC#.T#WT.R4.ST1, E12.400.SC1.T2
Patch panelSite.R#.PP#WT.R1.PP2
Conduit / ductCD-### / CD-###.LetterCD-042.B
CableA-Z.FiberCount+LetterWT-CH.96A
StrandCable #N or TUBE.FIBER codePD-WT.144A #37, BR.BL
CircuitCKT-###CKT-001

Internal IDs (st-0001, cb-0003, …) are never shown as the main name and never re-used, so labels can be renamed without breaking references.

Status values

FieldValues
lifecycleplanned · as-built · abandoned (kept for history, excluded from routing)
confidenceverified · unverified · estimated
duct statusoccupied · spare · reserved · damaged
connection statusplanned · as-built · removed
circuit statuslit · reserved · planned · decommissioned

CSV import templates

The templates/ folder has one blank CSV per entity, each with example rows. Rows refer to each other by label; the importer assigns the internal IDs. Import them in this order (each file only refers to labels from files before it):

#FileColumns
1structures.csvlabel, type, site_code, name, facility_kind, address, street, lat, lon, x, y, source_crs, lid_size, lifecycle, source, confidence, notes
2equipment.csvlabel, type, structure, parent, name, capacity, connector, lifecycle, source, confidence
3devices.csvlabel, type, name, model, structure, rack, port_count, port_prefix, lifecycle, source, confidence
4conduits.csvlabel, from_structure, to_structure, material, size_in, color, placement, length_m, wkt, lifecycle, source, confidence
5ducts.csvconduit, position, kind, color, size_mm, status, reserved_for, lifecycle, source, confidence
6cables.csvlabel, type, fiber_count, fibers_per_tube, color_standard, fiber_type, a_structure, z_structure, installed_year, lifecycle, source, confidence
7cable_spans.csvcable, seq, from_structure, to_structure, conduit, duct_position, slack_loops, slack_m
8connections.csvlocation, tray, cable_a, strand_a, cable_b, strand_b, kind, loss_db, date, technician, status, source, confidence
9terminations.csvlocation, panel, port, cable, strand, connector, loss_db, status
10jumpers.csvlocation, from_port, to_port, kind, length_m
11circuits.csvlabel, name, service, status, a_structure, a_cable, a_strands, a_device, a_device_port, z_structure, z_device, z_device_port, owner, bandwidth, reserved_by, reserved_on, reserved_until, notes

TipStrand columns accept either a number (2) or a color code (BL.OR). Points can be given as lat/lon, or as x/y with their source_crs (state plane, UTM) to be reprojected. Conduit lines can be given as wkt; without it a straight line is drawn and marked estimated.

Mapping from legacy spreadsheets

A typical legacy fiber spreadsheet maps into the model as follows (full detail in docs/IMPORT-MAPPING.md). The first step of any import is a column-mapping pass onto the template headers.

Legacy sheetBecomes
facilitystructures (type facility); ID becomes label and site code
access_boxstructures (manhole, handhole, vault, pedestal); sizes such as 4x4 go to lid size
rack, rack_deviceequipment (rack) and devices
splice_trayequipment, split by type into splice enclosures, splice trays and patch panels
conduit, conduit_junctionconduits between pairs of structures; each delineator letter becomes a duct
cablecables; start and end location become A and Z structure
cable_segmentcable spans; Splice and PATCH actions become connections and terminations
fiberthe color standard (meta colors)
fiber_patchsplit into terminations, connections, jumpers and circuits; the free-text “next connection” is parsed, or entered in the splice editor
naming, streetconventions for labels; street names and codes on structures

Every sheet is cleaned the same way: values are trimmed, invisible characters removed, non-breaking spaces replaced, text normalized; coordinates are range-checked and swapped latitude/longitude pairs repaired. Legacy rows default to confidence unverified until checked in the field.

Running an import

To import client CSV files

  1. Fill the templates (or export your data to the same headers) into one folder.
  2. Run the importer with the tools Python environment:
    set PYTHONIOENCODING=utf-8
    %LOCALAPPDATA%\roamrock-tools-venv\Scripts\python.exe tools\import_network.py <folder-with-csvs> out\network.json --source client-gis-2026
  3. Read out\network.report.json: every fix, warning and error with its file and row number.
  4. Fix the errors and run again until the importer exits without errors (it exits non-zero on errors, so it can gate a pipeline).
  5. To view the result, replace assets/data/demo-network.json (or the file named by dataUrl) with network.json.

Shapefiles and Esri file geodatabases are imported with import_gis.py, which turns them into the same templates and runs this importer; see .

Importing and exporting shapefiles and file geodatabases

tools\import_gis.py reads a folder of shapefiles or an Esri file geodatabase (.gdb folder), turns its layers into the template tables above, and runs the importer on them, so a GIS import gets the same cleaning, checks and report as a spreadsheet import.

%LOCALAPPDATA%\roamrock-tools-venv\Scripts\python.exe tools\import_gis.py client.gdb out\network.json --csv out\tables
%LOCALAPPDATA%\roamrock-tools-venv\Scripts\python.exe tools\import_gis.py shapefiles\ out\network.json
LayerExpected as
structuresA point layer. The point becomes lat/lon, or x/y with the layer's CRS when it is projected (reprojecting needs pyproj).
conduitsA line layer. The line becomes the conduit's geometry.
cablesOptional line layer; only its attributes are used (a cable's route comes from cable_spans).
the other templatesAttribute tables: a .dbf in the shapefile folder, or a table in the geodatabase, named like the template (cable_spans, connections, …).

Layer names are matched without regard to case; field names exactly, without regard to case, or by their first ten characters (shapefiles cut field names to ten, so from_structure arrives as from_struc). Fields that match no template column are listed and skipped. A client's own geodatabase will use its own names: rename them to the templates in a copy first.

tools\export_network.py network.json out\ writes the reverse: the template CSVs, GeoJSON, a shapefile folder and network.gdb. tools\test_gis.py runs the whole round trip on the fictional demo network and checks nothing is lost. The GIS tools need pyshp and pyogrio in the tools Python environment; the browser application needs neither.

Troubleshooting and FAQ

The map is blank or shows an error

  • The map library could not load (offline?). Reload when connected. — the browser could not reach cdn.jsdelivr.net. Check the internet connection or proxy, or host OpenLayers locally (see ).
  • Could not load the network data. Check config.json (mode / dataUrl / apiBase). — the network file or API could not be read. Check that dataUrl points to an existing file, that the server serves .json (keep web.config on IIS), or that the API answers in rest mode.
  • The network draws but the background is plain dark — the basemap tiles are blocked. Every tool still works.

Editing buttons are grayed out

  • You are in the Viewer role: click Editor in the top bar (demo mode).
  • In static mode the application is read-only for everyone.
  • In the splice editor, Connect needs one fiber selected on each side, Disconnect and Trace need a selected fiber, and Undo needs a change made in this session.
  • Tube straight across and All straight across need two cables; they are disabled where only one cable ends.

There is no Splice editor button

The button appears only for structures with a splice enclosure. Plain manholes and handholes on the conduit route have none; cables pass through them without splices.

My changes are gone

  • Someone clicked Reset demo data in this browser.
  • You are using a different browser, browser profile or computer: demo edits are stored per browser.
  • The browser's site data was cleared, or the window was private.
  • A new network file was published; edits made against the old file are not loaded.

Connect says “Conflict”

One of the fibers is already spliced or terminated at this location, or both fibers are in the same cable. Read the status line, which names the fiber and its current partner, disconnect it first, then connect again. See .

A → Z finds no route

A → Z only follows splices that already exist. If no fiber runs between the two sites, build the path: open the splice editor at each intermediate location and splice a tube or fibers through, then search again. Choose sites on the same ring to see results quickly.

The measured loss is far from the estimate

The estimate uses fixed assumptions (see ). A difference of more than 0.5 dB is flagged investigate. Check the recorded splice losses on the trace, connector cleanliness at both ends, and whether the measurement was at 1310 nm.

The printed report includes the map, or is empty

Use the Print / PDF button in the report window rather than the browser's own print command with no report open. The print layout shows only the open report.

The map is rotated

Holding Alt+Shift while dragging, or twisting two fingers on a touch screen, rotates the map. Reload the page to return to north-up.

Can I open the application straight from disk?

Yes. Double-click index.html. The data loads from the .js copy, config.json is not read (demo mode applies), and the browser still needs internet access for the map library and basemap. This manual also works from disk.

Glossary

Terms

TermDefinition
A end / Z endThe two ends of a cable or circuit. For a cable, set by its label (A-Z); for a trace, End A and End Z are where the fiber finally ends in each direction.
AbandonedLifecycle of a record kept for history only; not used for routing.
As-builtLifecycle of a built, in-place asset.
BackboneHigh-count cable (96–144 fibers) forming the ring between facilities.
BasemapThe background map under the network: dark streets, light streets or aerial imagery.
Buffer tubeA colored tube in a cable that holds a group of fibers, usually 12.
Cable spanOne structure-to-structure section of a cable's route, in one duct.
CircuitA service carried on one or more strands, labelled CKT-###.
ConduitA pipe or bundle between two structures, containing ducts.
ConfidenceHow far a record can be trusted: verified, unverified or estimated.
Connector pairA mated pair of connectors, for example at a patch-panel port. Counted once per end that lands on a panel.
Crossed spliceA splice between strands with different numbers, for example #13 to #1.
Dark fiberA strand with no circuit on it.
Distribution cableMedium-count cable (24–48 fibers) branching from the ring.
Drop cableLow-count cable (12 fibers) to a cabinet or a single building.
DuctAn innerduct or microduct inside a conduit, identified by a position letter.
Express spliceA splice where a fiber continues through a site to the next cable without being dropped.
Facility / POPA building with network equipment; POP = point of presence.
FillThe share of a conduit's ducts that are occupied.
Fusion spliceA splice made by melting two fibers together; 0.1 dB in the loss budget.
HandholeA small below-grade pull box.
IdentifyClicking a map feature to see its popup.
JumperA patch cord between a patch-panel port and a device port.
LitCarrying a live circuit.
Loss budgetThe expected end-to-end optical loss of a path, from length, splices and connectors.
ManholeA below-grade vault on the conduit route.
Mechanical spliceA splice made by aligning fibers in a clamp; 0.3 dB in the loss budget.
OTDROptical time-domain reflectometer: a test instrument that measures the loss along a fiber.
Patch panelRack equipment with connector ports where strands are terminated.
PlannedLifecycle of a designed but not yet built asset; dashed on the map.
ReservationA circuit with status reserved: fibers held for a future use until a date.
Site codeThe short code of a facility, cabinet or splice point, used in cable labels.
Slack loopExtra cable coiled in a structure for future splicing; included in cable length.
Splice enclosureThe case or rack unit that holds splice trays.
Splice trayA tray in an enclosure holding individual splices (for example 24).
StrandA single fiber, identified by cable and number.
StructureAny point location in the network: facility, cabinet, manhole, handhole and so on.
TerminationA strand landed on a patch-panel port.
TIA-598The fiber and tube color code standard: blue, orange, green, brown, slate, white, red, black, yellow, violet, rose, aqua.
TraceFollowing a strand through its splices to both ends.
UnverifiedImported but not yet checked in the field; dashed amber outline on the map.