bae705aa97
- Add NFC ePassport roadmap (ICAO 9303, eIDAS) - Add TensorFlow.js edge face detection (BlazeFace) - Add structured audit logger (GDPR-compliant) - Risk scoring support Part of KYC Apple Native UX v1.1.0
259 lines
14 KiB
HTML
259 lines
14 KiB
HTML
<!doctype html>
|
|
<meta charset="utf-8" />
|
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
<title>AAMOS Finance — Modulöversikt</title>
|
|
<style>
|
|
:root {
|
|
color-scheme: light dark;
|
|
--bg: #f8fafc;
|
|
--fg: #172033;
|
|
--muted: #5b6475;
|
|
--line: #64748b;
|
|
--neutral: #e2e8f0;
|
|
--input: #bfdbfe;
|
|
--process: #c7d2fe;
|
|
--storage: #99f6e4;
|
|
--external: #fde68a;
|
|
--risk: #fecaca;
|
|
--green: #bbf7d0;
|
|
--orange: #fed7aa;
|
|
--purple: #e9d5ff;
|
|
--blue: #bae6fd;
|
|
}
|
|
@media (prefers-color-scheme: dark) {
|
|
:root {
|
|
--bg: #0f172a; --fg: #e5e7eb; --muted: #a3adbd; --line: #94a3b8;
|
|
--neutral: #334155; --input: #1d4ed8; --process: #4338ca;
|
|
--storage: #0f766e; --external: #92400e; --risk: #991b1b;
|
|
--green: #14532d; --orange: #7c2d12; --purple: #581c87; --blue: #0c4a6e;
|
|
}
|
|
}
|
|
body { margin: 0; background: var(--bg); color: var(--fg);
|
|
font: 14px/1.4 ui-sans-serif, system-ui, -apple-system, sans-serif; }
|
|
main { max-width: 1100px; margin: 32px auto; padding: 0 20px; }
|
|
h1 { font-size: 22px; font-weight: 700; margin: 0 0 6px; color: var(--fg); }
|
|
p.sub { color: var(--muted); margin: 0 0 24px; font-size: 13px; }
|
|
svg { width: 100%; height: auto; display: block; }
|
|
.title { font-size: 18px; font-weight: 700; fill: var(--fg); }
|
|
.zone-label { font-size: 11px; font-weight: 700; fill: var(--muted); letter-spacing: .06em; text-transform: uppercase; }
|
|
.label { font-size: 13px; font-weight: 600; fill: var(--fg); }
|
|
.small { font-size: 11px; fill: var(--muted); }
|
|
.port { font-size: 10px; fill: var(--muted); font-family: ui-monospace, monospace; }
|
|
.live { font-size: 10px; font-weight: 700; fill: #16a34a; }
|
|
.node { stroke: var(--line); stroke-width: 1.2; rx: 6; }
|
|
.neutral { fill: var(--neutral); }
|
|
.process { fill: var(--process); }
|
|
.storage { fill: var(--storage); }
|
|
.external { fill: var(--external); }
|
|
.green { fill: var(--green); }
|
|
.orange { fill: var(--orange); }
|
|
.purple { fill: var(--purple); }
|
|
.blue { fill: var(--blue); }
|
|
.edge { stroke: var(--line); stroke-width: 1.4; fill: none; }
|
|
.edge-dashed { stroke: var(--line); stroke-width: 1.2; fill: none; stroke-dasharray: 5 4; }
|
|
.zone { fill: none; stroke: var(--line); stroke-width: 1; stroke-dasharray: 6 4; opacity: 0.5; }
|
|
.zone-fill { stroke: none; opacity: 0.04; }
|
|
</style>
|
|
<main>
|
|
<h1>AAMOS Finance</h1>
|
|
<p class="sub">Modulöversikt · 2026-06-01 · server-2.wavult.com</p>
|
|
|
|
<svg viewBox="0 0 1060 920" xmlns="http://www.w3.org/2000/svg">
|
|
<defs>
|
|
<marker id="arr" markerWidth="8" markerHeight="8" refX="7" refY="3" orient="auto">
|
|
<path d="M0,0 L0,6 L8,3 z" fill="#64748b"/>
|
|
</marker>
|
|
<marker id="arr-green" markerWidth="8" markerHeight="8" refX="7" refY="3" orient="auto">
|
|
<path d="M0,0 L0,6 L8,3 z" fill="#16a34a"/>
|
|
</marker>
|
|
</defs>
|
|
|
|
<!-- ── INTERNET ── -->
|
|
<rect x="420" y="20" width="220" height="44" rx="6" class="node external"/>
|
|
<text x="530" y="39" text-anchor="middle" class="label">Internet / Klient</text>
|
|
<text x="530" y="55" text-anchor="middle" class="small">Browser · API · AGI</text>
|
|
|
|
<!-- Internet → nginx -->
|
|
<line x1="530" y1="64" x2="530" y2="94" class="edge" marker-end="url(#arr)"/>
|
|
|
|
<!-- ── NGINX ── -->
|
|
<rect x="350" y="94" width="360" height="44" rx="6" class="node blue"/>
|
|
<text x="530" y="113" text-anchor="middle" class="label">nginx (443 / 80)</text>
|
|
<text x="530" y="129" text-anchor="middle" class="small">TLS-terminering · Reverse proxy · IP-filtering</text>
|
|
|
|
<!-- nginx → core -->
|
|
<line x1="530" y1="138" x2="530" y2="168" class="edge" marker-end="url(#arr)"/>
|
|
|
|
<!-- ── AAMOS CORE ── -->
|
|
<rect x="340" y="168" width="380" height="52" rx="6" class="node green" stroke="#16a34a" stroke-width="2"/>
|
|
<text x="530" y="189" text-anchor="middle" class="label">AAMOS Core :3100</text>
|
|
<text x="530" y="205" text-anchor="middle" class="small">/api/payroll/agi · /api/accounting · /api/cortex</text>
|
|
<text x="658" y="178" text-anchor="middle" class="live">● LIVE</text>
|
|
|
|
<!-- ──────────────────────────────────────────────────── -->
|
|
<!-- ZONE: AAMOS FINANCE -->
|
|
<rect x="22" y="242" width="1016" height="420" rx="8" class="zone"/>
|
|
<rect x="22" y="242" width="1016" height="420" rx="8" fill="#6366f1" class="zone-fill"/>
|
|
<text x="36" y="261" class="zone-label">AAMOS Finance — Ekonomimoduler</text>
|
|
|
|
<!-- ── REDOVISNING zone ── -->
|
|
<rect x="36" y="270" width="230" height="180" rx="6" class="zone"/>
|
|
<text x="48" y="286" class="zone-label">Redovisning</text>
|
|
|
|
<rect x="48" y="292" width="206" height="52" rx="5" class="node process"/>
|
|
<text x="151" y="314" text-anchor="middle" class="label">Dubbel bokföring</text>
|
|
<text x="151" y="330" text-anchor="middle" class="small">journal · trial-balance</text>
|
|
<text x="151" y="343" text-anchor="middle" class="port">api/accounting/journal.mjs</text>
|
|
|
|
<rect x="48" y="356" width="206" height="52" rx="5" class="node process"/>
|
|
<text x="151" y="375" text-anchor="middle" class="label">Finance Core</text>
|
|
<text x="151" y="391" text-anchor="middle" class="small">cashflow · KPI · ledger</text>
|
|
<text x="151" y="405" text-anchor="middle" class="port">aamos-finance-core :3002</text>
|
|
|
|
<rect x="48" y="420" width="206" height="52" rx="5" class="node storage"/>
|
|
<text x="151" y="439" text-anchor="middle" class="label">Wavult Ledger</text>
|
|
<text x="151" y="455" text-anchor="middle" class="small">SWIFT · GECL-hash integrity</text>
|
|
<text x="151" y="468" text-anchor="middle" class="port">financeco-invoice-reader</text>
|
|
|
|
<!-- ── LÖN zone ── -->
|
|
<rect x="282" y="270" width="230" height="180" rx="6" class="zone"/>
|
|
<text x="294" y="286" class="zone-label">Lön & HR</text>
|
|
|
|
<rect x="294" y="292" width="206" height="52" rx="5" class="node green"/>
|
|
<text x="397" y="311" text-anchor="middle" class="label">Lönehantering</text>
|
|
<text x="397" y="327" text-anchor="middle" class="small">AG-avg 31.42% · prelskatt</text>
|
|
<text x="397" y="341" text-anchor="middle" class="port">aamos-finance-payroll :3231</text>
|
|
|
|
<rect x="294" y="356" width="206" height="52" rx="5" class="node external"/>
|
|
<text x="397" y="375" text-anchor="middle" class="label">Skatteverket AGI</text>
|
|
<text x="397" y="391" text-anchor="middle" class="small">Digital löneuppgift · AMOS-001</text>
|
|
<text x="397" y="405" text-anchor="middle" class="port">via amos-core /api/payroll/agi</text>
|
|
|
|
<rect x="294" y="420" width="206" height="52" rx="5" class="node neutral"/>
|
|
<text x="397" y="439" text-anchor="middle" class="label">Rekrytering</text>
|
|
<text x="397" y="455" text-anchor="middle" class="small">ouroboros-recruiting</text>
|
|
<text x="397" y="468" text-anchor="middle" class="port">aamos-hr-recruiting :3229</text>
|
|
|
|
<!-- ── SKATT zone ── -->
|
|
<rect x="528" y="270" width="230" height="180" rx="6" class="zone"/>
|
|
<text x="540" y="286" class="zone-label">Skatt & Moms</text>
|
|
|
|
<rect x="540" y="292" width="206" height="52" rx="5" class="node purple"/>
|
|
<text x="643" y="311" text-anchor="middle" class="label">Momshantering (VAT)</text>
|
|
<text x="643" y="327" text-anchor="middle" class="small">utgående · ingående · period</text>
|
|
<text x="643" y="341" text-anchor="middle" class="port">aamos-finance-vat :3230</text>
|
|
|
|
<rect x="540" y="356" width="206" height="52" rx="5" class="node purple"/>
|
|
<text x="643" y="375" text-anchor="middle" class="label">ROT / RUT</text>
|
|
<text x="643" y="391" text-anchor="middle" class="small">Skattereduktion avdrag</text>
|
|
<text x="643" y="405" text-anchor="middle" class="port">ouroboros-rot-rut</text>
|
|
|
|
<rect x="540" y="420" width="206" height="52" rx="5" class="node neutral"/>
|
|
<text x="643" y="439" text-anchor="middle" class="label">Compliance</text>
|
|
<text x="643" y="455" text-anchor="middle" class="small">regelefterlevnad</text>
|
|
<text x="643" y="468" text-anchor="middle" class="port">ouroboros-compliance</text>
|
|
|
|
<!-- ── KOSTNAD / INKÖP zone ── -->
|
|
<rect x="774" y="270" width="250" height="180" rx="6" class="zone"/>
|
|
<text x="786" y="286" class="zone-label">Kostnad & Inköp</text>
|
|
|
|
<rect x="786" y="292" width="224" height="52" rx="5" class="node orange"/>
|
|
<text x="898" y="311" text-anchor="middle" class="label">Utlägg</text>
|
|
<text x="898" y="327" text-anchor="middle" class="small">expense management</text>
|
|
<text x="898" y="341" text-anchor="middle" class="port">aamos-finance-expenses :3226</text>
|
|
|
|
<rect x="786" y="356" width="224" height="52" rx="5" class="node orange"/>
|
|
<text x="898" y="375" text-anchor="middle" class="label">Upphandling</text>
|
|
<text x="898" y="391" text-anchor="middle" class="small">procurement · leverantörer</text>
|
|
<text x="898" y="405" text-anchor="middle" class="port">ouroboros-procurement</text>
|
|
|
|
<rect x="786" y="420" width="224" height="52" rx="5" class="node orange"/>
|
|
<text x="898" y="439" text-anchor="middle" class="label">Lager</text>
|
|
<text x="898" y="455" text-anchor="middle" class="small">inventory management</text>
|
|
<text x="898" y="468" text-anchor="middle" class="port">aamos-finance-inventory :3228</text>
|
|
|
|
<!-- ── STÖD zone - bottom row ── -->
|
|
<rect x="36" y="468" width="470" height="180" rx="6" class="zone"/>
|
|
<text x="48" y="484" class="zone-label">Stöd & Infrastruktur</text>
|
|
|
|
<rect x="48" y="490" width="210" height="52" rx="5" class="node blue"/>
|
|
<text x="153" y="510" text-anchor="middle" class="label">Reconciler</text>
|
|
<text x="153" y="526" text-anchor="middle" class="small">avstämning · comms-bus</text>
|
|
<text x="153" y="540" text-anchor="middle" class="port">:3275 / :3276 (intern)</text>
|
|
|
|
<rect x="274" y="490" width="210" height="52" rx="5" class="node blue"/>
|
|
<text x="379" y="510" text-anchor="middle" class="label">Financial Cortex</text>
|
|
<text x="379" y="526" text-anchor="middle" class="small">AI-driven finansanalys</text>
|
|
<text x="379" y="540" text-anchor="middle" class="port">:5000 /api/cortex/</text>
|
|
|
|
<rect x="48" y="556" width="210" height="52" rx="5" class="node blue"/>
|
|
<text x="153" y="575" text-anchor="middle" class="label">Audit Chain</text>
|
|
<text x="153" y="591" text-anchor="middle" class="small">immutable · Rust-baserad</text>
|
|
<text x="153" y="605" text-anchor="middle" class="port">audit-chain / rust-audit-chain</text>
|
|
|
|
<rect x="274" y="556" width="210" height="52" rx="5" class="node blue"/>
|
|
<text x="379" y="575" text-anchor="middle" class="label">Report Generator</text>
|
|
<text x="379" y="591" text-anchor="middle" class="small">ekonomirapporter</text>
|
|
<text x="379" y="605" text-anchor="middle" class="port">report-generator</text>
|
|
|
|
<!-- ── CFO VIEW zone ── -->
|
|
<rect x="522" y="468" width="516" height="84" rx="6" class="zone"/>
|
|
<text x="534" y="484" class="zone-label">AAMOS CFO Dashboard</text>
|
|
<rect x="534" y="490" width="220" height="52" rx="5" class="node neutral"/>
|
|
<text x="644" y="510" text-anchor="middle" class="label">CFO View</text>
|
|
<text x="644" y="526" text-anchor="middle" class="small">saldo · cashflow · KPI-översikt</text>
|
|
<text x="644" y="540" text-anchor="middle" class="port">api/aamos/cfo/routes.mjs</text>
|
|
|
|
<rect x="770" y="490" width="254" height="52" rx="5" class="node neutral"/>
|
|
<text x="897" y="510" text-anchor="middle" class="label">Analytics</text>
|
|
<text x="897" y="526" text-anchor="middle" class="small">KPI · trender · data</text>
|
|
<text x="897" y="540" text-anchor="middle" class="port">aamos-analytics :3006</text>
|
|
|
|
<!-- ── DATABASE ── -->
|
|
<rect x="310" y="700" width="440" height="52" rx="6" class="node storage"/>
|
|
<text x="530" y="720" text-anchor="middle" class="label">PostgreSQL (via pgbouncer :6432)</text>
|
|
<text x="530" y="738" text-anchor="middle" class="small">prexo_payroll_runs · vat_periods · journal_entries · expenses · procurement</text>
|
|
|
|
<!-- ── EXTERN ── -->
|
|
<rect x="800" y="700" width="220" height="52" rx="6" class="node external"/>
|
|
<text x="910" y="719" text-anchor="middle" class="label">Skatteverket</text>
|
|
<text x="910" y="735" text-anchor="middle" class="small">AGI-rapportering (live)</text>
|
|
|
|
<!-- Connectors core → modules -->
|
|
<!-- core → bokföring -->
|
|
<path d="M420,194 Q280,194 280,318 L254,318" class="edge" marker-end="url(#arr)" fill="none"/>
|
|
<!-- core → lön -->
|
|
<path d="M490,220 L490,260 L397,260 L397,292" class="edge" marker-end="url(#arr)" fill="none"/>
|
|
<!-- core → moms -->
|
|
<path d="M570,220 L570,260 L643,260 L643,292" class="edge" marker-end="url(#arr)" fill="none"/>
|
|
<!-- core → expenses -->
|
|
<path d="M640,194 Q780,194 780,318 L786,318" class="edge" marker-end="url(#arr)" fill="none"/>
|
|
|
|
<!-- modules → DB -->
|
|
<line x1="151" y1="472" x2="380" y2="700" class="edge-dashed" marker-end="url(#arr)"/>
|
|
<line x1="397" y1="472" x2="450" y2="700" class="edge-dashed" marker-end="url(#arr)"/>
|
|
<line x1="643" y1="472" x2="530" y2="700" class="edge-dashed" marker-end="url(#arr)"/>
|
|
<line x1="898" y1="472" x2="610" y2="700" class="edge-dashed" marker-end="url(#arr)"/>
|
|
|
|
<!-- AGI → Skatteverket -->
|
|
<path d="M503,407 Q700,407 700,726 L800,726" class="edge" stroke="#16a34a" stroke-width="1.8" marker-end="url(#arr-green)" fill="none"/>
|
|
|
|
<!-- Legend -->
|
|
<rect x="36" y="790" width="12" height="12" rx="2" class="node green"/>
|
|
<text x="54" y="801" class="small">Kör live (amos-core)</text>
|
|
<rect x="170" y="790" width="12" height="12" rx="2" class="node process"/>
|
|
<text x="188" y="801" class="small">Redovisning</text>
|
|
<rect x="280" y="790" width="12" height="12" rx="2" class="node purple"/>
|
|
<text x="298" y="801" class="small">Skatt/Moms</text>
|
|
<rect x="390" y="790" width="12" height="12" rx="2" class="node orange"/>
|
|
<text x="408" y="801" class="small">Kostnad/Inköp</text>
|
|
<rect x="510" y="790" width="12" height="12" rx="2" class="node blue"/>
|
|
<text x="528" y="801" class="small">Infrastruktur</text>
|
|
<rect x="620" y="790" width="12" height="12" rx="2" class="node storage"/>
|
|
<text x="638" y="801" class="small">Databas</text>
|
|
<rect x="710" y="790" width="12" height="12" rx="2" class="node external"/>
|
|
<text x="728" y="801" class="small">Extern</text>
|
|
|
|
</svg>
|
|
</main>
|