Skip to content

Commit 8cbdcb5

Browse files
committed
docs(architecture): describe current boundaries
1 parent d0490a1 commit 8cbdcb5

2 files changed

Lines changed: 12 additions & 27 deletions

File tree

docs/source/architecture/decisions/0003-dependency-direction.rst

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -47,12 +47,11 @@ that hold today. Its allowlist is the authoritative inventory of exact temporary
4747
cross-boundary imports; this ADR owns the direction and rationale rather than a
4848
second copy of that mutable inventory.
4949

50-
Phase 1 narrowed the permitted seams: NGWMN now uses only the OGC facade,
51-
``waterdata.utils`` no longer bulk re-exports private OGC helpers, and
52-
``ogc.shaping`` no longer depends on ``ogc.engine``. Focused fitness functions
53-
verify those boundaries and the acyclic OGC runtime graph; the architecture
54-
overview records the resolved debt.
50+
Focused fitness functions verify the current boundaries: NGWMN's only OGC
51+
dependency is the facade, ``waterdata.utils`` does not bulk re-export private
52+
OGC helpers, ``ogc.shaping`` does not depend on ``ogc.engine``, and the full OGC
53+
runtime graph is acyclic.
5554

56-
The remaining allowlist should shrink as private seams move. Any growth requires
55+
The exact allowlist should shrink as private seams move. Any growth requires
5756
explicit architecture review, and a change to the dependency policy requires
5857
this ADR to be superseded.

docs/source/architecture/index.rst

Lines changed: 7 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -67,13 +67,15 @@ Public service facades
6767
^^^^^^^^^^^^^^^^^^^^^^
6868

6969
``dataretrieval.waterdata``
70-
Modern USGS Water Data API facade. Typed getters delegate to the shared OGC
71-
subsystem, with separate modules for statistics, ratings, and nearest-value
72-
operations.
70+
Modern USGS Water Data API facade. Typed getters use the four-symbol OGC
71+
facade; Water-Data-specific utilities own service policy and wrappers
72+
without re-exporting private OGC helpers. Statistics, ratings, and
73+
nearest-value operations live in separate modules.
7374

7475
``dataretrieval.ngwmn``
75-
NGWMN facade. Reuses the OGC subsystem with an NGWMN-specific base URL,
76-
output identifiers, state translation, and :class:`OgcDialect`.
76+
NGWMN facade. Its only OGC dependency is the public OGC facade, which it
77+
configures with an NGWMN-specific base URL, output identifiers, state
78+
translation, and :class:`OgcDialect`.
7779

7880
``dataretrieval.wateruse``
7981
NWDC Water Use facade. Builds CSV requests and follows ``Link`` headers.
@@ -213,22 +215,6 @@ These are documented so guardrails distinguish accepted current dependencies
213215
from new erosion. They should be removed through small, test-protected changes,
214216
not a rewrite.
215217

216-
Resolved debt (Phase 1)
217-
^^^^^^^^^^^^^^^^^^^^^^^^
218-
219-
- ``ogc.shaping`` no longer lazy-imports ``ogc.engine`` — resolved by moving
220-
schema lookup to ``ogc.requests`` and default dialect to ``ogc.policy``.
221-
- The OGC runtime import graph is now acyclic (enforced by test, facade
222-
included — no implementation module imports ``dataretrieval.ogc`` root).
223-
- API-key policy is host-scoped at header construction and request execution;
224-
cross-host redirects are stripped by both sync and async client hooks.
225-
- ``waterdata.utils`` no longer bulk re-exports private OGC symbols. It uses
226-
the facade for generic adapter operations and keeps only narrow canonical
227-
``dates``/``shaping`` dependencies for Water Data policy. Tests import OGC
228-
internals from their canonical modules directly.
229-
- ``ngwmn`` uses only the OGC facade (``dataretrieval.ogc``) — no direct
230-
imports from ``ogc.policy``, ``ogc.requests``, or ``ogc.engine``.
231-
232218
Change process
233219
--------------
234220

0 commit comments

Comments
 (0)