You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit cfc0b4b
Browse filesBrowse the repository at this point in the historyBrowse files
Fix due policy retries and use Aspire-owned HTTPS endpoints
Bind stable due command IDs to the fresh principal policy epoch. Observe completed autonomous transfers and validate changed query identities across cold restarts. Replace manual public ports and the cleartext HTTP2 listener with one Aspire-allocated HTTPS endpoint, including real HTTP2 response checks and CI certificate trust.
Validation: restore, dotnet format, repository governance and shard partition checks passed. Local full build is blocked by concurrent uncommitted KLD0040 analyzer changes; complete Linux Build and Tests qualification is required.
Copy file name to clipboardExpand all lines: docs/ADR/ADR-125-connection-owned-execution.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -24,7 +24,7 @@ flowchart LR
24
24
- Lifetime. Disconnect uses Kestrel `ConnectionClosed`; `RequestAborted` belongs to one operation. Host shutdown closes connection admission and joins connections before the silo and storage stop. Reconnect obtains a new grain. Silo loss discards the disposable grain; command-receipt retry and uncertain writes keep their existing semantics.
25
25
- Background work (timers, durable jobs, provider work) uses one bounded execution owner per silo service, never a grain per operation.
26
26
- Errors. `KeyLoadException` is serialized ly (`[GenerateSerializer]`, alias `keyload.error`, Code id 0, StatusCode id 1) so domain codes survive Orleans RPC.
27
-
- Transport. HTTP/1.1 runs sequential requests per connection. Overlapping calls on one connection use the dedicated HTTP/2 listener (`ServerExecutionOptions.EnableHttp2`, `Http2Port` default 8081); the AppHost exposes it on every node and clients use the Aspire-discovered endpoint. The SDK copies the supplied `HttpClient` request version and version policy into every request.
27
+
- Transport. The AppHost exposes one HTTPS endpoint per node and Aspire allocates every public and Orleans port. TLS negotiates HTTP/1.1 or HTTP/2 on that endpoint; overlapping calls on one connection use HTTP/2. Clients use the Aspire-discovered HTTPS address. There is no separate cleartext HTTP/2 listener or application-selected port range. The SDK copies the supplied `HttpClient` request version and version policy into every request.
28
28
- Current MCP transport is stateless; this decision does not deliver SQL session interoperability.
Copy file name to clipboardExpand all lines: docs/Features/QueryExecution/SignedCursorRequestIdentity.md
+2-2Lines changed: 2 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -15,7 +15,7 @@ For EACH SDK and official MCP changed-OFFSET refusal, assert the exact CursorExp
15
15
Replay the complete original eight-mutation seed command through EACH public client; compare every field of its original receipt and immediately verify full current state and fresh signed pages before another replay. No raw store/journal invariance or physical-cut/logical-commit inequality is claimed.
16
16
17
17
## AC-CURSOR-IDENTITY-004
18
-
Join all original/new caller owners before EACH of two genuine all-three Aspire cluster cold cycles. Reopen fresh callers, reject old owner/read-generation cursors, verify fresh full literal pages and all original receipt replays. The unchanged original flow already owns two cold cycles: the strengthened complete Case therefore adds two, totaling four. Its original McpCallerDeadline and Test/Args identity are preserved.
18
+
Join all original/new caller owners before EACH of two genuine all-three Aspire cluster cold cycles. Reopen fresh callers, repeat the changed-OFFSET refusal for the original signed cursors, verify fresh full literal pages and all original receipt replays. A same-volume restart preserves the physical owner identity and read generation unless storage replacement changes it; restart alone does not imply cursor expiry. The unchanged original flow already owns two cold cycles: the strengthened complete Case therefore adds two, totaling four. Its original McpCallerDeadline and Test/Args identity are preserved.
19
19
20
20
```mermaid
21
21
flowchart LR
@@ -25,7 +25,7 @@ flowchart LR
25
25
X --> V[Original OFFSET1 continues c then d]
26
26
V --> R[Full seed receipt replay and current state]
Copy file name to clipboardExpand all lines: docs/Features/TestInfrastructure.md
+6-3Lines changed: 6 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -322,9 +322,12 @@ REQ/AC-TEST-001: the full Unit model/disposal flow asserts every Aspire-owned en
322
322
323
323
REQ-TEST-001/011/015 and their existing ACs preserve the genuine configured-node model construction, complete endpoint assertions and joined model disposal. In ExactSelectionBuildsTheOwnedClusterModelAndSettlesDisposal the pre-DCP http2.Port is 8081, not null. No deployment port configuration changes are authorized by this test correction.
324
324
325
-
Pinned Aspire.Hosting 13.6.1's EndpointAnnotation retains an omitted backing port and exposes targetPort as Port for an unproxied endpoint unless the port was explicitly set to null. Existing ClusterConnectionEndpointResources.Apply supplies targetPort8081, name http2, isProxiedfalse and no port argument through WithHttpEndpoint. Therefore the constructed model's public Port property is8081; this is not proof of an explicitly fixed container host binding.
326
-
327
-
The pinned DcpExecutor allocation checks container SpecifiedPort for a fixed public port. The omitted backing port requires allocation for a proxyless container; EnsureProxylessEndpointPort assigns the real allocated public port while retaining container target8081. The cluster resources omit this http2 backing port. Model verification thus compares http2.Port to its independent Http2TargetPort constant before DCP, preserving exact names/order/scheme/target/internal/unproxied assertions, all other endpoint values, actual Aspire Build and original application/root cleanup. It does not claim actual distinct allocated endpoints, readiness, successful connection or cluster execution; those remain authentic Aspire runtime gates.
325
+
The primary project AppHost uses one HTTPS endpoint per node. Aspire allocates
326
+
its port and the silo/membership ports in ordinary and ephemeral composition.
327
+
HTTP/1.1 and HTTP/2 share TLS negotiation on that endpoint. Integration clients,
328
+
readiness checks and the CLI use the discovered HTTPS address. CI establishes
329
+
trust in the .NET development certificate before starting the real topology;
330
+
certificate verification stays enabled.
328
331
329
332
### Cold restart of every stopped node before readiness
0 commit comments