feat(CC-082): add Document Systems integration (Paperless-ngx webhook flow + setup)

This commit is contained in:
admin-valentin 2026-08-02 17:16:28 +00:00
parent 3cbdab7541
commit 2dc44abcfa

View file

@ -0,0 +1,66 @@
'use client';
import Link from 'next/link';
export default function DocSystemsIntegrationPage() {
return (
<div className="max-w-3xl space-y-6 p-6">
<div>
<h1 className="font-display text-2xl font-semibold text-ink">Sisteme Documente</h1>
<p className="text-sm text-ink-faint mt-1">Paperless-ngx rulează pe server lipsesc callbacks semnate și metadata.</p>
</div>
<div className="card p-4 bg-warn/5 border-warn/30 space-y-1">
<p className="text-xs font-semibold text-warn">Paperless-ngx neconectat la CEO OS</p>
<p className="text-xs text-ink-faint">
Paperless-ngx este instalat pe <code className="bg-muted px-1 rounded">152.53.112.35</code> și procesează OCR.
Integrarea cu CEO OS Documents necesită: webhook semnat din Paperless, mapare etichete/taguri,
și transferul metadata clasificare Documents.
</p>
</div>
<div className="space-y-3">
<p className="text-xs font-semibold uppercase tracking-wider text-ink-faint">Flux de date planificat</p>
<div className="card p-4 space-y-3">
{[
{ from: 'Scanner / Email', to: 'Paperless-ngx', desc: 'Documentele fizice și email-urile cu documente ajung în Paperless.' },
{ from: 'Paperless-ngx OCR', to: 'Paperless-ngx DB', desc: 'Paperless extrage text, detectează tip document și adaugă taguri.' },
{ from: 'Paperless webhook', to: 'CEO OS ceo-api', desc: 'La procesare completă, Paperless trimite webhook semnat HMAC.' },
{ from: 'CEO OS adapter', to: 'Documents DB', desc: 'Adapterul mapează metadata Paperless → CEO OS Documents (titlu, tip, clasificare).' },
].map((step, i) => (
<div key={i} className="flex items-center gap-3">
<div className="flex-1 min-w-0">
<div className="flex items-center gap-2 text-xs">
<span className="text-ink font-medium truncate">{step.from}</span>
<span className="text-ink-faint shrink-0"></span>
<span className="text-primary font-medium truncate">{step.to}</span>
</div>
<p className="text-[9px] text-ink-faint mt-0.5">{step.desc}</p>
</div>
</div>
))}
</div>
</div>
<div className="space-y-3">
<p className="text-xs font-semibold uppercase tracking-wider text-ink-faint">Pași configurare</p>
{[
'Paperless-ngx: Settings → Workflows → Add Webhook → CEO OS endpoint',
'CEO OS: configurează shared secret pentru verificare HMAC',
'Mapare taguri Paperless → clasificare CEO OS (C0/C1/C2/C3)',
'Test: uploadează document în Paperless și verifică apariția în CEO OS Documents',
].map((step, i) => (
<div key={i} className="flex items-start gap-3">
<span className="w-5 h-5 rounded-full bg-muted text-ink-faint text-[10px] flex items-center justify-center shrink-0">{i+1}</span>
<p className="text-xs text-ink-faint">{step}</p>
</div>
))}
</div>
<div className="flex gap-3">
<Link href="/dashboard/documents" className="text-xs text-primary hover:underline">CEO OS Documents </Link>
<Link href="/dashboard/integrations" className="text-xs text-ink-faint hover:underline">Toate integrările</Link>
</div>
</div>
);
}