Update docs/en/index.md to mention React availability and link to the UI options page; replace/update the UI image (images/ui-options.png) with a larger width and improved alt text; and fix the ABP CLI link to ./cli/index.md. These changes clarify UI framework support and correct internal documentation links.
Add images for React UI and ABP Studio AI Agent and update documentation to include them. Bold and reflow license-related paragraphs in free-licenses-vs-pro-licenses.md to highlight React UI and AI Agent features. Also fix a minor formatting/whitespace issue in generating-crud-page.md (remove extra space around `CSS`). These changes improve clarity and add visual references for the UI and AI Agent features.
When a state has multiple batch checkers (e.g. RequirePermissions plus
RequireFeatures), the per-state result was overwritten on every checker
pass, so a later 'true' silently masked an earlier 'false'. AND-combine
the results to require all checkers to pass.
Route template used {id} but the method parameter is named blogId, so
ASP.NET Core ApiExplorer emitted an orphan path parameter id, which made
ClientProxyBase.BuildHttpProxyClientProxyContext throw
ArgumentOutOfRangeException when deleting a blog from the MVC admin page.
- Soften IsSandboxed XML doc as a best-effort marker
- Replace #XXXXX placeholders with #25399
- Set Scriban MemberFilter to allowlist public properties only,
blocking method/field access and reflection escape paths
- Update Razor and Scriban safe-runtime docs to match
- Add reflection-escape, method-invocation and nested-property
tests for Scriban
ITemplateRenderingEngine exposes a new IsSandboxed property so callers can
decide whether editing a template requires elevated trust.
- TemplateRenderingEngineBase provides a virtual default of false (secure-by-default)
- RazorTemplateRenderingEngine declares IsSandboxed=false (compiles to .NET assembly via Roslyn)
- ScribanTemplateRenderingEngine declares IsSandboxed=true (DSL without .NET interop)
- Razor integration docs and TextTemplateManagement docs document the implications
- Migration guide for ABP 10.4 documents the new abstraction member