Pojmy · 04
Bezpečnost
Tahle kapitola je nejdůležitější stránkou celého webu. Přečtěte si ji celou, i kdybyste ostatní jen prolistovali — chrání firemní systémy i vás osobně.
Kam tedy s tajemstvími: .env
Hesla, klíče a podobná tajemství přece jen musí být někde uložená, jinak by se aplikace
nepřipojila k databázi ani k žádné službě. Místo toho, aby byla natvrdo napsaná v kódu,
žijí v samostatném souboru s názvem .env — funguje jako uzamčená
zásuvka vedle kódu, ne jako součást samotného výkresu. Hodnotám uvnitř se říká
environment proměnné: aplikace si je při spuštění sama přečte
z prostředí, ve kterém běží, takže na vašem počítači může mít jiné heslo než na ostrém
serveru — kód zůstává pořád stejný.
Hodnoty výše jsou jen ukázkové — v reálném .env souboru budou skutečná
hesla a klíče konkrétní aplikace. Důležité je pravidlo: aplikace si hodnotu z
.env přečte a použije, ale natvrdo napsaná přímo v kódu být nesmí
— kód totiž běžně končí na GitHubu, .env tam nikdy.
.gitignore
Aby soubor .env omylem neskončil na GitHubu, hlídá ho soubor
.gitignore — seznam souborů a složek, které Git do repozitáře
nenahrává. Pozor: chrání jen soubory, které v repozitáři ještě nikdy nebyly.
Pokud se .env už jednou commitnul, přidání do .gitignore
ho zpětně neschová — soubor je potřeba z repozitáře odebrat a hodnoty v něm
brát jako uniklé (viz Když tajemství unikne).
Aby si ostatní na projektu věděli rady, jaké proměnné aplikace očekává, existuje vedle
.env ještě soubor .env.example — stejné názvy proměnných, ale
s prázdnými nebo vzorovými hodnotami. Ten se naopak commituje běžně.
Zapamatujte si tuhle dvojici: .env se nikdy necommituje, šablonou pro
ostatní je vždy .env.example.
Agenti a .env.agent
Claude běžně čte soubory ve vašem projektu, aby vám mohl pomáhat — a to znamená, že by
dokázal přečíst i ostrý soubor .env, kdybyste mu ho nezakryli. Proto mu ho
nezpřístupňujte. Když agent (Claude Code) potřebuje sám někam přistupovat — do API,
databáze nebo jiné služby — vytvoří se pro něj samostatný soubor
.env.agent: obsahuje jen tokeny s omezenými právy, určené
výhradně pro agenta, a stejně jako .env je i on v .gitignore.
Když chcete Claudovi říct, kde přístupy najde, do chatu patří jen název souboru — nikdy hodnota, kterou obsahuje:
Přístupové údaje máš v .env.agent, použij je.
Když tajemství unikne
Další železná pravidla
Pár dalších zásad, které platí bez výjimky:
- Nikdy nepoužívejte
git push --force. - Nikdy nemažte historii projektu.
- Osobní údaje zákazníků nepatří do repozitáře ani do chatu s Claudem.
- Když si nejste jistí, jestli je něco v pořádku poslat nebo smazat, zeptejte se Pavla dřív, než to uděláte.
