Skip to content

feat: add options, diagnostics, URL redaction, and the pipeline context#4

Merged
OmarAlJarrah merged 7 commits into
mainfrom
feat/pipeline-prerequisites
Jun 16, 2026
Merged

feat: add options, diagnostics, URL redaction, and the pipeline context#4
OmarAlJarrah merged 7 commits into
mainfrom
feat/pipeline-prerequisites

Conversation

@OmarAlJarrah

Copy link
Copy Markdown
Member

Summary

Adds the building blocks the pipeline and policy slices depend on — all in Dexpace.Sdk.Core, with no new runtime dependencies.

  • DexpaceClientOptions (+ RetryOptions, RedirectOptions) — plain configuration POCOs with sensible enterprise defaults (3 retries with capped backoff, max 20 redirects, no HTTPS→HTTP downgrade, no cross-origin header leakage). The Microsoft.Extensions.Options binding and validation will live in the DI integration package, so these stay container-agnostic and new-able.
  • DexpaceDiagnostics — a single ActivitySource and Meter named Dexpace.Sdk, so OpenTelemetry / Application Insights light up with no adapters. (System.Diagnostics.DiagnosticSource is in-box on net8/net10, so no package was needed.)
  • UrlRedactor — produces a log-safe URL string: strips userinfo, drops the fragment, and replaces sensitive query-parameter values with REDACTED (configurable, case-insensitive), while preserving the path. Robust for both absolute and relative URIs — it never throws and never emits an un-redacted sensitive value.
  • PipelineContext — the mutable per-call state (request, response-as-it-arrives, the active Activity, the options snapshot, an attempt counter, and a typed property bag) that flows through the pipeline.

Test plan

  • dotnet build -c Release is clean on net8.0 and net10.0 (warnings-as-errors + XML-doc gate)
  • dotnet test -c Release passes (74 tests: 61 core, 13 serialization)

🤖 Generated with Claude Code

OmarAlJarrah and others added 7 commits June 15, 2026 18:42
Bite-sized TDD plan for slices 2-3: DexpaceClientOptions POCOs, the Dexpace.Sdk ActivitySource/Meter, UrlRedactor, and PipelineContext.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
…boundary

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@OmarAlJarrah OmarAlJarrah merged commit 3302c6f into main Jun 16, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant