Skip to content

Component: Smrt.DeepLinks

Canonical source: SmrtApps/src/Smrt.DeepLinks/README.md (mirrored below)


Smrt.DeepLinks

Small, dependency-free deep-link parsing helpers for SmrtHub.

Overview and responsibilities

  • Parses SmrtHub protocol URIs for the Settings surface.
  • Provides stable parse failure reasons for privacy-safe logs and diagnostics.

Public surface / entry points

  • SmrtHubDeepLinks.TryParseSettingsDeepLink(...)

Dependencies and integrations

  • Dependency-free; consumed by application hosts (for example, HubWindow and Settings Host).

Configuration and operational data

  • No persistent config/state is owned by this library.

Observability and diagnostics

  • Prefer stable failure reasons; do not log raw URIs.

Testing and validation

  • Not documented yet.

Support Bundle

  • Not applicable directly (library); collect host application logs via Support Bundle.

SmrtHub URI Scheme

This library parses SmrtHub protocol URIs of the form:

  • Scheme: smrthub
  • Host: settings

Supported examples:

  • smrthub://settings?page=providers
  • smrthub://settings/Providers
  • smrthub://settings?page=providers&vendor=openai&profile=default

Notes:

  • The settings section may be provided via query (page or section) or via a path segment.
  • Section keys are treated case-insensitively.

Optional provider targeting

For Settings provider pages, additional query parameters can optionally target a specific vendor/profile:

  • vendor (alias: provider)
  • profile (alias: profileId)

Example:

  • smrthub://settings?page=providers&vendor=openai&profile=default

For canonical provider vendor ids and accepted aliases, see SmrtApps/src/Smrt.CloudProviders.UI.WinUI3/README.md (Deep links section).

Consumers typically map the parsed result to an application action (for example, HubWindow launching Settings Host to a section).

Local-first diagnostics (no raw URI logging)

For privacy-safe logging and support-bundle friendly diagnostics, prefer the overload that returns a stable failure reason:

  • SmrtHubDeepLinks.TryParseSettingsDeepLink(string? rawUri, out SmrtHubSettingsDeepLink? deepLink, out SettingsDeepLinkParseFailure failure)

The SettingsDeepLinkParseFailure enum is designed for logs and metrics without recording the raw input URI.