<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/">
    <channel>
        <title>VP Wiki Blog</title>
        <link>https://wiki.vpservic.es/changelog</link>
        <description>VP Wiki Blog</description>
        <lastBuildDate>Mon, 20 Apr 2026 00:00:00 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <language>en</language>
        <item>
            <title><![CDATA[sr-wiki → vp-wiki — scope rename]]></title>
            <link>https://wiki.vpservic.es/changelog/2026/04/20/vp-wiki-rename</link>
            <guid>https://wiki.vpservic.es/changelog/2026/04/20/vp-wiki-rename</guid>
            <pubDate>Mon, 20 Apr 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[The wiki has been renamed from sr-wiki to vp-wiki to match its actual scope. Content covers VelocityPoint products (Second Ring, Book Marketing, Prince Charming), shared platform services (Sphinx, Helios, Dispatcher, Provisioning, Observability), infrastructure, and external tools — not only Second Ring.]]></description>
            <content:encoded><![CDATA[<p>The wiki has been renamed from <code>sr-wiki</code> to <code>vp-wiki</code> to match its actual scope. Content covers VelocityPoint products (Second Ring, Book Marketing, Prince Charming), shared platform services (Sphinx, Helios, Dispatcher, Provisioning, Observability), infrastructure, and external tools — not only Second Ring.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="what-changed">What changed<a href="https://wiki.vpservic.es/changelog/2026/04/20/vp-wiki-rename#what-changed" class="hash-link" aria-label="Direct link to What changed" title="Direct link to What changed" translate="no">​</a></h2>
<ul>
<li class=""><strong>Repo:</strong> <code>VelocityPoint/sr-wiki</code> → <code>VelocityPoint/vp-wiki</code></li>
<li class=""><strong>Canonical URL:</strong> <code>https://wiki.vpservic.es</code> (the deployed custom domain was already this — the old <code>wiki.sr-services.com</code> planned URL in config was stale and never matched Terraform)</li>
<li class=""><strong>Top-level taxonomy:</strong> added <code>products/</code> and <code>tools/</code>; renamed <code>systems/</code> → <code>platform/</code>
<ul>
<li class=""><code>products/</code> — second-ring, book-marketing, prince-charming</li>
<li class=""><code>platform/</code> — sphinx, helios, dispatcher, provisioning, observability, home-portal</li>
<li class=""><code>tools/</code> — ghl, google-suite, loom, azure, terraform</li>
</ul>
</li>
<li class=""><strong>Brand strings:</strong> title, tagline, navbar, footer, "Suggest Edit" issue URL, internal references</li>
<li class=""><strong>New:</strong> <code>scripts/pr-watcher/</code> — scheduled PR-watcher agent scaffold (filter rules in <code>config.js</code>). See <a class="" href="https://wiki.vpservic.es/docs/team/docs-update-process"><code>docs/team/docs-update-process.md</code></a> for how the update loop works.</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="what-did-not-change">What did NOT change<a href="https://wiki.vpservic.es/changelog/2026/04/20/vp-wiki-rename#what-did-not-change" class="hash-link" aria-label="Direct link to What did NOT change" title="Direct link to What did NOT change" translate="no">​</a></h2>
<ul>
<li class=""><strong>Azure SWA resources</strong> — Terraform still names them <code>sr-wiki-&lt;env&gt;</code>. Azure doesn't allow rename-in-place, and rebuilding all 4 environments wasn't worth the downtime given the custom domain is unaffected. Treated as accepted technical debt.</li>
<li class=""><strong>Entra app registration</strong> — same <code>sr-wiki</code> display name, same client_id, same redirect URIs. Works unchanged because the <code>sr-wiki-&lt;env&gt;.azurestaticapps.net</code> default hostnames still exist post-repo-rename.</li>
<li class=""><strong><code>AZURE_STATIC_WEB_APPS_API_TOKEN</code> GitHub secret</strong> — GitHub preserves secrets across repo renames. No rotation needed.</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="new-link-targets">New link targets<a href="https://wiki.vpservic.es/changelog/2026/04/20/vp-wiki-rename#new-link-targets" class="hash-link" aria-label="Direct link to New link targets" title="Direct link to New link targets" translate="no">​</a></h2>
<p>Anyone linking to the old wiki paths needs to update:</p>
<table><thead><tr><th>Old path</th><th>New path</th></tr></thead><tbody><tr><td><code>/docs/systems/sphinx/*</code></td><td><code>/docs/platform/sphinx/*</code></td></tr><tr><td><code>/docs/systems/helios/*</code></td><td><code>/docs/platform/helios/*</code></td></tr><tr><td><code>/docs/systems/dispatcher/*</code></td><td><code>/docs/platform/dispatcher/*</code></td></tr><tr><td><code>/docs/systems/provisioning/*</code></td><td><code>/docs/platform/provisioning/*</code></td></tr><tr><td><code>/docs/systems/observability/*</code></td><td><code>/docs/platform/observability/*</code></td></tr><tr><td><code>/docs/systems/sr-sales-dev/*</code></td><td><code>/docs/products/second-ring/sr-sales-dev/*</code></td></tr><tr><td><code>https://wiki.sr-services.com/*</code></td><td><code>https://wiki.vpservic.es/*</code></td></tr></tbody></table>]]></content:encoded>
            <category>release</category>
            <category>migration</category>
            <category>governance</category>
        </item>
        <item>
            <title><![CDATA[Doc Migration — SecondRing.Server & sr-azure-infra]]></title>
            <link>https://wiki.vpservic.es/changelog/2026/03/25/doc-migration</link>
            <guid>https://wiki.vpservic.es/changelog/2026/03/25/doc-migration</guid>
            <pubDate>Wed, 25 Mar 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[First major content release. Migrated production documentation from SecondRing.Server and sr-azure-infra source repos into the wiki. All pages are now browsable, searchable, and cross-linked.]]></description>
            <content:encoded><![CDATA[<p>First major content release. Migrated production documentation from <code>SecondRing.Server</code> and <code>sr-azure-infra</code> source repos into the wiki. All pages are now browsable, searchable, and cross-linked.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="new-pages">New Pages<a href="https://wiki.vpservic.es/changelog/2026/03/25/doc-migration#new-pages" class="hash-link" aria-label="Direct link to New Pages" title="Direct link to New Pages" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="systems">Systems<a href="https://wiki.vpservic.es/changelog/2026/03/25/doc-migration#systems" class="hash-link" aria-label="Direct link to Systems" title="Direct link to Systems" translate="no">​</a></h3>
<table><thead><tr><th>Page</th><th>Description</th></tr></thead><tbody><tr><td><a class="" href="https://wiki.vpservic.es/docs/platform/sphinx/">Sphinx — Secrets Portal</a></td><td>What Sphinx is, deployment architecture, known state</td></tr><tr><td><a class="" href="https://wiki.vpservic.es/docs/platform/sphinx/api-reference">Sphinx: API Reference</a></td><td>Full HTTP API spec for all Sphinx endpoints</td></tr><tr><td><a class="" href="https://wiki.vpservic.es/docs/platform/sphinx/auth-and-roles">Sphinx: Auth &amp; Roles</a></td><td>Entra ID roles (viewer / operator / admin / owner) and endpoint permissions</td></tr><tr><td><a class="" href="https://wiki.vpservic.es/docs/platform/sphinx/key-vault-write-pattern">Sphinx: Key Vault Write Pattern</a></td><td>Two-phase commit design — how secrets are staged and confirmed</td></tr><tr><td><a class="" href="https://wiki.vpservic.es/docs/platform/sphinx/magic-link-flow">Sphinx: Magic Link Flow</a></td><td>End-to-end customer credential intake, token structure, HMAC validation</td></tr><tr><td><a class="" href="https://wiki.vpservic.es/docs/platform/sphinx/status-machine">Sphinx: Status Machine</a></td><td>SecretRequest lifecycle (Pending → Partial → Completed → Confirmed → Expired / Cancelled)</td></tr><tr><td><a class="" href="https://wiki.vpservic.es/docs/platform/sphinx/telemetry-events">Sphinx: Telemetry Events</a></td><td>Application Insights event catalog for Sphinx</td></tr><tr><td><a class="" href="https://wiki.vpservic.es/docs/platform/provisioning/">Provisioning Pipeline</a></td><td>CustomerProvisioningOrchestrator — stages, Durable Functions structure, key dependencies</td></tr><tr><td><a class="" href="https://wiki.vpservic.es/docs/platform/provisioning/auth">Provisioning: Auth Model</a></td><td>PIT-based auth, deprecated OAuth shim, current state by endpoint</td></tr><tr><td><a class="" href="https://wiki.vpservic.es/docs/platform/provisioning/pipeline-overview">Provisioning: Pipeline Overview</a></td><td>Condensed reference card — flow diagram, trigger, activities, environment variables</td></tr><tr><td><a class="" href="https://wiki.vpservic.es/docs/platform/observability/">Observability Overview</a></td><td>App Insights + Log Analytics architecture, instrumentation approach</td></tr><tr><td><a class="" href="https://wiki.vpservic.es/docs/platform/observability/alerts">Observability: Alerts</a></td><td>Alert rule definitions, thresholds, Telegram routing via Helios</td></tr><tr><td><a class="" href="https://wiki.vpservic.es/docs/platform/observability/events">Observability: Events</a></td><td>Custom telemetry event catalog</td></tr><tr><td><a class="" href="https://wiki.vpservic.es/docs/platform/observability/kql-queries">Observability: KQL Queries</a></td><td>Operational query library for dashboards and ad-hoc investigation</td></tr><tr><td><a class="" href="https://wiki.vpservic.es/docs/platform/dispatcher/">Dispatcher</a></td><td>Rep assignment and round-robin routing system</td></tr></tbody></table>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="reference">Reference<a href="https://wiki.vpservic.es/changelog/2026/03/25/doc-migration#reference" class="hash-link" aria-label="Direct link to Reference" title="Direct link to Reference" translate="no">​</a></h3>
<table><thead><tr><th>Page</th><th>Description</th></tr></thead><tbody><tr><td><a class="" href="https://wiki.vpservic.es/docs/reference/secret-naming">Key Vault Secret Naming</a></td><td>Naming conventions for all secrets across all environments — new in this release</td></tr><tr><td><a class="" href="https://wiki.vpservic.es/docs/reference/auth-model">Auth Model (Audit)</a></td><td>Auth state across all endpoints — which scheme, which migration status</td></tr><tr><td><a class="" href="https://wiki.vpservic.es/docs/reference/ghl-interface-contract">GHL Interface Contract</a></td><td>All GHL API calls made by Second Ring — credentials, per-sub-account scope</td></tr><tr><td><a class="" href="https://wiki.vpservic.es/docs/reference/ghl-visibility-contract">GHL Visibility Contract</a></td><td>Operational state publishing to GHL (notes, tags, custom fields)</td></tr><tr><td><a class="" href="https://wiki.vpservic.es/docs/reference/ghl-offramps">GHL Offramps</a></td><td>Webhook-based SMS/email relay pattern</td></tr><tr><td><a class="" href="https://wiki.vpservic.es/docs/reference/tag-contract">Tag Contract</a></td><td>GHL contact tag definitions, lifecycle, prerequisites</td></tr><tr><td><a class="" href="https://wiki.vpservic.es/docs/reference/tag-dispatch-workflows">Tag Dispatch Workflows</a></td><td>How tags trigger GHL automation workflows</td></tr><tr><td><a class="" href="https://wiki.vpservic.es/docs/reference/webhook-schema">Webhook Schema</a></td><td>Inbound webhook payload schema (GHL → Azure)</td></tr><tr><td><a class="" href="https://wiki.vpservic.es/docs/reference/handler-contract">Handler Contract</a></td><td>Handler implementation requirements for tag-triggered functions</td></tr></tbody></table>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="infrastructure">Infrastructure<a href="https://wiki.vpservic.es/changelog/2026/03/25/doc-migration#infrastructure" class="hash-link" aria-label="Direct link to Infrastructure" title="Direct link to Infrastructure" translate="no">​</a></h3>
<table><thead><tr><th>Page</th><th>Description</th></tr></thead><tbody><tr><td><a class="" href="https://wiki.vpservic.es/docs/infrastructure/cost-optimization">Cost Optimization Report</a></td><td>Azure cost breakdown per environment with corrected estimates</td></tr><tr><td><a class="" href="https://wiki.vpservic.es/docs/infrastructure/terraform">Terraform Reference</a></td><td>Module structure, environment configs, naming conventions</td></tr></tbody></table>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="build-fixes-this-release">Build Fixes (this release)<a href="https://wiki.vpservic.es/changelog/2026/03/25/doc-migration#build-fixes-this-release" class="hash-link" aria-label="Direct link to Build Fixes (this release)" title="Direct link to Build Fixes (this release)" translate="no">​</a></h2>
<p>The doc migration PR (#6) shipped with broken Markdown links — ALLCAPS filenames from source repos didn't match the wiki's lowercase-hyphenated naming scheme, and several cross-repo paths weren't resolvable. This release fixes all of them:</p>
<ul>
<li class="">15 broken Markdown link paths resolved</li>
<li class="">2 cross-repo links converted to GitHub URLs (<code>INSTRUMENTATION_GUIDE.md</code>, <code>provisioning-alerts.tf</code>)</li>
<li class=""><code>{requestId}</code> bare JSX expressions in table cells escaped</li>
<li class="">Duplicate route conflict (<code>index.md</code> + <code>README.md</code>) resolved via slug overrides</li>
<li class="">Docusaurus v4 deprecation warning fixed (<code>onBrokenMarkdownLinks</code> config path)</li>
<li class=""><code>&lt;10k</code> MDX parse error fixed in cost-optimization doc</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="whats-next">What's Next<a href="https://wiki.vpservic.es/changelog/2026/03/25/doc-migration#whats-next" class="hash-link" aria-label="Direct link to What's Next" title="Direct link to What's Next" translate="no">​</a></h2>
<ul>
<li class="">Archive section for superseded docs</li>
<li class="">Glossary expansion</li>
<li class="">Home Portal doc page</li>
</ul>]]></content:encoded>
            <category>release</category>
            <category>migration</category>
            <category>sphinx</category>
            <category>provisioning</category>
            <category>observability</category>
            <category>infrastructure</category>
        </item>
    </channel>
</rss>