greentic-setup-dev 1.1.27821248534

End-to-end bundle setup engine for the Greentic platform — pack discovery, QA-driven configuration, secrets persistence, and bundle lifecycle management
Documentation
{
  "cli.bundle.add.adding": "Adicionando pack ao bundle...",
  "cli.bundle.add.bundle": "  Bundle: {}",
  "cli.bundle.add.created_structure": "Estrutura do bundle criada em {}",
  "cli.bundle.add.dry_run": "[simulação] Adicionaria pack ao bundle",
  "cli.bundle.add.env": "  Ambiente: {}",
  "cli.bundle.add.pack_ref": "  Ref do pack: {}",
  "cli.bundle.add.resolved": "  Packs resolvidos: {}",
  "cli.bundle.add.success": "Pack adicionado ao bundle com sucesso.",
  "cli.bundle.add.team": "  Equipa: {}",
  "cli.bundle.add.tenant": "  Tenant: {}",
  "cli.bundle.add.version_warning": "Aviso: A validação da versão {} falhou: {}",
  "cli.bundle.build.building": "Construindo bundle portátil...",
  "cli.bundle.build.output": "  Saída: {}",
  "cli.bundle.build.running_doctor": "Executando validação doctor...",
  "cli.bundle.build.success": "Bundle construído com sucesso em {}",
  "cli.bundle.init.created": "Bundle criado em {}",
  "cli.bundle.init.creating": "Criando bundle em {}...",
  "cli.bundle.init.exists": "Bundle já existe em {}",
  "cli.bundle.init.next_steps": "Próximos passos:",
  "cli.bundle.init.step_add": "  1. greentic-setup bundle add <pack.gtpack> --bundle {}",
  "cli.bundle.init.step_setup": "  2. greentic-setup bundle setup --bundle {} --answers answers.yaml",
  "cli.bundle.list.bundle": "Bundle: {}",
  "cli.bundle.list.domain": "Domínio: {}",
  "cli.bundle.list.packs_found": "Packs encontrados: {}",
  "cli.bundle.remove.cancelled": "remoção cancelada - use --force para confirmar",
  "cli.bundle.remove.complete": "Provider removido: {}",
  "cli.bundle.remove.confirm": "Isto irá remover a configuração do provider.",
  "cli.bundle.remove.removing": "Removendo provider...",
  "cli.bundle.remove.use_force": "Use --force para confirmar.",
  "cli.bundle.setup.complete": "Configuração do provider concluída: {}",
  "cli.bundle.setup.domain": "  Domínio: {}",
  "cli.bundle.setup.dry_run": "[simulação] Configuraria provider: {}",
  "cli.bundle.setup.emit_usage": "Edite e use com: greentic-setup bundle setup --answers {}",
  "cli.bundle.setup.emit_written": "Modelo de respostas escrito em: {}",
  "cli.bundle.setup.env_bootstrap_created": "Ambiente `local` inicializado com associações de capacidades padrão em {}.",
  "cli.bundle.setup.interactive_not_impl": "Configuração interativa ainda não implementada.",
  "cli.bundle.setup.provider": "  Provider: {}",
  "cli.bundle.setup.setting_up": "Configurando provider...",
  "cli.bundle.setup.use_answers": "Use --answers <ficheiro> para fornecer respostas de configuração.",
  "cli.bundle.setup.use_emit_answers": "Ou use --emit-answers <ficheiro> para gerar modelo de respostas.",
  "cli.bundle.status.bundle_label": "Bundle: {}",
  "cli.bundle.status.not_found": "Bundle não encontrado: {}",
  "cli.bundle.status.packs": "Packs: {} instalados",
  "cli.bundle.status.tenants": "Tenants: {}",
  "cli.bundle.status.valid_no": "não (falta greentic.demo.yaml)",
  "cli.bundle.status.valid_yes": "sim",
  "cli.bundle.update.complete": "Atualização do provider concluída: {}",
  "cli.bundle.update.dry_run": "[simulação] Atualizaria provider: {}",
  "cli.bundle.update.emit_usage": "Edite e use com: greentic-setup bundle update --answers {}",
  "cli.bundle.update.updating": "Atualizando configuração do provider...",
  "cli.error.answers_required": "--answers obrigatório no modo não interativo",
  "cli.error.failed_build_plan": "falha ao construir plano",
  "cli.error.failed_create_bundle": "falha ao criar estrutura do bundle",
  "cli.error.failed_emit_answers": "falha ao gerar modelo de respostas",
  "cli.error.failed_execute_plan": "falha ao executar plano",
  "cli.error.failed_read_answers": "falha ao ler ficheiro de respostas",
  "cli.error.interactive_required": "configuração interativa requer ficheiro --answers",
  "cli.error.invalid_bundle": "diretório de bundle inválido",
  "cli.help.for_help": "Para ajuda: greentic-setup --help",
  "cli.simple.bundle_required": "Caminho do bundle obrigatório. Utilização: greentic-setup [OPÇÕES] <BUNDLE>",
  "cli.simple.dry_run": "[simulação] Configuraria bundle: {}",
  "cli.simple.emit_usage": "Edite e use com: greentic-setup --answers {} {}",
  "cli.simple.expected_bundle_format": "esperado diretório ou ficheiro .gtbundle: {}",
  "cli.simple.extracted_to": "  Extraído para: {}",
  "cli.simple.extracting": "A extrair arquivo .gtbundle...",
  "cli.simple.header": "Greentic Setup",
  "cli.simple.interactive_mode": "Modo assistente interativo",
  "cli.simple.wizard_not_impl": "assistente interativo ainda não implementado - use --answers <ficheiro>",
  "env_wizard.basic_mode": "Modo básico — passe --advanced para também definir id do cliente, substituições de configuração, hosts de rota, fluxo de boas-vindas e refs de segredo do endpoint.",
  "env_wizard.dry_run_secrets_note": "Nota: --dry-run apenas pré-visualiza — os {} valor(es) de segredo colado(s) que você inseriu NÃO são gravados no armazenamento. Execute novamente sem --dry-run e confirme o plano para persistir esses valores.",
  "env_wizard.form.desc": "Cria um manifesto `greentic.env-manifest.v1` — o documento durável e reaplicável de estado desejado para um ambiente.",
  "env_wizard.form.title": "Configuração do ambiente",
  "env_wizard.list.bundles.item_label": "pacote",
  "env_wizard.list.messaging_endpoints.item_label": "Endpoint de mensagens",
  "env_wizard.list.secrets.item_label": "segredo",
  "env_wizard.manifest_prompt": "Arquivo de manifesto [{}]: ",
  "env_wizard.q.bundle_id.desc": "Chave natural — única dentro do manifesto.",
  "env_wizard.q.bundle_id.title": "Id do pacote",
  "env_wizard.q.bundle_path.desc": "`.gtbundle` local. Caminhos relativos são resolvidos em relação ao diretório do arquivo de manifesto.",
  "env_wizard.q.bundle_path.title": "Caminho do pacote",
  "env_wizard.q.bundles.desc": "Implantações de pacotes para este ambiente.",
  "env_wizard.q.bundles.title": "Pacotes",
  "env_wizard.q.config_overrides.desc": "Objeto JSON `{\"<pack_id>\": {\"<key>\": <value>}}`. Vazio = deixar intocado; `{}` = limpeza explícita.",
  "env_wizard.q.config_overrides.title": "Substituições de configuração (JSON)",
  "env_wizard.q.customer_id.desc": "Principal de faturamento — exigido pelo apply para ambientes não `local`.",
  "env_wizard.q.customer_id.title": "Id do cliente",
  "env_wizard.q.environment_id.desc": "Ambiente ao qual aplicar. `local` é inicializado com associações env-pack padrão; qualquer outro id já deve existir (apply o reconcilia; a criação de ambientes não locais é reservada para o armazenamento do operador).",
  "env_wizard.q.environment_id.title": "Id do ambiente",
  "env_wizard.q.from_env.desc": "Nome da variável que contém o valor do segredo (ex.: TELEGRAM_BOT_TOKEN) — o nome, nunca o valor. Obrigatório quando a origem é `env`.",
  "env_wizard.q.from_env.title": "Nome da variável de ambiente",
  "env_wizard.q.links.desc": "`bundle_id`s separados por vírgulas que este endpoint admite.",
  "env_wizard.q.links.title": "Ids dos pacotes vinculados",
  "env_wizard.q.messaging_endpoints.desc": "Endpoints de mensagens e seus vínculos de pacotes.",
  "env_wizard.q.messaging_endpoints.title": "Endpoints de mensagens",
  "env_wizard.q.name.desc": "Identificador local do manifesto e nome de exibição. Chave de upsert junto com o tipo de provedor.",
  "env_wizard.q.name.title": "Nome do endpoint",
  "env_wizard.q.path.desc": "`<tenant>/<team>/<pack>/<name>`, ex.: default/_/messaging-telegram/telegram_bot_token",
  "env_wizard.q.path.title": "Caminho do segredo",
  "env_wizard.q.provider_type.desc": "Classe do provedor, ex.: messaging.telegram.bot.",
  "env_wizard.q.provider_type.title": "Tipo de provedor",
  "env_wizard.q.public_base_url.desc": "URL apenas de origem persistida no ambiente (ex.: https://bots.example.com). Deixe vazio para manter o valor atual.",
  "env_wizard.q.public_base_url.title": "URL base pública",
  "env_wizard.q.route_hosts.desc": "Nomes de hosts separados por vírgulas para a associação de rota.",
  "env_wizard.q.route_hosts.title": "Hosts de rota",
  "env_wizard.q.route_path_prefixes.desc": "Prefixos de caminho HTTP separados por vírgulas, cada um começando com `/` (ex.: /legal).",
  "env_wizard.q.route_path_prefixes.title": "Prefixos de caminho da rota",
  "env_wizard.q.route_team.desc": "Equipe para o seletor de tenant da associação de rota — defina junto com `route_tenant`.",
  "env_wizard.q.route_team.title": "Equipe da rota",
  "env_wizard.q.route_tenant.desc": "Tenant para o seletor de tenant da associação de rota — defina junto com `route_team`.",
  "env_wizard.q.route_tenant.title": "Tenant da rota",
  "env_wizard.q.secret_refs.desc": "Refs de segredos separadas por vírgulas encaminhadas na criação do endpoint.",
  "env_wizard.q.secret_refs.title": "Refs de segredos",
  "env_wizard.q.secrets.desc": "Entradas de segredo do armazenamento de desenvolvimento. O valor de cada segredo vem de uma variável de ambiente nomeada ou de um valor que você cola — valores nunca entram em um manifesto.",
  "env_wizard.q.secrets.title": "Segredos",
  "env_wizard.q.source.desc": "`env` lê o valor de uma variável de ambiente nomeada no momento do apply; `paste` permite inserir o valor interativamente — ele é armazenado no armazenamento de segredos do ambiente, nunca no manifesto.",
  "env_wizard.q.source.title": "Origem do segredo",
  "env_wizard.q.trust_root_bootstrap.desc": "Inicializa a raiz de confiança do ambiente com a chave do operador local (idempotente; exigido uma vez antes que pacotes possam ser preparados).",
  "env_wizard.q.trust_root_bootstrap.title": "Inicializar a raiz de confiança?",
  "env_wizard.q.webchat_gui.desc": "Disponibilize a consola de webchat integrada para poder conversar com este ambiente abrindo o seu URL num navegador. Ativa por predefinição para `local`; o caminho do chat é apenas de loopback e não autenticado, por isso mantenha-o desativado em ambientes expostos num URL público, a menos que seja essa a sua intenção.",
  "env_wizard.q.webchat_gui.title": "Adicionar uma GUI de webchat?",
  "env_wizard.q.welcome_bundle_id.desc": "Defina os três campos welcome_* em conjunto (ou nenhum).",
  "env_wizard.q.welcome_bundle_id.title": "Fluxo de boas-vindas: id do bundle",
  "env_wizard.q.welcome_flow_id.desc": "Defina os três campos welcome_* em conjunto (ou nenhum).",
  "env_wizard.q.welcome_flow_id.title": "Fluxo de boas-vindas: id do fluxo",
  "env_wizard.q.welcome_pack_id.desc": "Defina os três campos welcome_* em conjunto (ou nenhum).",
  "env_wizard.q.welcome_pack_id.title": "Fluxo de boas-vindas: id do pacote",
  "env_wizard.secrets.choose": "Para cada um, escolha de onde vem o valor: uma variável de ambiente\nnomeada, ou cole-o agora. Os valores colados são guardados no armazenamento\nde segredos do ambiente — nunca escritos no manifesto.",
  "env_wizard.secrets.entry": "{} — {} (bundle: {}){}",
  "env_wizard.secrets.envvar_prompt": "nome da variável de ambiente [{}]: ",
  "env_wizard.secrets.envvar_required": "É obrigatório indicar o nome de uma variável de ambiente.",
  "env_wizard.secrets.keep_env_note": "nota: a manter o segredo existente `{}` (bundle não reconstruído)",
  "env_wizard.secrets.keep_paste_note": "nota: a manter o segredo colado existente `{}` (bundle não reconstruído)",
  "env_wizard.secrets.need": "Segredos — os bundles configurados precisam de {} segredo(s).",
  "env_wizard.secrets.none": "Segredos — os bundles configurados não declaram segredos; nada a introduzir.",
  "env_wizard.secrets.optional_suffix": " [opcional]",
  "env_wizard.secrets.paste_prompt": "colar valor (oculto, linha única): ",
  "env_wizard.secrets.paste_prompt_keep": "colar valor (oculto, linha única; vazio mantém o valor guardado): ",
  "env_wizard.secrets.paste_required": "É obrigatório indicar um valor.",
  "env_wizard.secrets.path": "caminho do segredo: {}",
  "env_wizard.secrets.source_invalid": "Introduza 1 (variável de ambiente) ou 2 (colar).",
  "env_wizard.secrets.source_prompt": "valor de [1] variável de ambiente ou [2] colar agora? [{}]: ",
  "env_wizard.wrote_manifest": "Escreveu `{}` — o manifesto é o artefacto durável; mantenha-o no controlo de versões.",
  "setup.answers.emitted": "Modelo de respostas escrito em {}",
  "setup.answers.loaded": "Respostas carregadas de {}",
  "setup.capability.not_found": "Capacidade '{}' não encontrada",
  "setup.capability.resolved": "Capacidade resolvida: pack_id={} stable_id={}",
  "setup.discovering_packs": "Descobrindo packs no bundle...",
  "setup.dry_run.header": "Plano de configuração (simulação):",
  "setup.error.bundle_not_found": "Bundle não encontrado: {}",
  "setup.error.protocol_not_supported": "Protocolo ainda não suportado: {}",
  "setup.error.version_mismatch": "Versão da tag ({}) não corresponde à versão do crate ({})",
  "setup.execute.failed": "Configuração falhou: {}",
  "setup.execute.success": "Configuração concluída: {}",
  "setup.found_packs": "Encontrados {} pack(s): {}",
  "setup.plan.header": "Plano de configuração:",
  "setup.plan.step.collect_answers": "Recolher respostas para {}",
  "setup.plan.step.discover": "Descobrir packs",
  "setup.plan.step.resolve": "Gerar manifesto resolvido",
  "setup.plan.step.run_setup": "Executar fluxo de configuração para {}",
  "setup.plan.step.seed_secrets": "Inserir segredos para {}",
  "setup.plan.step.validate": "Validar bundle",
  "setup.plan.step.webhooks": "Registar webhooks para {}",
  "setup.plan.step.write_config": "Escrever configuração para {}",
  "setup.qa.invalid_choice": "Escolha inválida. Opções: {}",
  "setup.qa.list.add_first": "Adicionar {}? [y/N] ",
  "setup.qa.list.add_more": "Adicionar outro {}? [y/N] ",
  "setup.qa.list.field_required_row": "Este campo é obrigatório — é necessária pelo menos uma linha.",
  "setup.qa.list.max_reached": "(máximo de {} linhas atingido)",
  "setup.qa.list.min_required": "São necessárias pelo menos {} linha(s) — obteve {}. Escreva 'y' para adicionar outra.",
  "setup.qa.list.row_dropped": "(linha descartada — as colunas obrigatórias estavam vazias)",
  "setup.qa.list.row_header": "Linha #{}:",
  "setup.qa.prompt.configuring": "A configurar {}: {}",
  "setup.qa.prompt.default": "(predefinição: {}) ",
  "setup.qa.prompt.field_required": "Este campo é obrigatório.",
  "setup.qa.prompt.invalid_choice": "Escolha inválida. Opções: {}",
  "setup.qa.prompt.invalid_format": "Formato inválido. Padrão esperado: {}",
  "setup.qa.prompt.mode_advanced": " (avançado)",
  "setup.qa.prompt.optional_marker": " (opcional)",
  "setup.qa.prompt.required_marker": " (obrigatório)",
  "setup.qa.question_prompt": "{}",
  "setup.qa.required_field": "Este campo é obrigatório",
  "setup.qa.secret_input": "Introduza valor do segredo (oculto):",
  "setup.secrets.failed": "Falha ao inserir segredos para provider={} tenant={}: {}",
  "setup.secrets.seeded": "Inseridos {} segredo(s) para provider={} tenant={}",
  "setup.state_store.fallback": "A usar armazenamento de estado em memória (URL Redis não disponível)",
  "setup.state_store.upgraded": "Armazenamento de estado atualizado para Redis: {}",
  "ui.back": "Voltar",
  "ui.close": "Fechar",
  "ui.configure": "Configurar {}",
  "ui.continue": "Continuar",
  "ui.dashboard.add_scope": "Adicionar Escopo",
  "ui.dashboard.back": "Voltar ao Painel",
  "ui.dashboard.configured": "configurado",
  "ui.dashboard.delete": "Excluir",
  "ui.dashboard.description": "Configure {} provedor(es) em {}. Crie vários escopos para diferentes locatários/ambientes.",
  "ui.dashboard.executed": "Executado",
  "ui.dashboard.export": "Exportar Respostas",
  "ui.description": "Configurar {} provedor(es) em {}",
  "ui.discovering": "Descobrindo provedores...",
  "ui.discovering_sub": "Lendo a configuração do bundle",
  "ui.done": "Concluído",
  "ui.execute_setup": "Executar Configuração",
  "ui.executing.sub": "Aplicando configuração ao bundle",
  "ui.executing.title": "Executando configuração...",
  "ui.export.description": "Baixe a configuração como um arquivo JSON de respostas compatível com o modo --answers.",
  "ui.export.download": "Baixar answers.json",
  "ui.export.password": "Senha de Criptografia",
  "ui.export.password_help": "Se definida, os valores secretos serão criptografados com AES-256-GCM. Você precisará desta senha ao usar --answers --key.",
  "ui.export.password_hint": "Deixe em branco para não criptografar",
  "ui.export.title": "Exportar Respostas",
  "ui.field.required": "{} é obrigatório.",
  "ui.import.decrypt_failed": "Falha na descriptografia",
  "ui.import.dropzone": "Solte answers.json aqui ou clique para importar",
  "ui.import.no_scopes": "Nenhum escopo válido encontrado no arquivo.",
  "ui.import.parse_error": "Falha ao analisar o arquivo",
  "ui.import.password_prompt": "Este arquivo contém segredos criptografados. Insira a senha de descriptografia:",
  "ui.new_setup": "Nova Configuração",
  "ui.no_providers": "Nenhum provedor encontrado no bundle.",
  "ui.nothing_to_configure": "Nada para configurar.",
  "ui.pending": "Pendente",
  "ui.provider.configure": "Configurar {}",
  "ui.q.api_base_url": "URL base da API",
  "ui.q.base_url": "URL base",
  "ui.q.channel_id": "ID do canal",
  "ui.q.default_channel": "Canal padrão",
  "ui.q.default_room_id": "ID da sala padrão",
  "ui.q.default_to_person_email": "E-mail padrão da pessoa",
  "ui.q.enabled": "Ativar provedor",
  "ui.q.jwt_signing_key": "Chave de assinatura JWT",
  "ui.q.jwt_signing_key.help": "Chave secreta usada para assinar tokens do Direct Line. Use qualquer string aleatória (por exemplo, openssl rand -hex 32).",
  "ui.q.mode": "Modo",
  "ui.q.ms_bot_app_id": "ID do aplicativo do bot",
  "ui.q.ms_bot_app_id.help": "ID do aplicativo do Microsoft Bot do registro do Azure Bot Service",
  "ui.q.ms_bot_app_password": "Senha do aplicativo do bot",
  "ui.q.oauth_custom_auth_url": "URL de autorização",
  "ui.q.oauth_custom_client_id": "ID do cliente",
  "ui.q.oauth_custom_label": "Nome de exibição do provedor",
  "ui.q.oauth_custom_scopes": "Escopos",
  "ui.q.oauth_custom_token_url": "URL do token",
  "ui.q.oauth_enable_custom": "Ativar provedor OIDC personalizado",
  "ui.q.oauth_enable_github": "Ativar login com GitHub",
  "ui.q.oauth_enable_google": "Ativar login com Google",
  "ui.q.oauth_enable_microsoft": "Ativar login com Microsoft",
  "ui.q.oauth_enabled": "Ativar login OAuth",
  "ui.q.oauth_enabled.help": "Exigir que os usuários façam login antes de acessar o chat",
  "ui.q.oauth_github_client_id": "ID do cliente GitHub",
  "ui.q.oauth_github_client_secret": "Segredo do cliente GitHub",
  "ui.q.oauth_google_client_id": "ID do cliente Google",
  "ui.q.oauth_google_client_secret": "Segredo do cliente Google",
  "ui.q.oauth_microsoft_client_id": "ID do cliente Microsoft",
  "ui.q.oauth_microsoft_client_secret": "Segredo do cliente Microsoft",
  "ui.q.public_base_url": "URL base pública",
  "ui.q.public_base_url.help": "URL pública para callbacks de webhook (por exemplo, https://xxxx.trycloudflare.com)",
  "ui.q.route": "Rota",
  "ui.q.slack_app_id": "ID do aplicativo Slack",
  "ui.q.slack_bot_token": "Token do bot do Slack",
  "ui.q.slack_configuration_token": "Token de configuração do Slack",
  "ui.q.team_id": "ID da equipe",
  "ui.q.tenant_channel_id": "ID do canal do tenant",
  "ui.q.webex_bot_token": "Token do bot do Webex",
  "ui.questions": "perguntas",
  "ui.result.closed": "Configuração fechada.",
  "ui.result.closed_sub": "Você pode fechar esta aba.",
  "ui.result.fail.description": "Algo deu errado durante a configuração.",
  "ui.result.fail.title": "Falha na Configuração",
  "ui.result.log": "Log",
  "ui.result.manual_steps": "Etapas Manuais Necessárias",
  "ui.result.output": "Saída",
  "ui.result.success.description": "Bundle configurado com sucesso.",
  "ui.result.success.title": "Configuração Concluída",
  "ui.review.description": "Revise a configuração antes de aplicá-la ao bundle.",
  "ui.review.no": "Não",
  "ui.review.secret_mask": "********",
  "ui.review.title": "Revisar e Executar",
  "ui.review.yes": "Sim",
  "ui.review_execute": "Revisar e Executar",
  "ui.scope.description": "Configure o locatário, o ambiente e a equipe de destino para esta configuração.",
  "ui.scope.detected_tenant": "Detectado do pacote: {}",
  "ui.scope.env": "Ambiente",
  "ui.scope.env_help": "Deve corresponder a GREENTIC_ENV usado pelo runtime (dev, local, test).",
  "ui.scope.hint": "Esses valores determinam onde os segredos e a configuração são armazenados. Certifique-se de que correspondam às suas configurações de runtime.",
  "ui.scope.team": "Equipe",
  "ui.scope.team_help": "Deixe em branco para o padrão. Usado para limitar o escopo dos segredos por equipe.",
  "ui.scope.tenant": "Locatário",
  "ui.scope.title": "Escopo de Configuração",
  "ui.select_action": "Selecione uma ação para começar.",
  "ui.shared.description": "Estas perguntas se aplicam a todos os provedores.",
  "ui.shared.title": "Configuração Compartilhada",
  "ui.start_config": "Iniciar Configuração",
  "ui.title": "Configuração do Greentic"
}