feat(CC-082): add Document Systems integration (Paperless-ngx webhook flow + setup)
This commit is contained in:
parent
3cbdab7541
commit
2dc44abcfa
1 changed files with 66 additions and 0 deletions
66
src/app/dashboard/integrations/documents/page.tsx
Normal file
66
src/app/dashboard/integrations/documents/page.tsx
Normal 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>
|
||||
);
|
||||
}
|
||||
Loading…
Reference in a new issue