La conținut
Type — API pentru site
Secțiuni

Securitate

Cu cheia API se poate citi catalogul companiei și se pot crea cereri în numele site-ului ei. Tratați-o ca pe o parolă.

Cheia — doar pe server

  • Păstrați cheia în variabilele de mediu ale serverului (TYPE_API_KEY), nu în cod.
  • Niciodată în browser: nici în componentele de client, nici în variabilele NEXT_PUBLIC_* / VITE_*, nici în HTML-ul și JS-ul paginii. CRM-ul oricum nu răspunde browserului (fără CORS), iar pachetul @type/site-client aruncă o eroare la import într-un bundle de browser.
  • Niciodată în depozit: adăugați .env* în .gitignore; în README și exemple — doar înlocuitori de forma tk_<key_id>_<secret>. Cheile încep cu tk_ — asta ajută scanerele de secrete să găsească scurgerile.
  • Nu scrieți în jurnale cheia și antetul Authorization. Pachetul nu include cheia în mesajele erorilor.
  • Cheia — doar în antet. În adresă, cookie sau corp CRM-ul o respinge (400 api_key_misplaced): astfel de locuri rămân în jurnalele proxy-ului și în istoricul browserului.

Minimum de drepturi

  • Dați cheii site-ului doar dreptul „Chirii: site” (rental:site). Drepturile în plus (leads:write, deals:read…) măresc paguba la o scurgere.
  • Setați valabilitatea (recomandăm un an) și, dacă serverul are un IP fix, lista IP-urilor permise.
  • O cheie — un site. Pentru mediul de test creați o cheie separată.

Dacă cheia s-a scurs

  1. În CRM: Setări → Integrări → API → cheia → „Revocați”. Cheia nu mai funcționează imediat.
  2. Creați o cheie nouă (sau „Reemiteți” cu revocarea imediată a secretului vechi) și actualizați TYPE_API_KEY pe server.
  3. Uitați-vă în lista cheilor la ultima utilizare (ora, IP-ul, ruta) — dacă a fost ceva neobișnuit.
  4. Dacă cheia a ajuns în depozit — ștergerea commit-ului nu ajunge: cheia este deja compromisă și trebuie revocată.

Webhook

  • Verificați întotdeauna semnătura (X-Type-Signature) și ora (X-Type-Timestamp, fereastra de 300 s) înainte de a face ceva. Altfel oricine va putea goli cache-ul site-ului. Cum — în secțiunea „Webhook-uri”.
  • Comparați semnătura în timp constant.
  • Păstrați secretul webhook-ului la fel ca cheia — în variabila de mediu a serverului.
  • Dacă secretul s-a scurs — „Secret nou” în Setări → Chirii → Site; cel vechi nu mai funcționează imediat.

Datele vizitatorilor

  • Formularul de rezervare transmite în CRM numele, telefonul, e-mailul și mesajul oaspetelui. Trimiteți-le doar prin HTTPS de pe serverul dvs. și nu le păstrați pe site mai mult decât e nevoie pentru repetarea cererii.
  • Câmpul consent este acordul vizitatorului pentru prelucrarea datelor: trimiteți true doar dacă vizitatorul l-a dat cu adevărat.
  • Răspunsurile occupancy() nu conțin oaspeți și sume — doar intervalele ocupate.