feat(web): add IwoooS topology drilldown
This commit is contained in:
@@ -613,6 +613,7 @@ def validate(root: Path) -> None:
|
||||
"s2_146_iwooos_immediate_visual_mesh",
|
||||
"s2_147_iwooos_gate_radar_first_layer",
|
||||
"s2_148_iwooos_professional_topology_atlas",
|
||||
"s2_149_iwooos_topology_node_drilldown",
|
||||
]
|
||||
assert_equal(
|
||||
"progress_delta_ledger.delta_ids",
|
||||
@@ -1580,6 +1581,20 @@ def validate(root: Path) -> None:
|
||||
iwooos_projection["summary"]["topology_atlas_node_count"],
|
||||
7,
|
||||
)
|
||||
assert_equal(
|
||||
"iwooos_projection.summary.topology_drilldown_node_count",
|
||||
iwooos_projection["summary"]["topology_drilldown_node_count"],
|
||||
7,
|
||||
)
|
||||
assert_equal(
|
||||
"iwooos_projection.summary.topology_drilldown_default_node",
|
||||
iwooos_projection["summary"]["topology_drilldown_default_node"],
|
||||
"productSurface",
|
||||
)
|
||||
assert_true(
|
||||
"iwooos_projection.summary.topology_drilldown_interactive_node_allowed",
|
||||
iwooos_projection["summary"]["topology_drilldown_interactive_node_allowed"],
|
||||
)
|
||||
assert_equal(
|
||||
"iwooos_projection.summary.topology_atlas_layer_count",
|
||||
iwooos_projection["summary"]["topology_atlas_layer_count"],
|
||||
@@ -1603,6 +1618,11 @@ def validate(root: Path) -> None:
|
||||
iwooos_projection["summary"]["topology_atlas_runtime_gate_count"],
|
||||
0,
|
||||
)
|
||||
assert_equal(
|
||||
"iwooos_projection.summary.topology_drilldown_runtime_gate_count",
|
||||
iwooos_projection["summary"]["topology_drilldown_runtime_gate_count"],
|
||||
0,
|
||||
)
|
||||
assert_true(
|
||||
"iwooos_projection.summary.gate_radar_first_layer",
|
||||
iwooos_projection["summary"]["gate_radar_first_layer"],
|
||||
@@ -11999,12 +12019,18 @@ def validate(root: Path) -> None:
|
||||
'data-testid="iwooos-topology-atlas-board"',
|
||||
'data-testid="iwooos-topology-atlas-canvas"',
|
||||
'data-testid="iwooos-topology-atlas-active-panel"',
|
||||
'data-testid="iwooos-topology-atlas-node-drilldown"',
|
||||
'data-testid="iwooos-topology-atlas-node-drilldown-metrics"',
|
||||
'data-testid="iwooos-topology-atlas-node-drilldown-selector"',
|
||||
'data-testid="iwooos-topology-atlas-technical-charts"',
|
||||
'data-testid="iwooos-topology-atlas-boundaries"',
|
||||
"IwoooSTopologyAtlasBoard",
|
||||
"IwoooSTopologyAtlasMode",
|
||||
"IwoooSTopologyNodeKey",
|
||||
"IwoooSTopologyDrilldownNode",
|
||||
"iwooosTopologyAtlasLenses",
|
||||
"iwooosTopologyAtlasNodes",
|
||||
"iwooosTopologyDrilldownNodes",
|
||||
"iwooosTopologyAtlasLayers",
|
||||
"iwooosTopologyAtlasCharts",
|
||||
"iwooosTopologyAtlasBoundaries",
|
||||
@@ -12037,14 +12063,22 @@ def validate(root: Path) -> None:
|
||||
"iwooos_topology_atlas_first_layer=true",
|
||||
"iwooos_topology_atlas_lens_count=4",
|
||||
"iwooos_topology_atlas_node_count=7",
|
||||
"iwooos_topology_drilldown_node_count=7",
|
||||
"iwooos_topology_drilldown_default_node=productSurface",
|
||||
"iwooos_topology_drilldown_interactive_node_allowed=true",
|
||||
"iwooos_topology_atlas_layer_count=5",
|
||||
"iwooos_topology_atlas_technical_chart_count=3",
|
||||
"iwooos_topology_atlas_interactive_lens_allowed=true",
|
||||
"iwooos_topology_atlas_execution_action_buttons_allowed=false",
|
||||
"iwooos_topology_drilldown_execution_action_buttons_allowed=false",
|
||||
"iwooos_topology_atlas_runtime_gate_count=0",
|
||||
"iwooos_topology_drilldown_runtime_gate_count=0",
|
||||
"iwooos_topology_atlas_scan_authorized=false",
|
||||
"iwooos_topology_atlas_host_change_authorized=false",
|
||||
"iwooos_topology_atlas_source_control_mutation_authorized=false",
|
||||
"iwooos_topology_drilldown_scan_authorized=false",
|
||||
"iwooos_topology_drilldown_host_change_authorized=false",
|
||||
"iwooos_topology_drilldown_source_control_mutation_authorized=false",
|
||||
"runtime_execution_authorized=false",
|
||||
"active_runtime_gate_count=0",
|
||||
"action_buttons_allowed=false",
|
||||
@@ -12475,6 +12509,59 @@ def validate(root: Path) -> None:
|
||||
"iwooos_projection.topology_atlas_technical_charts.blastRadius.blast_radius_verified",
|
||||
blast_radius_chart["blast_radius_verified"],
|
||||
)
|
||||
expected_topology_drilldown_node_ids = [
|
||||
"productSurface",
|
||||
"sourceControl",
|
||||
"kali",
|
||||
"devHosts",
|
||||
"monitoring",
|
||||
"awooopTruth",
|
||||
"runtimeGate",
|
||||
]
|
||||
topology_drilldown_nodes = iwooos_projection["topology_drilldown_nodes"]
|
||||
assert_equal(
|
||||
"iwooos_projection.topology_drilldown_nodes.ids",
|
||||
[item["node_id"] for item in topology_drilldown_nodes],
|
||||
expected_topology_drilldown_node_ids,
|
||||
)
|
||||
assert_equal(
|
||||
"iwooos_projection.topology_drilldown_nodes.display_order",
|
||||
[item["display_order"] for item in topology_drilldown_nodes],
|
||||
list(range(1, len(expected_topology_drilldown_node_ids) + 1)),
|
||||
)
|
||||
for item in topology_drilldown_nodes:
|
||||
assert_true(
|
||||
f"iwooos_projection.topology_drilldown_nodes.{item['node_id']}.interactive_node_allowed",
|
||||
item["interactive_node_allowed"],
|
||||
)
|
||||
assert_false(
|
||||
f"iwooos_projection.topology_drilldown_nodes.{item['node_id']}.execution_action_button_allowed",
|
||||
item["execution_action_button_allowed"],
|
||||
)
|
||||
assert_false(
|
||||
f"iwooos_projection.topology_drilldown_nodes.{item['node_id']}.scan_authorized",
|
||||
item["scan_authorized"],
|
||||
)
|
||||
assert_false(
|
||||
f"iwooos_projection.topology_drilldown_nodes.{item['node_id']}.host_change_authorized",
|
||||
item["host_change_authorized"],
|
||||
)
|
||||
assert_false(
|
||||
f"iwooos_projection.topology_drilldown_nodes.{item['node_id']}.source_control_mutation_authorized",
|
||||
item["source_control_mutation_authorized"],
|
||||
)
|
||||
assert_false(
|
||||
f"iwooos_projection.topology_drilldown_nodes.{item['node_id']}.runtime_gate_opened",
|
||||
item["runtime_gate_opened"],
|
||||
)
|
||||
assert_false(
|
||||
f"iwooos_projection.topology_drilldown_nodes.{item['node_id']}.runtime_execution_authorized",
|
||||
item["runtime_execution_authorized"],
|
||||
)
|
||||
assert_true(
|
||||
f"iwooos_projection.topology_drilldown_nodes.{item['node_id']}.not_authorization",
|
||||
item["not_authorization"],
|
||||
)
|
||||
expected_gate_radar_lane_ids = [
|
||||
"visible",
|
||||
"blocker",
|
||||
@@ -12808,6 +12895,7 @@ def validate(root: Path) -> None:
|
||||
"tabsLabel",
|
||||
"mapLabel",
|
||||
"panelLabels",
|
||||
"nodeDrilldown",
|
||||
"lenses",
|
||||
"nodes",
|
||||
"layers",
|
||||
@@ -12836,6 +12924,49 @@ def validate(root: Path) -> None:
|
||||
list(web_messages_en["iwooos"]["topologyAtlas"]["panelLabels"].keys()),
|
||||
key,
|
||||
)
|
||||
for key in ["eyebrow", "selectorLabel", "fields", "nodes"]:
|
||||
assert_contains(
|
||||
"web_messages.zh-TW.iwooos.topologyAtlas.nodeDrilldown.keys",
|
||||
list(web_messages_zh["iwooos"]["topologyAtlas"]["nodeDrilldown"].keys()),
|
||||
key,
|
||||
)
|
||||
assert_contains(
|
||||
"web_messages.en.iwooos.topologyAtlas.nodeDrilldown.keys",
|
||||
list(web_messages_en["iwooos"]["topologyAtlas"]["nodeDrilldown"].keys()),
|
||||
key,
|
||||
)
|
||||
for key in ["relation", "evidence", "next", "boundary"]:
|
||||
assert_contains(
|
||||
"web_messages.zh-TW.iwooos.topologyAtlas.nodeDrilldown.fields",
|
||||
list(web_messages_zh["iwooos"]["topologyAtlas"]["nodeDrilldown"]["fields"].keys()),
|
||||
key,
|
||||
)
|
||||
assert_contains(
|
||||
"web_messages.en.iwooos.topologyAtlas.nodeDrilldown.fields",
|
||||
list(web_messages_en["iwooos"]["topologyAtlas"]["nodeDrilldown"]["fields"].keys()),
|
||||
key,
|
||||
)
|
||||
for key in ["productSurface", "sourceControl", "kali", "devHosts", "monitoring", "awooopTruth", "runtimeGate"]:
|
||||
assert_contains(
|
||||
"web_messages.zh-TW.iwooos.topologyAtlas.nodeDrilldown.nodes",
|
||||
list(web_messages_zh["iwooos"]["topologyAtlas"]["nodeDrilldown"]["nodes"].keys()),
|
||||
key,
|
||||
)
|
||||
assert_contains(
|
||||
"web_messages.en.iwooos.topologyAtlas.nodeDrilldown.nodes",
|
||||
list(web_messages_en["iwooos"]["topologyAtlas"]["nodeDrilldown"]["nodes"].keys()),
|
||||
key,
|
||||
)
|
||||
assert_contains(
|
||||
f"web_messages.zh-TW.iwooos.topologyAtlas.nodeDrilldown.nodes.{key}",
|
||||
list(web_messages_zh["iwooos"]["topologyAtlas"]["nodeDrilldown"]["nodes"][key].keys()),
|
||||
"body",
|
||||
)
|
||||
assert_contains(
|
||||
f"web_messages.en.iwooos.topologyAtlas.nodeDrilldown.nodes.{key}",
|
||||
list(web_messages_en["iwooos"]["topologyAtlas"]["nodeDrilldown"]["nodes"][key].keys()),
|
||||
"body",
|
||||
)
|
||||
for key in ["architecture", "topology", "attackSurface", "evidenceFlow"]:
|
||||
assert_contains(
|
||||
"web_messages.zh-TW.iwooos.topologyAtlas.lenses",
|
||||
|
||||
Reference in New Issue
Block a user