feat(web): add IwoooS topology atlas
This commit is contained in:
@@ -612,6 +612,7 @@ def validate(root: Path) -> None:
|
||||
"s2_145_iwooos_first_layer_focus_deck",
|
||||
"s2_146_iwooos_immediate_visual_mesh",
|
||||
"s2_147_iwooos_gate_radar_first_layer",
|
||||
"s2_148_iwooos_professional_topology_atlas",
|
||||
]
|
||||
assert_equal(
|
||||
"progress_delta_ledger.delta_ids",
|
||||
@@ -1565,6 +1566,43 @@ def validate(root: Path) -> None:
|
||||
iwooos_projection["summary"]["immediate_visual_mesh_runtime_gate_count"],
|
||||
0,
|
||||
)
|
||||
assert_true(
|
||||
"iwooos_projection.summary.topology_atlas_first_layer",
|
||||
iwooos_projection["summary"]["topology_atlas_first_layer"],
|
||||
)
|
||||
assert_equal(
|
||||
"iwooos_projection.summary.topology_atlas_lens_count",
|
||||
iwooos_projection["summary"]["topology_atlas_lens_count"],
|
||||
4,
|
||||
)
|
||||
assert_equal(
|
||||
"iwooos_projection.summary.topology_atlas_node_count",
|
||||
iwooos_projection["summary"]["topology_atlas_node_count"],
|
||||
7,
|
||||
)
|
||||
assert_equal(
|
||||
"iwooos_projection.summary.topology_atlas_layer_count",
|
||||
iwooos_projection["summary"]["topology_atlas_layer_count"],
|
||||
5,
|
||||
)
|
||||
assert_equal(
|
||||
"iwooos_projection.summary.topology_atlas_technical_chart_count",
|
||||
iwooos_projection["summary"]["topology_atlas_technical_chart_count"],
|
||||
3,
|
||||
)
|
||||
assert_true(
|
||||
"iwooos_projection.summary.topology_atlas_interactive_lens_allowed",
|
||||
iwooos_projection["summary"]["topology_atlas_interactive_lens_allowed"],
|
||||
)
|
||||
assert_true(
|
||||
"iwooos_projection.summary.topology_atlas_above_gate_radar",
|
||||
iwooos_projection["summary"]["topology_atlas_above_gate_radar"],
|
||||
)
|
||||
assert_equal(
|
||||
"iwooos_projection.summary.topology_atlas_runtime_gate_count",
|
||||
iwooos_projection["summary"]["topology_atlas_runtime_gate_count"],
|
||||
0,
|
||||
)
|
||||
assert_true(
|
||||
"iwooos_projection.summary.gate_radar_first_layer",
|
||||
iwooos_projection["summary"]["gate_radar_first_layer"],
|
||||
@@ -11957,6 +11995,66 @@ def validate(root: Path) -> None:
|
||||
iwooos_projection_page,
|
||||
text,
|
||||
)
|
||||
for text in [
|
||||
'data-testid="iwooos-topology-atlas-board"',
|
||||
'data-testid="iwooos-topology-atlas-canvas"',
|
||||
'data-testid="iwooos-topology-atlas-active-panel"',
|
||||
'data-testid="iwooos-topology-atlas-technical-charts"',
|
||||
'data-testid="iwooos-topology-atlas-boundaries"',
|
||||
"IwoooSTopologyAtlasBoard",
|
||||
"IwoooSTopologyAtlasMode",
|
||||
"iwooosTopologyAtlasLenses",
|
||||
"iwooosTopologyAtlasNodes",
|
||||
"iwooosTopologyAtlasLayers",
|
||||
"iwooosTopologyAtlasCharts",
|
||||
"iwooosTopologyAtlasBoundaries",
|
||||
"iwooos-topology-grid",
|
||||
]:
|
||||
assert_text_contains(
|
||||
"iwooos_page.topology_atlas",
|
||||
iwooos_projection_page,
|
||||
text,
|
||||
)
|
||||
assert_text_before(
|
||||
"iwooos_page.immediate_visual_mesh_before_topology_atlas",
|
||||
iwooos_projection_page,
|
||||
"<IwoooSImmediateVisualMeshBoard />",
|
||||
"<IwoooSTopologyAtlasBoard />",
|
||||
)
|
||||
assert_text_before(
|
||||
"iwooos_page.topology_atlas_before_gate_radar",
|
||||
iwooos_projection_page,
|
||||
"<IwoooSTopologyAtlasBoard />",
|
||||
"<IwoooSGateRadarBoard />",
|
||||
)
|
||||
assert_text_before(
|
||||
"iwooos_page.topology_atlas_before_command_map",
|
||||
iwooos_projection_page,
|
||||
"<IwoooSTopologyAtlasBoard />",
|
||||
"<IwoooSCommandMapBoard />",
|
||||
)
|
||||
for text in [
|
||||
"iwooos_topology_atlas_first_layer=true",
|
||||
"iwooos_topology_atlas_lens_count=4",
|
||||
"iwooos_topology_atlas_node_count=7",
|
||||
"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_atlas_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",
|
||||
"runtime_execution_authorized=false",
|
||||
"active_runtime_gate_count=0",
|
||||
"action_buttons_allowed=false",
|
||||
"not_authorization=true",
|
||||
]:
|
||||
assert_text_contains(
|
||||
"iwooos_page.topology_atlas_boundary",
|
||||
iwooos_projection_page,
|
||||
text,
|
||||
)
|
||||
for text in [
|
||||
'data-testid="iwooos-gate-radar-board"',
|
||||
'data-testid="iwooos-gate-radar-canvas"',
|
||||
@@ -12228,6 +12326,155 @@ def validate(root: Path) -> None:
|
||||
"iwooos_projection.immediate_visual_mesh_nodes.runtimeGate.scan_authorized",
|
||||
runtime_gate_mesh_node["scan_authorized"],
|
||||
)
|
||||
expected_topology_atlas_lens_ids = [
|
||||
"architecture",
|
||||
"topology",
|
||||
"attackSurface",
|
||||
"evidenceFlow",
|
||||
]
|
||||
topology_atlas_lenses = iwooos_projection["topology_atlas_lenses"]
|
||||
assert_equal(
|
||||
"iwooos_projection.topology_atlas_lenses.ids",
|
||||
[item["lens_id"] for item in topology_atlas_lenses],
|
||||
expected_topology_atlas_lens_ids,
|
||||
)
|
||||
assert_equal(
|
||||
"iwooos_projection.topology_atlas_lenses.display_order",
|
||||
[item["display_order"] for item in topology_atlas_lenses],
|
||||
list(range(1, len(expected_topology_atlas_lens_ids) + 1)),
|
||||
)
|
||||
for item in topology_atlas_lenses:
|
||||
assert_equal(
|
||||
f"iwooos_projection.topology_atlas_lenses.{item['lens_id']}.display_mode",
|
||||
item["display_mode"],
|
||||
"first_screen_professional_topology_atlas",
|
||||
)
|
||||
assert_true(
|
||||
f"iwooos_projection.topology_atlas_lenses.{item['lens_id']}.interactive_lens_allowed",
|
||||
item["interactive_lens_allowed"],
|
||||
)
|
||||
assert_false(
|
||||
f"iwooos_projection.topology_atlas_lenses.{item['lens_id']}.execution_action_button_allowed",
|
||||
item["execution_action_button_allowed"],
|
||||
)
|
||||
assert_false(
|
||||
f"iwooos_projection.topology_atlas_lenses.{item['lens_id']}.runtime_gate_opened",
|
||||
item["runtime_gate_opened"],
|
||||
)
|
||||
assert_false(
|
||||
f"iwooos_projection.topology_atlas_lenses.{item['lens_id']}.runtime_execution_authorized",
|
||||
item["runtime_execution_authorized"],
|
||||
)
|
||||
assert_true(
|
||||
f"iwooos_projection.topology_atlas_lenses.{item['lens_id']}.not_authorization",
|
||||
item["not_authorization"],
|
||||
)
|
||||
topology_lens = next(item for item in topology_atlas_lenses if item["lens_id"] == "topology")
|
||||
for flag in ["scan_authorized", "host_change_authorized"]:
|
||||
assert_false(
|
||||
f"iwooos_projection.topology_atlas_lenses.topology.{flag}",
|
||||
topology_lens[flag],
|
||||
)
|
||||
attack_surface_lens = next(item for item in topology_atlas_lenses if item["lens_id"] == "attackSurface")
|
||||
for flag in ["source_control_mutation_authorized", "github_primary_switch_authorized", "blast_radius_verified"]:
|
||||
assert_false(
|
||||
f"iwooos_projection.topology_atlas_lenses.attackSurface.{flag}",
|
||||
attack_surface_lens[flag],
|
||||
)
|
||||
evidence_flow_lens = next(item for item in topology_atlas_lenses if item["lens_id"] == "evidenceFlow")
|
||||
for count_key in ["owner_response_received_count", "reviewer_accepted_count"]:
|
||||
assert_equal(
|
||||
f"iwooos_projection.topology_atlas_lenses.evidenceFlow.{count_key}",
|
||||
evidence_flow_lens[count_key],
|
||||
0,
|
||||
)
|
||||
expected_topology_atlas_node_ids = [
|
||||
"productSurface",
|
||||
"sourceControl",
|
||||
"kali",
|
||||
"devHosts",
|
||||
"monitoring",
|
||||
"awooopTruth",
|
||||
"runtimeGate",
|
||||
]
|
||||
topology_atlas_nodes = iwooos_projection["topology_atlas_nodes"]
|
||||
assert_equal(
|
||||
"iwooos_projection.topology_atlas_nodes.ids",
|
||||
[item["node_id"] for item in topology_atlas_nodes],
|
||||
expected_topology_atlas_node_ids,
|
||||
)
|
||||
assert_equal(
|
||||
"iwooos_projection.topology_atlas_nodes.display_order",
|
||||
[item["display_order"] for item in topology_atlas_nodes],
|
||||
list(range(1, len(expected_topology_atlas_node_ids) + 1)),
|
||||
)
|
||||
for item in topology_atlas_nodes:
|
||||
assert_true(
|
||||
f"iwooos_projection.topology_atlas_nodes.{item['node_id']}.read_only",
|
||||
item["read_only"],
|
||||
)
|
||||
assert_false(
|
||||
f"iwooos_projection.topology_atlas_nodes.{item['node_id']}.runtime_gate_opened",
|
||||
item["runtime_gate_opened"],
|
||||
)
|
||||
assert_false(
|
||||
f"iwooos_projection.topology_atlas_nodes.{item['node_id']}.runtime_execution_authorized",
|
||||
item["runtime_execution_authorized"],
|
||||
)
|
||||
assert_true(
|
||||
f"iwooos_projection.topology_atlas_nodes.{item['node_id']}.not_authorization",
|
||||
item["not_authorization"],
|
||||
)
|
||||
for node_id in ["kali", "devHosts"]:
|
||||
node = next(item for item in topology_atlas_nodes if item["node_id"] == node_id)
|
||||
assert_false(
|
||||
f"iwooos_projection.topology_atlas_nodes.{node_id}.scan_authorized",
|
||||
node["scan_authorized"],
|
||||
)
|
||||
assert_false(
|
||||
f"iwooos_projection.topology_atlas_nodes.{node_id}.host_change_authorized",
|
||||
node["host_change_authorized"],
|
||||
)
|
||||
source_control_topology_node = next(item for item in topology_atlas_nodes if item["node_id"] == "sourceControl")
|
||||
assert_false(
|
||||
"iwooos_projection.topology_atlas_nodes.sourceControl.source_control_mutation_authorized",
|
||||
source_control_topology_node["source_control_mutation_authorized"],
|
||||
)
|
||||
expected_topology_atlas_chart_ids = [
|
||||
"contextDepth",
|
||||
"blastRadius",
|
||||
"evidenceFreshness",
|
||||
]
|
||||
topology_atlas_charts = iwooos_projection["topology_atlas_technical_charts"]
|
||||
assert_equal(
|
||||
"iwooos_projection.topology_atlas_technical_charts.ids",
|
||||
[item["chart_id"] for item in topology_atlas_charts],
|
||||
expected_topology_atlas_chart_ids,
|
||||
)
|
||||
assert_equal(
|
||||
"iwooos_projection.topology_atlas_technical_charts.display_order",
|
||||
[item["display_order"] for item in topology_atlas_charts],
|
||||
list(range(1, len(expected_topology_atlas_chart_ids) + 1)),
|
||||
)
|
||||
for item in topology_atlas_charts:
|
||||
assert_equal(
|
||||
f"iwooos_projection.topology_atlas_technical_charts.{item['chart_id']}.display_mode",
|
||||
item["display_mode"],
|
||||
"first_screen_professional_topology_atlas",
|
||||
)
|
||||
assert_false(
|
||||
f"iwooos_projection.topology_atlas_technical_charts.{item['chart_id']}.runtime_delta",
|
||||
item["runtime_delta"],
|
||||
)
|
||||
assert_true(
|
||||
f"iwooos_projection.topology_atlas_technical_charts.{item['chart_id']}.not_authorization",
|
||||
item["not_authorization"],
|
||||
)
|
||||
blast_radius_chart = next(item for item in topology_atlas_charts if item["chart_id"] == "blastRadius")
|
||||
assert_false(
|
||||
"iwooos_projection.topology_atlas_technical_charts.blastRadius.blast_radius_verified",
|
||||
blast_radius_chart["blast_radius_verified"],
|
||||
)
|
||||
expected_gate_radar_lane_ids = [
|
||||
"visible",
|
||||
"blocker",
|
||||
@@ -12544,6 +12791,138 @@ def validate(root: Path) -> None:
|
||||
list(web_messages_en["iwooos"]["immediateVisualMesh"]["nodes"][key].keys()),
|
||||
field,
|
||||
)
|
||||
assert_contains(
|
||||
"web_messages.zh-TW.iwooos.topologyAtlas",
|
||||
list(web_messages_zh["iwooos"].keys()),
|
||||
"topologyAtlas",
|
||||
)
|
||||
assert_contains(
|
||||
"web_messages.en.iwooos.topologyAtlas",
|
||||
list(web_messages_en["iwooos"].keys()),
|
||||
"topologyAtlas",
|
||||
)
|
||||
for key in [
|
||||
"eyebrow",
|
||||
"title",
|
||||
"subtitle",
|
||||
"tabsLabel",
|
||||
"mapLabel",
|
||||
"panelLabels",
|
||||
"lenses",
|
||||
"nodes",
|
||||
"layers",
|
||||
"charts",
|
||||
"boundaryTitle",
|
||||
"boundaryIntro",
|
||||
]:
|
||||
assert_contains(
|
||||
"web_messages.zh-TW.iwooos.topologyAtlas.keys",
|
||||
list(web_messages_zh["iwooos"]["topologyAtlas"].keys()),
|
||||
key,
|
||||
)
|
||||
assert_contains(
|
||||
"web_messages.en.iwooos.topologyAtlas.keys",
|
||||
list(web_messages_en["iwooos"]["topologyAtlas"].keys()),
|
||||
key,
|
||||
)
|
||||
for key in ["evidence", "next", "locked"]:
|
||||
assert_contains(
|
||||
"web_messages.zh-TW.iwooos.topologyAtlas.panelLabels",
|
||||
list(web_messages_zh["iwooos"]["topologyAtlas"]["panelLabels"].keys()),
|
||||
key,
|
||||
)
|
||||
assert_contains(
|
||||
"web_messages.en.iwooos.topologyAtlas.panelLabels",
|
||||
list(web_messages_en["iwooos"]["topologyAtlas"]["panelLabels"].keys()),
|
||||
key,
|
||||
)
|
||||
for key in ["architecture", "topology", "attackSurface", "evidenceFlow"]:
|
||||
assert_contains(
|
||||
"web_messages.zh-TW.iwooos.topologyAtlas.lenses",
|
||||
list(web_messages_zh["iwooos"]["topologyAtlas"]["lenses"].keys()),
|
||||
key,
|
||||
)
|
||||
assert_contains(
|
||||
"web_messages.en.iwooos.topologyAtlas.lenses",
|
||||
list(web_messages_en["iwooos"]["topologyAtlas"]["lenses"].keys()),
|
||||
key,
|
||||
)
|
||||
for field in ["title", "mapTitle", "detail", "evidence", "next", "locked"]:
|
||||
assert_contains(
|
||||
f"web_messages.zh-TW.iwooos.topologyAtlas.lenses.{key}",
|
||||
list(web_messages_zh["iwooos"]["topologyAtlas"]["lenses"][key].keys()),
|
||||
field,
|
||||
)
|
||||
assert_contains(
|
||||
f"web_messages.en.iwooos.topologyAtlas.lenses.{key}",
|
||||
list(web_messages_en["iwooos"]["topologyAtlas"]["lenses"][key].keys()),
|
||||
field,
|
||||
)
|
||||
for key in ["productSurface", "sourceControl", "kali", "devHosts", "monitoring", "awooopTruth", "runtimeGate"]:
|
||||
assert_contains(
|
||||
"web_messages.zh-TW.iwooos.topologyAtlas.nodes",
|
||||
list(web_messages_zh["iwooos"]["topologyAtlas"]["nodes"].keys()),
|
||||
key,
|
||||
)
|
||||
assert_contains(
|
||||
"web_messages.en.iwooos.topologyAtlas.nodes",
|
||||
list(web_messages_en["iwooos"]["topologyAtlas"]["nodes"].keys()),
|
||||
key,
|
||||
)
|
||||
assert_contains(
|
||||
f"web_messages.zh-TW.iwooos.topologyAtlas.nodes.{key}",
|
||||
list(web_messages_zh["iwooos"]["topologyAtlas"]["nodes"][key].keys()),
|
||||
"title",
|
||||
)
|
||||
assert_contains(
|
||||
f"web_messages.en.iwooos.topologyAtlas.nodes.{key}",
|
||||
list(web_messages_en["iwooos"]["topologyAtlas"]["nodes"][key].keys()),
|
||||
"title",
|
||||
)
|
||||
for key in ["externalSurface", "codeSupply", "hostFabric", "evidenceOps", "gateControl"]:
|
||||
assert_contains(
|
||||
"web_messages.zh-TW.iwooos.topologyAtlas.layers",
|
||||
list(web_messages_zh["iwooos"]["topologyAtlas"]["layers"].keys()),
|
||||
key,
|
||||
)
|
||||
assert_contains(
|
||||
"web_messages.en.iwooos.topologyAtlas.layers",
|
||||
list(web_messages_en["iwooos"]["topologyAtlas"]["layers"].keys()),
|
||||
key,
|
||||
)
|
||||
for field in ["title", "body"]:
|
||||
assert_contains(
|
||||
f"web_messages.zh-TW.iwooos.topologyAtlas.layers.{key}",
|
||||
list(web_messages_zh["iwooos"]["topologyAtlas"]["layers"][key].keys()),
|
||||
field,
|
||||
)
|
||||
assert_contains(
|
||||
f"web_messages.en.iwooos.topologyAtlas.layers.{key}",
|
||||
list(web_messages_en["iwooos"]["topologyAtlas"]["layers"][key].keys()),
|
||||
field,
|
||||
)
|
||||
for key in ["contextDepth", "blastRadius", "evidenceFreshness"]:
|
||||
assert_contains(
|
||||
"web_messages.zh-TW.iwooos.topologyAtlas.charts",
|
||||
list(web_messages_zh["iwooos"]["topologyAtlas"]["charts"].keys()),
|
||||
key,
|
||||
)
|
||||
assert_contains(
|
||||
"web_messages.en.iwooos.topologyAtlas.charts",
|
||||
list(web_messages_en["iwooos"]["topologyAtlas"]["charts"].keys()),
|
||||
key,
|
||||
)
|
||||
for field in ["label", "body"]:
|
||||
assert_contains(
|
||||
f"web_messages.zh-TW.iwooos.topologyAtlas.charts.{key}",
|
||||
list(web_messages_zh["iwooos"]["topologyAtlas"]["charts"][key].keys()),
|
||||
field,
|
||||
)
|
||||
assert_contains(
|
||||
f"web_messages.en.iwooos.topologyAtlas.charts.{key}",
|
||||
list(web_messages_en["iwooos"]["topologyAtlas"]["charts"][key].keys()),
|
||||
field,
|
||||
)
|
||||
assert_contains(
|
||||
"web_messages.zh-TW.iwooos.gateRadar",
|
||||
list(web_messages_zh["iwooos"].keys()),
|
||||
|
||||
Reference in New Issue
Block a user