pbi-cli/assets/deploy-secure.svg

151 lines
No EOL
8.9 KiB
XML

<svg xmlns="http://www.w3.org/2000/svg" width="850" height="580" viewBox="0 0 850 580">
<defs>
<marker id="arrowDown" markerWidth="8" markerHeight="8" refX="4" refY="4" orient="auto">
<path d="M1,1 L4,7 L7,1" fill="none" stroke="#7b61ff" stroke-width="1.5"/>
</marker>
<marker id="arrowRollback" markerWidth="8" markerHeight="8" refX="4" refY="4" orient="auto">
<path d="M1,1 L4,7 L7,1" fill="none" stroke="#ff6b6b" stroke-width="1.5"/>
</marker>
<filter id="glow">
<feGaussianBlur stdDeviation="2" result="blur"/>
<feMerge>
<feMergeNode in="blur"/>
<feMergeNode in="SourceGraphic"/>
</feMerge>
</filter>
</defs>
<!-- Background -->
<rect width="850" height="580" fill="#0d1117"/>
<!-- Title Section -->
<text x="425" y="40" font-family="Segoe UI, Arial, sans-serif" font-size="28" font-weight="bold" fill="#F2C811" text-anchor="middle">Deploy + Secure</text>
<text x="425" y="65" font-family="Segoe UI, Arial, sans-serif" font-size="16" fill="#8b949e" text-anchor="middle">Snapshot, restore, and lock down your model</text>
<!-- =============================== -->
<!-- LEFT PANEL - Deployment Skill -->
<!-- =============================== -->
<rect x="25" y="85" width="390" height="390" rx="8" fill="#161b22" stroke="#7b61ff" stroke-width="2"/>
<!-- Panel Header -->
<text x="220" y="115" font-family="Segoe UI, Arial, sans-serif" font-size="18" font-weight="bold" fill="#7b61ff" text-anchor="middle">Deployment Skill</text>
<line x1="45" y1="125" x2="395" y2="125" stroke="#30363d" stroke-width="1"/>
<!-- TMDL label -->
<text x="55" y="160" font-family="Segoe UI, Arial, sans-serif" font-size="13" fill="#8b949e">TMDL</text>
<!-- Version History Flow -->
<!-- v1 Baseline -->
<rect x="120" y="145" width="200" height="36" rx="6" fill="#0d1117" stroke="#30363d" stroke-width="1.5"/>
<text x="220" y="168" font-family="Segoe UI, Arial, sans-serif" font-size="14" fill="#c9d1d9" text-anchor="middle">v1 Baseline</text>
<!-- Arrow v1 -> v2 -->
<line x1="220" y1="181" x2="220" y2="205" stroke="#7b61ff" stroke-width="2" marker-end="url(#arrowDown)"/>
<!-- v2 + Measures -->
<rect x="120" y="210" width="200" height="36" rx="6" fill="#0d1117" stroke="#30363d" stroke-width="1.5"/>
<text x="220" y="233" font-family="Segoe UI, Arial, sans-serif" font-size="14" fill="#c9d1d9" text-anchor="middle">v2 + Measures</text>
<!-- Arrow v2 -> v3 -->
<line x1="220" y1="246" x2="220" y2="270" stroke="#7b61ff" stroke-width="2" marker-end="url(#arrowDown)"/>
<!-- v3 + RLS -->
<rect x="120" y="275" width="200" height="36" rx="6" fill="#0d1117" stroke="#30363d" stroke-width="1.5"/>
<text x="220" y="298" font-family="Segoe UI, Arial, sans-serif" font-size="14" fill="#c9d1d9" text-anchor="middle">v3 + RLS</text>
<!-- Rollback curved arrow from v3 back to v1 -->
<path d="M120,293 Q60,293 60,228 Q60,163 120,163" fill="none" stroke="#ff6b6b" stroke-width="2" stroke-dasharray="5,3" marker-end="url(#arrowRollback)"/>
<text x="42" y="232" font-family="Segoe UI, Arial, sans-serif" font-size="12" fill="#ff6b6b" text-anchor="middle" transform="rotate(-90, 42, 232)">Rollback</text>
<!-- Commands -->
<text x="220" y="345" font-family="Consolas, Courier New, monospace" font-size="12" fill="#58a6ff" text-anchor="middle">pbi database export-tmdl</text>
<text x="220" y="365" font-family="Consolas, Courier New, monospace" font-size="12" fill="#58a6ff" text-anchor="middle">pbi database import-tmdl</text>
<!-- Decorative icons for deployment -->
<g transform="translate(340, 145)" opacity="0.4">
<rect x="0" y="0" width="28" height="28" rx="4" fill="none" stroke="#7b61ff" stroke-width="1"/>
<path d="M8,20 L14,8 L20,20 Z" fill="none" stroke="#7b61ff" stroke-width="1.2"/>
</g>
<!-- =============================== -->
<!-- RIGHT PANEL - Security Skill -->
<!-- =============================== -->
<rect x="435" y="85" width="390" height="390" rx="8" fill="#161b22" stroke="#06d6a0" stroke-width="2"/>
<!-- Panel Header -->
<text x="630" y="115" font-family="Segoe UI, Arial, sans-serif" font-size="18" font-weight="bold" fill="#06d6a0" text-anchor="middle">Security Skill</text>
<line x1="455" y1="125" x2="805" y2="125" stroke="#30363d" stroke-width="1"/>
<!-- RLS User Icons -->
<!-- East User -->
<circle cx="510" cy="170" r="22" fill="#1a3a5c" stroke="#58a6ff" stroke-width="1.5"/>
<text x="510" y="176" font-family="Segoe UI, Arial, sans-serif" font-size="16" font-weight="bold" fill="#58a6ff" text-anchor="middle">E</text>
<text x="510" y="205" font-family="Segoe UI, Arial, sans-serif" font-size="12" fill="#8b949e" text-anchor="middle">East</text>
<!-- West User -->
<circle cx="630" cy="170" r="22" fill="#1a3a5c" stroke="#58a6ff" stroke-width="1.5"/>
<text x="630" y="176" font-family="Segoe UI, Arial, sans-serif" font-size="16" font-weight="bold" fill="#58a6ff" text-anchor="middle">W</text>
<text x="630" y="205" font-family="Segoe UI, Arial, sans-serif" font-size="12" fill="#8b949e" text-anchor="middle">West</text>
<!-- Admin User -->
<circle cx="750" cy="170" r="22" fill="#1a3a5c" stroke="#06d6a0" stroke-width="1.5"/>
<text x="750" y="176" font-family="Segoe UI, Arial, sans-serif" font-size="16" font-weight="bold" fill="#06d6a0" text-anchor="middle">A</text>
<text x="750" y="205" font-family="Segoe UI, Arial, sans-serif" font-size="12" fill="#8b949e" text-anchor="middle">Admin</text>
<!-- Arrows from users to Filter -->
<line x1="510" y1="192" x2="555" y2="248" stroke="#30363d" stroke-width="1.5"/>
<line x1="630" y1="192" x2="630" y2="248" stroke="#30363d" stroke-width="1.5"/>
<line x1="750" y1="192" x2="705" y2="248" stroke="#30363d" stroke-width="1.5"/>
<!-- Filter Box -->
<rect x="555" y="248" width="150" height="34" rx="6" fill="#0d1117" stroke="#06d6a0" stroke-width="1.5"/>
<text x="630" y="270" font-family="Segoe UI, Arial, sans-serif" font-size="14" font-weight="bold" fill="#06d6a0" text-anchor="middle">Filter</text>
<!-- Data rows showing different visibility -->
<!-- East sees -->
<rect x="470" y="300" width="100" height="26" rx="4" fill="#0d1117" stroke="#30363d" stroke-width="1"/>
<text x="520" y="317" font-family="Segoe UI, Arial, sans-serif" font-size="11" fill="#58a6ff" text-anchor="middle">East data</text>
<!-- West sees -->
<rect x="580" y="300" width="100" height="26" rx="4" fill="#0d1117" stroke="#30363d" stroke-width="1"/>
<text x="630" y="317" font-family="Segoe UI, Arial, sans-serif" font-size="11" fill="#58a6ff" text-anchor="middle">West data</text>
<!-- Admin sees all -->
<rect x="690" y="300" width="100" height="26" rx="4" fill="#0d1117" stroke="#30363d" stroke-width="1"/>
<text x="740" y="317" font-family="Segoe UI, Arial, sans-serif" font-size="11" fill="#06d6a0" text-anchor="middle">All data</text>
<!-- Filter expression -->
<text x="630" y="355" font-family="Consolas, Courier New, monospace" font-size="12" fill="#d97757" text-anchor="middle">[Region] = "East"</text>
<!-- Commands -->
<text x="630" y="400" font-family="Consolas, Courier New, monospace" font-size="12" fill="#58a6ff" text-anchor="middle">pbi security-role create</text>
<text x="630" y="420" font-family="Consolas, Courier New, monospace" font-size="12" fill="#58a6ff" text-anchor="middle">pbi security-role add-filter</text>
<!-- Decorative lock icon for security -->
<g transform="translate(770, 380)" opacity="0.35">
<rect x="2" y="10" width="20" height="14" rx="3" fill="none" stroke="#06d6a0" stroke-width="1.2"/>
<path d="M7,10 V6 Q7,1 12,1 Q17,1 17,6 V10" fill="none" stroke="#06d6a0" stroke-width="1.2"/>
</g>
<!-- =============================== -->
<!-- CAPABILITY PILLS -->
<!-- =============================== -->
<g transform="translate(0, 495)">
<!-- Pill 1: TMDL Export/Import -->
<rect x="145" y="0" width="170" height="34" rx="17" fill="none" stroke="#7b61ff" stroke-width="1.5"/>
<text x="230" y="22" font-family="Segoe UI, Arial, sans-serif" font-size="14" fill="#7b61ff" text-anchor="middle">TMDL Export/Import</text>
<!-- Pill 2: Transaction Safety -->
<rect x="340" y="0" width="170" height="34" rx="17" fill="none" stroke="#F2C811" stroke-width="1.5"/>
<text x="425" y="22" font-family="Segoe UI, Arial, sans-serif" font-size="14" fill="#F2C811" text-anchor="middle">Transaction Safety</text>
<!-- Pill 3: Role-Based Filters -->
<rect x="535" y="0" width="170" height="34" rx="17" fill="none" stroke="#06d6a0" stroke-width="1.5"/>
<text x="620" y="22" font-family="Segoe UI, Arial, sans-serif" font-size="14" fill="#06d6a0" text-anchor="middle">Role-Based Filters</text>
</g>
<!-- =============================== -->
<!-- FOOTER -->
<!-- =============================== -->
<text x="425" y="560" font-family="Segoe UI, Arial, sans-serif" font-size="15" fill="#8b949e" text-anchor="middle">Version control your models. Secure them with one prompt.</text>
</svg>