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.
Related docs¶
- Settings Host: SmrtApps/CSApps/SettingsHost/README.md
- HubWindow: SmrtApps/CSApps/HubWindow/README.md
SmrtHub URI Scheme¶
This library parses SmrtHub protocol URIs of the form:
- Scheme:
smrthub - Host:
settings
Supported examples:
smrthub://settings?page=providerssmrthub://settings/Providerssmrthub://settings?page=providers&vendor=openai&profile=default
Notes:
- The settings section may be provided via query (
pageorsection) 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.