{{ flow.display_name || flow.flow_id }} ⚿
{{ flow.nmos_node_label }}
{{ flow.flow_status }} / {{ flow.availability }}
Updated: {{ flow.updated_at }}
ST2110 Flow Management
{{ currentUser ? currentUser.username : "Logged in" }}
{{ currentUser ? currentUser.role : "" }}
{{ item.display }}
{{ item.action }} • {{ item.timestamp }} ({{ item.diffKeys.join(", ") }})
No check results yet.
チェック未実行
{{ flow.nmos_node_label }}
{{ flow.flow_status }} / {{ flow.availability }}
Updated: {{ flow.updated_at }}
No flows found.
{{ logs.join("\n") }}
Choose a drive (/8) → folder (parent) → view (child) to render the address grid.
Views in folder
{{ plannerFolderBreadcrumb || 'Drive root' }}
No views in this folder.
Select a view to display the grid.
Cell Detail
Address
{{ planner.selectedCell.address }}
Status
{{ planner.selectedCell.state }}
Flows ({{ planner.selectedCell.flows.length }})
{{ flow.display_name || flow.flow_id }}
{{ flow.flow_status }} / {{ flow.availability }}
{{ flow.nmos_node_label }}
No flows using this address.
Click a cell to see details. Hover for quick info.
Usage legend
Address
{{ planner.hoverInfo.address }}
Status
{{ planner.hoverInfo.state }}
Flows
{{ flow.display_name || flow.flow_id }}
Use the shared drive/folder tree to manage addresses directly. Select a target on the left and perform the action on the right.
Selected Folder
{{ currentFolderLabel }}
{{ currentFolderNode.start_ip }} – {{ currentFolderNode.end_ip }}
Select a folder to edit its metadata or delete it.
Target parent: {{ manageParentTargetLabel }}
Address range
Metadata
{{ planner.bucketFormError }}
Target folder: {{ manageChildTargetLabel }} (select a parent folder first)
Address range
Metadata
{{ planner.bucketFormError }}
{{ view.description || (view.start_ip + ' – ' + view.end_ip) }}
{{ view.cidr }} • {{ view.start_ip }} – {{ view.end_ip }}
No views in this folder.
Load an ad-hoc CIDR or manual range (up to 4096 addresses) without creating or saving a view. History is kept until you reload this page.
Temporary grid
Viewing: {{ easyViewRangeSummary.total }} addresses • {{ easyViewRangeSummary.label }}
Load a range to display the grid.
No temporary grid loaded.
Cell Detail
Address
{{ planner.selectedCell.address }}
Status
{{ planner.selectedCell.state }}
Flows ({{ planner.selectedCell.flows.length }})
{{ flow.display_name || flow.flow_id }}
{{ flow.flow_status }} / {{ flow.availability }}
{{ flow.nmos_node_label }}
No flows using this address.
Click a cell to see details. Hover for quick info.
Address
{{ planner.hoverInfo.address }}
Status
{{ planner.hoverInfo.state }}
Flows
{{ flow.display_name || flow.flow_id }}
Download the entire folder/view structure as a JSON file.
Replacing data will remove all existing folders/views. Use with caution.
Only administrator accounts can run this operation.
| Display Name | flow_id | status | Source A | Multicast A | Source B | Multicast B | Updated At | Actions |
|---|---|---|---|---|---|---|---|---|
|
{{ flow.display_name || '-' }}
⚿
{{ flow.nmos_node_label }}
|
{{ flow.flow_id }}
|
{{ flow.flow_status }}/{{ flow.availability }} | {{ flow.source_addr_a }}:{{ flow.source_port_a }} | {{ flow.multicast_addr_a }}:{{ flow.group_port_a }} | {{ flow.source_addr_b }}:{{ flow.source_port_b }} | {{ flow.multicast_addr_b }}:{{ flow.group_port_b }} | {{ flow.updated_at }} |
|
| No flows found. | ||||||||
Search all text fields with partial match keywords.
Enter conditions per field; numeric and datetime values support ranges.
Port Range / ポート範囲
Date Range
Format: YYYY-MM-DDTHH:MM (24h)
Advanced search form is hidden. Expand to edit conditions.
Mode: {{ searchMode || 'not started' }}
| Display Name | Flow ID | Status | Source A | Multicast A | Updated | Actions |
|---|---|---|---|---|---|---|
|
{{ flow.display_name || '-' }}
⚿
{{ flow.nmos_node_label }}
|
{{ flow.flow_id }}
|
{{ flow.flow_status }} / {{ flow.availability }} | {{ flow.source_addr_a }}:{{ flow.source_port_a }} | {{ flow.multicast_addr_a }}:{{ flow.group_port_a }} | {{ flow.updated_at }} |
|
| No results / 検索結果がありません。 | ||||||
Editing: {{ editingFlowId }}
This flow is locked. Field editing and deletion are disabled, but NMOS Check is available (NMOS Sync requires unlocking). / このフローはロック中です。フィールド編集や削除はできませんが、NMOS Check は実行できます(NMOS Sync は解除後に可能)。
{{ nmos.error }}
Designed for future NMOS / RDS auto-fill wizards.
Fetch flows from an NMOS IS-04 Node endpoint.
Required: IS-04 Base URL, IS-04 Version, IS-05 Base URL, IS-05 Version / 必須: IS-04 Base URL, IS-04 Version, IS-05 Base URL, IS-05 Version
Optional: Use RDS to auto-detect IS-04 from NMOS nodes. / オプション: RDSを使用してNMOSノードからIS-04を自動検出。
{{ wizard.error }}
Node ID: {{ wizard.node.id }}
{{ wizard.node.description }}
Select flows to import into MMAM.
| Label | Flow ID | Sender ID | Device ID | Format | Transport | |
|---|---|---|---|---|---|---|
|
{{ flow.label }} {{ flow.description }} |
{{ flow.nmos_flow_id }} | {{ flow.nmos_sender_id || '-' }} | {{ flow.nmos_device_id || '-' }} | {{ flow.format || '-' }} | {{ flow.sender_transport || '-' }} | |
| {{ wizard.loading ? 'Fetching flows...' : 'No flows loaded yet.' }} | ||||||
Find duplicate multicast destinations across flows. Only logged-in editors/admins can run this check.
Examples / 例:
0 0 * * * - Every day at 00:00 / 毎日0時0 */6 * * * - Every 6 hours / 6時間ごと0 9 * * 1 - Every Monday at 09:00 / 毎週月曜9時Last run / 最終実行: {{ collisionJob.last_run_at }}
Status / ステータス: {{ collisionJob.last_run_status }}
Result / 結果: {{ collisionJob.last_run_result.collision_count }} collisions detected
⚠️ Admin permission required to modify automation settings. / 自動化設定の変更にはAdmin権限が必要です。
Last executed: {{ checkerResults.collisions.fetchedAt }}
| Value | Count | Flows |
|---|---|---|
| {{ entry.value }} | {{ entry.count }} |
|
No duplicates found.
No check has been executed yet.
Fetch NMOS snapshots for all flows and list the ones whose database values differ.
Examples / 例:
0 0 * * * - Every day at 00:00 / 毎日0時0 */6 * * * - Every 6 hours / 6時間ごと0 9 * * 1 - Every Monday at 09:00 / 毎週月曜9時Last run / 最終実行: {{ nmosJob.last_run_at }}
Status / ステータス: {{ nmosJob.last_run_status }}
Result / 結果: {{ nmosJob.last_run_result.nmos_difference_count }} differences detected
⚠️ Admin permission required to modify automation settings. / 自動化設定の変更にはAdmin権限が必要です。
Last executed: {{ checkerResults.nmos.fetchedAt }} / Checked: {{ checkerResults.nmos.checked }} / Skipped: {{ checkerResults.nmos.skipped }} / With differences: {{ checkerResults.nmos.differences.length }}
| Flow | Node | Difference Count | Fields |
|---|---|---|---|
|
{{ entry.display_name || entry.flow_id }}
{{ entry.flow_id }}
|
{{ entry.nmos_node_label || '-' }} | {{ entry.difference_count }} |
|
All checked flows match their NMOS data.
No NMOS check has been executed yet.
Username must be 3-64 chars, password 4-128 chars (per API validation).
| Username | Role | Created At | Actions |
|---|---|---|---|
| {{ user.username }} | {{ user.created_at }} | ||
| No users found. | |||
Stored in browser local storage.
Override the MQTT WS URL for this browser. Leave blank to use the server configuration.
Current: {{ currentUser ? currentUser.username : "Not signed in" }}
{{ key }}
Current value: {{ value }}
Flow Lock Role
Select who can toggle flow locks.
View or download recent API / audit logs (admin only).
{{ logViewer.api.length ? logViewer.api.join('\n') : 'No log data' }}
{{ logViewer.audit.length ? logViewer.audit.join('\n') : 'No log data' }}
Completely deletes the record with the specified flow_id from the database. Calls the /api/flows/<flow_id>/hard endpoint. Cannot be restored.
Admin only. Locked flows are skipped during import.
No nodes found in RDS.
No IS-05 endpoints found in devices.
Flow: {{ nmos.result.flow_id }}
Select the fields to overwrite with the latest NMOS values.
flow_id:
{{ nmos.error }}
NMOS: {{ nmosDiffValue(field.key)?.nmos ?? '' }}
No data.