octopize.deploy_tool 2.7.1__tar.gz → 2.7.3__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- octopize_deploy_tool-2.7.3/PKG-INFO +620 -0
- octopize_deploy_tool-2.7.3/README.md +591 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/pyproject.toml +2 -1
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/src/octopize_avatar_deploy/__init__.py +1 -1
- octopize_deploy_tool-2.7.3/src/octopize_avatar_deploy/application/stop_command.py +114 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/src/octopize_avatar_deploy/cli.py +212 -49
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/src/octopize_avatar_deploy/steps/nginx.py +170 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/src/octopize_avatar_deploy/templates/docker-compose.yml.template +19 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/__init__.py +3 -0
- octopize_deploy_tool-2.7.3/tests/fixtures/apply_help/output.txt +13 -0
- octopize_deploy_tool-2.7.3/tests/fixtures/authentik_migrate_help/output.txt +34 -0
- {octopize_deploy_tool-2.7.1/tests/fixtures/config_round_trip_second → octopize_deploy_tool-2.7.3/tests/fixtures/basic_deployment}/expected/.deployment-state.yaml +1 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/cloud_storage/expected/.deployment-state.yaml +1 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/config_round_trip_first/expected/.deployment-state.yaml +1 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/config_round_trip_first/expected/deployment-config.yaml +1 -0
- {octopize_deploy_tool-2.7.1/tests/fixtures/basic_deployment → octopize_deploy_tool-2.7.3/tests/fixtures/config_round_trip_second}/expected/.deployment-state.yaml +1 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/configure_happy_path/expected/.deployment_states/v1/deployment_state.yaml +3 -0
- octopize_deploy_tool-2.7.3/tests/fixtures/configure_help/output.txt +26 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/deploy_help/output.txt +6 -2
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/dev_mode_deployment/expected/.deployment-state.yaml +1 -0
- octopize_deploy_tool-2.7.3/tests/fixtures/diff_help/output.txt +23 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/generate_env_help/output.txt +6 -5
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/generate_env_output_dir_error/output.txt +2 -2
- octopize_deploy_tool-2.7.3/tests/fixtures/help/output.txt +30 -0
- octopize_deploy_tool-2.7.3/tests/fixtures/install_help/output.txt +17 -0
- octopize_deploy_tool-2.7.3/tests/fixtures/migrate_help/output.txt +20 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/missing_subcommand/output.txt +2 -2
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/no_telemetry/expected/.deployment-state.yaml +1 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/non_interactive_complete/expected/.deployment-state.yaml +1 -0
- octopize_deploy_tool-2.7.3/tests/fixtures/render_help/output.txt +15 -0
- octopize_deploy_tool-2.7.3/tests/fixtures/start_help/output.txt +10 -0
- octopize_deploy_tool-2.7.3/tests/fixtures/stop_help/output.txt +10 -0
- octopize_deploy_tool-2.7.3/tests/fixtures/update_help/output.txt +19 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/helpers/fakes.py +52 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/helpers/normalization.py +5 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/integration/test_cli_integration.py +51 -1
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/unit/infra/test_configure_runner_adapter.py +25 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/unit/steps/test_nginx.py +120 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/unit/test_deployment_configurator.py +55 -4
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/unit/test_preflight_checks.py +1 -27
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/unit/test_renderer.py +69 -0
- octopize_deploy_tool-2.7.3/tests/unit/test_stop_command.py +150 -0
- octopize_deploy_tool-2.7.1/PKG-INFO +0 -401
- octopize_deploy_tool-2.7.1/README.md +0 -373
- octopize_deploy_tool-2.7.1/tests/fixtures/help/output.txt +0 -26
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/.gitignore +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/infra/deployment/deployment-tool/src/octopize_avatar_deploy/steps/user.py +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/src/octopize_avatar_deploy/application/__init__.py +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/src/octopize_avatar_deploy/application/apply_command.py +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/src/octopize_avatar_deploy/application/checks.py +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/src/octopize_avatar_deploy/application/commands/install_command.py +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/src/octopize_avatar_deploy/application/commands/migrate_command.py +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/src/octopize_avatar_deploy/application/commands/subcommand_ports.py +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/src/octopize_avatar_deploy/application/commands/update_command.py +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/src/octopize_avatar_deploy/application/configure_command.py +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/src/octopize_avatar_deploy/application/configure_resume_policy.py +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/src/octopize_avatar_deploy/application/deployment_paths.py +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/src/octopize_avatar_deploy/application/diff_command.py +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/src/octopize_avatar_deploy/application/ports.py +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/src/octopize_avatar_deploy/application/render_command.py +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/src/octopize_avatar_deploy/application/start_command.py +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/src/octopize_avatar_deploy/authentik_migration.py +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/src/octopize_avatar_deploy/cli_test_harness.py +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/src/octopize_avatar_deploy/components.py +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/src/octopize_avatar_deploy/configurator.py +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/src/octopize_avatar_deploy/configure.py +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/src/octopize_avatar_deploy/defaults.yaml +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/src/octopize_avatar_deploy/deployment_mode.py +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/src/octopize_avatar_deploy/domain/__init__.py +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/src/octopize_avatar_deploy/domain/configure_preset.py +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/src/octopize_avatar_deploy/domain/deployment_item.py +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/src/octopize_avatar_deploy/domain/deployment_item_registry.py +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/src/octopize_avatar_deploy/domain/deployment_state.py +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/src/octopize_avatar_deploy/domain/validation.py +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/src/octopize_avatar_deploy/domain/version_id.py +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/src/octopize_avatar_deploy/download_templates.py +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/src/octopize_avatar_deploy/generate_env.py +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/src/octopize_avatar_deploy/generate_env_paths.py +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/src/octopize_avatar_deploy/infra/__init__.py +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/src/octopize_avatar_deploy/infra/configurator_runner_adapter.py +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/src/octopize_avatar_deploy/infra/current_version_resolver.py +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/src/octopize_avatar_deploy/infra/docker_client.py +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/src/octopize_avatar_deploy/infra/filesystem_directory_copier.py +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/src/octopize_avatar_deploy/infra/filesystem_directory_reader.py +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/src/octopize_avatar_deploy/infra/filesystem_file_writer.py +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/src/octopize_avatar_deploy/infra/filesystem_legacy_source.py +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/src/octopize_avatar_deploy/infra/filesystem_symlink_updater.py +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/src/octopize_avatar_deploy/infra/in_memory_state_repository.py +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/src/octopize_avatar_deploy/infra/noop_docker_client.py +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/src/octopize_avatar_deploy/infra/package_defaults_source.py +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/src/octopize_avatar_deploy/infra/package_template_provider.py +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/src/octopize_avatar_deploy/infra/package_version_provider.py +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/src/octopize_avatar_deploy/infra/preset_loader.py +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/src/octopize_avatar_deploy/infra/system_clock.py +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/src/octopize_avatar_deploy/infra/yaml_config_source.py +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/src/octopize_avatar_deploy/infra/yaml_state_repository.py +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/src/octopize_avatar_deploy/input_gatherer.py +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/src/octopize_avatar_deploy/normalizers.py +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/src/octopize_avatar_deploy/output_spec.py +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/src/octopize_avatar_deploy/printer.py +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/src/octopize_avatar_deploy/public_url.py +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/src/octopize_avatar_deploy/renderer.py +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/src/octopize_avatar_deploy/state_manager.py +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/src/octopize_avatar_deploy/steps/__init__.py +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/src/octopize_avatar_deploy/steps/api_local_source.py +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/src/octopize_avatar_deploy/steps/authentik.py +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/src/octopize_avatar_deploy/steps/authentik_blueprint.py +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/src/octopize_avatar_deploy/steps/base.py +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/src/octopize_avatar_deploy/steps/component_selection.py +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/src/octopize_avatar_deploy/steps/database.py +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/src/octopize_avatar_deploy/steps/email.py +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/src/octopize_avatar_deploy/steps/local_source.py +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/src/octopize_avatar_deploy/steps/logging.py +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/src/octopize_avatar_deploy/steps/required.py +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/src/octopize_avatar_deploy/steps/service_urls.py +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/src/octopize_avatar_deploy/steps/storage.py +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/src/octopize_avatar_deploy/steps/target_environment.py +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/src/octopize_avatar_deploy/steps/telemetry.py +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/src/octopize_avatar_deploy/steps/user.py +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/src/octopize_avatar_deploy/template_provisioning.py +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/src/octopize_avatar_deploy/templates/.env.template +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/src/octopize_avatar_deploy/templates/.template-version +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/src/octopize_avatar_deploy/templates/_env_fragment_api.template +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/src/octopize_avatar_deploy/templates/_env_fragment_infra.template +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/src/octopize_avatar_deploy/templates/_env_fragment_web.template +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/src/octopize_avatar_deploy/templates/api.env.template +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/src/octopize_avatar_deploy/templates/authentik/branding/favicon.ico +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/src/octopize_avatar_deploy/templates/authentik/branding/logo.png +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/src/octopize_avatar_deploy/templates/authentik/custom-templates/email_account_confirmation.html +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/src/octopize_avatar_deploy/templates/authentik/custom-templates/email_account_exists.html +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/src/octopize_avatar_deploy/templates/authentik/custom-templates/email_account_invitation.html +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/src/octopize_avatar_deploy/templates/authentik/custom-templates/email_forgotten_password.html +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/src/octopize_avatar_deploy/templates/authentik/custom-templates/email_password_changed.html +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/src/octopize_avatar_deploy/templates/authentik/custom-templates/email_password_reset.html +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/src/octopize_avatar_deploy/templates/authentik/octopize-avatar-blueprint.yaml +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/src/octopize_avatar_deploy/templates/authentik/translations.json +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/src/octopize_avatar_deploy/templates/compose.override.yaml.template +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/src/octopize_avatar_deploy/templates/nginx.conf.template +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/src/octopize_avatar_deploy/templates/python_client.env.template +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/src/octopize_avatar_deploy/templates/web.env.template +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/src/octopize_avatar_deploy/topology_urls.py +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/src/octopize_avatar_deploy/url_contract.py +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/src/octopize_avatar_deploy/version_compat.py +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/TESTING.md +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/__init__.py +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/conftest.py +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/authentik_migration/licenses.csv +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/authentik_migration/organizations.csv +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/authentik_migration/users.csv +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/basic_deployment/expected/.env +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/basic_deployment/expected/authentik/branding/favicon.ico +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/basic_deployment/expected/authentik/branding/logo.png +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/basic_deployment/expected/authentik/custom-templates/email_account_confirmation.html +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/basic_deployment/expected/authentik/custom-templates/email_account_exists.html +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/basic_deployment/expected/authentik/custom-templates/email_account_invitation.html +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/basic_deployment/expected/authentik/custom-templates/email_forgotten_password.html +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/basic_deployment/expected/authentik/custom-templates/email_password_changed.html +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/basic_deployment/expected/authentik/custom-templates/email_password_reset.html +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/basic_deployment/expected/authentik/octopize-avatar-blueprint.yaml +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/basic_deployment/expected/authentik/translations.json +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/basic_deployment/expected/docker-compose.yml +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/basic_deployment/expected/nginx/nginx.conf +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/basic_deployment/input.yaml +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/basic_deployment/output.txt +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/cloud_storage/expected/.env +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/cloud_storage/expected/authentik/branding/favicon.ico +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/cloud_storage/expected/authentik/branding/logo.png +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/cloud_storage/expected/authentik/custom-templates/email_account_confirmation.html +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/cloud_storage/expected/authentik/custom-templates/email_account_exists.html +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/cloud_storage/expected/authentik/custom-templates/email_account_invitation.html +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/cloud_storage/expected/authentik/custom-templates/email_forgotten_password.html +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/cloud_storage/expected/authentik/custom-templates/email_password_changed.html +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/cloud_storage/expected/authentik/custom-templates/email_password_reset.html +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/cloud_storage/expected/authentik/octopize-avatar-blueprint.yaml +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/cloud_storage/expected/authentik/translations.json +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/cloud_storage/expected/docker-compose.yml +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/cloud_storage/expected/nginx/nginx.conf +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/cloud_storage/input.yaml +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/cloud_storage/output.txt +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/config_not_found/output.txt +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/config_round_trip_first/expected/.env +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/config_round_trip_first/expected/authentik/branding/favicon.ico +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/config_round_trip_first/expected/authentik/branding/logo.png +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/config_round_trip_first/expected/authentik/custom-templates/email_account_confirmation.html +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/config_round_trip_first/expected/authentik/custom-templates/email_account_exists.html +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/config_round_trip_first/expected/authentik/custom-templates/email_account_invitation.html +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/config_round_trip_first/expected/authentik/custom-templates/email_forgotten_password.html +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/config_round_trip_first/expected/authentik/custom-templates/email_password_changed.html +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/config_round_trip_first/expected/authentik/custom-templates/email_password_reset.html +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/config_round_trip_first/expected/authentik/octopize-avatar-blueprint.yaml +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/config_round_trip_first/expected/authentik/translations.json +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/config_round_trip_first/expected/docker-compose.yml +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/config_round_trip_first/expected/nginx/nginx.conf +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/config_round_trip_second/expected/.env +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/config_round_trip_second/expected/authentik/branding/favicon.ico +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/config_round_trip_second/expected/authentik/branding/logo.png +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/config_round_trip_second/expected/authentik/custom-templates/email_account_confirmation.html +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/config_round_trip_second/expected/authentik/custom-templates/email_account_exists.html +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/config_round_trip_second/expected/authentik/custom-templates/email_account_invitation.html +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/config_round_trip_second/expected/authentik/custom-templates/email_forgotten_password.html +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/config_round_trip_second/expected/authentik/custom-templates/email_password_changed.html +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/config_round_trip_second/expected/authentik/custom-templates/email_password_reset.html +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/config_round_trip_second/expected/authentik/octopize-avatar-blueprint.yaml +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/config_round_trip_second/expected/authentik/translations.json +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/config_round_trip_second/expected/docker-compose.yml +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/config_round_trip_second/expected/nginx/nginx.conf +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/configure_happy_path/input.yaml +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/configure_happy_path/output.txt +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/dev_mode_deployment/expected/.env +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/dev_mode_deployment/expected/authentik/branding/favicon.ico +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/dev_mode_deployment/expected/authentik/branding/logo.png +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/dev_mode_deployment/expected/authentik/custom-templates/email_account_confirmation.html +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/dev_mode_deployment/expected/authentik/custom-templates/email_account_exists.html +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/dev_mode_deployment/expected/authentik/custom-templates/email_account_invitation.html +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/dev_mode_deployment/expected/authentik/custom-templates/email_forgotten_password.html +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/dev_mode_deployment/expected/authentik/custom-templates/email_password_changed.html +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/dev_mode_deployment/expected/authentik/custom-templates/email_password_reset.html +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/dev_mode_deployment/expected/authentik/octopize-avatar-blueprint.yaml +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/dev_mode_deployment/expected/authentik/translations.json +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/dev_mode_deployment/expected/compose.override.yaml +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/dev_mode_deployment/expected/docker-compose.yml +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/dev_mode_deployment/expected/nginx/nginx.conf +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/dev_mode_deployment/expected/test-.npmrc +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/dev_mode_deployment/expected/test-avatar-repo/services/api/main.py +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/dev_mode_deployment/expected/test-avatar-website/package.json +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/dev_mode_deployment/input.yaml +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/dev_mode_deployment/output.txt +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/diff_integration/from/.env +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/diff_integration/from/nginx/nginx.conf +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/diff_integration/output.txt +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/diff_integration/to/.env +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/diff_integration/to/docker-compose.yml +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/diff_integration/to/nginx/nginx.conf +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/install_apply_output/.env +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/install_apply_output/.permissions.json +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/install_apply_output/authentik/branding/favicon.ico +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/install_apply_output/authentik/branding/logo.png +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/install_apply_output/authentik/custom-templates/email_account_confirmation.html +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/install_apply_output/authentik/custom-templates/email_account_exists.html +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/install_apply_output/authentik/custom-templates/email_account_invitation.html +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/install_apply_output/authentik/custom-templates/email_forgotten_password.html +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/install_apply_output/authentik/custom-templates/email_password_changed.html +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/install_apply_output/authentik/custom-templates/email_password_reset.html +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/install_apply_output/authentik/octopize-avatar-blueprint.yaml +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/install_apply_output/authentik/translations.json +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/install_apply_output/docker-compose.yml +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/install_apply_output/nginx/nginx.conf +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/install_render_output/.env +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/install_render_output/.permissions.json +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/install_render_output/authentik/branding/favicon.ico +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/install_render_output/authentik/branding/logo.png +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/install_render_output/authentik/custom-templates/email_account_confirmation.html +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/install_render_output/authentik/custom-templates/email_account_exists.html +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/install_render_output/authentik/custom-templates/email_account_invitation.html +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/install_render_output/authentik/custom-templates/email_forgotten_password.html +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/install_render_output/authentik/custom-templates/email_password_changed.html +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/install_render_output/authentik/custom-templates/email_password_reset.html +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/install_render_output/authentik/octopize-avatar-blueprint.yaml +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/install_render_output/authentik/translations.json +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/install_render_output/docker-compose.yml +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/install_render_output/nginx/nginx.conf +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/invalid_port_config/config.yaml +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/invalid_port_config/output.txt +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/invalid_url_config/config.yaml +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/invalid_url_config/output.txt +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/malformed_yaml/config.yaml +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/malformed_yaml/output.txt +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/no_telemetry/expected/.env +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/no_telemetry/expected/authentik/branding/favicon.ico +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/no_telemetry/expected/authentik/branding/logo.png +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/no_telemetry/expected/authentik/custom-templates/email_account_confirmation.html +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/no_telemetry/expected/authentik/custom-templates/email_account_exists.html +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/no_telemetry/expected/authentik/custom-templates/email_account_invitation.html +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/no_telemetry/expected/authentik/custom-templates/email_forgotten_password.html +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/no_telemetry/expected/authentik/custom-templates/email_password_changed.html +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/no_telemetry/expected/authentik/custom-templates/email_password_reset.html +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/no_telemetry/expected/authentik/octopize-avatar-blueprint.yaml +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/no_telemetry/expected/authentik/translations.json +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/no_telemetry/expected/docker-compose.yml +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/no_telemetry/expected/nginx/nginx.conf +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/no_telemetry/input.yaml +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/no_telemetry/output.txt +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/non_interactive_complete/config.yaml +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/non_interactive_complete/expected/.env +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/non_interactive_complete/expected/authentik/branding/favicon.ico +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/non_interactive_complete/expected/authentik/branding/logo.png +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/non_interactive_complete/expected/authentik/custom-templates/email_account_confirmation.html +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/non_interactive_complete/expected/authentik/custom-templates/email_account_exists.html +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/non_interactive_complete/expected/authentik/custom-templates/email_account_invitation.html +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/non_interactive_complete/expected/authentik/custom-templates/email_forgotten_password.html +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/non_interactive_complete/expected/authentik/custom-templates/email_password_changed.html +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/non_interactive_complete/expected/authentik/custom-templates/email_password_reset.html +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/non_interactive_complete/expected/authentik/octopize-avatar-blueprint.yaml +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/non_interactive_complete/expected/authentik/translations.json +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/non_interactive_complete/expected/docker-compose.yml +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/non_interactive_complete/expected/nginx/nginx.conf +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/non_interactive_complete/output.txt +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/non_interactive_incomplete_config/config.yaml +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/non_interactive_incomplete_config/output.txt +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/non_interactive_no_config/output.txt +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/non_interactive_partial_config/config.yaml +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/non_interactive_partial_config/output.txt +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/output_dir_nested/output.txt +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/output_dir_permission_denied/output.txt +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/prompt_help/input.yaml +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/prompt_help/output.txt +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/resume_interrupted/first_run/output.txt +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/resume_interrupted/input_first_run.yaml +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/resume_interrupted/input_resume.yaml +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/resume_interrupted/resume/output.txt +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/save_config_interactive/output.txt +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/save_config_with_existing/config.yaml +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/save_config_with_existing/input.yaml +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/save_config_with_existing/output.txt +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/template_from_local_verbose/output.txt +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/type_mismatch_config/config.yaml +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/type_mismatch_config/output.txt +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/update_interactive_diff/base_v1/generated_files/.env +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/update_interactive_diff/expected_apply_output/.env +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/update_interactive_diff/expected_apply_output/.permissions.json +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/update_interactive_diff/expected_apply_output/authentik/branding/favicon.ico +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/update_interactive_diff/expected_apply_output/authentik/branding/logo.png +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/update_interactive_diff/expected_apply_output/authentik/custom-templates/email_account_confirmation.html +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/update_interactive_diff/expected_apply_output/authentik/custom-templates/email_account_exists.html +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/update_interactive_diff/expected_apply_output/authentik/custom-templates/email_account_invitation.html +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/update_interactive_diff/expected_apply_output/authentik/custom-templates/email_forgotten_password.html +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/update_interactive_diff/expected_apply_output/authentik/custom-templates/email_password_changed.html +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/update_interactive_diff/expected_apply_output/authentik/custom-templates/email_password_reset.html +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/update_interactive_diff/expected_apply_output/authentik/octopize-avatar-blueprint.yaml +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/update_interactive_diff/expected_apply_output/authentik/translations.json +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/update_interactive_diff/expected_apply_output/docker-compose.yml +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/update_interactive_diff/expected_apply_output/nginx/nginx.conf +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/update_interactive_diff/expected_render_output/.env +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/update_interactive_diff/expected_render_output/.permissions.json +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/update_interactive_diff/expected_render_output/authentik/branding/favicon.ico +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/update_interactive_diff/expected_render_output/authentik/branding/logo.png +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/update_interactive_diff/expected_render_output/authentik/custom-templates/email_account_confirmation.html +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/update_interactive_diff/expected_render_output/authentik/custom-templates/email_account_exists.html +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/update_interactive_diff/expected_render_output/authentik/custom-templates/email_account_invitation.html +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/update_interactive_diff/expected_render_output/authentik/custom-templates/email_forgotten_password.html +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/update_interactive_diff/expected_render_output/authentik/custom-templates/email_password_changed.html +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/update_interactive_diff/expected_render_output/authentik/custom-templates/email_password_reset.html +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/update_interactive_diff/expected_render_output/authentik/octopize-avatar-blueprint.yaml +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/update_interactive_diff/expected_render_output/authentik/translations.json +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/update_interactive_diff/expected_render_output/docker-compose.yml +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/update_interactive_diff/expected_render_output/nginx/nginx.conf +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/update_noninteractive_clean/base_v1/generated_files/.env +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/update_noninteractive_clean/expected_apply_output/.env +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/update_noninteractive_clean/expected_apply_output/.permissions.json +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/update_noninteractive_clean/expected_apply_output/authentik/branding/favicon.ico +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/update_noninteractive_clean/expected_apply_output/authentik/branding/logo.png +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/update_noninteractive_clean/expected_apply_output/authentik/custom-templates/email_account_confirmation.html +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/update_noninteractive_clean/expected_apply_output/authentik/custom-templates/email_account_exists.html +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/update_noninteractive_clean/expected_apply_output/authentik/custom-templates/email_account_invitation.html +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/update_noninteractive_clean/expected_apply_output/authentik/custom-templates/email_forgotten_password.html +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/update_noninteractive_clean/expected_apply_output/authentik/custom-templates/email_password_changed.html +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/update_noninteractive_clean/expected_apply_output/authentik/custom-templates/email_password_reset.html +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/update_noninteractive_clean/expected_apply_output/authentik/octopize-avatar-blueprint.yaml +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/update_noninteractive_clean/expected_apply_output/authentik/translations.json +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/update_noninteractive_clean/expected_apply_output/docker-compose.yml +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/update_noninteractive_clean/expected_apply_output/nginx/nginx.conf +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/update_noninteractive_clean/expected_render_output/.env +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/update_noninteractive_clean/expected_render_output/.permissions.json +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/update_noninteractive_clean/expected_render_output/authentik/branding/favicon.ico +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/update_noninteractive_clean/expected_render_output/authentik/branding/logo.png +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/update_noninteractive_clean/expected_render_output/authentik/custom-templates/email_account_confirmation.html +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/update_noninteractive_clean/expected_render_output/authentik/custom-templates/email_account_exists.html +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/update_noninteractive_clean/expected_render_output/authentik/custom-templates/email_account_invitation.html +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/update_noninteractive_clean/expected_render_output/authentik/custom-templates/email_forgotten_password.html +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/update_noninteractive_clean/expected_render_output/authentik/custom-templates/email_password_changed.html +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/update_noninteractive_clean/expected_render_output/authentik/custom-templates/email_password_reset.html +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/update_noninteractive_clean/expected_render_output/authentik/octopize-avatar-blueprint.yaml +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/update_noninteractive_clean/expected_render_output/authentik/translations.json +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/update_noninteractive_clean/expected_render_output/docker-compose.yml +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/fixtures/update_noninteractive_clean/expected_render_output/nginx/nginx.conf +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/helpers/__init__.py +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/helpers/fixture_dir_comparison.py +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/helpers/printers.py +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/integration/__init__.py +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/integration/test_configure_command.py +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/integration/test_diff_command.py +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/integration/test_generate_env.py +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/integration/test_install_command.py +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/integration/test_update_command.py +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/test_cli_harness.py +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/unit/infra/__init__.py +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/unit/infra/conftest.py +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/unit/infra/test_filesystem_directory_copier.py +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/unit/infra/test_filesystem_legacy_source.py +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/unit/infra/test_preset_loader.py +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/unit/infra/test_yaml_config_source.py +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/unit/infra/test_yaml_deployment_state_repository.py +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/unit/steps/test_api_local_source.py +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/unit/steps/test_authentik.py +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/unit/steps/test_authentik_blueprint.py +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/unit/steps/test_base.py +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/unit/steps/test_component_selection.py +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/unit/steps/test_database.py +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/unit/steps/test_email.py +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/unit/steps/test_local_source.py +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/unit/steps/test_logging.py +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/unit/steps/test_required.py +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/unit/steps/test_service_urls.py +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/unit/steps/test_state_manager.py +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/unit/steps/test_storage.py +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/unit/steps/test_target_environment.py +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/unit/steps/test_telemetry.py +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/unit/steps/test_user.py +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/unit/test_apply_command.py +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/unit/test_authentik_client.py +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/unit/test_authentik_migration.py +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/unit/test_compare_helpers.py +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/unit/test_components.py +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/unit/test_configurator.py +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/unit/test_configure_command.py +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/unit/test_deployment_item.py +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/unit/test_deployment_runner.py +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/unit/test_diff_command.py +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/unit/test_generate_env_cli.py +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/unit/test_generic_prompt.py +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/unit/test_input_gatherer.py +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/unit/test_install_command.py +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/unit/test_migrate_command.py +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/unit/test_normalizers.py +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/unit/test_output_spec.py +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/unit/test_printer.py +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/unit/test_public_url.py +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/unit/test_render_command.py +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/unit/test_rich_implementations.py +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/unit/test_step_filtering.py +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/unit/test_topology_urls.py +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/unit/test_update_command.py +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/unit/test_version_id.py +0 -0
- {octopize_deploy_tool-2.7.1 → octopize_deploy_tool-2.7.3}/tests/unit/test_version_validation.py +0 -0
|
@@ -0,0 +1,620 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: octopize.deploy_tool
|
|
3
|
+
Version: 2.7.3
|
|
4
|
+
Summary: Deployment configuration tool for Octopize Avatar platform
|
|
5
|
+
Project-URL: Homepage, https://octopize.io
|
|
6
|
+
Project-URL: Documentation, https://docs.octopize.io/docs/deploying/self-hosted
|
|
7
|
+
Project-URL: Repository, https://github.com/octopize/avatar
|
|
8
|
+
Project-URL: Issues, https://github.com/octopize/avatar/issues
|
|
9
|
+
Author-email: Octopize <contact@octopize.io>
|
|
10
|
+
License: MIT
|
|
11
|
+
Keywords: avatar,configuration,deployment,octopize
|
|
12
|
+
Classifier: Development Status :: 4 - Beta
|
|
13
|
+
Classifier: Intended Audience :: Developers
|
|
14
|
+
Classifier: Intended Audience :: System Administrators
|
|
15
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
16
|
+
Classifier: Operating System :: OS Independent
|
|
17
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
18
|
+
Classifier: Topic :: System :: Installation/Setup
|
|
19
|
+
Classifier: Topic :: System :: Systems Administration
|
|
20
|
+
Requires-Python: >=3.13
|
|
21
|
+
Requires-Dist: httpx>=0.28.0
|
|
22
|
+
Requires-Dist: jinja2>=3.1.0
|
|
23
|
+
Requires-Dist: pandas>=3.0.0
|
|
24
|
+
Requires-Dist: python-on-whales>=0.76.0
|
|
25
|
+
Requires-Dist: pyyaml>=6.0
|
|
26
|
+
Requires-Dist: rich-argparse>=1.8.0
|
|
27
|
+
Requires-Dist: rich>=13.0.0
|
|
28
|
+
Description-Content-Type: text/markdown
|
|
29
|
+
|
|
30
|
+
# Octopize Avatar Deployment Tool
|
|
31
|
+
|
|
32
|
+
This package provides the `octopize-deploy-tool` CLI for operating a self-hosted Octopize Avatar
|
|
33
|
+
deployment. It bundles deployment templates for each release so it works without fetching files
|
|
34
|
+
from GitHub.
|
|
35
|
+
|
|
36
|
+
Available commands:
|
|
37
|
+
|
|
38
|
+
- **`install`** — first-time setup: collects configuration interactively and generates all
|
|
39
|
+
deployment files under a versioned app root directory.
|
|
40
|
+
- **`update`** — reconfigure an existing deployment: re-runs the configuration wizard seeded from
|
|
41
|
+
the current state and regenerates the deployment files.
|
|
42
|
+
- **`migrate`** — migrates an existing flat deployment (from the legacy layout) to the new
|
|
43
|
+
versioned directory structure.
|
|
44
|
+
- **`start`** — creates required Docker volumes and starts the deployment stack with
|
|
45
|
+
`docker compose up`.
|
|
46
|
+
- **`stop`** — suspends all running services with `docker compose stop`, preserving
|
|
47
|
+
containers and volumes for a fast restart.
|
|
48
|
+
- **`generate-env`** — generates per-component `.env` files for local development.
|
|
49
|
+
- **`authentik-migrate`** — migrates existing user data from CSV exports into
|
|
50
|
+
[authentik](https://goauthentik.io/), the identity provider bundled with Avatar.
|
|
51
|
+
|
|
52
|
+
## Installation
|
|
53
|
+
|
|
54
|
+
### Option 1 — uvx (no install required, recommended for one-shot use)
|
|
55
|
+
|
|
56
|
+
[uv](https://docs.astral.sh/uv/) can run the tool directly from PyPI without a permanent install.
|
|
57
|
+
If you don't have `uv` yet:
|
|
58
|
+
|
|
59
|
+
```bash
|
|
60
|
+
curl -LsSf https://astral.sh/uv/install.sh | sh
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
Then run any command directly:
|
|
64
|
+
|
|
65
|
+
```bash
|
|
66
|
+
uvx octopize-deploy-tool install --app-root ./app/avatar
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
### Option 2 — virtual environment
|
|
70
|
+
|
|
71
|
+
Modern Linux distributions and macOS prevent installing packages into the system Python
|
|
72
|
+
(PEP 668 — "externally managed environment"). A virtual environment avoids that:
|
|
73
|
+
|
|
74
|
+
```bash
|
|
75
|
+
python -m venv .venv
|
|
76
|
+
source .venv/bin/activate # Windows: .venv\Scripts\activate
|
|
77
|
+
pip install octopize-deploy-tool
|
|
78
|
+
octopize-deploy-tool install --app-root ./app/avatar
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
### Option 3 — global pip
|
|
82
|
+
|
|
83
|
+
If your system Python allows global installs:
|
|
84
|
+
|
|
85
|
+
```bash
|
|
86
|
+
pip install octopize-deploy-tool
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
Verify the CLI is available:
|
|
90
|
+
|
|
91
|
+
```bash
|
|
92
|
+
octopize-deploy-tool --help
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
### Option 4 — Docker (if PyPI is not accessible)
|
|
96
|
+
|
|
97
|
+
If PyPI is blocked in your environment (air-gapped networks, corporate proxies, or registries
|
|
98
|
+
that allow [quay.io](https://quay.io/octopize) but not PyPI), a pre-built Docker image is
|
|
99
|
+
available:
|
|
100
|
+
|
|
101
|
+
```bash
|
|
102
|
+
docker pull quay.io/octopize/deploy-tool:latest
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
See the [Docker](#docker) section below for full usage examples for each command.
|
|
106
|
+
|
|
107
|
+
## Quick Start
|
|
108
|
+
|
|
109
|
+
Set up a new deployment in two steps:
|
|
110
|
+
|
|
111
|
+
1. Run the configuration wizard to generate all deployment files:
|
|
112
|
+
|
|
113
|
+
```bash
|
|
114
|
+
octopize-deploy-tool install --app-root ./app/avatar
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
2. Start the deployment:
|
|
118
|
+
|
|
119
|
+
```bash
|
|
120
|
+
octopize-deploy-tool start --app-root ./app/avatar
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
## Commands: When to Use What
|
|
124
|
+
|
|
125
|
+
| Command | Use when |
|
|
126
|
+
| --------- | -------------------------------------------------------------------------------- |
|
|
127
|
+
| `install` | Setting up a new Avatar deployment for the first time |
|
|
128
|
+
| `update` | Upgrading an existing deployment to a newer version of the Avatar application |
|
|
129
|
+
| `migrate` | Moving a deployment set up with the legacy layout to the new versioned structure |
|
|
130
|
+
| `start` | Bringing a configured deployment live, or restarting after a host reboot |
|
|
131
|
+
| `stop` | Suspending the running stack temporarily (preserves data; fast to restart) |
|
|
132
|
+
|
|
133
|
+
### `install`
|
|
134
|
+
|
|
135
|
+
Use `install` when you are setting up Avatar for the first time. It runs the full configuration
|
|
136
|
+
wizard, collects all required values interactively (or from a seed config file), generates all
|
|
137
|
+
deployment files under a versioned directory tree, and leaves the deployment ready to start.
|
|
138
|
+
|
|
139
|
+
```bash
|
|
140
|
+
octopize-deploy-tool install --app-root ./app/avatar
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
To pre-populate answers from a YAML config file:
|
|
144
|
+
|
|
145
|
+
```bash
|
|
146
|
+
octopize-deploy-tool install \
|
|
147
|
+
--app-root ./app/avatar \
|
|
148
|
+
--from-config config.yaml \
|
|
149
|
+
--non-interactive
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
Common `install` options:
|
|
153
|
+
|
|
154
|
+
```text
|
|
155
|
+
--app-root PATH Root directory for the deployment (default: current directory)
|
|
156
|
+
--from-config PATH YAML seed config to pre-populate answers
|
|
157
|
+
--non-interactive Run without prompts; fails fast if any required value is missing
|
|
158
|
+
--verbose Show detailed progress output
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
### `update`
|
|
162
|
+
|
|
163
|
+
Use `update` when you are upgrading to a newer version of the Avatar application. It carries your
|
|
164
|
+
existing configuration forward unchanged, re-renders the deployment files using the new templates
|
|
165
|
+
bundled in the updated deploy tool, diffs the result against the currently running files, and
|
|
166
|
+
applies the changes.
|
|
167
|
+
|
|
168
|
+
```bash
|
|
169
|
+
octopize-deploy-tool update --app-root ./app/avatar
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
After `update`, run `start` to apply the new files to the running stack:
|
|
173
|
+
|
|
174
|
+
```bash
|
|
175
|
+
octopize-deploy-tool start --app-root ./app/avatar
|
|
176
|
+
```
|
|
177
|
+
|
|
178
|
+
> **Need to change a configuration value** (URL, TLS certificate, email settings, …)?
|
|
179
|
+
> `update` is not the right tool for that — it carries existing values forward without
|
|
180
|
+
> re-asking questions. To go through the configuration wizard again, use:
|
|
181
|
+
>
|
|
182
|
+
> ```bash
|
|
183
|
+
> octopize-deploy-tool configure --fresh --app-root ./app/avatar
|
|
184
|
+
> ```
|
|
185
|
+
|
|
186
|
+
Common `update` options:
|
|
187
|
+
|
|
188
|
+
```text
|
|
189
|
+
--app-root PATH Root directory for the deployment (default: current directory)
|
|
190
|
+
--non-interactive Run without prompts
|
|
191
|
+
--verbose Show detailed progress output
|
|
192
|
+
```
|
|
193
|
+
|
|
194
|
+
### `migrate`
|
|
195
|
+
|
|
196
|
+
Use `migrate` when you have a deployment that was generated by the legacy flat layout (a directory
|
|
197
|
+
containing `.env` and `.secrets/`) and want to bring it under the new versioned directory
|
|
198
|
+
structure. `migrate` reads the existing `.env` and `.secrets/` files to pre-seed all configuration
|
|
199
|
+
values so you do not have to re-enter them.
|
|
200
|
+
|
|
201
|
+
```bash
|
|
202
|
+
octopize-deploy-tool migrate \
|
|
203
|
+
--app-root ./app/avatar-new \
|
|
204
|
+
--from-legacy ./app/avatar-old
|
|
205
|
+
```
|
|
206
|
+
|
|
207
|
+
After `migrate`, run `start` to bring the migrated deployment live:
|
|
208
|
+
|
|
209
|
+
```bash
|
|
210
|
+
octopize-deploy-tool start --app-root ./app/avatar-new
|
|
211
|
+
```
|
|
212
|
+
|
|
213
|
+
Common `migrate` options:
|
|
214
|
+
|
|
215
|
+
```text
|
|
216
|
+
--app-root PATH Root directory for the new versioned deployment (default: current directory)
|
|
217
|
+
--from-legacy DIR Path to the existing flat deployment directory (required)
|
|
218
|
+
--non-interactive Run without prompts
|
|
219
|
+
--verbose Show detailed progress output
|
|
220
|
+
```
|
|
221
|
+
|
|
222
|
+
### `start`
|
|
223
|
+
|
|
224
|
+
Use `start` to create the required Docker volumes and bring the deployment stack live. Run it after
|
|
225
|
+
`install`, `migrate`, or `update`. `start` is idempotent — if a volume already exists it is left
|
|
226
|
+
unchanged, making it safe to re-run after a host reboot.
|
|
227
|
+
|
|
228
|
+
```bash
|
|
229
|
+
octopize-deploy-tool start --app-root ./app/avatar
|
|
230
|
+
```
|
|
231
|
+
|
|
232
|
+
Common `start` options:
|
|
233
|
+
|
|
234
|
+
```text
|
|
235
|
+
--app-root PATH Root directory for the deployment (default: current directory)
|
|
236
|
+
--verbose Show detailed progress output
|
|
237
|
+
```
|
|
238
|
+
|
|
239
|
+
### `stop`
|
|
240
|
+
|
|
241
|
+
Use `stop` to suspend the running stack without removing containers or volumes. This is the
|
|
242
|
+
complement of `start` — services can be brought back up quickly with `start` without losing
|
|
243
|
+
any data.
|
|
244
|
+
|
|
245
|
+
```bash
|
|
246
|
+
octopize-deploy-tool stop --app-root ./app/avatar
|
|
247
|
+
```
|
|
248
|
+
|
|
249
|
+
Common `stop` options:
|
|
250
|
+
|
|
251
|
+
```text
|
|
252
|
+
--app-root PATH Root directory for the deployment (default: current directory)
|
|
253
|
+
--verbose Show detailed progress output
|
|
254
|
+
```
|
|
255
|
+
|
|
256
|
+
## Docker
|
|
257
|
+
|
|
258
|
+
If you don't have Python installed, you can use the published Docker image instead:
|
|
259
|
+
|
|
260
|
+
```
|
|
261
|
+
quay.io/octopize/deploy-tool:latest
|
|
262
|
+
```
|
|
263
|
+
|
|
264
|
+
> **Note on file ownership:** For commands that write files to a bind-mounted directory, run the
|
|
265
|
+
> container with `--user "$(id -u):$(id -g)"` so generated files are owned by your host user.
|
|
266
|
+
|
|
267
|
+
### `install`
|
|
268
|
+
|
|
269
|
+
**Interactive:**
|
|
270
|
+
|
|
271
|
+
```bash
|
|
272
|
+
docker run -it --rm \
|
|
273
|
+
--user "$(id -u):$(id -g)" \
|
|
274
|
+
-v "$(pwd)/avatar:/app-root" \
|
|
275
|
+
quay.io/octopize/deploy-tool:latest install --app-root /app-root
|
|
276
|
+
```
|
|
277
|
+
|
|
278
|
+
**Non-interactive, seed config inside the app-root:**
|
|
279
|
+
|
|
280
|
+
```bash
|
|
281
|
+
docker run --rm \
|
|
282
|
+
--user "$(id -u):$(id -g)" \
|
|
283
|
+
-v "$(pwd)/avatar:/app-root" \
|
|
284
|
+
quay.io/octopize/deploy-tool:latest install \
|
|
285
|
+
--app-root /app-root \
|
|
286
|
+
--from-config /app-root/config.yaml \
|
|
287
|
+
--non-interactive
|
|
288
|
+
```
|
|
289
|
+
|
|
290
|
+
**Non-interactive, seed config stored outside the app-root:**
|
|
291
|
+
|
|
292
|
+
Mount the directory containing the config file as a separate read-only volume:
|
|
293
|
+
|
|
294
|
+
```bash
|
|
295
|
+
docker run --rm \
|
|
296
|
+
--user "$(id -u):$(id -g)" \
|
|
297
|
+
-v "$(pwd)/avatar:/app-root" \
|
|
298
|
+
-v "$(pwd)/config:/input:ro" \
|
|
299
|
+
quay.io/octopize/deploy-tool:latest install \
|
|
300
|
+
--app-root /app-root \
|
|
301
|
+
--from-config /input/config.yaml \
|
|
302
|
+
--non-interactive
|
|
303
|
+
```
|
|
304
|
+
|
|
305
|
+
> **Important — enter host paths during configuration:** When the wizard asks for filesystem
|
|
306
|
+
> paths — such as the path to your TLS certificate or private key — enter the path where that
|
|
307
|
+
> file exists on your **host machine**, not the path inside this container.
|
|
308
|
+
>
|
|
309
|
+
> For example, if your TLS certificate lives at `/etc/ssl/avatar/server.crt` on the host,
|
|
310
|
+
> enter `/etc/ssl/avatar/server.crt` at the prompt. Docker Compose will mount those paths from
|
|
311
|
+
> the host when it starts the Avatar services.
|
|
312
|
+
|
|
313
|
+
### `update`
|
|
314
|
+
|
|
315
|
+
Mount the existing app-root. If your `--from-config` override file lives outside the app-root,
|
|
316
|
+
add a second read-only mount (same pattern as `install`):
|
|
317
|
+
|
|
318
|
+
```bash
|
|
319
|
+
docker run -it --rm \
|
|
320
|
+
--user "$(id -u):$(id -g)" \
|
|
321
|
+
-v "$(pwd)/avatar:/app-root" \
|
|
322
|
+
quay.io/octopize/deploy-tool:latest update --app-root /app-root
|
|
323
|
+
```
|
|
324
|
+
|
|
325
|
+
### `migrate`
|
|
326
|
+
|
|
327
|
+
Mount both the new app-root **and** the legacy deployment directory as a separate read-only volume.
|
|
328
|
+
The `--from-legacy` path must point to its container-side location:
|
|
329
|
+
|
|
330
|
+
```bash
|
|
331
|
+
docker run -it --rm \
|
|
332
|
+
--user "$(id -u):$(id -g)" \
|
|
333
|
+
-v "$(pwd)/avatar-new:/app-root" \
|
|
334
|
+
-v "$(pwd)/avatar-old:/legacy:ro" \
|
|
335
|
+
quay.io/octopize/deploy-tool:latest migrate \
|
|
336
|
+
--app-root /app-root \
|
|
337
|
+
--from-legacy /legacy
|
|
338
|
+
```
|
|
339
|
+
|
|
340
|
+
### `start`
|
|
341
|
+
|
|
342
|
+
`start` calls Docker directly (to create volumes and run `docker compose up`), so the host Docker
|
|
343
|
+
socket must be mounted:
|
|
344
|
+
|
|
345
|
+
```bash
|
|
346
|
+
docker run --rm \
|
|
347
|
+
-v "$(pwd)/avatar:/app-root" \
|
|
348
|
+
-v /var/run/docker.sock:/var/run/docker.sock \
|
|
349
|
+
quay.io/octopize/deploy-tool:latest start --app-root /app-root
|
|
350
|
+
```
|
|
351
|
+
|
|
352
|
+
> **Note:** `--user` is omitted here because the process needs access to the Docker socket. If you
|
|
353
|
+
> see a permission error, add `--group-add $(stat -c '%g' /var/run/docker.sock)` to grant the
|
|
354
|
+
> container access to the socket's group on the host.
|
|
355
|
+
|
|
356
|
+
### `stop`
|
|
357
|
+
|
|
358
|
+
Like `start`, `stop` calls Docker directly and requires the host Docker socket:
|
|
359
|
+
|
|
360
|
+
```bash
|
|
361
|
+
docker run --rm \
|
|
362
|
+
-v "$(pwd)/avatar:/app-root" \
|
|
363
|
+
-v /var/run/docker.sock:/var/run/docker.sock \
|
|
364
|
+
quay.io/octopize/deploy-tool:latest stop --app-root /app-root
|
|
365
|
+
```
|
|
366
|
+
|
|
367
|
+
## Non-Interactive Usage
|
|
368
|
+
|
|
369
|
+
Provide a YAML configuration file to skip interactive prompts. Any value not covered by the
|
|
370
|
+
config file will use the built-in default.
|
|
371
|
+
|
|
372
|
+
Example seed config:
|
|
373
|
+
|
|
374
|
+
```yaml
|
|
375
|
+
PUBLIC_URL: avatar.example.com
|
|
376
|
+
ENV_NAME: prod
|
|
377
|
+
ORGANIZATION_NAME: MyCompany
|
|
378
|
+
```
|
|
379
|
+
|
|
380
|
+
Then run:
|
|
381
|
+
|
|
382
|
+
```bash
|
|
383
|
+
octopize-deploy-tool install \
|
|
384
|
+
--app-root ./app/avatar \
|
|
385
|
+
--from-config config.yaml \
|
|
386
|
+
--non-interactive
|
|
387
|
+
```
|
|
388
|
+
|
|
389
|
+
## Generated Files
|
|
390
|
+
|
|
391
|
+
The `install` command writes deployment files under a versioned directory tree:
|
|
392
|
+
|
|
393
|
+
```text
|
|
394
|
+
./app/avatar/
|
|
395
|
+
├── .deployment_states/
|
|
396
|
+
│ └── v1/
|
|
397
|
+
│ ├── deployment_state.yaml
|
|
398
|
+
│ └── generated/ # reference copy of rendered files (read-only)
|
|
399
|
+
├── customer_inputs/ # operator-owned configuration overrides
|
|
400
|
+
└── generated_files/ # what Docker Compose actually uses
|
|
401
|
+
├── .env
|
|
402
|
+
├── docker-compose.yml
|
|
403
|
+
├── nginx/nginx.conf
|
|
404
|
+
├── authentik/
|
|
405
|
+
│ ├── octopize-avatar-blueprint.yaml
|
|
406
|
+
│ ├── custom-templates/
|
|
407
|
+
│ └── branding/
|
|
408
|
+
└── .secrets/
|
|
409
|
+
```
|
|
410
|
+
|
|
411
|
+
Each subsequent `update` or `migrate` run adds a new versioned slot (e.g. `v2/`), keeping a full
|
|
412
|
+
history of prior states.
|
|
413
|
+
|
|
414
|
+
The `generate-env` command writes component `.env` files directly to their resolved destinations:
|
|
415
|
+
|
|
416
|
+
```text
|
|
417
|
+
./avatar-local/
|
|
418
|
+
├── api/.env
|
|
419
|
+
└── web/.env
|
|
420
|
+
```
|
|
421
|
+
|
|
422
|
+
## Typical Deployment Workflow
|
|
423
|
+
|
|
424
|
+
1. Generate configuration:
|
|
425
|
+
|
|
426
|
+
```bash
|
|
427
|
+
octopize-deploy-tool install --app-root ./app/avatar
|
|
428
|
+
```
|
|
429
|
+
|
|
430
|
+
2. Review the generated files:
|
|
431
|
+
|
|
432
|
+
```bash
|
|
433
|
+
ls ./app/avatar/generated_files/
|
|
434
|
+
cat ./app/avatar/generated_files/.env
|
|
435
|
+
ls -la ./app/avatar/generated_files/.secrets/
|
|
436
|
+
```
|
|
437
|
+
|
|
438
|
+
3. Add any required TLS certificates for production.
|
|
439
|
+
|
|
440
|
+
4. Start the services:
|
|
441
|
+
|
|
442
|
+
```bash
|
|
443
|
+
octopize-deploy-tool start --app-root ./app/avatar
|
|
444
|
+
```
|
|
445
|
+
|
|
446
|
+
5. Verify the deployment:
|
|
447
|
+
|
|
448
|
+
```bash
|
|
449
|
+
docker compose -f ./app/avatar/generated_files/docker-compose.yml ps
|
|
450
|
+
docker compose -f ./app/avatar/generated_files/docker-compose.yml logs -f
|
|
451
|
+
```
|
|
452
|
+
|
|
453
|
+
## `generate-env`
|
|
454
|
+
|
|
455
|
+
Use `generate-env` to create per-component `.env` files for local development without generating
|
|
456
|
+
the full deployment bundle.
|
|
457
|
+
|
|
458
|
+
Example:
|
|
459
|
+
|
|
460
|
+
```bash
|
|
461
|
+
octopize-deploy-tool generate-env \
|
|
462
|
+
--component api \
|
|
463
|
+
--api-output-path ./avatar-local/api/.env \
|
|
464
|
+
--component web \
|
|
465
|
+
--web-output-path ./avatar-local/web/.env
|
|
466
|
+
```
|
|
467
|
+
|
|
468
|
+
Common `generate-env` options:
|
|
469
|
+
|
|
470
|
+
```text
|
|
471
|
+
--config FILE YAML configuration file to load
|
|
472
|
+
--non-interactive Run without prompts, using config/defaults
|
|
473
|
+
--verbose Show detailed progress output
|
|
474
|
+
--component NAME Generate only the selected component (repeatable; defaults to all)
|
|
475
|
+
--api-output-path PATH Override the API env output path for this run
|
|
476
|
+
--web-output-path PATH Override the web env output path for this run
|
|
477
|
+
--python-client-output-path PATH
|
|
478
|
+
Override the python_client env output path for this run
|
|
479
|
+
--output-path COMPONENT=PATH
|
|
480
|
+
Repeatable generic output-path override
|
|
481
|
+
--target NAME Load named URLs from the environments config section
|
|
482
|
+
--api-url URL Override the API URL
|
|
483
|
+
--storage-url URL Override the storage public URL
|
|
484
|
+
--sso-url URL Override the SSO provider URL
|
|
485
|
+
```
|
|
486
|
+
|
|
487
|
+
## Troubleshooting
|
|
488
|
+
|
|
489
|
+
### Services fail to start after `start`
|
|
490
|
+
|
|
491
|
+
Check that Docker is running and the generated files are present:
|
|
492
|
+
|
|
493
|
+
```bash
|
|
494
|
+
ls ./app/avatar/generated_files/
|
|
495
|
+
docker compose -f ./app/avatar/generated_files/docker-compose.yml ps
|
|
496
|
+
docker compose -f ./app/avatar/generated_files/docker-compose.yml logs -f
|
|
497
|
+
```
|
|
498
|
+
|
|
499
|
+
### Existing containers cause bind-mount or startup issues
|
|
500
|
+
|
|
501
|
+
Stop and remove old containers and volumes, then restart:
|
|
502
|
+
|
|
503
|
+
```bash
|
|
504
|
+
docker compose -f ./app/avatar/generated_files/docker-compose.yml down --volumes --remove-orphans
|
|
505
|
+
octopize-deploy-tool start --app-root ./app/avatar
|
|
506
|
+
```
|
|
507
|
+
|
|
508
|
+
### Verbose output for debugging
|
|
509
|
+
|
|
510
|
+
Add `--verbose` to any command to see detailed progress and template rendering output:
|
|
511
|
+
|
|
512
|
+
```bash
|
|
513
|
+
octopize-deploy-tool install --app-root ./app/avatar --verbose
|
|
514
|
+
```
|
|
515
|
+
|
|
516
|
+
## Migrating Users to authentik
|
|
517
|
+
|
|
518
|
+
When upgrading from an older Avatar deployment that managed users directly in the Avatar API
|
|
519
|
+
database, use `octopize-deploy-tool authentik-migrate` to import those users into authentik.
|
|
520
|
+
|
|
521
|
+
### Overview
|
|
522
|
+
|
|
523
|
+
The tool reads three CSV exports from the Avatar database and creates the equivalent users, groups,
|
|
524
|
+
and group assignments in authentik via its REST API:
|
|
525
|
+
|
|
526
|
+
| Source CSV | authentik entity |
|
|
527
|
+
| ------------------- | ---------------------------- |
|
|
528
|
+
| `organizations.csv` | Groups (one per org) |
|
|
529
|
+
| `licenses.csv` | Group `attributes.license` |
|
|
530
|
+
| `users.csv` | Users with `attributes.role` |
|
|
531
|
+
|
|
532
|
+
Users that already have an `authentik_id` value in the CSV are automatically skipped, making the
|
|
533
|
+
tool safe to run incrementally.
|
|
534
|
+
|
|
535
|
+
### Extracting CSV Data
|
|
536
|
+
|
|
537
|
+
Exec into the API container and export the required tables:
|
|
538
|
+
|
|
539
|
+
```bash
|
|
540
|
+
docker compose exec -it api bash
|
|
541
|
+
cd /app/avatar
|
|
542
|
+
python bin/dbtool.py shell
|
|
543
|
+
```
|
|
544
|
+
|
|
545
|
+
Then in the pgcli shell:
|
|
546
|
+
|
|
547
|
+
```sql
|
|
548
|
+
\copy (SELECT * FROM licenses) TO '/tmp/licenses.csv' WITH CSV HEADER
|
|
549
|
+
\copy (SELECT * FROM users) TO '/tmp/users.csv' WITH CSV HEADER
|
|
550
|
+
\copy (SELECT * FROM organizations) TO '/tmp/organizations.csv' WITH CSV HEADER
|
|
551
|
+
```
|
|
552
|
+
|
|
553
|
+
### Usage
|
|
554
|
+
|
|
555
|
+
**Dry run** — preview all operations without making any changes:
|
|
556
|
+
|
|
557
|
+
```bash
|
|
558
|
+
octopize-deploy-tool authentik-migrate \
|
|
559
|
+
--users /tmp/users.csv \
|
|
560
|
+
--orgs /tmp/organizations.csv \
|
|
561
|
+
--licenses /tmp/licenses.csv \
|
|
562
|
+
--dry-run
|
|
563
|
+
```
|
|
564
|
+
|
|
565
|
+
**Full migration** — execute against a live authentik instance:
|
|
566
|
+
|
|
567
|
+
```bash
|
|
568
|
+
octopize-deploy-tool authentik-migrate \
|
|
569
|
+
--users /tmp/users.csv \
|
|
570
|
+
--orgs /tmp/organizations.csv \
|
|
571
|
+
--licenses /tmp/licenses.csv \
|
|
572
|
+
--authentik-url https://avatar.example.com/sso \
|
|
573
|
+
--authentik-token YOUR_API_TOKEN
|
|
574
|
+
```
|
|
575
|
+
|
|
576
|
+
The authentik URL is the `/sso` path of your Avatar instance. The API token is generated
|
|
577
|
+
automatically by the deploy tool and stored in the `.env` file.
|
|
578
|
+
|
|
579
|
+
Every run writes a JSONL log (`migration_log.jsonl` by default). If some operations fail, retry
|
|
580
|
+
just the failed ones:
|
|
581
|
+
|
|
582
|
+
```bash
|
|
583
|
+
octopize-deploy-tool authentik-migrate \
|
|
584
|
+
--from-log migration_log.jsonl \
|
|
585
|
+
--failed-only \
|
|
586
|
+
--authentik-url https://avatar.example.com/sso \
|
|
587
|
+
--authentik-token YOUR_API_TOKEN
|
|
588
|
+
```
|
|
589
|
+
|
|
590
|
+
### Getting an authentik API Token
|
|
591
|
+
|
|
592
|
+
1. Log in to your authentik instance
|
|
593
|
+
2. Navigate to **Admin** → **Tokens & App passwords**
|
|
594
|
+
3. Create a token with the following permissions:
|
|
595
|
+
- `core:groups:create`
|
|
596
|
+
- `core:users:create`
|
|
597
|
+
- `core:groups:update` (for user assignments)
|
|
598
|
+
|
|
599
|
+
### Migration CLI Reference
|
|
600
|
+
|
|
601
|
+
```text
|
|
602
|
+
octopize-deploy-tool authentik-migrate [options]
|
|
603
|
+
|
|
604
|
+
--users PATH Path to users CSV file
|
|
605
|
+
--orgs PATH Path to organizations CSV file
|
|
606
|
+
--licenses PATH Path to licenses CSV file
|
|
607
|
+
--authentik-url URL Base URL of the authentik instance
|
|
608
|
+
(e.g. https://avatar.example.com/sso)
|
|
609
|
+
--authentik-token TOK API token for authentik
|
|
610
|
+
--dry-run Preview operations without executing
|
|
611
|
+
--log PATH JSONL log output path (default: migration_log.jsonl)
|
|
612
|
+
--from-log PATH Replay operations from a previous log instead of CSV
|
|
613
|
+
--failed-only With --from-log, only replay previously-failed ops
|
|
614
|
+
```
|
|
615
|
+
|
|
616
|
+
## Further Information
|
|
617
|
+
|
|
618
|
+
- Source repository: <https://github.com/octopize/avatar>
|
|
619
|
+
- Deployment documentation: <https://docs.octopize.io/docs/deploying/self-hosted>
|
|
620
|
+
- Network topology reference: [docs/network-topology.md](docs/network-topology.md)
|