- Účel projektu
- Hlavná myšlienka
- Charakter projektu
- Problém, ktorý rieši
- Základné použitia
- Používatelia
- Používateľské roly a oprávnenia
- Klienti a projekty
- Kategórie súborov
- Metadáta súboru
- Stavy súboru
- Nahrávanie súborov
- Sťahovanie súborov
- Zdieľanie súborov
- Expirácia súborov a odkazov
- Verzie súborov
- Logovanie
- Notifikácie
- Komentáre a poznámky
- Bezpečnosť
- Typy súborov
- Veľké súbory
- Úložisko
- Ochrana pred priamym URL prístupom
- GDPR a citlivé údaje
- Zálohovanie
- Mazanie a archivácia
- WordPress architektúra
- Možný dátový model
- Admin rozhranie
- Klientské rozhranie
- Front-end upload
- REST API
- Prepojenie s DREMONT
- Prepojenie so SinTrade.Company
- Prepojenie s cascadya.pro
- Prepojenie s TOPTOUR
- Prepojenie s ACONIS
- Prepojenie so Solution Architect
- MVP projektu
- Budúce moduly
- Princípy verejnej komunikácie
- Odporúčané podčlánky
- Stav dokumentu
Účel projektu
Správca súborov je projekt bezpečného systému na správu, výmenu, zdieľanie a evidenciu súborov medzi správcom, klientmi, partnermi, dodávateľmi alebo internými používateľmi.
Cieľom projektu nie je vytvoriť obyčajný upload formulár.
Cieľom je vytvoriť praktický pracovný nástroj, ktorý umožní bezpečne a prehľadne pracovať so súbormi tam, kde e-mail, bežné prílohy alebo chaotické zdieľané odkazy prestávajú stačiť.
Projekt má slúžiť najmä pri:
- výmene veľkých súborov,
- klientskych podkladoch,
- technickej dokumentácii,
- fotografiách,
- výkresoch,
- zmluvách,
- cenových ponukách,
- projektových prílohách,
- a súboroch, ktoré majú byť prístupné len vybraným osobám.
Hlavná myšlienka
Súbor nie je iba príloha.
V pracovnom systéme je súbor často nositeľom zadania, dôkazu, rozhodnutia, podkladu, záväzku alebo výsledku práce.
Základná myšlienka projektu:
Súbor bez kontextu je len digitálny predmet. Súbor s vlastníkom, právami, stavom a väzbou na projekt je pracovný dôkaz.
Správca súborov má preto riešiť nielen nahratie súboru, ale aj otázky:
- kto ho nahral,
- komu patrí,
- kto ho môže vidieť,
- kto ho môže stiahnuť,
- kto ho môže zmazať,
- ku ktorému klientovi alebo projektu patrí,
- v akom je stave,
- a ako dlho má zostať uložený.
Charakter projektu
Správca súborov je technický, bezpečnostný a procesný projekt.
Môže sa rozvíjať ako:
- samostatný WordPress plugin,
- modul existujúceho webu,
- klientsky portál,
- interný systém,
- rozšírenie pre DREMONT,
- zdieľacia vrstva pre SinTrade.Company,
- súborová vrstva pre cascadya.pro,
- alebo univerzálny systém použiteľný vo viacerých projektoch.
Projekt musí byť navrhovaný tak, aby bol jednoduchý pre používateľa, ale bezpečný vnútri.
Problém, ktorý rieši
Bežné posielanie súborov má viac problémov:
- prílohy v e-maile majú veľkostné limity,
- súbory sa strácajú v komunikácii,
- nie je jasné, ktorá verzia je aktuálna,
- odkazy sa posielajú nesprávnym ľuďom,
- klienti posielajú súbory rôznymi kanálmi,
- chýba evidencia,
- chýba kontrola prístupu,
- chýba história,
- chýba notifikácia,
- citlivé súbory sa môžu dostať mimo kontrolu.
Správca súborov má znížiť chaos, zvýšiť bezpečnosť a urobiť zo súborov riadenú pracovnú vrstvu.
Základné použitia
Správca súborov môže slúžiť na:
- nahratie súboru klientom,
- odovzdanie súboru klientovi,
- zdieľanie súboru v rámci projektu,
- bezpečné uloženie veľkých dokumentov,
- evidenciu príloh k ponukám,
- výmenu podkladov ku stavbe alebo zákazke,
- nahrávanie fotografií,
- odovzdanie technickej dokumentácie,
- zdieľanie zmlúv,
- správu výstupov práce,
- internú archiváciu.
Používatelia
Možné typy používateľov:
Administrátor
Spravuje celý systém, používateľov, nastavenia, úložiská, práva a bezpečnostné pravidlá.
Správca projektu
Vidí súbory priradené ku konkrétnemu projektu alebo klientovi.
Klient
Môže nahrávať, sťahovať a zobrazovať len súbory, ktoré sa ho týkajú.
Dodávateľ
Môže dostať obmedzený prístup k vybraným súborom.
Interný používateľ
Môže pracovať so súbormi podľa svojich práv a zaradenia.
Hosť
Môže mať jednorazový alebo časovo obmedzený prístup.
Používateľské roly a oprávnenia
Systém musí od začiatku riešiť oprávnenia.
Možné práva:
- nahrať súbor,
- zobraziť súbor,
- stiahnuť súbor,
- zmazať súbor,
- upraviť názov alebo popis,
- priradiť súbor ku klientovi,
- zdieľať súbor,
- nastaviť expiráciu,
- vidieť log prístupov,
- spravovať kategórie,
- spravovať používateľov.
Dôležitá zásada:
Používateľ má vidieť iba to, čo naozaj potrebuje vidieť.
Klienti a projekty
Správca súborov má vedieť priraďovať súbory ku klientom alebo projektom.
Možné väzby:
- klient,
- zákazka,
- projekt,
- obchodná príležitosť,
- ponuka,
- faktúra,
- technická dokumentácia,
- webový projekt,
- stavebný prípad,
- interná kategória.
Táto väzba je dôležitá preto, aby súbor nevisel v systéme bez súvislosti.
Kategórie súborov
Systém môže používať kategórie.
Príklady:
- zmluvy,
- faktúry,
- cenové ponuky,
- fotografie,
- technické výkresy,
- podklady od klienta,
- výstupy pre klienta,
- licencie,
- zálohy,
- interné dokumenty,
- verejné dokumenty,
- dôverné dokumenty.
Kategórie majú pomáhať orientácii, nie vytvárať ďalší byrokratický les.
Metadáta súboru
Každý súbor by mal mať metadáta.
Odporúčané polia:
- názov súboru,
- pôvodný názov,
- popis,
- typ súboru,
- veľkosť,
- dátum nahratia,
- kto nahral,
- komu patrí,
- klient / projekt,
- kategória,
- stav,
- viditeľnosť,
- expirácia,
- poznámka,
- verzia,
- kontrolný hash,
- počet stiahnutí,
- posledný prístup.
Metadáta robia zo súboru pracovný objekt.
Stavy súboru
Možné stavy:
- nový,
- čaká na kontrolu,
- schválený,
- odmietnutý,
- určený na zmazanie,
- archivovaný,
- expirovaný,
- dôverný,
- verejný,
- interný,
- odovzdaný klientovi,
- prijatý od klienta.
Stav pomáha rozlíšiť, čo sa so súborom deje.
Nahrávanie súborov
Upload musí byť jednoduchý.
Používateľ by mal vedieť:
- vybrať súbor,
- doplniť popis,
- vybrať projekt alebo klienta,
- potvrdiť odoslanie,
- vidieť priebeh nahrávania,
- dostať potvrdenie,
- prípadne dostať notifikáciu, že súbor bol prijatý.
Pri veľkých súboroch treba riešiť:
- limit uploadu,
- výpadok spojenia,
- prerušené nahrávanie,
- opakovanie uploadu,
- kontrolu veľkosti,
- bezpečnostnú kontrolu typu súboru.
Sťahovanie súborov
Sťahovanie musí rešpektovať oprávnenia.
Systém by mal vedieť:
- overiť používateľa,
- skontrolovať práva,
- zaznamenať stiahnutie,
- zobraziť upozornenie pri dôverných súboroch,
- prípadne umožniť časovo obmedzený odkaz.
Pri citlivých súboroch je vhodné logovať, kto a kedy súbor stiahol.
Zdieľanie súborov
Zdieľanie môže byť interné alebo externé.
Možnosti:
- zdieľanie používateľovi,
- zdieľanie role,
- zdieľanie klientovi,
- zdieľanie cez zabezpečený odkaz,
- zdieľanie s expiráciou,
- zdieľanie s heslom,
- zdieľanie len na stiahnutie,
- zdieľanie len na zobrazenie.
Dôležitá zásada:
Verejný odkaz je pohodlný, ale bezpečnostne citlivý. Nemá byť predvoleným riešením pre dôverné súbory.
Expirácia súborov a odkazov
Niektoré súbory alebo odkazy nemajú byť dostupné navždy.
Systém by mal podporovať:
- expiráciu odkazu,
- expiráciu prístupu,
- upozornenie pred zmazaním,
- archiváciu,
- ručné predĺženie,
- automatické zneplatnenie jednorazového odkazu.
Toto je dôležité najmä pri klientskych podkladoch a citlivých dokumentoch.
Verzie súborov
Súbory sa často menia.
Systém môže podporovať jednoduché verzovanie:
- verzia 1,
- verzia 2,
- aktuálna verzia,
- staršia verzia,
- nahradené novším súborom,
- záznam o zmene.
Minimálne treba vedieť označiť, ktorý súbor je aktuálny.
Dôležitá zásada:
Najnebezpečnejší súbor je ten, o ktorom nikto nevie, či je aktuálny.
Logovanie
Správca súborov by mal viesť logy.
Dôležité udalosti:
- nahratie súboru,
- stiahnutie,
- zmazanie,
- zmena oprávnenia,
- zdieľanie,
- expirácia odkazu,
- zlyhaný prístup,
- prihlásenie používateľa,
- zmena metadát.
Logy nemajú byť špionáž.
Majú chrániť systém a riešiť sporné situácie.
Notifikácie
Systém môže posielať notifikácie.
Príklady:
- klient nahral nový súbor,
- súbor bol odovzdaný klientovi,
- súbor čaká na kontrolu,
- odkaz čoskoro expiruje,
- súbor bol stiahnutý,
- upload zlyhal,
- bol pridaný komentár,
- bol zmenený stav.
Notifikácie musia byť užitočné, nie otravné.
Komentáre a poznámky
Pri súboroch môže byť užitočné pridať komentár alebo poznámku.
Použitie:
- vysvetlenie obsahu,
- požiadavka na opravu,
- informácia pre klienta,
- interná poznámka,
- stav kontroly,
- doplnenie kontextu.
Treba rozlišovať:
- verejná poznámka pre klienta,
- interná poznámka pre správcu.
Bezpečnosť
Bezpečnosť je jadrom projektu.
Riešiť treba:
- autentifikáciu,
- oprávnenia,
- typy súborov,
- veľkosť súborov,
- skenovanie škodlivého obsahu,
- zákaz spustiteľných súborov podľa potreby,
- ochranu pred priamym prístupom,
- bezpečné ukladanie,
- ochranu odkazov,
- logovanie,
- zálohovanie,
- mazanie,
- prístupové pravidlá.
Dôležitá zásada:
Správca súborov bez bezpečnosti je len krajšia diera do servera.
Typy súborov
Systém by mal mať pravidlá pre povolené typy.
Možné povolené typy:
- PDF,
- DOC / DOCX,
- XLS / XLSX,
- JPG / PNG / WEBP,
- ZIP,
- TXT,
- CSV,
- DWG alebo technické formáty podľa potreby,
- ďalšie projektovo schválené typy.
Rizikové typy:
- EXE,
- JS,
- PHP,
- BAT,
- SH,
- neznáme spustiteľné súbory,
- podozrivé archívy.
Typy súborov treba nastavovať podľa projektu.
Veľké súbory
Jednou z hlavných motivácií projektu je práca s veľkými súbormi.
Treba riešiť:
- limity PHP uploadu,
- limity hostingu,
- timeouty,
- chunk upload,
- obnoviteľné nahrávanie,
- storage kapacitu,
- čistenie starých súborov,
- notifikácie po dokončení,
- alternatívne úložiská.
Pri veľkých súboroch môže byť klasický WordPress upload nedostatočný.
Úložisko
Možné typy úložiska:
- WordPress uploads adresár,
- vlastný chránený adresár mimo verejného webrootu,
- cloudové úložisko,
- S3 kompatibilné úložisko,
- serverové úložisko,
- externé úložisko klienta.
Najbezpečnejšie riešenie pre citlivé súbory je také, kde súbory nie sú priamo verejne dostupné cez URL bez kontroly oprávnení.
Ochrana pred priamym URL prístupom
Ak je súbor citlivý, nestačí, aby mal ťažko uhádnuteľný názov.
Systém má zabezpečiť, aby sa súbor nedal stiahnuť bez overenia práv.
Možné riešenia:
- súbory mimo verejného adresára,
- kontrolované stiahnutie cez PHP,
- dočasné podpísané odkazy,
- pravidlá servera,
- kontrola session alebo tokenu.
Dôležitá zásada:
Tajná URL nie je skutočné oprávnenie.
GDPR a citlivé údaje
Správca súborov môže obsahovať osobné údaje.
Treba riešiť:
- kto je prevádzkovateľ,
- kto má prístup,
- účel spracovania,
- doba uchovania,
- právo na zmazanie,
- export,
- záznamy o prístupoch,
- minimalizácia údajov,
- súhlas alebo právny základ,
- bezpečnostné opatrenia.
Pri klientskych projektoch treba zvlášť dbať na to, aby sa citlivé dokumenty nezdieľali mimo potreby.
Zálohovanie
Súbory musia byť zálohované.
Treba vedieť:
- čo sa zálohuje,
- ako často,
- kde sú zálohy,
- či sa zálohuje databáza aj súbory,
- ako sa obnovuje,
- či sú zálohy šifrované,
- kto má k nim prístup.
Dôležitá zásada:
Zálohovaná databáza bez súborov je ako katalóg knižnice po požiari.
Mazanie a archivácia
Nie všetko má zostať navždy.
Systém by mal rozlišovať:
- dočasné súbory,
- pracovné súbory,
- dlhodobé dokumenty,
- zmluvy,
- účtovné dokumenty,
- klientské podklady,
- archívne súbory.
Možné pravidlá:
- ručné zmazanie,
- plánovaná expirácia,
- presun do archívu,
- označenie na kontrolu,
- obnova zo zálohy,
- audit zmazania.
Mazanie musí byť opatrné, aby sa nestratili dôkazy alebo záväzné dokumenty.
WordPress architektúra
Ak sa Správca súborov realizuje vo WordPresse, treba rozhodnúť, čo bude:
- custom post type,
- taxonómia,
- vlastná databázová tabuľka,
- používateľská rola,
- oprávnenie,
- shortcode,
- blok,
- REST API endpoint,
- admin stránka,
- front-end stránka,
- upload handler.
Pri väčšom systéme môže byť vhodné použiť vlastné databázové tabuľky, najmä pre súbory, prístupy, logy a väzby.
Možný dátový model
Pracovný dátový model môže obsahovať:
files
- id,
- original_name,
- stored_name,
- path,
- mime_type,
- size,
- hash,
- uploaded_by,
- client_id,
- project_id,
- category_id,
- visibility,
- status,
- created_at,
- expires_at.
file_permissions
- id,
- file_id,
- user_id,
- role,
- permission_type,
- expires_at.
file_logs
- id,
- file_id,
- user_id,
- action,
- ip,
- created_at.
file_links
- id,
- file_id,
- token,
- expires_at,
- max_downloads,
- downloads_count,
- created_by.
file_comments
- id,
- file_id,
- user_id,
- comment,
- visibility,
- created_at.
Toto je pracovný návrh, nie finálna schéma.
Admin rozhranie
Administrátor potrebuje prehľadné rozhranie.
Funkcie:
- zoznam súborov,
- filtrovanie podľa klienta,
- filtrovanie podľa projektu,
- filtrovanie podľa kategórie,
- filtrovanie podľa stavu,
- vyhľadávanie,
- detail súboru,
- nastavenie práv,
- log prístupov,
- zmazanie alebo archivácia,
- ručné nahratie súboru,
- notifikácie.
Admin rozhranie má byť pracovné, nie preplácané.
Klientské rozhranie
Klient potrebuje jednoduchosť.
Klientské rozhranie má umožniť:
- vidieť svoje súbory,
- nahrať nový súbor,
- stiahnuť súbor od správcu,
- vidieť stav,
- pridať poznámku,
- dostať potvrdenie,
- bezpečne sa odhlásiť.
Klient nemá riešiť technické nastavenia.
Front-end upload
Front-end upload má byť zvlášť bezpečný.
Treba riešiť:
- prihlasovanie,
- nonce alebo token,
- kontrolu veľkosti,
- kontrolu typu,
- validáciu,
- chybové hlášky,
- potvrdenie úspechu,
- ochranu pred spamom,
- limit počtu súborov,
- ochranu pred opakovaným zneužitím.
REST API
Do budúcna môže systém potrebovať REST API.
Použitie:
- mobilné rozhranie,
- klientsky portál,
- integrácia so SinTrade.Company,
- integrácia s cascadya.pro,
- integrácia s externým systémom,
- automatické nahrávanie alebo sťahovanie.
API musí mať prísnu autentifikáciu a oprávnenia.
Prepojenie s DREMONT
Správca súborov vzniká alebo bol významne riešený aj v kontexte projektu DREMONT.
Pri DREMONT-e je dôležité evidovať:
- požiadavky klienta,
- čo bolo vytvorené,
- čo je nad rámec paušálu,
- aké sú roly,
- ako sa zdieľajú súbory,
- aké sú bezpečnostné pravidlá,
- aká je obchodná hodnota riešenia.
Dôležitá veta:
Správca súborov nie je drobná úprava webu. Je to samostatná pracovná funkcionalita s obchodnou hodnotou.
Prepojenie so SinTrade.Company
SinTrade.Company potrebuje pracovať s množstvom dokumentov.
Prepojenie môže zahŕňať:
- prílohy k ponukám,
- technické listy,
- certifikáty,
- cenové tabuľky,
- zmluvy,
- dokumenty dodávateľov,
- súbory od zákazníkov,
- obchodné prílohy.
Správca súborov môže byť spoločná súborová vrstva pre obchodný systém.
Prepojenie s cascadya.pro
cascadya.pro môže potrebovať správu:
- projektovej dokumentácie,
- pozemkov,
- fotografií,
- výkresov,
- technických listov,
- cenových ponúk,
- partnerských dokumentov,
- zmlúv,
- podkladov pre samosprávy a investorov.
Správca súborov môže slúžiť ako bezpečná výmena dokumentov medzi partnermi.
Prepojenie s TOPTOUR
TOPTOUR môže využívať Správcu súborov pre:
- fotografie z ciest,
- klientské dokumenty,
- cestovateľský denník,
- podklady k zariadeniam,
- zmluvy s partnermi,
- interné dokumenty,
- exporty,
- referenčné dôkazy.
Toto prepojenie treba riešiť opatrne kvôli osobným údajom a fotografiám klientov.
Prepojenie s ACONIS
ACONIS môže pomôcť procesne navrhnúť Správcu súborov.
Najmä:
- AS IS výmena súborov,
- TO BE proces,
- WHAT IF riziká,
- role a oprávnenia,
- dátový model,
- bezpečnostné scenáre,
- workflow schvaľovania,
- MVP.
Prepojenie so Solution Architect
Solution Architect vrstva je dôležitá pri návrhu architektúry.
Rieši:
- hranicu medzi pluginom a systémom,
- dátový model,
- bezpečnosť,
- úložisko,
- API,
- roly,
- rozšíriteľnosť,
- klientské scenáre,
- riziká.
MVP projektu
Prvá praktická verzia Správcu súborov môže byť jednoduchá.
MVP môže obsahovať:
- prihlásenie používateľa,
- rolu administrátor / klient,
- nahratie súboru klientom,
- zobrazenie súborov klienta,
- stiahnutie súboru správcom,
- priradenie súboru ku klientovi,
- základné kategórie,
- základný log,
- notifikáciu o nahratí,
- ochranu pred verejným prístupom.
Cieľ MVP:
Bezpečne a prehľadne vymeniť súbor medzi klientom a správcom bez chaosu v e-mailoch.
Budúce moduly
Možné budúce rozšírenia:
- verzovanie,
- zdieľané odkazy s expiráciou,
- heslom chránené odkazy,
- komentáre,
- schvaľovanie súborov,
- pokročilé logovanie,
- API,
- integrácia s obchodným systémom,
- integrácia s klientskym portálom,
- cloudové úložisko,
- šifrovanie,
- antivírusová kontrola,
- veľké uploady po častiach,
- projektové priečinky,
- drag & drop rozhranie,
- auditné reporty.
Princípy verejnej komunikácie
Správcu súborov možno verejne komunikovať ako:
- bezpečný klientsky súborový priestor,
- nástroj na výmenu dokumentov,
- systém na správu veľkých súborov,
- jednoduchý klientsky portál,
- riešenie pre firemné podklady a dokumenty.
Nevhodné formulácie:
- úplne bezpečný za každých okolností,
- náhrada právneho archívu,
- neprelomiteľný systém,
- bez potreby správy,
- všetko vyrieši sám.
Odporúčané podčlánky
Postupne vytvoriť alebo doplniť:
- Správca súborov – MVP
- Používateľské roly a oprávnenia
- Dátový model
- Upload súborov
- Zdieľanie a expirácia odkazov
- Ochrana pred priamym URL prístupom
- Logovanie prístupov
- Kategórie a stavy súborov
- Verzovanie súborov
- Notifikácie
- GDPR a citlivé údaje
- Zálohovanie súborov
- Mazanie a archivácia
- WordPress architektúra
- Admin rozhranie
- Klientské rozhranie
- Prepojenie s DREMONT
- Prepojenie so SinTrade.Company
- Prepojenie s cascadya.pro
- Prepojenie s TOPTOUR
- Prepojenie s ACONIS
- Prepojenie so Solution Architect
Stav dokumentu
Tento článok je hlavný MASTER dokument projektu Správca súborov.
Slúži ako rozcestník, pracovná mapa a základná definícia smeru projektu.
Nie je finálnou technickou špecifikáciou ani bezpečnostným auditom.
Je to živý pracovný dokument, ktorý sa bude dopĺňať podľa reálnych potrieb klientov, technických možností, bezpečnostných požiadaviek, WordPress architektúry a integrácií s ďalšími projektmi.
Cieľom Správcu súborov je vytvoriť jednoduchý, bezpečný a použiteľný spôsob, ako zo súborov urobiť riadenú pracovnú vrstvu — nie chaotické prílohy roztrúsené po e-mailoch, diskoch a zabudnutých odkazoch.



