- Added sharp library to package.json for image manipulation capabilities. - Updated pnpm-lock.yaml to include sharp dependency. - Enhanced HealthController to include provisioning queue job counts in health checks. - Improved error handling and logging in ProvisioningProcessor for better diagnostics. - Refactored order fulfillment validation to utilize new WhmcsPaymentService for payment method checks. - Updated documentation to reflect changes in the provisioning workflow and added new integration overview.
123 lines
5.7 KiB
XML
123 lines
5.7 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
||
<svg xmlns="http://www.w3.org/2000/svg" width="1200" height="720" viewBox="0 0 1200 720">
|
||
<defs>
|
||
<style>
|
||
.lane { fill: #f7f9fc; stroke: #d0d7de; }
|
||
.lane-header { fill: #e6eef8; stroke: #b6c6d6; font: 600 16px sans-serif; }
|
||
.step { fill: #ffffff; stroke: #94a3b8; rx: 8; }
|
||
.step-text { font: 12px sans-serif; fill: #0f172a; }
|
||
.label { font: 12px sans-serif; fill: #334155; }
|
||
.arrow { stroke: #475569; stroke-width: 2; fill: none; marker-end: url(#arrowhead); }
|
||
.num { fill: #2563eb; font: 600 12px sans-serif; }
|
||
</style>
|
||
<marker id="arrowhead" markerWidth="10" markerHeight="7" refX="10" refY="3.5" orient="auto">
|
||
<polygon points="0 0, 10 3.5, 0 7" fill="#475569" />
|
||
</marker>
|
||
</defs>
|
||
|
||
<!-- Lanes -->
|
||
<rect x="30" y="20" width="260" height="680" class="lane"/>
|
||
<rect x="330" y="20" width="260" height="680" class="lane"/>
|
||
<rect x="630" y="20" width="260" height="680" class="lane"/>
|
||
<rect x="930" y="20" width="260" height="680" class="lane"/>
|
||
|
||
<!-- Headers -->
|
||
<rect x="30" y="20" width="260" height="40" class="lane-header"/>
|
||
<rect x="330" y="20" width="260" height="40" class="lane-header"/>
|
||
<rect x="630" y="20" width="260" height="40" class="lane-header"/>
|
||
<rect x="930" y="20" width="260" height="40" class="lane-header"/>
|
||
<text x="160" y="46" text-anchor="middle" class="lane-header">Customer</text>
|
||
<text x="460" y="46" text-anchor="middle" class="lane-header">Portal (BFF)</text>
|
||
<text x="760" y="46" text-anchor="middle" class="lane-header">Salesforce</text>
|
||
<text x="1060" y="46" text-anchor="middle" class="lane-header">WHMCS</text>
|
||
|
||
<!-- Steps: Customer -->
|
||
<rect x="50" y="90" width="220" height="56" class="step"/>
|
||
<text x="60" y="110" class="step-text">1) Sign Up & Link Account</text>
|
||
<text x="60" y="126" class="step-text">Provide Customer Number</text>
|
||
|
||
<rect x="50" y="170" width="220" height="56" class="step"/>
|
||
<text x="60" y="190" class="step-text">2) Add Payment Method</text>
|
||
<text x="60" y="206" class="step-text">Secure SSO to WHMCS</text>
|
||
|
||
<rect x="50" y="250" width="220" height="56" class="step"/>
|
||
<text x="60" y="270" class="step-text">3) Browse Catalog</text>
|
||
<text x="60" y="286" class="step-text">Select Plan & Add‑ons</text>
|
||
|
||
<rect x="50" y="510" width="220" height="56" class="step"/>
|
||
<text x="60" y="530" class="step-text">7) View Invoices</text>
|
||
<text x="60" y="546" class="step-text">Pay via SSO</text>
|
||
|
||
<!-- Steps: Portal -->
|
||
<rect x="350" y="120" width="220" height="56" class="step"/>
|
||
<text x="360" y="140" class="step-text">Validate mapping & address</text>
|
||
<text x="360" y="156" class="step-text">Create WHMCS client</text>
|
||
|
||
<rect x="350" y="200" width="220" height="56" class="step"/>
|
||
<text x="360" y="220" class="step-text">Open WHMCS payment page</text>
|
||
<text x="360" y="236" class="step-text">(SSO)</text>
|
||
|
||
<rect x="350" y="300" width="220" height="56" class="step"/>
|
||
<text x="360" y="320" class="step-text">Create Order in SF</text>
|
||
<text x="360" y="336" class="step-text">(snapshot address)</text>
|
||
|
||
<rect x="350" y="380" width="220" height="56" class="step"/>
|
||
<text x="360" y="400" class="step-text">Provision in WHMCS</text>
|
||
<text x="360" y="416" class="step-text">after approval</text>
|
||
|
||
<rect x="350" y="510" width="220" height="56" class="step"/>
|
||
<text x="360" y="530" class="step-text">Show subs & invoices</text>
|
||
|
||
<!-- Steps: Salesforce -->
|
||
<rect x="650" y="300" width="220" height="56" class="step"/>
|
||
<text x="660" y="320" class="step-text">Review & Approve</text>
|
||
<text x="660" y="336" class="step-text">Order</text>
|
||
|
||
<!-- Steps: WHMCS -->
|
||
<rect x="950" y="170" width="220" height="56" class="step"/>
|
||
<text x="960" y="190" class="step-text">Store Payment Methods</text>
|
||
|
||
<rect x="950" y="380" width="220" height="56" class="step"/>
|
||
<text x="960" y="400" class="step-text">Create Services & Invoice</text>
|
||
|
||
<!-- Arrows + labels -->
|
||
<!-- Signup -> Portal create WHMCS client -->
|
||
<path d="M270 118 C 300 118, 320 118, 350 118" class="arrow"/>
|
||
<text x="310" y="110" class="label" text-anchor="middle">Customer Number</text>
|
||
|
||
<!-- Add payment -> Portal -> WHMCS -->
|
||
<path d="M270 198 C 300 198, 320 198, 350 198" class="arrow"/>
|
||
<path d="M570 228 C 600 228, 900 198, 950 198" class="arrow"/>
|
||
<text x="760" y="188" class="label" text-anchor="middle">SSO Payment Page</text>
|
||
|
||
<!-- Browse -> Create Order (Portal) -->
|
||
<path d="M270 278 C 300 278, 320 318, 350 318" class="arrow"/>
|
||
<text x="310" y="300" class="label" text-anchor="middle">Selected items</text>
|
||
|
||
<!-- Portal -> SF (create order) -->
|
||
<path d="M570 328 C 600 328, 620 328, 650 328" class="arrow"/>
|
||
<text x="610" y="320" class="label" text-anchor="middle">Order + address</text>
|
||
|
||
<!-- SF approve -> Portal provision -->
|
||
<path d="M760 356 C 760 390, 570 408, 570 408" class="arrow"/>
|
||
<text x="680" y="388" class="label">Approved</text>
|
||
|
||
<!-- Portal provision -> WHMCS -->
|
||
<path d="M570 408 C 770 408, 900 408, 950 408" class="arrow"/>
|
||
<text x="760" y="398" class="label" text-anchor="middle">AddOrder + Accept</text>
|
||
|
||
<!-- WHMCS -> Portal (subs & invoices) -->
|
||
<path d="M950 538 C 900 538, 600 538, 570 538" class="arrow"/>
|
||
<text x="760" y="528" class="label" text-anchor="middle">Subscriptions + Invoices</text>
|
||
|
||
<!-- Portal -> Customer (display) -->
|
||
<path d="M350 538 C 320 538, 300 538, 270 538" class="arrow"/>
|
||
|
||
<!-- Portal -> WHMCS (pay SSO) -->
|
||
<path d="M350 566 C 600 566, 900 566, 950 566" class="arrow"/>
|
||
<text x="760" y="560" class="label" text-anchor="middle">Pay Invoice (SSO)</text>
|
||
|
||
<!-- Legend -->
|
||
<text x="30" y="700" class="label">Legend: SSO = secure single sign-on; SF = Salesforce</text>
|
||
</svg>
|