idc0989
tipplan_implementacija
statusAKTIVAN
sto_trebaUnified PWA modul za fotografiranje/skeniranje dokumenata s mobilnog uređaja. Jedan URL, svi moduli. Zero-knowledge sesija — tragovi samo u dokumentu, ne u centralnoj tablici.
arhitektura{
"url_pattern": "v4.limit-connect.com/api/v4/capture/?module=X&token=JWT",
"auth_slojevi": [
"SLOJ-1: GenesisLogin WebAuthn (FIDO2, Ed25519, biometrija) — V4 vec ima webauthn register/auth",
"SLOJ-2: Magic link fallback (email/SMS) — za uredaje bez WebAuthn",
"SLOJ-3: QR token (za vanjske korisnike bez accounta) — V4 vec ima scan-tokens"
],
"zero_knowledge": "JWT je stateless (5min expiry). Server ne cita IP, ne pamti session. Trag = device_id + timestamp SAMO u dokumentu ko
moduli{
"arhiva": {
"label": "Digitalna Arhiva",
"status": "DONE-S0"
},
"sati": {
"label": "Evidencija Radnog Vremena",
"status": "DONE-S0-handler"
},
"digigraf": {
"label": "Digigraf — Prijevoz (CMR)",
"status": "DONE-S0-handler"
},
"pos": {
"label": "POS Blagajna",
"status": "DONE-S0-handler"
},
"rental": {
"label": "Iznajmljivanje",
"status": "DONE-S0-handler"
}
}
faze{
"S0_foundation": {
"status": "DONE",
"sto": [
"capture/router.py — FastAPI router, 5 module handlera",
"capture/schemas.py — Pydantic modeli",
"templates/capture/index.html — mobilna PWA kamera",
"templates/capture/login.html — WebAuthn + magic link login",
"main.py — capture_router registriran",
"Rute: GET /capture/ (200), GET /capture/login/ (200), POST /capture/{module}/ (401 bez tokena)"
]
},
"S1_genesislogin_mobile": {
"status": "T
zakon[
"ZAKON 0",
"ZAKON 2",
"ZAKON 27",
"ZAKON 29",
"ZAKON 40"
]
serverEU (217.160.71.124)
putanja/var/www/fenix-v4/capture/
live_urlhttps://v4.limit-connect.com/api/v4/capture/
commitpending
sesija2026-05-19