feat: orchestrate blocking frontend quality gates
This commit is contained in:
@@ -0,0 +1,19 @@
|
||||
# Architecture overview
|
||||
|
||||
```mermaid
|
||||
flowchart LR
|
||||
Bootstrap[bootstrap / composition root] --> Presentation[presentation]
|
||||
Bootstrap --> Adapters[adapters]
|
||||
Presentation --> Application[application]
|
||||
Adapters --> Application
|
||||
Application --> Domain[domain]
|
||||
Contracts[contract registries] --> Bootstrap
|
||||
Contracts --> Adapters
|
||||
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.
|
||||
@@ -0,0 +1,17 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"status": "pending-review",
|
||||
"reviewerThreshold": null,
|
||||
"reviews": {
|
||||
"overview": {
|
||||
"path": "docs/architecture/overview.md",
|
||||
"reviewer": null,
|
||||
"score": null
|
||||
},
|
||||
"staticDelivery": {
|
||||
"path": "docs/architecture/static-delivery.md",
|
||||
"reviewer": null,
|
||||
"score": null
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
# Static asset and runtime-config delivery
|
||||
|
||||
```mermaid
|
||||
sequenceDiagram
|
||||
participant CI
|
||||
participant ImmutableRelease
|
||||
participant ActivePointer
|
||||
participant Browser
|
||||
CI->>ImmutableRelease: upload hashed assets
|
||||
CI->>ImmutableRelease: upload release manifest
|
||||
CI->>ImmutableRelease: upload runtime config
|
||||
CI->>ImmutableRelease: probe asset reachability
|
||||
CI->>ActivePointer: atomically switch HTML
|
||||
Browser->>ActivePointer: fetch revalidated HTML
|
||||
Browser->>ImmutableRelease: fetch no-store config and manifest
|
||||
Browser->>ImmutableRelease: fetch immutable hashed assets
|
||||
CI->>Browser: boot, route, API, and reload-loop smoke
|
||||
```
|
||||
|
||||
Rollback changes the active pointer only after confirming that the prior
|
||||
immutable release has a coherent HTML/assets/config/API/manifest tuple.
|
||||
Reference in New Issue
Block a user