docs: audit frontend platform capabilities
This commit is contained in:
@@ -18,14 +18,43 @@ flowchart LR
|
||||
Contracts --> Presentation
|
||||
```
|
||||
|
||||
Dependencies point inward. Presentation calls application use cases, adapters
|
||||
implement application ports, and only the composition root selects concrete
|
||||
adapters. Contract registries are the single named source for routes, API
|
||||
operations, environment values, storage keys, errors, queries, telemetry, and
|
||||
release tokens.
|
||||
The intended dependency rule points inward: presentation calls application use
|
||||
cases, adapters implement application ports, and only the composition root
|
||||
selects concrete adapters. Contract registries are the intended named source
|
||||
for routes, API operations, environment values, storage keys, errors, queries,
|
||||
telemetry, and release tokens. The platform review below records where the
|
||||
current runtime still bypasses that target or duplicates registry metadata.
|
||||
|
||||
The executable route tree is mounted only after runtime configuration and
|
||||
release-manifest coherence pass. It receives the composed query client,
|
||||
In ports-and-adapters terms, `presentation` is the current inbound adapter and
|
||||
`adapters` contains the current outbound implementations. The target design
|
||||
makes this role explicit, introduces application input ports, and prevents the
|
||||
React tree from receiving raw outbound dependencies:
|
||||
|
||||
```mermaid
|
||||
flowchart LR
|
||||
Driver[User, route, browser event] --> Inbound[React inbound adapter]
|
||||
Inbound --> Input[Application input API]
|
||||
Input --> UseCase[Use cases]
|
||||
UseCase --> Output[Application output ports]
|
||||
Output --> Outbound[HTTP, auth, storage, query, telemetry adapters]
|
||||
Bootstrap2[Composition root] -. selects and injects .-> Input
|
||||
Bootstrap2 -. selects and injects .-> Outbound
|
||||
```
|
||||
|
||||
The current executable route tree is mounted only after runtime configuration
|
||||
and release-manifest coherence pass. It receives the composed query client,
|
||||
credential-opaque session port, storage port, telemetry port, and immutable
|
||||
build ID. Visible starter pages depend on those ports and contracts, never on a
|
||||
concrete adapter or the removable sample fixture.
|
||||
build ID. Visible starter pages do not depend on the removable sample fixture.
|
||||
|
||||
This describes the current starter composition, not the completed target. The
|
||||
capability review found that raw outbound capabilities still reach the React
|
||||
tree, the composed application facade is not yet its entry point, and several
|
||||
route, HTTP, recovery, telemetry, and sample-removal contracts are only
|
||||
partially connected. Use the following documents for the evidence and migration
|
||||
plan:
|
||||
|
||||
- [Frontend platform capability review](./frontend-platform-capability-review.md)
|
||||
- [Frontend ports, adapters, and boundaries](./frontend-ports-adapters-and-boundaries.md)
|
||||
- [TypeScript, state, and data flow](./typescript-state-and-data-flow.md)
|
||||
- [Routing, pages, and patterns](./routing-pages-and-patterns.md)
|
||||
- [Frontend platform implementation roadmap](./frontend-platform-implementation-roadmap.md)
|
||||
|
||||
Reference in New Issue
Block a user