Nodošana
Sistēma nodod
oriģinālo failu
Kases sistēma izveido oriģinālo rezerves failu. Mūsu uzdevums sākas brīdī, kad šis fails ir gatavs: to saņemt, pārbaudīt un saglabāt Latvijā, un pateikt, ja tas nav atnācis.
Neatkarīgi no savienojuma veida fails iziet vienu un to pašu ceļu. Statusu vārdnīca ir kopīga, tāpēc pārskatā redzams viens un tas pats stāvoklis.
Sistēma nodod
oriģinālo failu
Fails vēl nav
arhīvā
Izmērs un
kontrolsumma
Fiksēts objekts
un metadati
| Statuss | Ko tas nozīmē | Vai fails ir arhīvā |
|---|---|---|
| expectedGaidām | Politika paredz kopiju, tā vēl nav atnākusi | Nav |
| receivedSaņemts | Baiti ir pieņemti pagaidu zonā | Vēl nav |
| validatingPārbaudē | Salīdzinām izmēru un kontrolsummu | Vēl nav |
| storedSaglabāts | Objekts un metadati fiksēti glabātuvē | Jā |
| overdueKavējas | Termiņš pagājis, kopijas nav | Nav |
| rejectedNoraidīts | Nesakrita kontrolsumma vai formāts | Nav |
Kļūda nekļūst par zaļu statusu.
Ja kontrolsumma nesakrīt, kopija paliek noraidīta.
Vecs fails nav jauns periods.
Šodien atkārtoti nosūtīta vakardienas kopija netiek skaitīta kā šodienas.
Savienojums un kopija ir divi jautājumi.
Klusējošs Agent vēl nenozīmē, ka vakardienas kopija ir pazudusi.
Piemērots kases sistēmām un ražotāju mākoņiem, kas jau spēj eksportēt oriģinālo rezerves failu. Vismazāk kustīgo daļu uz vietas veikalā.
Piekļuve ar īslaicīgiem tokeniem vai ierobežotām atslēgām: rotācija, scopes un pieprasījumu limiti. mTLS, ja partnerim tas ir nepieciešams.
Atkārtots mēģinājums ar to pašu tenant, register un idempotences atslēgu nerada otru kopiju. Tīkla pārrāvums nav iemesls dublikātam.
Vispirms pieteikums, tad baiti, tad fiksēšana. Tāpēc saņemtu pieprasījumu var atšķirt no faila, kas tiešām ir arhīvā.
Kam dati pieder, nosaka pārbaudīta autorizācija, nevis identifikators pieprasījuma saturā.
| Metode | Ceļš | Nozīme |
|---|---|---|
| POST | /v1/backups | Piesaka augšupielādi: register_id, izmērs, kontrolsumma, laiks |
| PUT | /v1/uploads/{id} | Nodod baitus ar ierobežotu augšupielādes tokenu |
| POST | /v1/backups/{id}/complete | Fiksē pārsūtīšanu un sāk pārbaudi |
| GET | /v1/backups/{id} | received, validating, stored vai rejected |
| GET | /v1/registers/{id}/status | Pēdējā saglabātā kopija un nākamais termiņš |
| POST | /v1/heartbeats | Agent vai DataBox stāvoklis, atsevišķi no rezerves kopijas |
| GET | /v1/backups/{id}/download | Autorizēta īslaicīga izgūšana |
202 nozīmē apstrādi.
Statusu stored atdodam tikai pēc kontrolsummas pārbaudes un objekta fiksēšanas.
Kļūdas ir paredzamas.
400 shēma, 401 un 403 piekļuve, 409 idempotences konflikts, 413 izmērs, 429 ar Retry-After.
Atkārtošana ar atkāpi.
Uz 5xx atbildi klients atkārto ar pieaugošu intervālu. Noslēpumus žurnālos nerakstām.
Ir paredzēti arī parakstīti webhook notikumi backup.stored, backup.overdue un integration.offline ar event_id un dublikātu atsijāšanu. Precīzs saturs tiks fiksēts kopā ar pirmo integrāciju.
Der sistēmām, kas prot ielikt failu katalogā pēc grafika. Vienkāršs ceļš, kuram ir viena būtiska prasība: fails nedrīkst tikt importēts nepabeigts.
Katram klientam sava atslēga un savs katalogs, bez shell piekļuves un ar apjoma ierobežojumiem. Kurš katalogs atbilst kurai kasei, nosaka serveris, nevis faila nosaukums.
Fails tiek augšupielādēts ar pagaidu nosaukumu un pēc tam atomāri pārsaukts. Tikai pārsaukts fails nonāk rindā. Pusceļā apstājusies augšupielāde arhīvā neiekļūst.
Salīdzinām izmēru un kontrolsummu. Neatpazīts formāts nonāk karantīnā, nevis arhīvā. Saglabāšanu apstiprina portāls vai API, nevis pats katalogs.
Ja jūsu sistēma neprot atomāru pārsaukšanu, iespējams izmantot atsevišķu manifesta failu, kas apliecina, ka nodošana ir pabeigta. Par to vienojamies pirms pieslēgšanas.
Pakalpojums Windows vai Linux datoram, uz kura kases programmatūra jau saglabā rezerves failus. Neko jaunu veikalā nav jāuzstāda.
Agent nemaina un nepapildina reģistrēto kases programmatūru. Tas lasa failus, ko tā pati ir izveidojusi.
Nodošanu sāk pēc pabeigšanas notikuma vai atomāras pārsaukšanas. Pieņēmums, ka fails dažas sekundes nav mainījies, par pierādījumu netiek uzskatīts.
Ja tīkls pazūd, faili gaida rindā un tiek nosūtīti vēlāk. Rinda ievēro diska ierobežojumu un atsijā dublikātus.
Parakstīts instalators un atjauninājumi, atslēga aizsargātā glabātuvē, atsevišķs heartbeat par paša pakalpojuma stāvokli.
Iekārtām, kurām nav piemērota tīkla eksporta. Tas ir pēdējais, nevis pirmais risinājums, un tas ir atkarīgs no konkrētā modeļa.
USB datu nesēja režīms vai dokumentēts RS232 adapteris. Katrs variants tiek saskaņots un izmēģināts kopā ar apkalpojošo piegādātāju pirms piedāvāšanas klientam.
Atsevišķa barošana, lokāla rinda, tīkls vai LTE, watchdog, kontrolēta atjaunināšana un datu nesēja piepildījuma uzraudzība.
Tas nav universāls USB centrmezgls un nav apgalvojums, ka DataBox derēs jebkurai kasei. Bez testa ar konkrēto iekārtu saderību neapstiprinām.
Vienu un to pašu rakstāmo failu sistēmu vienlaikus nevar droši atdot kases iekārtai un montēt rakstīšanai otrā pusē. Tāpēc DataBox prasa pārbaudītu kārtību, kas apstrādā rakstīšanas kešatmiņu, pēkšņu barošanas zudumu un nepabeigtus failus. Līdz šo testu izpildei DataBox paliek izstrādes ceļš, nevis noliktavā gatava prece.
Iespējamie integrāciju virzieni, nevis apstiprinātu partnerību saraksts.
Katram modelim atsevišķi pārbaudām formātu, rezerves datu sastāvu, eksporta biežumu, tiesības uz API un atjaunošanas testu. Grāmatvedības darījumu eksports ne vienmēr aizstāj pilnu rezerves kopiju.
Atbildes tehniķim un izstrādātājam.
Vispirms pārbaudām, vai ražotāja programmatūra jau prot eksportēt oriģinālo rezerves failu. Ja prot un ir pieejams API, izvēlamies API. Ja fails jau nonāk kādā katalogā, izvēlamies SFTP vai Agent. DataBox paliek gadījumiem, kad neviens no tiem nav iespējams.
Nē. Tas ir piedāvāts v1 saskarnes apraksts, kas domāts sarunai ar pirmo partneri. Adreses, lauki un kļūdu kodi tiek fiksēti pirms integrācijas sākuma, un līdz tam tie var mainīties.
Ka pieprasījums ir pieņemts apstrādei. Tas nav apstiprinājums, ka fails ir arhīvā. Statuss stored parādās tikai pēc tam, kad kontrolsumma ir pārbaudīta un objekts kopā ar metadatiem ir fiksēts glabātuvē. Kontrolsummas kļūda nekad nekļūst par zaļu statusu.
Nē. Mēs saņemam failu, ko iekārta vai sistēma jau ir izveidojusi. Reģistrētās kases programmatūras apkalpošana, pārprogrammēšana un remonts paliek apkalpojošā dienesta pārziņā.
Agent un DataBox tur lokālu rindu un sūta failus vēlāk. Atkārtoti mēģinājumi izmanto to pašu idempotences atslēgu, tāpēc arhīvā neveidojas dublikāti. Klusējošs savienojums tiek rādīts atsevišķi no rezerves kopijas statusa.
Tad atlikušais ir tehnisks jautājums. Sarunāsim pilotu ar pāris kasēm un reālu atjaunošanas testu.
Runāt par integrācijuApkalpojošajiem dienestiem, kases sistēmu izstrādātājiem un veikalu tīkliem