Sigurnosne kopije tvrtke
Administratori i vlasnici tvrtke otvore svoju tvrtku u web aplikaciji i odaberu Sigurnosne kopije. Mogu zatražiti sigurnosne kopije, preuzeti ZIP datoteke i upravljati API ključevima za svoj poslužitelj sigurnosnih kopija. Ovaj izvoz nije dostupan u mobilnoj aplikaciji.
Opseg i ograničenja
Sigurnosna kopija sadrži redovite projekatne razgovore tvrtke, uključujući arhivirane razgovore, s porukama, reakcijama, karticama razgovora i priloženim prilogima. Također uključuje metapodatke projekata i razgovora, imena sudionika i objavljene dokumente tvrtke u tim razgovorima. Administratori i vlasnici tvrtke mogu sigurnosno kopirati razgovore tvrtke u koje nisu osobno ušli.
Direktne poruke, privatne bilješke, usluge vidljive samo pojedincima, razgovori između tvrtki i osobni nacrti isključeni su. Sadržaj Skava Drivea i vanjskih veza nije dio ovog izvoza razgovora. Nedostajući prilozi uzrokuju neuspjeh generiranja. ZIP je izvoz podataka; automatski uvoz natrag u Skavu još nije dostupan.
Kvote, inkrementali i zadržavanje
Svako poduzeće može zatražiti jednu punu sigurnosnu kopiju unutar 7 dana i dva inkrementalna sigurnosna kopiranja unutar 24 sata. Ova klizna razdoblja počinju s svakim zahtjevom. Preuzimanje istog gotovog datoteke ponovno ne troši kvotu za generiranje. Neuspjeli poslovi generiranja ne uračunavaju se u ova ograničenja.
Svaki inkremental sadrži promjene i brisanja od zadnje potpuno prenesene i provjerene sigurnosne kopije. Lanac je A + B + C: A je puna sigurnosna kopija, B sadrži promjene od A, a C samo daljnje promjene od B. Obnovite stanje primjenom svih paketa redom. Nepromijenjeni prilozi upućuju na datoteke koje već postoje u ovom lancu.
Preuzimanja ostaju dostupna 24 sata nakon završetka generiranja. Tada se ZIP uklanja, a povijest ostaje. Zadržite punu sigurnosnu kopiju i svaki povezan inkremental lokalno. Stanje usporedbe ostaje korisno najviše 90 dana nakon pune sigurnosne kopije; nakon toga potrebna je nova puna sigurnosna kopija. Svaki inkremental identificira i punu sigurnosnu kopiju i njegovog izravnog prethodnika po ID-u i SHA-256.
Samo potpuno primljeni i potvrđeni paket postaje novi prethodnik. Spreman, nepotvrđen inkremental blokira drugi inkremental dok se ne potvrdi ili istekne. Nakon isteka nepotvrđenog paketa, sljedeći pokušaj kreće od zadnjeg potvrđenog stanja i uključuje promjene koje još nisu sigurnosno kopirane. Ako je potvrđeni dio nedostaje lokalno, preuzmite ga ponovno unutar njegovih 24 sata dostupnosti ili pokrenite novu punu sigurnosnu kopiju prema tjednom ograničenju. Preporučuje se jedan zajednički direktorij za sigurnosne kopije po poduzeću; neovisni klijenti moraju zadržati isti kompletan lanac.
Postavite API ključ
Pod API ključevi, unesite ime poput „Tvrtka NAS" i kreirajte ključ. Prikazuje se samo jednom, istječe nakon jedne godine i može se opozvati u bilo kojem trenutku. Spremite ga u zaštićeni spremnik tajni vašeg okruženja za sigurnosne kopije. Ključ pripada tvrtki, a može pristupiti samo API-ju za sigurnosne kopije te tvrtke. Radi neovisno o kasnijim prijavama osobe koja ga je kreirala.
Šaljite ga putem HTTPS-a u zaglavlju Authorization: Bearer YOUR_BACKUP_TOKEN. Ključeve držite izvan URL-ova, javnih skripti i dnevnika. Samo administratori i vlasnici tvrtke mogu kreirati, izlistati i opozvati ključeve.
Python: preuzimanje pune sigurnosne kopije i inkrementalnih podataka
Preuzmite Python klijent company_backup.py i smjestite ga uz svoju skriptu. Zahtijeva Python 3.10 ili noviji na Linuxu ili macOS-u i koristi samo standardnu biblioteku. Postavite SKAVA_BACKUP_TOKEN u zaštićeno okruženje procesa i zamijenite 42 s ID-om tvrtke iz adrese web aplikacije.
import os
from company_backup import BackupClient
client = BackupClient("https://chat.skava.io", 42,
os.environ["SKAVA_BACKUP_TOKEN"])
full = client.backup("full", "backups") # once every 7 days
# Later, up to twice in a rolling 24-hour window:
diff = client.backup("diff", "backups")
Planirani poslovi mogu izravno pozvati isti klijent:
python3 company_backup.py --company 42 --kind full --directory backups
python3 company_backup.py --company 42 --kind diff --directory backups
Klijent zatraži generiranje, prati status, preuzima datoteku na disk, provjerava veličinu, SHA-256 i sadržaj ZIP arhive te potvrđuje primanje. Puni i inkrementalni sigurnosni kopije sprema se kao zasebne datoteke. Zadržite skrivenu datoteku stanja u tom direktoriju: ona sadrži informacije o lancu i nastavku. Prije zatraživanja novog inkrementalnog, klijent provjerava svaku prethodnu ZIP datoteku. Nakon prekid ponovite istu naredbu. Istovremeni poslovi za isto poduzeće u istom direktoriju sprječavaju se.
Tok API-ja bez trajne veze
- Zahtjev:
POST /api/v1/companies/42/backupss{"kind":"full","request_id":"YOUR_UNIQUE_ID"}. Za inkrementalno, postavitekindnadiffi pošaljite ID lokalne pune sigurnosne kopije kaobase_idte ID zadnje potvrđene pakete kaoparent_id. Odgovor pružajob.id. Pri ponovnom pokušaju ponovno koristite istirequest_id. - Pratite:
GET /api/v1/companies/42/backups/JOB_ID, otprilike svakih deset sekundi. Generiranje se odvija u pozadini tijekomqueuedilirunning. Nijedna veza ne ostaje otvorena između zahtjeva. - Preuzimanje: Kada je status
readyiavailable: true, pozoviteGET /api/v1/companies/42/backups/JOB_ID/download. Samo ovaj prijenos održava otvorenu vezu. Ako dođe do prekida, ponovno preuzmite cijelu datoteku. - Potvrda primanja: Provjerite
job.bytesijob.sha256. UzmiteX-Backup-Download-IdiX-Backup-Receiptiz zaglavlja odgovora na preuzimanje. PošaljitePOST /api/v1/companies/42/backups/JOB_ID/downloads/DOWNLOAD_ID/confirms{"receipt":"RECEIPT","bytes":12345,"sha256":"SHA256"}. Samo potpun prijenos s odgovarajućom potvrdom smatra se uspješnim.
GET /api/v1/companies/42/backups vraća povijest, paginiranu putem next_offset. Iscrpljene kvote ili privremena ograničenja kapaciteta vraćaju HTTP 429 s Retry-After. Sigurnosne kopije generiraju se redom unutar ograničenja, tako da istovremeni noćni zadaci ne preopterećuju aplikaciju.
Razumijevanje povijesti preuzimanja
Povijest prikazuje tip (potpuna ili inkrementalna), vrijeme zahtjeva, rok valjanosti, potpunu sigurnosnu kopiju, prethodnu verziju i svaki pokušaj preuzimanja s prenesenim bajtovima. „Spremno” označava generiranu datoteku. „Preneseno” znači da je poslužitelj poslao sve bajtove. „Potvrđen zbroj za provjeru” znači da je klijent provjerio i potvrdio potpuno primanje. Prekinuti i neuspjeli pokušaji ostaju vidljivi.
Web aplikacija provjerava primanje u pregledniku prije dijaloškog okvira za spremanje. Ta potvrda ne dokazuje da je datoteka trajno spremljena na vašem računalu. Za automatske sigurnosne kopije, Python klijent zapisuje datoteku na disk prije potvrde primanja. Preuzimanja putem web aplikacije ograničena su na 64 MiB; za veće arhive koristite Python klijent.