Repository navigation
fix: add DaprInvokeHttpClient.encodePath for URI path encoding - #1774
Conversation
There was a problem hiding this comment.
Pull request overview
This PR adds a public helper for safely encoding URI path segments for Dapr HTTP invocation, and improves the error guidance when callers pass an illegal relativePath into newRequestBuilder.
Changes:
- Add
DaprInvokeHttpClient.encodePath(String)to percent-encode each/-delimited path segment while preserving separators and leading slashes. - Update
newRequestBuilder(String)to resolve the path “as-is” and rethrowIllegalArgumentExceptionwith guidance pointing callers toencodePath. - Add unit tests covering
encodePathbehavior and the newnewRequestBuildererror guidance.
Reviewed changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated 1 comment.
| File | Description |
|---|---|
| sdk/src/main/java/io/dapr/client/DaprInvokeHttpClient.java | Adds encodePath and wraps invalid-URI failures from URI.resolve with a guidance message. |
| sdk/src/test/java/io/dapr/client/DaprInvokeHttpClientTest.java | Adds tests for path encoding behavior and for the new error guidance behavior in newRequestBuilder. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
46b2156 to
5586906
Compare
artur-ciocanu
left a comment
There was a problem hiding this comment.
LGTM, I have left a tiny comment regarding extracting an URI utils.
newRequestBuilder resolves relativePath raw and now rethrows IllegalArgumentException on illegal chars (e.g. spaces), pointing at encodePath. encodePath percent-encodes each path segment, preserving separators and a leading slash and appending any query unchanged, mirroring DaprHttp/invokeMethod. Signed-off-by: Javier Aliaga <[email protected]>
5586906 to
07d0d8f
Compare
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## master #1774 +/- ##
=========================================
Coverage 76.86% 76.86%
- Complexity 2298 2306 +8
=========================================
Files 243 244 +1
Lines 7141 7163 +22
Branches 745 753 +8
=========================================
+ Hits 5489 5506 +17
- Misses 1287 1289 +2
- Partials 365 368 +3 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
#1776) newRequestBuilder resolves relativePath raw and now rethrows IllegalArgumentException on illegal chars (e.g. spaces), pointing at encodePath. encodePath percent-encodes each path segment, preserving separators and a leading slash and appending any query unchanged, mirroring DaprHttp/invokeMethod. (cherry picked from commit f42e0d2) Signed-off-by: Javier Aliaga <[email protected]> Co-authored-by: Javier Aliaga <[email protected]>
* fix: add DaprInvokeHttpClient.encodePath for URI path encoding (#1774) newRequestBuilder resolves relativePath raw and now rethrows IllegalArgumentException on illegal chars (e.g. spaces), pointing at encodePath. encodePath percent-encodes each path segment, preserving separators and a leading slash and appending any query unchanged, mirroring DaprHttp/invokeMethod. Signed-off-by: Javier Aliaga <[email protected]> (cherry picked from commit f42e0d2) * fix: replace instanceof pattern matching for Java 11 compatibility release-1.17 compiles with -source 11; pattern matching in instanceof requires Java 16+. Replace with an explicit cast. Signed-off-by: Javier Aliaga <[email protected]> --------- Signed-off-by: Javier Aliaga <[email protected]>
newRequestBuilder no longer encodes the path; document that callers must encode segments containing URI-illegal characters (e.g. spaces) with UriUtils.encodePath, and that passing them raw throws IllegalArgumentException. Reflects dapr/java-sdk#1774. Signed-off-by: Javier Aliaga <[email protected]>
* Updated .NET SDK package list Signed-off-by: Whit Waldo <[email protected]> * Fixed bad link Signed-off-by: Whit Waldo <[email protected]> * fix(conversation): update api docs + drive more clarity Signed-off-by: Samantha Coyle <[email protected]> * Apply suggestions from code review Co-authored-by: Copilot Autofix powered by AI <[email protected]> Signed-off-by: Mark Fussell <[email protected]> * docs(redis): document Valkey 8.x/9.x support for Redis state store and pub/sub Signed-off-by: Nelson Parente <[email protected]> * docs(redis): add Valkey support for bindings and lock; reconcile pub/sub version table - supported-bindings/redis.md: add "Supported servers and versions" table (Redis 6.x/7.x, Valkey 8.x/9.x); remove outdated "does not support Redis >= 7" note - supported-locks/redis-lock.md: add "Supported servers and versions" table mirroring same style (no query-API caveat — lock does not use RediSearch) - setup-redis-pubsub.md: reconcile prose and table — drop the unclaimed "5.x" from the prose description so it matches the table (6.x, 7.x for Redis; 8.x, 9.x for Valkey). Both the table and the prose now reference only conformance-tested versions. No configuration-store Valkey documentation added (coverage was removed from the code PR as a no-op). Signed-off-by: Nelson Parente <[email protected]> * docs(redis): scope Valkey support wording and fix Query API module requirements (Copilot review) Signed-off-by: Nelson Parente <[email protected]> * docs(redis): soften Valkey Query API limitation and align pubsub wording (Copilot review) Signed-off-by: Nelson Parente <[email protected]> * docs: Add '--all' flag to purge all completed workflows Updated command to include '--all' flag for purging all completed workflows. Signed-off-by: Tsonglew <[email protected]> * actors: document app-initiated gRPC event streams (Alpha1) Add documentation for SubscribeActorEventsAlpha1, the new bidirectional gRPC stream that lets actor-hosting apps receive all callbacks (invoke, reminder, timer, deactivate) over an app-initiated connection to daprd, without exposing an inbound server port. Closes dapr/dapr#927. Introduced in Dapr v1.18 via dapr/dapr#9812. Files added/changed: - actors-app-initiated-streams.md: concept page explaining the protocol, the motivation, how it differs from traditional callbacks, and NetworkPolicy / firewall guidance for operators. - howto-actors-app-initiated-streams.md: how-to guide with step-by-step instructions and raw gRPC code examples in Go. - actors_api.md: new SubscribeActorEventsAlpha1 gRPC section with full proto reference tables for all request/response message types. - alpha-beta-apis.md: add row for the new alpha API. Signed-off-by: Nelson Parente <[email protected]> * actors: tighten app-initiated streams docs (review pass) Signed-off-by: Nelson Parente <[email protected]> * docs: address review feedback on actor app-initiated streams - Convert the how-to protocol summary to a mermaid sequence diagram - Surface SDK support near the concept intro and in the comparison table - Move the why-summary sentence above the comparison table - Correct the SDK support section: the Go SDK helper (client.SubscribeActorEvents) has landed, so the no-SDK-support note was inaccurate; point to it and note other SDKs use the generated gRPC client. Drop the release-tracking sentence. Signed-off-by: Nelson Parente <[email protected]> * docs: pin actor streams proto link to the v1.18 backport commit The alpha-beta-apis row linked to an unrelated version-skew CI commit. Repoint to the v1.18 backport merge commit (dapr/dapr#9964), where the SubscribeActorEventsAlpha1 RPC is defined in dapr.proto at the same line (L125), so the permalink is stable and points at v1.18 content. Signed-off-by: Nelson Parente <[email protected]> * Document Pulsar topicsPattern regex subscriptions Add documentation for the new topicsPattern and autoDiscoveryPeriod metadata fields on the Pulsar pub/sub component, which enable subscribing to multiple topics within a tenant/namespace by regular expression with automatic discovery of newly created matching topics. Relates to dapr/components-contrib#2566 Signed-off-by: Justin Slatten <[email protected]> * Align Pulsar autoDiscoveryPeriod default with component behavior Document the default as "0" (defers to the Pulsar client's own interval, currently 1m) instead of "1m", matching what the component sets when the field is unset. Relates to dapr/components-contrib#2566 Signed-off-by: Justin Slatten <[email protected]> * Fix RabbitMQ pubsub exchangeKind allowed values The RabbitMQ pubsub component accepts four exchange kinds (fanout, topic, direct, headers) per exchangeKindValid in components-contrib, but the reference table only listed fanout and topic. Add the missing direct and headers values. Co-Authored-By: Claude Opus 4.8 <[email protected]> Signed-off-by: MyMirelHub <[email protected]> * docs: add .NET actor unit testing guide Add dotnet-actors-unit-testing.md covering: - Unit testing actors in isolation with lightweight ActorHost - Mocking IActorStateManager and IActorProxyFactory - Testing timers and reminders - Integration testing with Dapr sidecar - Best practices for dependency injection and test isolation Co-authored-by: wynx1123 <[email protected]> Signed-off-by: wynx1123 <[email protected]> * docs: document UriUtils.encodePath for Java client service invocation newRequestBuilder no longer encodes the path; document that callers must encode segments containing URI-illegal characters (e.g. spaces) with UriUtils.encodePath, and that passing them raw throws IllegalArgumentException. Reflects dapr/java-sdk#1774. Signed-off-by: Javier Aliaga <[email protected]> * perf: add version-agnostic performance results page Render the Dapr performance results on the docs site from the charts and manifest published to the dapr/dapr perf-charts branch, for whichever Dapr version the docs set represents. - Add the dapr-perf-results shortcode: read the minor version from params.version, fetch <minor>/manifest.json from the perf-charts branch (via jsDelivr) at build time, and render the throughput-per-resource tables and charts. Fails soft to a "not yet published" notice when a version has no results. - Group the output so the page stays navigable: each API is a collapsible section (collapsed by default) with a scenario count, each scenario is collapsible with a chart count, and a "Jump to" nav links to each API and expands it on click. - Add the perf-results page that calls the shortcode. Nothing is hard-coded per version; publishing a new run to perf-charts is all that is needed for the page to update. Signed-off-by: joshvanl <[email protected]> * docs: address review feedback on path-encoding section Drop the alert wrapper in favor of a plain paragraph, reword per review, and group the URL path encoding row with the user-responsibility rows. Signed-off-by: Javier Aliaga <[email protected]> * Adding documentation exploring Dapr.Actors.Next from a high-level how-to perspective Signed-off-by: Whit Waldo <[email protected]> * Updating source generators documentation to reflect the new analyzers and code fixes Signed-off-by: Whit Waldo <[email protected]> * Added root document detailing what's changed and why Signed-off-by: Whit Waldo <[email protected]> * Committing serialization document for Dapr.Actors.Next Signed-off-by: Whit Waldo <[email protected]> * Committing documentation for pubsub streams with `Dapr.Actors.Next` Signed-off-by: Whit Waldo <[email protected]> * Committing state migration documentation Signed-off-by: Whit Waldo <[email protected]> * Added state machine actor documentation Signed-off-by: Whit Waldo <[email protected]> * Adding docs for dynamic actor invocation Signed-off-by: Whit Waldo <[email protected]> * Added documentation about testing the Dapr.Actors.Next implementation using the deterministic scheduler, using Coyote or with `Dapr.Testcontainers` Signed-off-by: Whit Waldo <[email protected]> * add community integrations Signed-off-by: yaron2 <[email protected]> * add MS agents Signed-off-by: yaron2 <[email protected]> * Updating documentation to reflect change to reminder/timer data signatures Signed-off-by: Whit Waldo <[email protected]> * Renamed "FlushState" to "EvictState" for clarity in SDK and documentation Signed-off-by: Whit Waldo <[email protected]> * Added functionality to save state between turns for parity with Dapr.Actors Signed-off-by: Whit Waldo <[email protected]> * Implemented first pass of the migration documentation Signed-off-by: Whit Waldo <[email protected]> * Added tutorial introduction for Dapr.Actors.Next Signed-off-by: Whit Waldo <[email protected]> * Adding tutorial 1 Signed-off-by: Whit Waldo <[email protected]> * Adding tutorial for state migration functionality Signed-off-by: Whit Waldo <[email protected]> * Added tutorial demonstrating streaming actor support Signed-off-by: Whit Waldo <[email protected]> * Added example documentation demonstrating the state machine functionality Signed-off-by: Whit Waldo <[email protected]> * Added tutorial for the dynamic state machine actors Signed-off-by: Whit Waldo <[email protected]> * Added tutorial meant to show combination of actors and workflows into a single solution Signed-off-by: Whit Waldo <[email protected]> * Updating documentation to reflect new analyzers for reminder type/operation name value verification at dev time. Signed-off-by: Whit Waldo <[email protected]> * Added new package to list Signed-off-by: Whit Waldo <[email protected]> * Replaced mentions of the Dapr.Actors.Next.* packages as namespaces within the `Dapr.Actors.Next` package Signed-off-by: Whit Waldo <[email protected]> * Rebalanced all the index weights for .NET SDK documentation headers Signed-off-by: Whit Waldo <[email protected]> * Added note about the distinction between the singular NuGet package and the many package references in the tutorials and source code Signed-off-by: Whit Waldo <[email protected]> * Modified some less-formal language Signed-off-by: Whit Waldo <[email protected]> * Modified maintenance message about `Dapr.Actors.Next` and added to the .NET Actors page Signed-off-by: Whit Waldo <[email protected]> * Reconfigured index weights once more Signed-off-by: Whit Waldo <[email protected]> * Fix baseUrl for current (#5242) Signed-off-by: Marc Duiker <[email protected]> Co-authored-by: Marc Duiker <[email protected]> Co-authored-by: Mark Fussell <[email protected]> * Workflow docs: instance ID reuse requires the whole workflow tree to be terminal The workflow identity docs added for the 1.18 reuse policy removal stated that creating a workflow whose instance ID already exists is rejected in any state, including completed. That never matched the runtime: recreating an instance in a terminal state has been allowed since the workflow engine was introduced, and remains so. Document the contract as enforced from 1.18.2: an instance ID is reusable only once the existing workflow and every child workflow it created, checked recursively, has reached a terminal state (COMPLETED, FAILED, or TERMINATED); otherwise the create request is rejected with a 409 conflict naming the child workflow that is not yet terminal. Purging a workflow (or a retention policy) frees its instance ID. During a rolling upgrade, children hosted by older sidecars are verified only for their own status, so the recursive guarantee applies once all sidecars run a version with the check. Also update the breaking-changes page: the 1.18.0 removal entry now notes that SDK options still exposing the reuse policy (such as reuse_id_policy in the Python SDK) are deprecated and silently ignored by 1.18+ runtimes, and a new 1.18.2 entry records the terminal-tree requirement. Signed-off-by: joshvanl <[email protected]> * Update for new Diagrid Dev Dashboard Signed-off-by: Marc Duiker <[email protected]> * Document updating trust bundle ConfigMap when rotating certs via kubectl Signed-off-by: MyMirelHub <[email protected]> * Docs restyle (#5253) * docs: add Dapr docs restyle design spec and implementation plan Structured design direction, SCSS-first hybrid architecture on Docsy v0.12.0, mermaid via Hugo Pipes, upgrade-safe override ladder. See spec + plan under docs/superpowers/. Co-Authored-By: Claude Opus 4.8 <[email protected]> * docs: document working local preview (hugo server on macOS) Task 1 of restyle plan. Confirms hugo server v0.162.0 serves + compiles SCSS locally on macOS; npm run serve / prod build hit the PostCSS --permission error. Co-Authored-By: Claude Opus 4.8 <[email protected]> * style: establish SCSS structure, design tokens, and dark-mode wiring * feat: enable dark mode with a persisted theme toggle (data-bs-theme) * style: content typography, links, code, blockquote, lists * style: compact underline code/OS tabs (Docsy tabpane restyle) * style: callout/alert variants * style: tables and component compatibility tables * style: buttons and CTA * style: self-host Geist/Inter/Geist Mono and set typography base Task 3. Vendored OFL woff2 (Geist, Inter, Geist Mono) into static/fonts, @font-face + --font-* tokens in _typography.scss, Bootstrap font vars, head preloads. Completed after the implementer hit a transient 529 post-work. Co-Authored-By: Claude Opus 4.8 <[email protected]> * fix(style): disable Docsy Google Fonts CDN; tokenize on-accent/success/danger colors Adds $td-enable-google-fonts: false to disable the CDN import since fonts are self-hosted. Introduces semantic color tokens (--d-on-accent, --d-on-sky, --d-success, --d-danger) and replaces raw hex values in button and callout styles. Co-Authored-By: Claude Opus 4.8 <[email protected]> * docs: add Task 2b (enable dark mode) to restyle plan Co-Authored-By: Claude Opus 4.8 <[email protected]> * fix(style): blend code-tab content with page; make copy-code icon visible Review feedback on Task 5: - .tab-content dropped its distinct --d-code-bg panel + border; now transparent so it reads as regular td-content (code blocks keep their own .highlight bg). - copy-code icon was hard-coded white in copy-code-button.js (invisible on light code backgrounds). Removed the inline white; .copy-icon is now positioned top-right and colored via --d-muted/--d-heading tokens, visible in both themes. Co-Authored-By: Claude Opus 4.8 <[email protected]> * fix(style): dedupe copy button, restore code-block spacing, strengthen active tab Root causes (systematic debugging): - Duplicate copy buttons: Docsy already injects its own button.td-click-to-copy via scripts.html/click-to-copy.js; our custom /js/copy-code-button.js added a second one (the 'strange character' beside it). Removed the custom script + file; kept Docsy's single button and tinted it via tokens (+font-weight:900 so the Font Awesome solid glyph renders). - Code blocks crowded: our _content.scss set .highlight margin 0.5rem, overriding Docsy's 2rem. Restored generous spacing (1.75-2rem); tab-embedded code stays 0. - Active tab unclear: strengthened the indicator to a 3px orange underline + weight 600 (the underline rule was already correct and wins the cascade). Co-Authored-By: Claude Opus 4.8 <[email protected]> * fix(style): stop CTA button rule from breaking Docsy's copy icon Root cause (confirmed via computed style = Geist on the button): our Task 8 rule '.td-content .btn { font-family: var(--font-head) }' matched Docsy's icon-only copy button (button.td-click-to-copy is also .btn), specificity 0,2,0 beating Font Awesome's .fas (0,1,0). The FA copy glyph (\f0c5) then rendered in Geist = tofu, and the CTA padding/radius bloated the button. Excluded .td-click-to-copy from the CTA rule so it keeps the FA font (and Docsy's own sizing). Co-Authored-By: Claude Opus 4.8 <[email protected]> * feat(style): themeable code highlighting (class-based Chroma, light+dark) Root cause: markup.highlight used noClasses (inline styles) + style=tango, baking a light background and fixed tango token colors into the HTML as inline styles, which CSS cannot re-theme -> code blocks stayed light in dark mode. Fix: switch to class-based highlighting (pygmentsUseClasses:true / markup.highlight.noClasses:false) and add _chroma.scss with a light palette (tango, unchanged look) plus a dark palette (github-dark) scoped to [data-bs-theme=dark]. Baked backgrounds stripped; code-block background now comes from the --d-code-bg token so it matches the design in both themes. Co-Authored-By: Claude Opus 4.8 <[email protected]> * style: navbar * style: sidebar navigation * style: right-hand TOC with scrollspy * style: breadcrumbs, pager, footer * fix(style): sidebar nav — indentation, spacing, single active highlight Review feedback on Task 10: 1. Halved nested indentation (Docsy default 1.5em -> 0.75em). 2. Zeroed top/bottom margin on sidebar li items. 3+4. Active item had TWO highlights: a block-level .td-sidebar-link.active background AND an inline .td-sidebar-nav-active-item span background (added by sidebar-nav.js). The inline span highlight didn't cover wrapped multi-line titles. Removed the span highlight (background:none); the block link's background now spans the full width including multi-line. Co-Authored-By: Claude Opus 4.8 <[email protected]> * fix(style): sidebar li padding 2px; move active accent to the <li> Review feedback on Task 10: 1. Sidebar link top/bottom padding 4px -> 2px. 2. Moved the blue active-accent from the <a> to the active item's <li>. sidebar-nav.js already locates that <li> (#<mid>-li); it now tags it with .td-sidebar-active-li, styled with an inset 2px shadow (a left border that doesn't shift layout). Removed the border-left from .td-sidebar-link.active. Co-Authored-By: Claude Opus 4.8 <[email protected]> * style: card component (Docsy cards + project .d-card) * feat(layout): card-forward section landing pages * fix(style): theme-aware brand logo (dark-blue on light, white on dark) The white logo.svg was invisible on the new light navbar. A dark-blue mark already existed (assets/icons/logo-blue.svg, #0D2192). navbar.html now inlines both (logo-blue for light, logo.svg for dark) and _navbar.scss shows the right one per data-bs-theme. No new asset needed. Co-Authored-By: Claude Opus 4.8 <[email protected]> * fix(style): align navbar logo with wordmark, use Geist for 'Dapr Docs' .navbar-brand was baseline-aligning inline elements (with an invalid text-align:middle). Made it an inline-flex row with align-items:center + gap so the logo SVG and the wordmark are vertically centered, and set the brand font-family to var(--font-head) (Geist) so 'Dapr Docs' matches the heading font. Co-Authored-By: Claude Opus 4.8 <[email protected]> * fix(style): right aside — page-meta font size + active-only TOC border 1. .td-page-meta (sibling of .td-toc in .td-sidebar-toc) now uses .8rem, matching the TOC font size (was larger). Moved the rule to top level since it is not nested under .td-toc. 2. TOC items no longer show a border on every item — non-active use a transparent border (no layout shift); only the active item shows the orange border, like the left nav. Co-Authored-By: Claude Opus 4.8 <[email protected]> * Remove temp file Signed-off-by: Marc Duiker <[email protected]> * style: search, 404, blog, banners, feedback, perf, print Task 20 (Phase 5): peripheral pages & partials. - Search input + Algolia DocSearch modal tokenized in _search.scss (--docsearch-* vars; :root:root specificity bump so our brand color wins over @docsearch/css's later-loading defaults; dark-mode modal overrides so it isn't a white box on a dark page). - New daprdocs/layouts/404.html override: heading + message + a .d-card-grid of top-level sections (built from .Site.Sections, not hardcoded paths). - Blog: no local blog content in this repo (blog lives at blog.dapr.io); added minimal tokenized rules for Docsy's blog list classes that fall outside .td-content (byline/article-meta/list items/pagination) — single.html already inherits global styling. - Version/preview banners (.pageinfo, rendered above .td-content) and the dormant feedback widget (currently disabled via params.ui.feedback.enable) restyled through tokens in _page-extras.scss. - Announcement + cookie banners: retokenized the static daprdocs/static/css/*.css files directly (they load outside the SCSS pipeline and after our compiled bundle, so overriding from _page-extras.scss alone wouldn't win the cascade). Announcement banner gets an explicit dark-mode treatment to avoid a low-contrast pastel-blue-on-white combination. - dapr-perf-results shortcode: moved its inline <style> block (raw Bootstrap var()-with-hex-fallback) into _page-extras.scss as tokenized rules. - @media print block forces light tokens and hides .td-sidebar/.td-sidebar-toc/.td-navbar for direct browser printing. - Added Docsy-override header comments to search-input.html, feedback.html, and version-banner.html (real Docsy shadows); left announcement-banner.html, cookie-banner.html, and dapr-perf-results.html without one (custom, no Docsy equivalent). - No banner scheduling/consent logic changed; no daprdocs/content or sdkdocs files touched. Co-Authored-By: Claude Opus 4.8 <[email protected]> * fix(style): print-mode dark tokens + cookie Accept button dark contrast Review of Task 20: - @media print now also forces --d-panel/--d-code-bg/--d-muted/--d-blue/--d-link to light. [data-bs-theme=dark] stays active when printing a page viewed in dark mode, so without this inline code + table headers printed black-on-near-black. - Cookie Accept button had no dark override (--d-blue pastel + white ~2.7:1). Dark mode now uses --d-sky + --d-on-sky for a legible, prominent CTA. Co-Authored-By: Claude Opus 4.8 <[email protected]> * docs: OVERRIDES index of Docsy layout forks with risk tiers * fix(style): scope light Chroma palette to prevent black code in dark mode Final-review Critical: the tango (light) palette was emitted UNSCOPED (.chroma .p/.n = #000), while only github-dark was scoped to [data-bs-theme=dark]. github-dark doesn't redefine punctuation/plain-identifier classes, so in dark mode braces/colons/commas/identifiers rendered black on the near-black code background across ~every code block. Fix: scope BOTH palettes — tango under [data-bs-theme=light], github-dark under [data-bs-theme=dark]. Tokens github-dark omits now inherit the dark .chroma base color (#e6edf3, light) instead of the leaked #000. The head no-flash script always sets data-bs-theme before paint, so scoping light is safe. Co-Authored-By: Claude Opus 4.8 <[email protected]> * fix(style): stop announcement banner from overlapping the right aside Pre-existing since the banner was introduced. The banner is in-flow at the top and announcement-banner.js pushes the fixed navbar down by the banner height (at page top), but the sticky sidebars used a static top:4rem (navbar height only) — so the pushed-down navbar overlapped the top of the right aside (page-meta). announcement-banner.js now publishes --dapr-header-bottom = the navbar's actual bottom edge (banner + navbar, shrinking to just the navbar as the banner scrolls away), kept in sync on load/scroll/resize/dismiss. Both sticky sidebars (.td-sidebar-toc, .td-sidebar) offset by that var, falling back to 4rem when no banner is present. Co-Authored-By: Claude Opus 4.8 <[email protected]> * docs: remove internal restyle spec and plan from PR Internal planning artifacts (design spec + implementation plan) are not part of the docs-site deliverable. Removed from the branch; preserved outside the repo for the follow-up Phase 4 (mermaid/diagrams) work. Co-Authored-By: Claude Opus 4.8 <[email protected]> * Update homepage styling and some content Signed-off-by: Marc Duiker <[email protected]> --------- Signed-off-by: Marc Duiker <[email protected]> Co-authored-by: Marc Duiker <[email protected]> Co-authored-by: Claude Opus 4.8 <[email protected]> * fix(style): mobile/tablet sidebar as a hamburger menu below lg The restyle merged (#5253) exposed a Docsy 'sidebar_search_disable' breakpoint mismatch: Docsy force-shows .td-sidebar-nav at md (>=768px) while the mobile menu container (#content-mobile) and toggle only appear below lg, and the hamburger button was d-md-none (hidden >=768px). So at 768-992px (tablets / landscape phones) the full sidebar showed with no toggle. Fix (layouts + CSS only, no content): - sidebar.html: hamburger toggle d-md-none -> d-lg-none (visible below lg). - _sidebar.scss: below lg, keep .td-sidebar-nav collapsed until the hamburger opens it (override the md force-show), and stack the sidebar + main full-width so the sidebar reads as a collapsible menu bar (bottom border) instead of a cramped 25% side column. Force the hamburger's Font Awesome weight so the fa-bars glyph renders. Co-Authored-By: Claude Opus 4.8 <[email protected]> * fix(style): theme-aware .alert-heading color (fix dark mode) Docsy sets fixed light-theme colors on .alert-* .alert-heading (e.g. .alert-primary .alert-heading { color:#0D2192 }); the dark-blue primary heading was illegible on the dark callout background. Re-mapped to --d-* tokens that flip per theme — light values match Docsy's (no light-mode change), dark values stay legible. Also covers the matching .pageinfo-* headings. Co-Authored-By: Claude Opus 4.8 <[email protected]> * Reposition to durable execution Signed-off-by: Marc Duiker <[email protected]> * Add design spec for Diagrid commercial offerings docs update Co-Authored-By: Claude Opus 4.8 <[email protected]> * Reorder Diagrid pages: Dev Dashboard, Conductor, Catalyst, Support Co-Authored-By: Claude Opus 4.8 <[email protected]> * Add implementation plan for Diagrid commercial offerings docs update Co-Authored-By: Claude Opus 4.8 <[email protected]> * Correct plan verification commands (repo-root headless hugo build) Co-Authored-By: Claude Opus 4.8 <[email protected]> * Promote Integrations to a top-level docs section with URL aliases Co-Authored-By: Claude Opus 4.8 <[email protected]> * Add Diagrid Dev Dashboard integration page Co-Authored-By: Claude Opus 4.8 <[email protected]> * Refresh Diagrid Conductor integration page Co-Authored-By: Claude Opus 4.8 <[email protected]> * Add Diagrid Catalyst integration page Co-Authored-By: Claude Opus 4.8 <[email protected]> * Add Dapr enterprise support integration page Co-Authored-By: Claude Opus 4.8 <[email protected]> * Add dedicated documentation-section for Flock Multi-Agent Framework. Signed-off-by: tilman-sattler <[email protected]> * Update Diagrid integrations landing page Co-Authored-By: Claude Opus 4.8 <[email protected]> * Added documentation for the Flock Multi-Agent Framework. Update documentation style Signed-off-by: tilman-sattler <[email protected]> * Cross-link enterprise support landing to Diagrid integration pages Co-Authored-By: Claude Opus 4.8 <[email protected]> * Clarify 24x7 coverage is Premium-tier on Dapr support page Addresses final-review minor finding: intro overclaimed blanket 24/7. Co-Authored-By: Claude Opus 4.8 <[email protected]> * Use 'durable agentic execution' in Catalyst descriptions Co-Authored-By: Claude Opus 4.8 <[email protected]> * Remove planning scratch files from branch Co-Authored-By: Claude Opus 4.8 <[email protected]> * Title-case 'Dapr Enterprise Support' in Diagrid list Co-Authored-By: Claude Opus 4.8 <[email protected]> * Trim Catalyst blurb and drop landing cross-link line Co-Authored-By: Claude Opus 4.8 <[email protected]> * Update integrations and enterprise support Signed-off-by: Marc Duiker <[email protected]> * update wording, make page override less extensive Signed-off-by: tilman-sattler <[email protected]> * change install command to pip instead of uv Signed-off-by: tilman-sattler <[email protected]> * change wording, make documentation less extensive for Flock Signed-off-by: tilman-sattler <[email protected]> * missing semicolon Signed-off-by: tilman-sattler <[email protected]> * Fix top margin for headings Signed-off-by: Marc Duiker <[email protected]> * Fix overlapping tabs and code blocks Signed-off-by: Marc Duiker <[email protected]> * Add anchor link copy functionality Signed-off-by: Marc Duiker <[email protected]> * Update the overrides to Docsy Signed-off-by: Marc Duiker <[email protected]> * docs(cli): add mcpservers reference and refresh the command list `dapr mcpservers` ships in CLI v1.18.0 but has no page under the CLI reference, and the overview's pasted `dapr --help` output predates it. `scheduler` and `workflow` have pages that the overview never links to either. Add the mcpservers page in the shape the other command pages use, with the flags, defaults and examples taken from `dapr mcpservers --help` on v1.18.0, and bring the overview back in sync with that release: the three missing commands, the `--runtime-path` global flag, the `dapr [flags]` usage line, and the reworded `upgrade` description. Signed-off-by: ihopenre-eng <[email protected]> * Update terminology Signed-off-by: Marc Duiker <[email protected]> * Add new OG image and re-order Diagrid services Signed-off-by: Marc Duiker <[email protected]> * Adds backport label Signed-off-by: joshvanl <[email protected]> * Bump postcss from 8.5.15 to 8.5.23 Bumps [postcss](https://github.com/postcss/postcss) from 8.5.15 to 8.5.23. - [Release notes](https://github.com/postcss/postcss/releases) - [Changelog](https://github.com/postcss/postcss/blob/main/CHANGELOG.md) - [Commits](postcss/postcss@8.5.15...8.5.23) --- updated-dependencies: - dependency-name: postcss dependency-version: 8.5.23 dependency-type: indirect ... Signed-off-by: dependabot[bot] <[email protected]> * docs: restructure dapr agents integrations and add drasi extension Signed-off-by: Jeffrey Zhang <[email protected]> * Document azureAuthMethods metadata field for Azure authentication Adds documentation for the azureAuthMethods component metadata field, which controls the set and order of authentication methods Dapr attempts for Azure (Microsoft Entra ID) components. The field has existed since Dapr 1.13 but was previously only referenced in release notes and source. Documents the default credential chain order, the field's accepted values and aliases, and an example. Closes #5268 Co-Authored-By: Claude Opus 4.8 <[email protected]> Signed-off-by: MyMirelHub <[email protected]> * Address review: imperative heading, trim links and CLI note, remove aliases note Co-Authored-By: Claude Opus 4.8 <[email protected]> Signed-off-by: MyMirelHub <[email protected]> * Merge pull request #5234 from acroca/kube-secrets-reload hot-reload components referencing k8s secrets (cherry picked from commit 07dc559) Signed-off-by: dapr-bot <[email protected]> * Apply suggestions from code review Co-authored-by: Copilot Autofix powered by AI <[email protected]> Signed-off-by: Jeffrey Zhang <[email protected]> * code review suggestions + vector store snippet updates Signed-off-by: Jeffrey Zhang <[email protected]> * Clarify that retry status-code matching doesn't apply to bulk subscribe RETRY matching.httpStatusCodes/gRPCStatusCodes filter on the transport-level status code of the call, but a bulk subscribe handler's per-entry RETRY status isn't carried as an HTTP or gRPC status code, so it's always retried regardless of the configured matching filter. Co-Authored-By: Claude Sonnet 5 <[email protected]> * Updates Signed-off-by: Alice Gibbons <[email protected]> * chore: remove reodev (#5263) Signed-off-by: Mike Nguyen <[email protected]> * Hot reloading of the actor state store Since Dapr 1.18.3, the actor state store is no longer excluded from hot reloading. The actors runtime now reconciles actor hosting with the configured store at runtime: adding a store enables actor hosting and the workflow APIs, removing it drains hosted actors until a store returns, and in-place updates (such as a rotated secret) swap the store instance without interrupting actor hosting. Added in dapr/dapr#10309, backported to release-1.18 (v1.18.3) in dapr/dapr#10325. Signed-off-by: joshvanl <[email protected]> * fix: repair broken click targets on docs.dapr.io Correct the metrics error-codes href, footer YouTube handle, hhttps:// quickstart sample links, and resiliency overview double slash. Signed-off-by: Harkirat S <[email protected]> * docs: document conversation API max_tokens, remove dead parameters field (#5275) * docs: document conversation API max_tokens, remove dead parameters field The alpha2 conversation API reference advertised the parameters field ("Parameters for all custom fields") and its tool-calling example even showed passing max_tokens through it, but the runtime never read the field, so those examples silently did nothing (dapr/dapr#10317). Now that dapr 1.19 adds a first-class maxTokens request field and every conversation component supports a maxTokens metadata default: - Document maxTokens in the request body table (provider mapping, precedence over the component default, and the length finish reason). - Drop the parameters field from the table and both request examples; the model override in the tool-calling example moves to metadata, which is the functional mechanism. - Add the maxTokens spec metadata row to anthropic, aws-bedrock, googleai, hugging-face, mistral, ollama, and openai; refresh the deepseek wording to the new default-plus-override semantics; document echo's word-based cap for local testing. Signed-off-by: Casper Nielsen <[email protected]> # Conflicts: # daprdocs/content/en/reference/api/conversation_api.md * docs: document the maxTokens default Signed-off-by: Casper Nielsen <[email protected]> --------- Signed-off-by: Casper Nielsen <[email protected]> * Fixing some inconsistencies in the docs/implementation + adding descriptions about List/Purge support Signed-off-by: Whit Waldo <[email protected]> * Merge pull request #5289 from cicoyle/docs-timeout-for-bindings docs for app-binding-options-timeout (cherry picked from commit b63ce3a) Signed-off-by: dapr-bot <[email protected]> * [1.18] Fix actor drain timeout and placement dissemination docs The actor runtime configuration page claimed drainOngoingCallTimeout defaults to 60 seconds; the runtime default has been 2 seconds since v1.17.0 (DefaultOngoingCallTimeout in pkg/actors/api/config.go). The drain timeout clamp also shipped in v1.17.7, not v1.18 as stated. Rewrite the drain timeout clamping section to distinguish the two dissemination timeouts: the daprd-side --actors-disseminate-timeout (default 30s, which the clamp compares against) and the Placement service --disseminate-timeout (Helm dapr_placement.disseminateTimeout, default 8s, the deadline after which Placement kicks a non-responsive sidecar from the round). Add guidance to keep drain values below the Placement dissemination timeout, since values that pass the clamp can still delay the table update acknowledgement past the 8s deadline. Correct the kubernetes-production description of disseminateTimeout: it is the dissemination round failure deadline, not a dissemination delay; the default is 8s, and there is no enforced 1s-3s range. Document the --actors-disseminate-timeout daprd argument and the dapr.io/actors-disseminate-timeout annotation, which were previously missing from the arguments and annotations overview. Update example drainOngoingCallTimeout values (60s, 1m, 35s, 30s) to 5s across the runtime config page, actors API reference, and .NET and JavaScript SDK docs, so the examples are no longer silently clamped and stay within the Placement dissemination budget. Add the 2 second default to the API reference tables. Signed-off-by: joshvanl <[email protected]> * Improve docs about timings Signed-off-by: joshvanl <[email protected]> * docs(pulsar): clarify enableTLS does not switch transport to TLS enableTLS only toggles Pulsar client certificate validation (TLSAllowInsecureConnection). Whether the connection actually uses TLS is determined by the scheme in the host field (e.g. pulsar+ssl://); without a TLS scheme/port on host, enableTLS has no effect and the connection stays plaintext. Co-Authored-By: Claude Sonnet 5 <[email protected]> Signed-off-by: Alice Gibbons <[email protected]> * docs(pulsar): trim enableTLS description Co-Authored-By: Claude Sonnet 5 <[email protected]> Signed-off-by: Alice Gibbons <[email protected]> * Update daprdocs/content/en/reference/components-reference/supported-pubsub/setup-pulsar.md Signed-off-by: Alice Gibbons <[email protected]> * docs(influxdb): add example for create operation The binding support section lists create and query as supported operations but only query had a usage example. Add one for create, matching the measurement, tags, and values fields the component actually reads off the request data. Signed-off-by: Akanksha Trehun <[email protected]> * Bump browserslist from 4.25.1 to 4.28.9 Bumps [browserslist](https://github.com/browserslist/browserslist) from 4.25.1 to 4.28.9. - [Release notes](https://github.com/browserslist/browserslist/releases) - [Changelog](https://github.com/browserslist/browserslist/blob/main/CHANGELOG.md) - [Commits](browserslist/browserslist@4.25.1...4.28.9) --- updated-dependencies: - dependency-name: browserslist dependency-version: 4.28.9 dependency-type: indirect ... Signed-off-by: dependabot[bot] <[email protected]> * Workflow: warn to not reuse instance IDs Signed-off-by: joshvanl <[email protected]> * Apply batched suggestions from code review Co-authored-by: Alice Gibbons <[email protected]> Signed-off-by: Josh van Leeuwen <[email protected]> * Fix header refs Signed-off-by: joshvanl <[email protected]> * Add Elastic how-tos for tracing, metrics and logging Dapr's only Elastic-specific page today is the FluentD logging how-to. There is no Elastic page under tracing or metrics, while comparable backends have one in each section. These three pages cover sending Dapr's traces, metrics and logs to Elastic using the Elastic Distribution of OpenTelemetry Collector, which is the Elastic Agent running in otel mode reading a standard collector configuration. A single collector can carry all three signals, so the pages share a deployment shape and one credentials secret. Each page is scoped to what is specific to Elastic. General tracing behaviour stays in the tracing overview and the generic collector how-to, and the metrics page links to the scrape jobs already documented in the Prometheus how-to rather than restating them. Two requirements of this pipeline are noted, because in both cases data otherwise arrives incomplete rather than absent: - cumulativetodelta on the metrics pipeline. Dapr's histograms are cumulative and the Elasticsearch exporter accepts only delta temporality, so the dapr_*_latency and *_bytes distributions are dropped without it while counters are unaffected. - json_parser after the container parser on the logs pipeline, otherwise each line stays an escaped string in body.text and Dapr's fields are not queryable. Verified against Dapr 1.18.4 and elastic-agent 9.5.3 on Kubernetes with Elasticsearch 9.1.2. Signed-off-by: MyMirelHub <[email protected]> * Updating source generators documentation to reflect new pubsub analyzers/codefixes Signed-off-by: Whit Waldo <[email protected]> * docs: remove duplicate 'the' in Zipkin tracing howto Signed-off-by: mrchatam <[email protected]> * Updating NET documentation to reflect changes to Dapr.Messaging best practices and implementation using new package Signed-off-by: Whit Waldo <[email protected]> * Updated documentation to include tutorial documentation going through implementation, unit and integration testing for Dapr.Messaging Signed-off-by: Whit Waldo <[email protected]> * Address review feedback Applies the suggestions from review and the structural changes asked for: - `## Installation` on each page with the steps as `###` subheadings - each page creates its own credentials secret, so none of them depends on the reader having run another first - the ServiceAccount, ClusterRole and ClusterRoleBinding for the logging collector are spelled out rather than described in prose - the alert moves above the apply command on all three pages - `## Verify the installation` and `## Related links/References` - links added for Elastic, Elastic Cloud, kubectl and the Helm install - "Elastic" used throughout the prose, with "Elasticsearch" left only in component names such as the `elasticsearch/otel` exporter - the stray `isSecure` paragraph on the tracing page folded into the YAML as a comment, where it has some context Signed-off-by: MyMirelHub <[email protected]> * Tweaks to catch any deviations from most recent PR to dapr/dotnet-sdk Signed-off-by: Whit Waldo <[email protected]> * Updating Actors documentation to reflect latest changes Signed-off-by: Whit Waldo <[email protected]> * Rename conductor and update links Signed-off-by: Marc Duiker <[email protected]> * Update images and links Signed-off-by: Marc Duiker <[email protected]> * Updata the Dev Dashboard naming Signed-off-by: Marc Duiker <[email protected]> * Add old name as reference Signed-off-by: Marc Duiker <[email protected]> * Correct Redis pub/sub redeliverInterval and processingTimeout reference The documented defaults for the two settings were swapped: the component sets ProcessingTimeout to 60s and RedeliverInterval to 15s. redeliverInterval was also documented as accepting a Go duration string, with "30s" as its first example. Settings.RedeliverInterval is tagged mapstructure:"-", so only a bare milliseconds number is parsed and a duration string is silently discarded in favour of the default. processingTimeout, documented identically, does accept both forms. Tracked in dapr/components-contrib#4600. Signed-off-by: MyMirelHub <[email protected]> * Fixed missing formatting ticks Signed-off-by: Whit Waldo <[email protected]> * Update daprdocs/content/en/integrations/Diagrid/dapr-ops-dashboard.md Signed-off-by: Alice Gibbons <[email protected]> * Update daprdocs/content/en/integrations/Diagrid/dapr-ops-dashboard.md Signed-off-by: Alice Gibbons <[email protected]> * Update daprdocs/content/en/reference/components-reference/supported-bindings/influxdb.md Signed-off-by: Alice Gibbons <[email protected]> * Tweaking the description to clarify actual support Signed-off-by: Whit Waldo <[email protected]> * docs(dapr-agents): document the Anthropic chat client Signed-off-by: Casper Nielsen <[email protected]> * Add new Dapr Dev Dashboard page and links Signed-off-by: Marc Duiker <[email protected]> --------- Signed-off-by: Whit Waldo <[email protected]> Signed-off-by: Samantha Coyle <[email protected]> Signed-off-by: Mark Fussell <[email protected]> Signed-off-by: Nelson Parente <[email protected]> Signed-off-by: Tsonglew <[email protected]> Signed-off-by: Justin Slatten <[email protected]> Signed-off-by: MyMirelHub <[email protected]> Signed-off-by: wynx1123 <[email protected]> Signed-off-by: Javier Aliaga <[email protected]> Signed-off-by: joshvanl <[email protected]> Signed-off-by: yaron2 <[email protected]> Signed-off-by: Marc Duiker <[email protected]> Signed-off-by: tilman-sattler <[email protected]> Signed-off-by: ihopenre-eng <[email protected]> Signed-off-by: Marc Duiker <[email protected]> Signed-off-by: dependabot[bot] <[email protected]> Signed-off-by: Jeffrey Zhang <[email protected]> Signed-off-by: dapr-bot <[email protected]> Signed-off-by: Jeffrey Zhang <[email protected]> Signed-off-by: Alice Gibbons <[email protected]> Signed-off-by: Mike Nguyen <[email protected]> Signed-off-by: Harkirat S <[email protected]> Signed-off-by: Casper Nielsen <[email protected]> Signed-off-by: Akanksha Trehun <[email protected]> Signed-off-by: Josh van Leeuwen <[email protected]> Signed-off-by: mrchatam <[email protected]> Signed-off-by: Alice Gibbons <[email protected]> Co-authored-by: Whit Waldo <[email protected]> Co-authored-by: Marc Duiker <[email protected]> Co-authored-by: Samantha Coyle <[email protected]> Co-authored-by: Mark Fussell <[email protected]> Co-authored-by: Copilot Autofix powered by AI <[email protected]> Co-authored-by: Nelson Parente <[email protected]> Co-authored-by: Tsonglew <[email protected]> Co-authored-by: Justin Slatten <[email protected]> Co-authored-by: MyMirelHub <[email protected]> Co-authored-by: Claude Opus 4.8 <[email protected]> Co-authored-by: wynx1123 <[email protected]> Co-authored-by: Javier Aliaga <[email protected]> Co-authored-by: joshvanl <[email protected]> Co-authored-by: 热衷遇你 <[email protected]> Co-authored-by: Marc Duiker <[email protected]> Co-authored-by: Alice Gibbons <[email protected]> Co-authored-by: tilman-sattler <[email protected]> Co-authored-by: Tilman Sattler <[email protected]> Co-authored-by: ihopenre-eng <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Jeffrey Zhang <[email protected]> Co-authored-by: Jeffrey Zhang <[email protected]> Co-authored-by: Nico Meisenzahl <[email protected]> Co-authored-by: Mike Nguyen <[email protected]> Co-authored-by: Harkirat S <[email protected]> Co-authored-by: Casper Nielsen <[email protected]> Co-authored-by: Akanksha Trehun <[email protected]> Co-authored-by: Alice Gibbons <[email protected]> Co-authored-by: mrchatam <[email protected]>
Description
newRequestBuilder resolves relativePath raw and now rethrows IllegalArgumentException on illegal chars (e.g. spaces), pointing at encodePath. encodePath percent-encodes each path segment, preserving separators and a leading slash and appending any query unchanged, mirroring DaprHttp/invokeMethod.
Issue reference
We strive to have all PR being opened based on an issue, where the problem or feature have been discussed prior to implementation.
Please reference the issue this PR will close: #[issue number]
Checklist
Please make sure you've completed the relevant tasks for this PR, out of the following list: