Opções
-
--host <url>Host de API contra o qual autenticar. -
--token <key>Passar a chave sem prompt em vez de a introduzir interativamente.
Exemplo
sonenta login --host https://api.sonenta.com CLI
v0.2.1 · npm · MITUma linha de comandos leve e programável para tudo o que, de outra forma, faria no dashboard: importar um projeto i18next existente, enviar e obter traduções, comparar a CI com o remoto, publicar uma release CDN e capturar um snapshot dos bundles para um build offline-first. MIT, no npm.
Rutura · 0.1 → 0.2
Toda a CLI passa agora pela superfície MCP: precisa de uma chave de API com o scope mcp:* — chaves limitadas ao projeto devolvem 403. Gere uma no dashboard em Org Settings → API Keys e reemita qualquer chave usada com a 0.1.
Apenas npm — não existe fórmula Homebrew para a CLI. Requer Node 18 ou mais recente e instala o comando sonenta.
terminal 1# instalar uma vez, globalmente2npm i -g @sonenta/cli 4# ou executar sem instalar5npx @sonenta/cli <command> Cada chamada envia Authorization: ApiKey <prefix>.<secret> com o scope mcp:*. Inicie sessão uma vez para guardar a chave em ~/.sonenta/credentials, ou defina SONENTA_TOKEN na CI.
terminal 1# interativo — guarda a chave por host em ~/.sonenta/credentials (0600)2sonenta login --host https://api.sonenta.com3API key: snt_live_••••••••.••••••••••••••••4✓ guardado para https://api.sonenta.com 6# CI — sem prompt, a chave é lida do ambiente7export SONENTA_TOKEN=snt_live_<prefix>.<secret>8sonenta push Ordem de resolução, vence a primeira: a variável de ambiente SONENTA_TOKEN, depois ~/.sonenta/credentials para o host ativo. Gere a chave em Org Settings → API Keys com o scope mcp:*.
sonenta init escreve um sonenta.config.json no seu repositório (resolvido subindo a partir do diretório de trabalho). As credenciais ficam à parte, por utilizador, e nunca são commitadas.
sonenta.config.json 1# commitado no seu repositório — nenhum segredo aqui2{3 "host": "https://api.sonenta.com",4 "project_uuid": "<project_uuid>",5 "version_slug": "main"6} ~/.sonenta/credentials 1# ~/.sonenta/credentials — modo 0600, por utilizador, nunca commitar2{ "default": "https://api.sonenta.com",3 "hosts": {4 "https://api.sonenta.com": { "api_key": "snt_live_..." }5 } } version_slug assume por omissão main. Mantenha a chave de API fora de sonenta.config.json — o seu lugar é apenas o ficheiro de credenciais ou SONENTA_TOKEN.
Agrupados pelo que está a fazer — configurar autenticação e config, inspecionar um projeto, ou sincronizar traduções. Cada comando passa pela superfície MCP e respeita sonenta.config.json.
--host <url> Host de API contra o qual autenticar. --token <key> Passar a chave sem prompt em vez de a introduzir interativamente. sonenta login --host https://api.sonenta.com Sem opções.
sonenta logout Sem opções.
sonenta whoami --project <uuid> UUID do projeto a escrever na config (obrigatório). --version <slug> Slug de versão a visar (por omissão main). --force Sobrescrever um ficheiro de config existente. sonenta init --project <uuid> --version main Sem opções.
sonenta projects list --namespace <slug> Restringir a um namespace. sonenta keys list --namespace common --language <code> Limitar a comparação a um idioma. --namespace <slug> Limitar a comparação a um namespace. --src <dir> Diretório de origem (por omissão locales). sonenta status --language <code> Filtrar por idioma. --namespace <slug> Filtrar por namespace. --limit <n> Limitar o número de linhas. sonenta missing --limit 50 --dry-run Apenas pré-visualização; não envia nada. --status <draft|translated> Estado de entrada (por omissão translated). --language <code> Forçar o idioma em vez de o inferir a partir do caminho. --namespace <slug> Forçar o namespace (obrigatório para um <lang>.json simples). --version <slug> Visar uma versão não predefinida. sonenta import locales/fr/common.json --src <dir> Diretório de origem (por omissão locales). --dry-run Apenas pré-visualização; não envia nada. --status <state> Estado de entrada (por omissão translated). sonenta push --dry-run --language <code> Limitar a um idioma. --namespace <slug> Limitar a um namespace. --dest <dir> Diretório de destino (por omissão locales). sonenta pull --language fr --nested Emitir árvores aninhadas em vez de chaves planas. --out <dir> Escrever ficheiros num diretório em vez de stdout. sonenta export --nested --out ./dump --version <slug> Versão a publicar (por omissão main). --dry-run Apenas pré-visualização; não publica nada. sonenta releases publish --format <ts|json> Formato de saída: ts (por omissão) ou json. --out <file> Escrever num ficheiro em vez de stdout. --cdn <base> Base CDN (por omissão https://cdn.sonenta.com). sonenta snapshot --out src/sonenta-bundles.ts Cada comando aceita também --host <url> para substituir o host de API configurado durante uma única execução.
A atualizar a partir da 0.1? Duas alterações exigem ação.
mcp:* — chaves limitadas ao projeto devolvem agora 403. push envia agora toda a sua árvore locales/ numa única chamada de import (anteriormente era uma criação de chave mais um PUT por tradução). É idempotente e mostra criadas / atualizadas / inalteradas. import, export, releases publish, snapshot e projects list são novos na 0.2.0.