Tehniskā arhitektūra
Kā LEIS ir uzbūvēts — slāņi, moduļu robežas, fona darbi, dokumentu ģenerēšana un drošība.
Šī lapa ir domāta IT pusei: kā sistēma ir salikta, kas nodrošina procesa kontroli tehniskā līmenī un kādas ir uzturēšanas prasības.
Slāņi
Moduļu robeža
Sistēma ir sadalīta divās daļās ar skaidru robežu:
| Daļa | Saturs |
|---|---|
| Pamatlietotne | Būvniecības objekti, cenu aptaujas, kvalifikācija, piegādātāji, sarakste, atskaites, administrēšana |
| Iepirkumu modulis | Regulētās iepirkuma procedūras ar savu statusu mašīnu, nolikumiem, vērtēšanu un lēmumiem |
Iepirkumu modulis ir atsevišķi izstrādāta vienība ar savām migrācijām, maršrutiem, modeļiem un tulkojumiem, kas tiek pievienota pamatlietotnei. Tas nozīmē, ka regulēto procedūru funkcionalitāti var attīstīt un testēt neatkarīgi no pārējās sistēmas.
Tehnoloģijas
| Slānis | Risinājums |
|---|---|
| Servera puse | Ruby 3.3, Rails 7.2 |
| Klienta puse | React 18, servera renderēti skati, moduļu komplektēšana |
| Datubāze | PostgreSQL |
| Atskaišu skati | Datubāzes skati ar versionētām migrācijām |
| Kešatmiņa un rindas | Redis |
| Fona darbi | Darbu rindas ar periodisko darbu plānotāju |
| Stāvokļu mašīnas | Deklaratīvas pārejas ar glabātu pāreju vēsturi |
| Autorizācija | Politiku slānis katrai darbībai |
| Autentifikācija | Sesijas, SAML vienotā pieteikšanās, direktoriju pakalpojums |
| Dokumenti | DOCX veidnes, PDF ģenerēšana ar pārlūka dzinēju |
| Tabulu dati | Datu režģi ar filtriem un eksportu |
| Izklājlapas | XLSX imports un eksports |
| Ārējie savienojumi | REST un SOAP klienti |
| Kļūdu uzraudzība | Centralizēta kļūdu reģistrācija |
Stāvokļu mašīnas kā procesa mehānisms
Katra procesa vienība — iepirkums, piedāvājums, lēmums, rīkojums, nolikuma grozījums, kvalifikācijas pieteikums — ir stāvokļu mašīna ar deklaratīvi definētām pārejām.
Praktiskās sekas:
- Nederīga pāreja nav iespējama. Ja no statusa nav definēta pāreja, tā netiek izpildīta neatkarīgi no tā, kas nosūta pieprasījumu.
- Nosacījumi pārejai. Pārejai var būt priekšnosacījums — piemēram, piedāvājumu nevar iesniegt bez apstiprināta parakstīta dokumenta.
- Blakusdarbības. Pāreja var izraisīt darbības: dokumentu anulēšanu pēc nolikuma grozījumiem, grafika posma aizvēršanu, paziņojumu izsūtīšanu.
- Vēsture ir datu struktūra. Katra pāreja tiek saglabāta ar izpildītāju, laiku un komentāru. Audita pēda nav atsevišķs žurnāls, ko varētu aizmirst papildināt.
Fona apstrāde
Fonā tiek izpildīti darbi, kas nedrīkst aizkavēt lietotāju:
- vēstuļu izsūtīšana lielam adresātu skaitam, sadalot partijās;
- PDF un DOCX dokumentu ģenerēšana;
- datu apmaiņa ar ārējām sistēmām;
- periodiskie uzdevumi — termiņu pārbaudes, statusu atjaunināšana, darbinieku datu sinhronizācija.
Darbu izpilde tiek uzskaitīta grupās, tāpēc ir redzams, vai apjomīgs uzdevums ir pabeigts pilnībā.
Dokumentu ģenerēšana
| Formāts | Lietojums |
|---|---|
| DOCX no veidnes | Nolikumi, protokoli, kvalifikācijas protokola pielikumi |
| Piedāvājumi, kopsavilkumi, drukājamie dokumenti | |
| XLSX | Tāmju imports un eksports, atskaišu un salīdzinājumu izgūšana |
Daudzvalodība
Saskarne ir pieejama vairākās valodās, un daļa satura — piemēram, nolikums — var tikt uzturēta divās valodās vienlaikus, ar atsevišķu tulkojamo lauku glabāšanu.
Drošība
Autorizācija katrai darbībai
Politiku slānis pārbauda tiesības konkrētajai darbībai ar konkrēto objektu tā pašreizējā statusā, nevis tikai izvēlnes redzamību.
HTML sanitizācija
Viss bagātinātā teksta saturs tiek attīrīts servera pusē pirms nosūtīšanas pārlūkam.
Satura drošības politika
Pārlūka satura drošības politika ar pārkāpumu ziņojumu uzkrāšanu.
Paroļu politika
Sarežģītības prasības, termiņa notecēšana un piespiedu nomaiņa ārējiem lietotājiem.
Reģistrācijas aizsardzība
Aizsardzība pret automatizētu reģistrāciju piegādātāju portālā.
Sesiju kontrole
Noildze ar brīdinājumu un iespēju pagarināt sesiju, nezaudējot ievadītos datus.
Failu tipu kontrole
Augšupielādējamo failu formāti tiek ierobežoti un pārbaudīti.
Piekļuves žurnāli
Ierobežotas pieejamības dokumentu atvēršana, resursu apmeklējumi un vēstuļu izlasīšana tiek reģistrēti.
Izvietošana
Sistēma darbojas konteinerizētā vidē ar atsevišķiem procesiem tīmekļa pieprasījumiem un fona darbiem, priekšā novietotu tīmekļa serveri un atsevišķu datubāzes un Redis instanci. Pieejama stāvokļa pārbaudes saskarne uzraudzībai. Dokumentu ģenerēšanai vidē tiek nodrošināts pārlūka dzinējs, attēlu apstrādei — attēlu bibliotēka.