- Clear configuration entry when Region or ServiceURL is set to null
- Annotate DeleteObjectsAsync prefix and continuationToken as nullable
- Replace vague Region placeholder in aws.md example
- Skip container wiring in test module when AWS credentials are absent
- Dispose AmazonS3Client in test cleanup
- Validate Region or ServiceURL early in DefaultAmazonS3ClientFactory
- Normalize trailing slash in ServiceURL test assertions
- Clarify Region and ServiceURL coupling in XML docs and aws.md
- Add DisablePayloadSigning configuration to send UNSIGNED-PAYLOAD instead of streaming chunked signature, required by R2
- Make CreateS3ClientConfig async to allow subclasses to do I/O
- Document trailing-slash behavior of ServiceURL
- Extend test module to use external bucket with per-run prefix cleanup
- Document DisablePayloadSigning in aws.md and link from index.md
- Clarify that Delete is host-only for the global account while Remove from tenant is the tenant-level soft removal available to tenant admins
- Note in the migration guide that host-side shadow rows must use a new primary key Id different from the tenant user's Id
The implicit DisplayTemplate context caused the Razor source generator
to compile 'context.Item as IHasExtraProperties' into
'context as IHasExtraProperties' (dropping the .Item access). Since
CellDisplayContext<TItem> itself does not implement IHasExtraProperties,
the cast was always null and the cell rendered empty.
Renaming the context with Context="rowContext" produces the correct
'rowContext.Item as IHasExtraProperties' codegen and the cell now
shows the property value.
Add a new Script Actions reference (docs/en/low-code/script-actions.md) and wire it into the docs navigation. Update low-code docs (custom-endpoints.md, designer.md, index.md, model-json.md, scripting-api.md) to document the Designer code editor, autocomplete (including fileFields/imageFields and enum registries), action types (event handlers, background jobs, workers), and the built-in Test JavaScript dry-run behavior. The dry-run tables describe captured side effects, HTTP mock behavior, and rollback semantics to help authors safely test scripts in the Designer.
ABP dynamic HTTP client proxy uses HttpCompletionOption.ResponseHeadersRead,
but several paths in ClientProxyBase and DynamicHttpProxyInterceptor dropped
the response without disposing it, leaving the underlying connection
occupied until the server closed it or the client timed out.
Fixes#25475