Mitä koodi todella tekee
Kaksikymmentä koodista tarkistettua mekanismia 16.9.2026. Jokainen selitetty yhdellä lauseella.
Tarkistettu koodia vasten 16.9.2026
Jokainen tietokantakysely kulkee Prisma-laajennuksen läpi, joka sitoo sen pyynnön organisaatioon. Kysely ilman organisaatiokontekstia epäonnistuu sen sijaan, että se palauttaisi rivejä.
TOTP-siemenet ja kolmannen osapuolen tarjoajien tunnukset tallennetaan salattuina AES-256-GCM-algoritmilla, ja avainnippu mahdollistaa avainten kierrätyksen menettämättä pääsyä olemassa oleviin tietoihin.
Jokainen HTML-vastaus saa Content-Security-Policy-otsikon, jossa on pyyntökohtainen satunnainen nonce-arvo. Inline-skripti ilman kyseistä nonce-arvoa ei suoritu.
Jokaisen tilaa muuttavan kutsun, joka sisältää henkilöstön istunnon, on lähetettävä evästettä vastaava CSRF-tunniste, eikä valvontaa voi poistaa käytöstä tuotantoympäristössä.
Hyväksyntäkuittilinkki allekirjoitetaan HMAC-SHA256-menetelmällä, allekirjoitus varmistetaan ennen jokaista tietokannan lukutapahtumaa, ja jokainen virhetilanne palauttaa saman 404-virheen.
Jakolinkki on 32-tavuinen satunnainen tunniste, josta tallennetaan vain SHA-256-tiiviste. Sillä on vanhentumisaika, valinnainen salasana ja välitön mitätöintimahdollisuus. Mitätöity, vanhentunut tai tuntematon linkki palauttaa saman 404-virheen.
Jokainen ladattu tiedosto skannataan ClamAV-ohjelmalla yksityisessä virtuaalikoneessa VPC:n sisällä ennen kuin siitä luodaan esikatseluversio, ja tiedostoa, joka ei saa puhdasta tulosta, pidätetään eikä sitä aseteta saataville.
Yli 2 GiB:n tiedostot pidätetään skannaamatta. Pidätettyä tiedostoa ei aseteta saataville.
Asiakas kirjautuu portaaliin ilman tiliä koodilla, linkillä, puhelimella tai sähköpostilla; vain koodin tai tokenin HMAC tallennetaan, pääsy vanhenee (oletuksena 30 päivää) ja mitätöinti katkaisee yhteyden kaikilta laitteilta kahden minuutin kuluessa.
Toimintaloki on sovelluksessa vain lisäysmuotoinen: mikään koodipolku ei päivitä tai poista lokiriviä, ja CI-tarkistus epäonnistuu, jos sellaista yritetään lisätä.
Jokaisen API-reitin käyttöä rajoitetaan käyttäjä- tai asiakas-IP-kohtaisesti instanssien välillä jaetun Redis-laskurin avulla. Jos Redis ei ole käytettävissä, rajoitus laskee kolmannekseen instanssia kohden sen sijaan, että se poistuisi käytöstä.
Istunto on allekirjoitettu JWT-eväste (HS256), jossa on määritetty HttpOnly, Secure ja SameSite=Lax. Se vanhenee kahden tunnin epäaktiivisuuden jälkeen ja se voidaan mitätöidä kaikilla laitteilla samanaikaisesti. Salasanat tallennetaan scrypt-tiivisteinä ja MFA-palautuskoodit vain HMAC-tiivisteinä.
Asiakasportaali, jakolinkit, kuitit, kutsun hyväksymissivut sekä rekisteröitymisen viimeistely- ja salasanan palautussivut sisältävät noindex-määritteen, ja robots.txt kieltää polut /api/, /admin, /app ja /coupons.
Työtilan omistaja voi viedä tiedot ja poistaa työtilan tai oman tilinsä kysymättä meiltä. Poistaminen estää pääsyn välittömästi, ja pysyvä poisto suoritetaan automaattisesti 30 päivän kuluttua, mikä on käyttöehdoissa, tietosuojaselosteessa ja DPA-sopimuksessa ilmoitettu aika.
Salaisuudet ladataan Secret Manager -palvelusta käyttöönoton yhteydessä ja varmistetaan käynnistyksen aikana (vähimmäispituus, paikkamerkkien hylkääminen, salausavaimen on oltava 32 satunnaista tavua), ja ne poistetaan lokeista sekä virheraporteista.
Ajastetut kutsut todennetaan HMAC-SHA256-allekirjoituksella viiden minuutin aikaikkunassa tai Google OIDC -tunnisteella, ja staattinen Bearer-salaisuus hylätään tuotantoympäristössä.
Jokainen ulosmenevä pyyntö käyttäjän antamaan osoitteeseen (Drive-tuonnit, webhooks) tarkistetaan yksityisten osoitealueiden varalta, myös uudelleenohjausten jälkeen ja yhdistämishetkellä.
API-pyynnön runko on rajoitettu 1 MiB:iin ja se tarkistetaan tiukkaa skeemaa vasten, joka hylkää tuntemattomat kentät ennen kuin koodi käsittelee sitä.
Tiedostotyyppi määritetään itse tavuista selaimen ilmoituksen sijaan, ja paketin kiintiön tai tiedostokohtaisen ylärajan ylittävä tiedosto hylätään jo ennen lataamista.
Jokainen objektipolku tarkistetaan organisaation etuliitettä vasten ennen allekirjoittamista, lukemista tai poistamista, ja tiedostot tarjotaan määräaikaisten allekirjoitettujen URL-osoitteiden kautta (6 tuntia katseluun, 5 minuuttia lataamiseen).
AI-ehdotukset tallennetaan ehdotuksina ja otetaan käyttöön vasta, kun ihminen on ne hyväksynyt. AI-koodi ei myöskään saa avata järjestelmätason oikeuksia asiakasdataan; CI-portti valvoo tätä.
Jokainen julkaisu läpäisee ensin kattavan testipaketin kattavuusraportteineen, koodiportit ja npm audit -tarkistuksen korkealla tasolla; tuotantojulkaisu käy läpi myös canary-julkaisun valmiustesteineen.
Missä palvelimet sijaitsevat
Tasked-palvelimet, tietokanta ja tiedostot sijaitsevat Google Cloud -alueella europe-west1 (Belgia).
Alikäsittelijät (sähköposti, SMS, maksut, virheraportointi, AI-palveluntarjoajat) ja Google Analytics, joka mittaa sivuston ja sovelluksen käyttöä, käsittelevät tietoja kyseisen alueen ulkopuolella.
Mistä sinä vastaat
- Portaalilinkit, jakolinkit ja kuittilinkit toimivat haltijatunnisteina: sisään pääsee kuka tahansa, jolla on linkki.
- MFA on valinnainen tiliä kohden, eikä sitä vaadita jokaiselta tililtä.
- Pidossa oleva tiedosto vaatii työtilan jäsenen toimenpiteitä.
- Poistetut tiedot voidaan palauttaa 30 päivän ajan, minkä jälkeen ne hävitetään lopullisesti.
Aloita ilman korttia
Neljätoista päivää, kaikki ominaisuudet käytössä. Avaa työtila, kerro AI:lle miten työskentelet ja kutsu asiakas hyväksymään.