Skava Skava / Wiki

Yrityksen varmuuskopiot

Yrityksen ylläpitäjät ja omistajat avaavat yrityksensä verkkosovituksessa ja valitsevat Varmuuskopiot. He voivat pyytää varmuuskopioita, ladata ZIP-tiedostoja ja hallita varmuuskopioimispalvelimensa API-avaimia. Tätä vientiä ei ole saatavilla mobiilisovituksessa.

Kohdealue ja rajat

Varmuuskopio sisältää yrityksen tavanomaiset projektikeskustelut, mukaan lukien arkistoitu keskustelut, viestit, reaktiot, keskustelukortit ja niihin liittyvät ladatut liitteet. Se sisältää myös projektien ja keskustelujen metatiedot, osallistujien nimet ja näissä keskusteluissa julkaistut yrityksen asiakirjat. Yrityksen ylläpitäjät ja omistajat voivat varmuuskopioida yrityksen keskustelut, joihin he eivät henkilökohtaisesti ole liittyneet.

Suorat viestit, yksityiset muistiinpanot, henkilökohtaisesti näkyvät palvelut, yritysten väliset keskustelut ja henkilökohtaiset luonnokset jätetään pois. Yrityksen Drive ja ulkoisten linkkien sisältö ovat tämän keskusteluvieheen ulkopuolella. Puuttuvat liittyvät liitteet aiheuttavat generoinnin epäonnistumisen. ZIP on datavienti; automaattinen tuonti takaisin Skavaan ei ole vielä saatavilla.

Kvootat, inkrementaalit ja säilytys

Jokainen yritys voi pyytää yhden täyden varmuuskopion 7 päivän aikana ja kaksi inkrementaalista varmuuskopiota 24 tunnin aikana. Nämä liukuvat aikavälit alkavat jokaisesta pyynnöstä. Valmiin tiedoston lataaminen uudelleen ei kuluta generointikvootaa. Epäonnistuneet generointitehtävät eivät myöskään lasu näihin rajoihin.

Jokainen inkrementaali sisältää muutokset ja poistot edellisestä täysin siirretystä ja tarkistussummalla vahvistetusta varmuuskopiosta. Ketju on A + B + C: A on täysi varmuuskopio, B sisältää muutokset A:sta lähtien ja C vain muutokset B:stä lähtien. Rakenna tila soveltamalla jokainen paketti järjestyksessä. Muuttumattomat liitteet viittaavat tiedostoihin, jotka ovat jo tässä ketjussa.

Lataukset ovat käytettävissä 24 tuntia generoinnin päättymisen jälkeen. ZIP-tiedosto poistetaan sen jälkeen, mutta historia säilyy. Pidä täysi varmuuskopio ja kaikki siihen liittyvät inkrementaalit paikallisesti. Vertailutila on käytettävissä enintään 90 päivää täyden varmuuskopion jälkeen; sen jälkeen tarvitaan uusi täysi varmuuskopio. Jokainen inkrementaali tunnistaa sekä täyden varmuuskopion että sen välittömän edeltäjän ID:llä ja SHA-256-tunnisteella.

Vain täysin vastaanotettu ja vahvistettu paketti tulee uudeksi edeltäjäksi. Valmis, mutta vahvistamaton inkrementaali estää toisen inkrementaalin, kunnes se on vahvistettu tai vanhentunut. Kun vahvistamaton paketti vanhenee, seuraava yritys alkaa viimeisimmästä vahvistetusta tilasta ja sisältää muutokset, jotka eivät ole vielä varmuuskopioitu. Jos vahvistettu osa puuttuu paikallisesti, lataa se uudelleen 24 tunnin saatavuusajan kuluessa tai aloita uusi täysi varmuuskopio viikoittaisen rajan puitteissa. Suosittelen yhtä jaettua varmuuskopiohakemistoa yritystä kohti; itsenäisten asiakkaiden on pidettävä samaa täydellistä ketjua.

Luo API-avain

Syötä API-avaimet-osiossa nimi, kuten "Yrityksen NAS", ja luo avain. Avain näytetään kerran, vanhenee vuoden kuluttua ja voidaan peruuttaa milloin tahansa. Tallenna se varakopioinnin salaisuusvarastoon. Yritys omistaa avaimen, jolla on pääsy vain kyseisen yrityksen varakopiointi-API:hin. Avain toimii itsenäisesti luojan myöhemmästä kirjautumisesta.

Lähetä se HTTPS-yhteydellä Authorization: Bearer YOUR_BACKUP_TOKEN -otsakkeessa. Pidä avaimet poissa URL-osoitteista, julkisista skripteistä ja lokitiedostoista. Vain yrityksen ylläpitäjät ja omistajat voivat luoda, listata ja peruuttaa avaimia.

Verkkosovellus: API-avain, jolla on voimassaajan lopetus ja kumoutusmahdollisuus
Avainhallinta verkkosovelluksessa: nimi, voimassaolo ja kumoutus jokaiselle varmuuskopiointiohjelmalle.

Python: lataa koko varakopio ja lisävarakopiot

Lataa company_backup.py Python-asiakasohjelma ja aseta se skriptisi viereen. Ohjelma vaatii Python 3.10 tai uudemman Linux- tai macOS-järjestelmässä ja käyttää vain standardikirjastoa. Määritä SKAVA_BACKUP_TOKEN suojattuun prosessiin ja korvaa 42 yrityksen ID:llä, joka näkyy web-sovelluksen osoitteessa.

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")

Ajastetut tehtävät voivat kutsua samaa asiakasohjelmaa suoraan:

python3 company_backup.py --company 42 --kind full --directory backups
python3 company_backup.py --company 42 --kind diff --directory backups

Asiakasohjelma pyytää generointia, seuraa tilaa, kirjoittaa latauksen levylle, tarkistaa koon, SHA-256-tunnisteen ja ZIP-sisällön sekä vahvistaa vastaanoton. Se tallentaa täydet ja inkrementaaliset varmuuskopiot erillisinä tiedostoina. Pidä piilotettu tilatiedosto kyseisessä hakemistossa: siinä on ketjun ja jatkamisen tiedot. Ennen uuden inkrementaalisen pyyntöä asiakasohjelma tarkistaa kaikki aiemmat ZIP-tiedostot. Keskeytyksen jälkeen toista sama komento. Saman yrityksen samassa hakemistossa suoritettavia samanaikaisia tehtäviä estetään.

API-virta ilman pysyvää yhteyttä

  1. Pyyntö: POST /api/v1/companies/42/backups ja {"kind":"full","request_id":"YOUR_UNIQUE_ID"}. Inkrementaalista varten aseta kind arvoon diff ja lähetä paikallinen täysi varmuuskopio ID base_id:nä sekä viimeisin vahvistettu paketti ID parent_id:nä. Vastaus sisältää job.id:n. Käytä samaa request_id:tä uudelleenyrityksessä.
  2. Tilan seuranta: GET /api/v1/companies/42/backups/JOB_ID, noin kymmenen sekunnin välein. Generointi suoritetaan taustalla, kun tila on queued tai running. Yhteys ei pysy auki pyyntöjen välillä.
  3. Lataus: Kun tila on ready ja available: true, kutsu GET /api/v1/companies/42/backups/JOB_ID/download. Vain tämä siirto pitää yhteyden auki. Jos siirto keskeytyy, lataa koko tiedosto uudelleen.
  4. Vastaanoton vahvistus: Tarkista job.bytes ja job.sha256. Ota X-Backup-Download-Id ja X-Backup-Receipt latausvastauksen otsakeista. Lähetä POST /api/v1/companies/42/backups/JOB_ID/downloads/DOWNLOAD_ID/confirm sisältäen {"receipt":"RECEIPT","bytes":12345,"sha256":"SHA256"}. Vain täydellinen siirto, jossa on vastaava vahvistus, lasketaan onnistuneeksi.

GET /api/v1/companies/42/backups palauttaa historian, joka on sivutettu kentän next_offset kautta. Täyttyneet kvootat tai tilapäiset kapasiteettirajat palauttavat HTTP-virheen 429 yhdessä Retry-After-otsakkeen kanssa. Varaukset luodaan peräkkäin rajojen puitteissa, jotta samanaikaiset yötyöt eivät ylikuormita sovellusta.

Lataushistorian ymmärtäminen

Historiassa näkyy koko tai inkrementaaliset varaukset, pyynnön aika, voimassaolon päättymisajankohta, kokonaisvaraus, edeltävä varaus sekä jokainen latausyritys siirrettyine tavuineen. Tila "Ready" tarkoittaa luotua tiedostoa. Tila "Transferred" tarkoittaa, että palvelin lähetti kaikki tavut. Tila "Checksum confirmed" tarkoittaa, että asiakasohjelma varmisti ja vahvisti koko tiedoston vastaanoton. Keskeytyneet ja epäonnistuneet yritykset pysyvät näkyvissä.

Verkkosovellus: inkrementaalinen varmuuskopiointi, jossa on edeltäjä, latauksen voimassaajan lopetus ja vahvistettu tarkistussumma
Lataushistoriassa näkyy varmuuskopiointiketju, 24 tunnin ikkuna ja kaikkien tietojen vastaanoton vahvistus.

Verkkosovellus vahvistaa vastaanoton selaimessa ennen tallennusikkunan avaamista. Tämä vahvistus ei kuitenkaan takaa, että tiedosto on myöhemmin tallennettu pysyvästi tietokoneellesi. Automaattisissa varmuuskopioissa Python-asiakasohjelma kirjoittaa tiedoston levylle ennen vastaanoton vahvistamista. Verkkosovelluksen lataukset ovat rajattu 64 MiB:iin; käytä Python-asiakasohjelmaa suuremmille arkistoille.