Skip to content

Latest commit

 

History

History
75 lines (59 loc) · 4.63 KB

File metadata and controls

75 lines (59 loc) · 4.63 KB

External References

Architecture decisions and contracts that edp-api consumes from other repos. Source files are authoritative; this is a reading aid so a new contributor doesn't have to chase across the org to understand a docstring reference.

ARCNODE EMS system ADR

Canonical home: ~/arcnode/ems/system_adr.md Numbering: section-based (§1 through §18 at last check), not ADR-NNN style. Code comments that say ADR-002 §N are referring to ems/system_adr.md §N — the ADR-002 prefix is a stale label inherited from an older numbering scheme.

Sections most relevant to edp-api:

Section Title Why it matters here
§6 SLD SVG generated by edp-api, served by device-api, animated by HMI Defines the three-party SLD contract — drives SldHmiSvgService + the POST re-render endpoint.
§9 Fixed-depth topics Constrains DTM topology depth; informs device_id flat addressing in spite of parent-chain.
§14 Device templates as canonical vocabulary Defines device_templates/, bess_module/compute_module/grid_module roots, the parent-chain tree, the contains: block, the templates-PR-gated rule. Single source for DTM shape.
§16 Identifier format: snake_case slugs, immutable Drives the _SLUG_RE validator in src/shared/schemas/dtm.py + src/shared/schemas/template.py.
§17 Spec versioning: semver, diff-free events Drives the version: "1.0.0" field on Dtm + the system/topology_changed event contract on device-api.

edp-module-assemblies system ADRs

Canonical home: ~/arcnode/edp-module-assemblies/system_adrs.md Numbering: ADR-NNN style. These are the hardware/manifest-shape contracts edp-api consumes.

Sections most relevant to edp-api:

ADR Title Why it matters here
ADR-002 v1 targets HGX B200 Sets GpuVariant.B200 as default; informs sizing constants.
ADR-006 Manifest absorbs profile→asset mapping Why ManifestService lives in edp-api but manifest_profiles.yaml is upstream. Drives the per-job manifest pin.
ADR-009 Hardware↔edp-api contract artifacts Pins the bom.yaml (input) + bom.json (output) shapes. Drives manifest_models.py + bom_models.py.
ADR-011 Manifest URL versioning deferred Documents the in-flight torn-read risk + the per-job-fetch-and-pin mitigation that landed in commit 87c18dd.

Open items

  • Wholesale market scope beyond ERCOT/HB_NORTH — depends on ems-analyst-server (🤖 ai-engineer) certifying each ISO's gridstatus.io dataset + LMP filter logic. Cross-role; edp-api owns only the validator surface. See ConfiguratorPayload.market_hub_supported.
  • DNP3 master_external leaf template + equipment/GRD-UTM-001/ spec — both repos are ⚡ power-engineer scope, but the point map + whether GRD-UTM-001 is a separate physical relay or a second DNP3 session on the existing SEL-351-7 is a product-architecture decision (IEEE 1547.2 interconnection requirements vary by utility). See TODO in ~/arcnode/edp-module-assemblies/assemblies/grid-container/commercial-ac/topology.yaml.

Resolved (was previously flagged as open):

  • federal_* profile rename + dod_*↔defense_* alignment — never was a structural issue. DeploymentProfile stays commercial_* + defense_* (hardware variants); SourcingTier separately tracks FEDERAL_CIVILIAN vs DOD_ELIGIBLE (procurement path). The two dimensions are orthogonal, no rename required.

Standards in active use

Captured here so the link between code and standard is one click away.

Standard Where edp-api uses it
IEC 61850 (substation automation logical-node refs) src/drawing/_iec_61850.py + every template's measurements[*].iec_61850_ref field. MMXU.W identifies bus-source side; XCBR.Pos.stVal / XSWI.Pos.stVal mark breakers.
IEC 60617 (graphical symbols for diagrams) src/drawing/_sld_eng_symbols.py. Breaker S00286, disconnector S00282, meter S00313, battery S00306.
ISO 5457 (engineering drawing sheets) src/drawing/_sld_eng_title_block.py::draw_sheet_frame — A3 landscape, 5mm border inset.
ISO 7200 (title blocks) src/drawing/_sld_eng_title_block.py::draw_title_block — "lite" version, ~4 rows in the bottom-right corner.
IEEE 2030.5 / CSIP (Common Smart Inverter Profile) device_templates/leaf/operating_envelope.yamlCSIP.opModImpLimW, CSIP.opModExpLimW measurement refs.
ANSI C12.20 / IEC 62053-22 (revenue-meter accuracy class) device_templates/leaf/revenue_meter.yaml description. Class 0.1S.
DXF R2018 (AutoCAD Drawing Exchange Format) src/drawing/sld_engineering_service.pydxfversion="R2018".