API klíče ověřují požadavky na lokalizační API a MCP server. Lingo.dev podporuje dva typy — vyberte si ten, který odpovídá tomu, kdo nebo co API volá.
Dva typy klíčů#
| Osobní | Servisní | |
|---|---|---|
| Vlastník | Uživatel, který ho vytvořil | Žádný — pro automatizaci |
| Autorizace | Dědí RBAC roli tvůrce a oprávnění pro engine | Má vlastní roli a/nebo rozsah pro jednotlivé enginy |
| Když vlastník ztratí přístup | Klíč o přístup přijde také | Beze změny; řídí se vlastní rolí / rozsahem klíče |
| Plán | Jakýkoli plán | Enterprise (vyžaduje RBAC entitlement) |
| Typické použití | Lokální vývoj, MCP, ad hoc skripty | CI/CD pipeline, produkční integrace |
Osobní klíče jsou výchozí volba. Servisní klíče jsou artefakt na úrovni organizace, nezávislý na konkrétním člověku — přesně to, co potřebujete pro přihlašovací údaje, které mají fungovat i po odchodu zaměstnanců nebo změně rolí.
Vytvoření klíče#
Na dashboardu otevřete stránku API Keys. Osobní a servisní klíče najdete na samostatných kartách — karta Service se zobrazí jen tehdy, pokud má vaše organizace plán Enterprise.
Klikněte na Create API key, zadejte název (např. "Local MCP", "Max's staging key") a zkopírujte klíč z dialogu o úspěšném vytvoření. Klíč zdědí vaši aktuální RBAC roli a oprávnění pro jednotlivé enginy.
Viditelnost klíče
Celý API klíč se zobrazí jen jednou při vytvoření. Zkopírujte si ho a bezpečně uložte — po zavření dialogu už ho nelze znovu získat.
Servisní klíče a RBAC#
Servisní klíče vycházejí ze stejného modelu jako uživatelé: uživatel může mít roli na úrovni organizace (zastřešující oprávnění přes Roles & Permissions) A/NEBO oprávnění pro jednotlivé enginy díky tomu, že je přidaný ke konkrétním enginům. Servisní klíč funguje stejně:
- Pouze role — oprávnění role platí pro celou organizaci. Pokud zahrnuje
engine:access, klíč má přístup ke všem enginům v organizaci. - Bez role + rozsah pro engine — klíč je omezený na enginy, které zaškrtnete při vytváření. Seznam můžete později upravit přes tlačítko Engines x/y vedle klíče.
- Role + rozsah pro engine — oba zdroje oprávnění se sčítají. Zastřešující role má přednost, pokud uděluje
engine:access; jinak se použije seznam pro jednotlivé enginy. - Ani jedno — klíč se ověří, ale nebude mít přístup k žádnému engine. Hodí se jako dočasná rezerva při nastavování rozsahu, ale v produkci nedává smysl.
Ochrana proti eskalaci oprávnění se uplatňuje při vytváření i úpravách:
- Vybraná role musí patřit do stejné organizace.
- Sada oprávnění role musí být podmnožinou
engine:access— širší role (například taková, která zahrnujeorg:manage_team) se zamítnou. - Do rozsahu klíče můžete přidat engine jen tehdy, pokud k němu už sami máte přístup.
Když vám vyprší plán Enterprise
Servisní klíče jsou součástí RBAC entitlement. Pokud o něj přijdete, každý servisní klíč v organizaci se deaktivuje — požadavky budou vracet 403 a zprávu odkazující na plán, ne na rozsah pro engine. Osobních klíčů se to netýká. Buď obnovte plán Enterprise, nebo přejděte na osobní API klíč.
Použití klíče#
API klíč posílejte v hlavičce X-API-Key u každého požadavku — přenáší se u obou typů stejným způsobem:
curl -X POST https://api.lingo.dev/process/localize \
-H "X-API-Key: your_api_key" \
-H "Content-Type: application/json" \
-d '{"engineId": "eng_abc123", "sourceLocale": "en", "targetLocale": "de", "data": {"greeting": "Hello"}}'Stejný klíč funguje jak pro localization API, tak pro MCP server.
Zabezpečení#
- Klíče se ukládají jako hashe — Lingo.dev nemůže klíč po vytvoření znovu zobrazit. Pro obměnu ho smažte a vytvořte znovu.
- Osobní klíče v reálném čase kopírují oprávnění svého tvůrce. Pokud je role tvůrce snížena nebo je odebráno oprávnění k engine, klíč při dalším volání přijde o stejný přístup.
- Osobní klíč, jehož tvůrce byl odebrán z organizace, funguje dál jen tehdy, když je RBAC vypnuté (legacy chování). Jakmile se RBAC zapne, přístup je odepřen — obměňte ho dřív, než osiří.
- Servisní klíče mají vlastní oprávnění. Úprava role nebo rozsahu na kartě Service se projeví okamžitě; smazání klíče ho zneplatní.
- Počet klíčů na organizaci není omezený.
