greentic-setup 0.4.21

End-to-end bundle setup engine for the Greentic platform — pack discovery, QA-driven configuration, secrets persistence, and bundle lifecycle management
Documentation
{
  "cli.bundle.init.creating": "Creating bundle at {}...",
  "cli.bundle.init.created": "Bundle created at {}",
  "cli.bundle.init.exists": "Bundle already exists at {}",
  "cli.bundle.init.next_steps": "Next steps:",
  "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.add.adding": "Adding pack to bundle...",
  "cli.bundle.add.pack_ref": "  Pack ref: {}",
  "cli.bundle.add.bundle": "  Bundle: {}",
  "cli.bundle.add.tenant": "  Tenant: {}",
  "cli.bundle.add.team": "  Team: {}",
  "cli.bundle.add.env": "  Env: {}",
  "cli.bundle.add.created_structure": "Created bundle structure at {}",
  "cli.bundle.add.dry_run": "[dry-run] Would add pack to bundle",
  "cli.bundle.add.success": "Pack added to bundle successfully.",
  "cli.bundle.add.resolved": "  Resolved packs: {}",
  "cli.bundle.add.version_warning": "Warning: Version {} validation failed: {}",
  "cli.bundle.setup.setting_up": "Setting up provider...",
  "cli.bundle.setup.provider": "  Provider: {}",
  "cli.bundle.setup.domain": "  Domain: {}",
  "cli.bundle.setup.interactive_not_impl": "Interactive setup not yet implemented.",
  "cli.bundle.setup.use_answers": "Use --answers <file> to provide setup answers.",
  "cli.bundle.setup.use_emit_answers": "Or use --emit-answers <file> to generate answers template.",
  "cli.bundle.setup.dry_run": "[dry-run] Would setup provider: {}",
  "cli.bundle.setup.complete": "Provider setup complete: {}",
  "cli.bundle.setup.emit_written": "Answers template written to: {}",
  "cli.bundle.setup.emit_usage": "Edit and use with: greentic-setup bundle setup --answers {}",
  "cli.bundle.update.updating": "Updating provider configuration...",
  "cli.bundle.update.dry_run": "[dry-run] Would update provider: {}",
  "cli.bundle.update.complete": "Provider update complete: {}",
  "cli.bundle.update.emit_usage": "Edit and use with: greentic-setup bundle update --answers {}",
  "cli.bundle.remove.removing": "Removing provider...",
  "cli.bundle.remove.confirm": "This will remove the provider configuration.",
  "cli.bundle.remove.use_force": "Use --force to confirm.",
  "cli.bundle.remove.cancelled": "removal cancelled - use --force to confirm",
  "cli.bundle.remove.complete": "Provider removed: {}",
  "cli.bundle.build.building": "Building portable bundle...",
  "cli.bundle.build.output": "  Output: {}",
  "cli.bundle.build.running_doctor": "Running doctor validation...",
  "cli.bundle.build.success": "Bundle built successfully at {}",
  "cli.bundle.list.bundle": "Bundle: {}",
  "cli.bundle.list.domain": "Domain: {}",
  "cli.bundle.list.packs_found": "Packs found: {}",
  "cli.bundle.status.not_found": "Bundle not found: {}",
  "cli.bundle.status.valid_yes": "yes",
  "cli.bundle.status.valid_no": "no (missing greentic.demo.yaml)",
  "cli.bundle.status.packs": "Packs: {} installed",
  "cli.bundle.status.tenants": "Tenants: {}",
  "cli.error.answers_required": "--answers required in non-interactive mode",
  "cli.error.interactive_required": "interactive setup requires --answers file",
  "cli.error.invalid_bundle": "invalid bundle directory",
  "cli.error.failed_create_bundle": "failed to create bundle structure",
  "cli.error.failed_read_answers": "failed to read answers file",
  "cli.error.failed_build_plan": "failed to build plan",
  "cli.error.failed_execute_plan": "failed to execute plan",
  "cli.error.failed_emit_answers": "failed to emit answers template",
  "setup.discovering_packs": "Discovering packs in bundle...",
  "setup.found_packs": "Found {} pack(s): {}",
  "setup.plan.header": "Setup plan:",
  "setup.plan.step.discover": "Discover packs",
  "setup.plan.step.collect_answers": "Collect answers for {}",
  "setup.plan.step.seed_secrets": "Seed secrets for {}",
  "setup.plan.step.write_config": "Write config for {}",
  "setup.plan.step.run_setup": "Run setup flow for {}",
  "setup.plan.step.webhooks": "Register webhooks for {}",
  "setup.plan.step.resolve": "Generate resolved manifest",
  "setup.plan.step.validate": "Validate bundle",
  "setup.execute.success": "Setup complete: {}",
  "setup.execute.failed": "Setup failed: {}",
  "setup.answers.emitted": "Answers template written to {}",
  "setup.answers.loaded": "Loaded answers from {}",
  "setup.dry_run.header": "Setup plan (dry-run):",
  "setup.error.bundle_not_found": "Bundle not found: {}",
  "setup.error.protocol_not_supported": "Protocol not yet supported: {}",
  "setup.error.version_mismatch": "Tag version ({}) does not match crate version ({})",
  "setup.secrets.seeded": "Seeded {} secret(s) for provider={} tenant={}",
  "setup.secrets.failed": "Failed to seed secrets for provider={} tenant={}: {}",
  "setup.capability.resolved": "Resolved capability: pack_id={} stable_id={}",
  "setup.capability.not_found": "No capability '{}' found",
  "setup.state_store.upgraded": "State store upgraded to Redis: {}",
  "setup.state_store.fallback": "Using in-memory state store (no Redis URL available)",
  "setup.qa.question_prompt": "{}",
  "setup.qa.required_field": "This field is required",
  "setup.qa.invalid_choice": "Invalid choice. Options: {}",
  "setup.qa.secret_input": "Enter secret value (hidden):",
  "cli.bundle.status.bundle_label": "Bundle: {}",
  "cli.simple.bundle_required": "Bundle path required. Usage: greentic-setup [OPTIONS] <BUNDLE>",
  "cli.simple.header": "Greentic Setup",
  "cli.simple.interactive_mode": "Interactive wizard mode",
  "cli.simple.wizard_not_impl": "interactive wizard not yet implemented - use --answers <file>",
  "cli.simple.emit_usage": "Edit and use with: greentic-setup --answers {} {}",
  "cli.simple.dry_run": "[dry-run] Would setup bundle: {}",
  "cli.simple.extracting": "Extracting .gtbundle archive...",
  "cli.simple.extracted_to": "  Extracted to: {}",
  "cli.simple.expected_bundle_format": "expected directory or .gtbundle file: {}",
  "cli.help.for_help": "For help: greentic-setup --help",

  "ui.title": "Greentic Setup",
  "ui.description": "Configure {} provider(s) in {}",
  "ui.no_providers": "No providers found in bundle.",
  "ui.nothing_to_configure": "Nothing to configure.",
  "ui.discovering": "Discovering providers...",
  "ui.discovering_sub": "Reading bundle configuration",
  "ui.start_config": "Start Configuration",
  "ui.configure": "Configure {}",
  "ui.review_execute": "Review & Execute",
  "ui.close": "Close",
  "ui.back": "Back",
  "ui.continue": "Continue",
  "ui.execute_setup": "Execute Setup",
  "ui.new_setup": "New Setup",
  "ui.pending": "Pending",
  "ui.done": "Done",
  "ui.questions": "questions",
  "ui.scope.title": "Setup Scope",
  "ui.scope.description": "Configure the target tenant, environment, and team for this setup.",
  "ui.scope.hint": "These values determine where secrets and configuration are stored. Make sure they match your runtime settings.",
  "ui.scope.tenant": "Tenant",
  "ui.scope.env": "Environment",
  "ui.scope.env_help": "Must match GREENTIC_ENV used by the runtime (dev, local, test).",
  "ui.scope.team": "Team",
  "ui.scope.team_help": "Leave empty for default. Used to scope secrets per team.",
  "ui.scope.detected_tenant": "Detected from bundle: {}",
  "ui.dashboard.description": "Configure {} provider(s) in {}. Create multiple scopes for different tenants/environments.",
  "ui.dashboard.add_scope": "Add Scope",
  "ui.dashboard.export": "Export Answers",
  "ui.dashboard.delete": "Delete",
  "ui.dashboard.configured": "configured",
  "ui.dashboard.executed": "Executed",
  "ui.dashboard.back": "Back to Dashboard",
  "ui.export.title": "Export Answers",
  "ui.export.description": "Download configuration as a JSON answers file compatible with --answers mode.",
  "ui.export.password": "Encryption Password",
  "ui.export.password_hint": "Leave empty for no encryption",
  "ui.export.password_help": "If set, secret values will be encrypted with AES-256-GCM. You will need this password when using --answers --key.",
  "ui.export.download": "Download answers.json",
  "ui.import.dropzone": "Drop answers.json here or click to import",
  "ui.import.password_prompt": "This file contains encrypted secrets. Enter the decryption password:",
  "ui.import.parse_error": "Failed to parse file",
  "ui.import.decrypt_failed": "Decryption failed",
  "ui.import.no_scopes": "No valid scopes found in file.",
  "ui.shared.title": "Shared Configuration",
  "ui.shared.description": "These questions apply to all providers.",
  "ui.provider.configure": "Configure {}",
  "ui.review.title": "Review & Execute",
  "ui.review.description": "Review configuration before applying to bundle.",
  "ui.review.secret_mask": "********",
  "ui.review.yes": "Yes",
  "ui.review.no": "No",
  "ui.executing.title": "Running setup...",
  "ui.executing.sub": "Applying configuration to bundle",
  "ui.result.success.title": "Setup Complete",
  "ui.result.success.description": "Bundle configured successfully.",
  "ui.result.fail.title": "Setup Failed",
  "ui.result.fail.description": "Something went wrong during setup.",
  "ui.result.output": "Output",
  "ui.result.log": "Log",
  "ui.result.manual_steps": "Manual Steps Required",
  "ui.result.closed": "Setup closed.",
  "ui.result.closed_sub": "You can close this tab.",
  "ui.field.required": "{} is required.",
  "ui.select_action": "Select an action to get started.",

  "ui.q.public_base_url": "Public base URL",
  "ui.q.public_base_url.help": "Public-facing URL for webhook callbacks (e.g. https://xxxx.trycloudflare.com)",
  "ui.q.api_base_url": "API base URL",
  "ui.q.mode": "Mode",
  "ui.q.route": "Route",
  "ui.q.enabled": "Enable provider",
  "ui.q.base_url": "Base URL",
  "ui.q.default_channel": "Default channel",
  "ui.q.team_id": "Team ID",
  "ui.q.channel_id": "Channel ID",
  "ui.q.tenant_channel_id": "Tenant channel ID",
  "ui.q.default_room_id": "Default room ID",
  "ui.q.default_to_person_email": "Default person email",
  "ui.q.jwt_signing_key": "JWT signing key",
  "ui.q.jwt_signing_key.help": "Secret key used to sign Direct Line tokens. Use any random string (e.g. openssl rand -hex 32).",
  "ui.q.slack_bot_token": "Slack bot token",
  "ui.q.slack_app_id": "Slack App ID",
  "ui.q.slack_configuration_token": "Slack Configuration Token",
  "ui.q.ms_bot_app_id": "Bot App ID",
  "ui.q.ms_bot_app_id.help": "Microsoft Bot App ID from Azure Bot Service registration",
  "ui.q.ms_bot_app_password": "Bot App Password",
  "ui.q.webex_bot_token": "Webex bot token",
  "ui.q.oauth_enabled": "Enable OAuth login",
  "ui.q.oauth_enabled.help": "Require users to sign in before accessing the chat",
  "ui.q.oauth_enable_google": "Enable Google login",
  "ui.q.oauth_google_client_id": "Google Client ID",
  "ui.q.oauth_google_client_secret": "Google Client Secret",
  "ui.q.oauth_enable_microsoft": "Enable Microsoft login",
  "ui.q.oauth_microsoft_client_id": "Microsoft Client ID",
  "ui.q.oauth_microsoft_client_secret": "Microsoft Client Secret",
  "ui.q.oauth_enable_github": "Enable GitHub login",
  "ui.q.oauth_github_client_id": "GitHub Client ID",
  "ui.q.oauth_github_client_secret": "GitHub Client Secret",
  "ui.q.oauth_enable_custom": "Enable custom OIDC provider",
  "ui.q.oauth_custom_label": "Provider display name",
  "ui.q.oauth_custom_auth_url": "Authorization URL",
  "ui.q.oauth_custom_token_url": "Token URL",
  "ui.q.oauth_custom_client_id": "Client ID",
  "ui.q.oauth_custom_scopes": "Scopes"
}