octopize.deploy_tool 2.4.0__tar.gz → 2.7.0__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.4.0 → octopize_deploy_tool-2.7.0}/.gitignore +4 -1
- {octopize_deploy_tool-2.4.0 → octopize_deploy_tool-2.7.0}/PKG-INFO +2 -5
- octopize_deploy_tool-2.7.0/infra/deployment/deployment-tool/src/octopize_avatar_deploy/steps/user.py +20 -0
- {octopize_deploy_tool-2.4.0 → octopize_deploy_tool-2.7.0}/pyproject.toml +25 -53
- {octopize_deploy_tool-2.4.0 → octopize_deploy_tool-2.7.0}/src/octopize_avatar_deploy/__init__.py +1 -3
- octopize_deploy_tool-2.7.0/src/octopize_avatar_deploy/application/__init__.py +1 -0
- octopize_deploy_tool-2.7.0/src/octopize_avatar_deploy/application/apply_command.py +137 -0
- octopize_deploy_tool-2.7.0/src/octopize_avatar_deploy/application/checks.py +362 -0
- octopize_deploy_tool-2.7.0/src/octopize_avatar_deploy/application/commands/install_command.py +219 -0
- octopize_deploy_tool-2.7.0/src/octopize_avatar_deploy/application/commands/migrate_command.py +344 -0
- octopize_deploy_tool-2.7.0/src/octopize_avatar_deploy/application/commands/subcommand_ports.py +59 -0
- octopize_deploy_tool-2.7.0/src/octopize_avatar_deploy/application/commands/update_command.py +273 -0
- octopize_deploy_tool-2.7.0/src/octopize_avatar_deploy/application/configure_command.py +257 -0
- octopize_deploy_tool-2.7.0/src/octopize_avatar_deploy/application/configure_resume_policy.py +70 -0
- octopize_deploy_tool-2.7.0/src/octopize_avatar_deploy/application/deployment_paths.py +91 -0
- octopize_deploy_tool-2.7.0/src/octopize_avatar_deploy/application/diff_command.py +495 -0
- octopize_deploy_tool-2.7.0/src/octopize_avatar_deploy/application/ports.py +357 -0
- octopize_deploy_tool-2.7.0/src/octopize_avatar_deploy/application/render_command.py +234 -0
- octopize_deploy_tool-2.7.0/src/octopize_avatar_deploy/application/start_command.py +165 -0
- {octopize_deploy_tool-2.4.0 → octopize_deploy_tool-2.7.0}/src/octopize_avatar_deploy/authentik_migration.py +6 -6
- octopize_deploy_tool-2.7.0/src/octopize_avatar_deploy/cli.py +1284 -0
- {octopize_deploy_tool-2.4.0 → octopize_deploy_tool-2.7.0}/src/octopize_avatar_deploy/cli_test_harness.py +4 -7
- octopize_deploy_tool-2.7.0/src/octopize_avatar_deploy/configurator.py +198 -0
- {octopize_deploy_tool-2.4.0 → octopize_deploy_tool-2.7.0}/src/octopize_avatar_deploy/configure.py +147 -289
- {octopize_deploy_tool-2.4.0 → octopize_deploy_tool-2.7.0}/src/octopize_avatar_deploy/defaults.yaml +1 -1
- octopize_deploy_tool-2.7.0/src/octopize_avatar_deploy/domain/__init__.py +1 -0
- octopize_deploy_tool-2.7.0/src/octopize_avatar_deploy/domain/configure_preset.py +52 -0
- octopize_deploy_tool-2.7.0/src/octopize_avatar_deploy/domain/deployment_item.py +131 -0
- octopize_deploy_tool-2.7.0/src/octopize_avatar_deploy/domain/deployment_item_registry.py +496 -0
- octopize_deploy_tool-2.7.0/src/octopize_avatar_deploy/domain/deployment_state.py +68 -0
- octopize_deploy_tool-2.7.0/src/octopize_avatar_deploy/domain/validation.py +115 -0
- octopize_deploy_tool-2.7.0/src/octopize_avatar_deploy/domain/version_id.py +69 -0
- {octopize_deploy_tool-2.4.0 → octopize_deploy_tool-2.7.0}/src/octopize_avatar_deploy/download_templates.py +11 -11
- {octopize_deploy_tool-2.4.0 → octopize_deploy_tool-2.7.0}/src/octopize_avatar_deploy/generate_env_paths.py +3 -2
- octopize_deploy_tool-2.7.0/src/octopize_avatar_deploy/infra/__init__.py +1 -0
- octopize_deploy_tool-2.7.0/src/octopize_avatar_deploy/infra/configurator_runner_adapter.py +244 -0
- octopize_deploy_tool-2.7.0/src/octopize_avatar_deploy/infra/current_version_resolver.py +39 -0
- octopize_deploy_tool-2.7.0/src/octopize_avatar_deploy/infra/docker_client.py +116 -0
- octopize_deploy_tool-2.7.0/src/octopize_avatar_deploy/infra/filesystem_directory_copier.py +73 -0
- octopize_deploy_tool-2.7.0/src/octopize_avatar_deploy/infra/filesystem_directory_reader.py +34 -0
- octopize_deploy_tool-2.7.0/src/octopize_avatar_deploy/infra/filesystem_file_writer.py +35 -0
- octopize_deploy_tool-2.7.0/src/octopize_avatar_deploy/infra/filesystem_legacy_source.py +81 -0
- octopize_deploy_tool-2.7.0/src/octopize_avatar_deploy/infra/filesystem_symlink_updater.py +34 -0
- octopize_deploy_tool-2.7.0/src/octopize_avatar_deploy/infra/in_memory_state_repository.py +51 -0
- octopize_deploy_tool-2.7.0/src/octopize_avatar_deploy/infra/noop_docker_client.py +47 -0
- octopize_deploy_tool-2.7.0/src/octopize_avatar_deploy/infra/package_defaults_source.py +28 -0
- octopize_deploy_tool-2.7.0/src/octopize_avatar_deploy/infra/package_template_provider.py +41 -0
- octopize_deploy_tool-2.7.0/src/octopize_avatar_deploy/infra/package_version_provider.py +13 -0
- octopize_deploy_tool-2.7.0/src/octopize_avatar_deploy/infra/preset_loader.py +186 -0
- octopize_deploy_tool-2.7.0/src/octopize_avatar_deploy/infra/system_clock.py +13 -0
- octopize_deploy_tool-2.7.0/src/octopize_avatar_deploy/infra/yaml_config_source.py +45 -0
- octopize_deploy_tool-2.7.0/src/octopize_avatar_deploy/infra/yaml_state_repository.py +121 -0
- {octopize_deploy_tool-2.4.0 → octopize_deploy_tool-2.7.0}/src/octopize_avatar_deploy/input_gatherer.py +19 -17
- octopize_deploy_tool-2.7.0/src/octopize_avatar_deploy/normalizers.py +43 -0
- {octopize_deploy_tool-2.4.0 → octopize_deploy_tool-2.7.0}/src/octopize_avatar_deploy/printer.py +46 -1
- {octopize_deploy_tool-2.4.0 → octopize_deploy_tool-2.7.0}/src/octopize_avatar_deploy/public_url.py +8 -2
- octopize_deploy_tool-2.7.0/src/octopize_avatar_deploy/renderer.py +198 -0
- {octopize_deploy_tool-2.4.0 → octopize_deploy_tool-2.7.0}/src/octopize_avatar_deploy/state_manager.py +91 -7
- {octopize_deploy_tool-2.4.0 → octopize_deploy_tool-2.7.0}/src/octopize_avatar_deploy/steps/api_local_source.py +2 -2
- {octopize_deploy_tool-2.4.0 → octopize_deploy_tool-2.7.0}/src/octopize_avatar_deploy/steps/authentik.py +11 -2
- {octopize_deploy_tool-2.4.0 → octopize_deploy_tool-2.7.0}/src/octopize_avatar_deploy/steps/base.py +16 -108
- {octopize_deploy_tool-2.4.0 → octopize_deploy_tool-2.7.0}/src/octopize_avatar_deploy/steps/component_selection.py +1 -4
- {octopize_deploy_tool-2.4.0 → octopize_deploy_tool-2.7.0}/src/octopize_avatar_deploy/steps/email.py +64 -54
- {octopize_deploy_tool-2.4.0 → octopize_deploy_tool-2.7.0}/src/octopize_avatar_deploy/steps/local_source.py +2 -1
- {octopize_deploy_tool-2.4.0 → octopize_deploy_tool-2.7.0}/src/octopize_avatar_deploy/steps/nginx.py +165 -2
- {octopize_deploy_tool-2.4.0 → octopize_deploy_tool-2.7.0}/src/octopize_avatar_deploy/steps/required.py +9 -4
- {octopize_deploy_tool-2.4.0 → octopize_deploy_tool-2.7.0}/src/octopize_avatar_deploy/steps/storage.py +0 -1
- {octopize_deploy_tool-2.4.0 → octopize_deploy_tool-2.7.0}/src/octopize_avatar_deploy/steps/target_environment.py +4 -1
- octopize_deploy_tool-2.7.0/src/octopize_avatar_deploy/steps/telemetry.py +120 -0
- octopize_deploy_tool-2.7.0/src/octopize_avatar_deploy/steps/user.py +20 -0
- {octopize_deploy_tool-2.4.0 → octopize_deploy_tool-2.7.0}/src/octopize_avatar_deploy/template_provisioning.py +4 -1
- {octopize_deploy_tool-2.4.0 → octopize_deploy_tool-2.7.0}/src/octopize_avatar_deploy/templates/_env_fragment_api.template +13 -12
- {octopize_deploy_tool-2.4.0 → octopize_deploy_tool-2.7.0}/src/octopize_avatar_deploy/templates/api.env.template +8 -8
- {octopize_deploy_tool-2.4.0 → octopize_deploy_tool-2.7.0}/src/octopize_avatar_deploy/templates/docker-compose.yml.template +2 -20
- {octopize_deploy_tool-2.4.0 → octopize_deploy_tool-2.7.0}/src/octopize_avatar_deploy/version_compat.py +21 -21
- octopize_deploy_tool-2.7.0/tests/TESTING.md +574 -0
- {octopize_deploy_tool-2.4.0 → octopize_deploy_tool-2.7.0}/tests/conftest.py +70 -134
- {octopize_deploy_tool-2.4.0 → octopize_deploy_tool-2.7.0}/tests/fixtures/__init__.py +2 -2
- {octopize_deploy_tool-2.4.0/tests/fixtures/config_round_trip_first → octopize_deploy_tool-2.7.0/tests/fixtures/basic_deployment}/expected/.deployment-state.yaml +38 -12
- {octopize_deploy_tool-2.4.0/tests/fixtures/config_round_trip_second → octopize_deploy_tool-2.7.0/tests/fixtures/basic_deployment}/expected/.env +21 -24
- {octopize_deploy_tool-2.4.0 → octopize_deploy_tool-2.7.0}/tests/fixtures/basic_deployment/expected/docker-compose.yml +4 -22
- octopize_deploy_tool-2.7.0/tests/fixtures/basic_deployment/input.yaml +17 -0
- {octopize_deploy_tool-2.4.0 → octopize_deploy_tool-2.7.0}/tests/fixtures/basic_deployment/output.txt +29 -7
- {octopize_deploy_tool-2.4.0 → octopize_deploy_tool-2.7.0}/tests/fixtures/cloud_storage/expected/.deployment-state.yaml +38 -12
- {octopize_deploy_tool-2.4.0 → octopize_deploy_tool-2.7.0}/tests/fixtures/cloud_storage/expected/.env +21 -24
- {octopize_deploy_tool-2.4.0 → octopize_deploy_tool-2.7.0}/tests/fixtures/cloud_storage/expected/docker-compose.yml +4 -22
- {octopize_deploy_tool-2.4.0 → octopize_deploy_tool-2.7.0}/tests/fixtures/cloud_storage/input.yaml +1 -1
- {octopize_deploy_tool-2.4.0 → octopize_deploy_tool-2.7.0}/tests/fixtures/cloud_storage/output.txt +29 -7
- {octopize_deploy_tool-2.4.0/tests/fixtures/config_round_trip_second → octopize_deploy_tool-2.7.0/tests/fixtures/config_round_trip_first}/expected/.deployment-state.yaml +38 -12
- {octopize_deploy_tool-2.4.0 → octopize_deploy_tool-2.7.0}/tests/fixtures/config_round_trip_first/expected/.env +21 -24
- {octopize_deploy_tool-2.4.0 → octopize_deploy_tool-2.7.0}/tests/fixtures/config_round_trip_first/expected/deployment-config.yaml +14 -12
- {octopize_deploy_tool-2.4.0 → octopize_deploy_tool-2.7.0}/tests/fixtures/config_round_trip_first/expected/docker-compose.yml +4 -22
- {octopize_deploy_tool-2.4.0/tests/fixtures/basic_deployment → octopize_deploy_tool-2.7.0/tests/fixtures/config_round_trip_second}/expected/.deployment-state.yaml +38 -12
- {octopize_deploy_tool-2.4.0/tests/fixtures/basic_deployment → octopize_deploy_tool-2.7.0/tests/fixtures/config_round_trip_second}/expected/.env +21 -24
- {octopize_deploy_tool-2.4.0 → octopize_deploy_tool-2.7.0}/tests/fixtures/config_round_trip_second/expected/docker-compose.yml +4 -22
- octopize_deploy_tool-2.7.0/tests/fixtures/configure_happy_path/expected/.deployment_states/v1/deployment_state.yaml +226 -0
- {octopize_deploy_tool-2.4.0/tests/fixtures/basic_deployment → octopize_deploy_tool-2.7.0/tests/fixtures/configure_happy_path}/input.yaml +1 -0
- {octopize_deploy_tool-2.4.0/tests/fixtures/no_telemetry → octopize_deploy_tool-2.7.0/tests/fixtures/configure_happy_path}/output.txt +0 -28
- {octopize_deploy_tool-2.4.0 → octopize_deploy_tool-2.7.0}/tests/fixtures/dev_mode_deployment/expected/.deployment-state.yaml +44 -18
- {octopize_deploy_tool-2.4.0 → octopize_deploy_tool-2.7.0}/tests/fixtures/dev_mode_deployment/expected/.env +20 -23
- octopize_deploy_tool-2.7.0/tests/fixtures/dev_mode_deployment/expected/docker-compose.yml +592 -0
- {octopize_deploy_tool-2.4.0 → octopize_deploy_tool-2.7.0}/tests/fixtures/dev_mode_deployment/input.yaml +0 -1
- {octopize_deploy_tool-2.4.0 → octopize_deploy_tool-2.7.0}/tests/fixtures/dev_mode_deployment/output.txt +29 -7
- octopize_deploy_tool-2.7.0/tests/fixtures/diff_integration/from/.env +3 -0
- octopize_deploy_tool-2.7.0/tests/fixtures/diff_integration/from/nginx/nginx.conf +5 -0
- octopize_deploy_tool-2.7.0/tests/fixtures/diff_integration/output.txt +29 -0
- octopize_deploy_tool-2.7.0/tests/fixtures/diff_integration/to/.env +3 -0
- octopize_deploy_tool-2.7.0/tests/fixtures/diff_integration/to/docker-compose.yml +4 -0
- octopize_deploy_tool-2.7.0/tests/fixtures/diff_integration/to/nginx/nginx.conf +5 -0
- octopize_deploy_tool-2.7.0/tests/fixtures/generate_env_output_dir_error/output.txt +3 -0
- octopize_deploy_tool-2.7.0/tests/fixtures/help/output.txt +26 -0
- {octopize_deploy_tool-2.4.0/tests/fixtures/non_interactive_complete/expected → octopize_deploy_tool-2.7.0/tests/fixtures/install_apply_output}/.env +21 -24
- octopize_deploy_tool-2.7.0/tests/fixtures/install_apply_output/.permissions.json +33 -0
- octopize_deploy_tool-2.7.0/tests/fixtures/install_apply_output/docker-compose.yml +592 -0
- octopize_deploy_tool-2.7.0/tests/fixtures/install_render_output/.env +89 -0
- octopize_deploy_tool-2.7.0/tests/fixtures/install_render_output/.permissions.json +33 -0
- octopize_deploy_tool-2.7.0/tests/fixtures/install_render_output/docker-compose.yml +592 -0
- octopize_deploy_tool-2.7.0/tests/fixtures/install_render_output/nginx/nginx.conf +112 -0
- {octopize_deploy_tool-2.4.0 → octopize_deploy_tool-2.7.0}/tests/fixtures/invalid_port_config/output.txt +29 -7
- octopize_deploy_tool-2.7.0/tests/fixtures/missing_subcommand/output.txt +3 -0
- {octopize_deploy_tool-2.4.0 → octopize_deploy_tool-2.7.0}/tests/fixtures/no_telemetry/expected/.deployment-state.yaml +38 -12
- {octopize_deploy_tool-2.4.0 → octopize_deploy_tool-2.7.0}/tests/fixtures/no_telemetry/expected/.env +20 -23
- octopize_deploy_tool-2.7.0/tests/fixtures/no_telemetry/expected/authentik/branding/favicon.ico +0 -0
- octopize_deploy_tool-2.7.0/tests/fixtures/no_telemetry/expected/authentik/branding/logo.png +0 -0
- octopize_deploy_tool-2.7.0/tests/fixtures/no_telemetry/expected/authentik/custom-templates/email_account_confirmation.html +93 -0
- octopize_deploy_tool-2.7.0/tests/fixtures/no_telemetry/expected/authentik/custom-templates/email_account_exists.html +126 -0
- octopize_deploy_tool-2.7.0/tests/fixtures/no_telemetry/expected/authentik/custom-templates/email_account_invitation.html +159 -0
- octopize_deploy_tool-2.7.0/tests/fixtures/no_telemetry/expected/authentik/custom-templates/email_forgotten_password.html +124 -0
- octopize_deploy_tool-2.7.0/tests/fixtures/no_telemetry/expected/authentik/custom-templates/email_password_changed.html +111 -0
- octopize_deploy_tool-2.7.0/tests/fixtures/no_telemetry/expected/authentik/custom-templates/email_password_reset.html +109 -0
- octopize_deploy_tool-2.7.0/tests/fixtures/no_telemetry/expected/authentik/octopize-avatar-blueprint.yaml +1738 -0
- octopize_deploy_tool-2.7.0/tests/fixtures/no_telemetry/expected/authentik/translations.json +24 -0
- octopize_deploy_tool-2.7.0/tests/fixtures/no_telemetry/expected/docker-compose.yml +592 -0
- {octopize_deploy_tool-2.4.0 → octopize_deploy_tool-2.7.0}/tests/fixtures/no_telemetry/input.yaml +0 -1
- octopize_deploy_tool-2.7.0/tests/fixtures/no_telemetry/output.txt +121 -0
- {octopize_deploy_tool-2.4.0 → octopize_deploy_tool-2.7.0}/tests/fixtures/non_interactive_complete/config.yaml +5 -3
- {octopize_deploy_tool-2.4.0 → octopize_deploy_tool-2.7.0}/tests/fixtures/non_interactive_complete/expected/.deployment-state.yaml +41 -17
- octopize_deploy_tool-2.7.0/tests/fixtures/non_interactive_complete/expected/.env +89 -0
- octopize_deploy_tool-2.7.0/tests/fixtures/non_interactive_complete/expected/authentik/branding/favicon.ico +0 -0
- octopize_deploy_tool-2.7.0/tests/fixtures/non_interactive_complete/expected/authentik/branding/logo.png +0 -0
- octopize_deploy_tool-2.7.0/tests/fixtures/non_interactive_complete/expected/authentik/custom-templates/email_account_confirmation.html +93 -0
- octopize_deploy_tool-2.7.0/tests/fixtures/non_interactive_complete/expected/authentik/custom-templates/email_account_exists.html +126 -0
- octopize_deploy_tool-2.7.0/tests/fixtures/non_interactive_complete/expected/authentik/custom-templates/email_account_invitation.html +159 -0
- octopize_deploy_tool-2.7.0/tests/fixtures/non_interactive_complete/expected/authentik/custom-templates/email_forgotten_password.html +124 -0
- octopize_deploy_tool-2.7.0/tests/fixtures/non_interactive_complete/expected/authentik/custom-templates/email_password_changed.html +111 -0
- octopize_deploy_tool-2.7.0/tests/fixtures/non_interactive_complete/expected/authentik/custom-templates/email_password_reset.html +109 -0
- octopize_deploy_tool-2.7.0/tests/fixtures/non_interactive_complete/expected/authentik/octopize-avatar-blueprint.yaml +1738 -0
- octopize_deploy_tool-2.7.0/tests/fixtures/non_interactive_complete/expected/authentik/translations.json +24 -0
- octopize_deploy_tool-2.7.0/tests/fixtures/non_interactive_complete/expected/docker-compose.yml +592 -0
- octopize_deploy_tool-2.7.0/tests/fixtures/non_interactive_complete/expected/nginx/nginx.conf +112 -0
- {octopize_deploy_tool-2.4.0 → octopize_deploy_tool-2.7.0}/tests/fixtures/non_interactive_complete/output.txt +29 -7
- {octopize_deploy_tool-2.4.0 → octopize_deploy_tool-2.7.0}/tests/fixtures/non_interactive_incomplete_config/output.txt +29 -7
- {octopize_deploy_tool-2.4.0 → octopize_deploy_tool-2.7.0}/tests/fixtures/non_interactive_partial_config/output.txt +29 -7
- octopize_deploy_tool-2.7.0/tests/fixtures/output_dir_nested/output.txt +121 -0
- {octopize_deploy_tool-2.4.0 → octopize_deploy_tool-2.7.0}/tests/fixtures/prompt_help/input.yaml +1 -0
- {octopize_deploy_tool-2.4.0 → octopize_deploy_tool-2.7.0}/tests/fixtures/prompt_help/output.txt +29 -7
- {octopize_deploy_tool-2.4.0 → octopize_deploy_tool-2.7.0}/tests/fixtures/resume_interrupted/first_run/output.txt +14 -0
- {octopize_deploy_tool-2.4.0 → octopize_deploy_tool-2.7.0}/tests/fixtures/resume_interrupted/input_first_run.yaml +3 -2
- {octopize_deploy_tool-2.4.0 → octopize_deploy_tool-2.7.0}/tests/fixtures/resume_interrupted/input_resume.yaml +1 -1
- {octopize_deploy_tool-2.4.0 → octopize_deploy_tool-2.7.0}/tests/fixtures/resume_interrupted/resume/output.txt +34 -12
- {octopize_deploy_tool-2.4.0 → octopize_deploy_tool-2.7.0}/tests/fixtures/save_config_interactive/output.txt +29 -7
- {octopize_deploy_tool-2.4.0 → octopize_deploy_tool-2.7.0}/tests/fixtures/save_config_with_existing/input.yaml +1 -1
- {octopize_deploy_tool-2.4.0 → octopize_deploy_tool-2.7.0}/tests/fixtures/save_config_with_existing/output.txt +29 -7
- {octopize_deploy_tool-2.4.0 → octopize_deploy_tool-2.7.0}/tests/fixtures/template_from_local_verbose/output.txt +1 -1
- {octopize_deploy_tool-2.4.0 → octopize_deploy_tool-2.7.0}/tests/fixtures/type_mismatch_config/output.txt +29 -7
- octopize_deploy_tool-2.7.0/tests/fixtures/update_interactive_diff/base_v1/generated_files/.env +89 -0
- octopize_deploy_tool-2.7.0/tests/fixtures/update_interactive_diff/expected_apply_output/.env +89 -0
- octopize_deploy_tool-2.7.0/tests/fixtures/update_interactive_diff/expected_apply_output/.permissions.json +33 -0
- octopize_deploy_tool-2.7.0/tests/fixtures/update_interactive_diff/expected_apply_output/authentik/branding/favicon.ico +0 -0
- octopize_deploy_tool-2.7.0/tests/fixtures/update_interactive_diff/expected_apply_output/authentik/branding/logo.png +0 -0
- octopize_deploy_tool-2.7.0/tests/fixtures/update_interactive_diff/expected_apply_output/authentik/custom-templates/email_account_confirmation.html +93 -0
- octopize_deploy_tool-2.7.0/tests/fixtures/update_interactive_diff/expected_apply_output/authentik/custom-templates/email_account_exists.html +126 -0
- octopize_deploy_tool-2.7.0/tests/fixtures/update_interactive_diff/expected_apply_output/authentik/custom-templates/email_account_invitation.html +159 -0
- octopize_deploy_tool-2.7.0/tests/fixtures/update_interactive_diff/expected_apply_output/authentik/custom-templates/email_forgotten_password.html +124 -0
- octopize_deploy_tool-2.7.0/tests/fixtures/update_interactive_diff/expected_apply_output/authentik/custom-templates/email_password_changed.html +111 -0
- octopize_deploy_tool-2.7.0/tests/fixtures/update_interactive_diff/expected_apply_output/authentik/custom-templates/email_password_reset.html +109 -0
- octopize_deploy_tool-2.7.0/tests/fixtures/update_interactive_diff/expected_apply_output/authentik/octopize-avatar-blueprint.yaml +1738 -0
- octopize_deploy_tool-2.7.0/tests/fixtures/update_interactive_diff/expected_apply_output/authentik/translations.json +24 -0
- octopize_deploy_tool-2.7.0/tests/fixtures/update_interactive_diff/expected_apply_output/docker-compose.yml +592 -0
- octopize_deploy_tool-2.7.0/tests/fixtures/update_interactive_diff/expected_apply_output/nginx/nginx.conf +112 -0
- octopize_deploy_tool-2.7.0/tests/fixtures/update_interactive_diff/expected_render_output/.env +89 -0
- octopize_deploy_tool-2.7.0/tests/fixtures/update_interactive_diff/expected_render_output/.permissions.json +33 -0
- octopize_deploy_tool-2.7.0/tests/fixtures/update_interactive_diff/expected_render_output/authentik/branding/favicon.ico +0 -0
- octopize_deploy_tool-2.7.0/tests/fixtures/update_interactive_diff/expected_render_output/authentik/branding/logo.png +0 -0
- octopize_deploy_tool-2.7.0/tests/fixtures/update_interactive_diff/expected_render_output/authentik/custom-templates/email_account_confirmation.html +93 -0
- octopize_deploy_tool-2.7.0/tests/fixtures/update_interactive_diff/expected_render_output/authentik/custom-templates/email_account_exists.html +126 -0
- octopize_deploy_tool-2.7.0/tests/fixtures/update_interactive_diff/expected_render_output/authentik/custom-templates/email_account_invitation.html +159 -0
- octopize_deploy_tool-2.7.0/tests/fixtures/update_interactive_diff/expected_render_output/authentik/custom-templates/email_forgotten_password.html +124 -0
- octopize_deploy_tool-2.7.0/tests/fixtures/update_interactive_diff/expected_render_output/authentik/custom-templates/email_password_changed.html +111 -0
- octopize_deploy_tool-2.7.0/tests/fixtures/update_interactive_diff/expected_render_output/authentik/custom-templates/email_password_reset.html +109 -0
- octopize_deploy_tool-2.7.0/tests/fixtures/update_interactive_diff/expected_render_output/authentik/octopize-avatar-blueprint.yaml +1738 -0
- octopize_deploy_tool-2.7.0/tests/fixtures/update_interactive_diff/expected_render_output/authentik/translations.json +24 -0
- octopize_deploy_tool-2.7.0/tests/fixtures/update_interactive_diff/expected_render_output/docker-compose.yml +592 -0
- octopize_deploy_tool-2.7.0/tests/fixtures/update_interactive_diff/expected_render_output/nginx/nginx.conf +112 -0
- octopize_deploy_tool-2.7.0/tests/fixtures/update_noninteractive_clean/base_v1/generated_files/.env +89 -0
- octopize_deploy_tool-2.7.0/tests/fixtures/update_noninteractive_clean/expected_apply_output/.env +89 -0
- octopize_deploy_tool-2.7.0/tests/fixtures/update_noninteractive_clean/expected_apply_output/.permissions.json +33 -0
- octopize_deploy_tool-2.7.0/tests/fixtures/update_noninteractive_clean/expected_apply_output/authentik/branding/favicon.ico +0 -0
- octopize_deploy_tool-2.7.0/tests/fixtures/update_noninteractive_clean/expected_apply_output/authentik/branding/logo.png +0 -0
- octopize_deploy_tool-2.7.0/tests/fixtures/update_noninteractive_clean/expected_apply_output/authentik/custom-templates/email_account_confirmation.html +93 -0
- octopize_deploy_tool-2.7.0/tests/fixtures/update_noninteractive_clean/expected_apply_output/authentik/custom-templates/email_account_exists.html +126 -0
- octopize_deploy_tool-2.7.0/tests/fixtures/update_noninteractive_clean/expected_apply_output/authentik/custom-templates/email_account_invitation.html +159 -0
- octopize_deploy_tool-2.7.0/tests/fixtures/update_noninteractive_clean/expected_apply_output/authentik/custom-templates/email_forgotten_password.html +124 -0
- octopize_deploy_tool-2.7.0/tests/fixtures/update_noninteractive_clean/expected_apply_output/authentik/custom-templates/email_password_changed.html +111 -0
- octopize_deploy_tool-2.7.0/tests/fixtures/update_noninteractive_clean/expected_apply_output/authentik/custom-templates/email_password_reset.html +109 -0
- octopize_deploy_tool-2.7.0/tests/fixtures/update_noninteractive_clean/expected_apply_output/authentik/octopize-avatar-blueprint.yaml +1738 -0
- octopize_deploy_tool-2.7.0/tests/fixtures/update_noninteractive_clean/expected_apply_output/authentik/translations.json +24 -0
- octopize_deploy_tool-2.7.0/tests/fixtures/update_noninteractive_clean/expected_apply_output/docker-compose.yml +592 -0
- octopize_deploy_tool-2.7.0/tests/fixtures/update_noninteractive_clean/expected_apply_output/nginx/nginx.conf +112 -0
- octopize_deploy_tool-2.7.0/tests/fixtures/update_noninteractive_clean/expected_render_output/.env +89 -0
- octopize_deploy_tool-2.7.0/tests/fixtures/update_noninteractive_clean/expected_render_output/.permissions.json +33 -0
- octopize_deploy_tool-2.7.0/tests/fixtures/update_noninteractive_clean/expected_render_output/authentik/branding/favicon.ico +0 -0
- octopize_deploy_tool-2.7.0/tests/fixtures/update_noninteractive_clean/expected_render_output/authentik/branding/logo.png +0 -0
- octopize_deploy_tool-2.7.0/tests/fixtures/update_noninteractive_clean/expected_render_output/authentik/custom-templates/email_account_confirmation.html +93 -0
- octopize_deploy_tool-2.7.0/tests/fixtures/update_noninteractive_clean/expected_render_output/authentik/custom-templates/email_account_exists.html +126 -0
- octopize_deploy_tool-2.7.0/tests/fixtures/update_noninteractive_clean/expected_render_output/authentik/custom-templates/email_account_invitation.html +159 -0
- octopize_deploy_tool-2.7.0/tests/fixtures/update_noninteractive_clean/expected_render_output/authentik/custom-templates/email_forgotten_password.html +124 -0
- octopize_deploy_tool-2.7.0/tests/fixtures/update_noninteractive_clean/expected_render_output/authentik/custom-templates/email_password_changed.html +111 -0
- octopize_deploy_tool-2.7.0/tests/fixtures/update_noninteractive_clean/expected_render_output/authentik/custom-templates/email_password_reset.html +109 -0
- octopize_deploy_tool-2.7.0/tests/fixtures/update_noninteractive_clean/expected_render_output/authentik/octopize-avatar-blueprint.yaml +1738 -0
- octopize_deploy_tool-2.7.0/tests/fixtures/update_noninteractive_clean/expected_render_output/authentik/translations.json +24 -0
- octopize_deploy_tool-2.7.0/tests/fixtures/update_noninteractive_clean/expected_render_output/docker-compose.yml +592 -0
- octopize_deploy_tool-2.7.0/tests/fixtures/update_noninteractive_clean/expected_render_output/nginx/nginx.conf +112 -0
- octopize_deploy_tool-2.7.0/tests/helpers/__init__.py +1 -0
- octopize_deploy_tool-2.7.0/tests/helpers/fakes.py +333 -0
- octopize_deploy_tool-2.7.0/tests/helpers/fixture_dir_comparison.py +194 -0
- octopize_deploy_tool-2.7.0/tests/helpers/normalization.py +206 -0
- octopize_deploy_tool-2.7.0/tests/helpers/printers.py +62 -0
- octopize_deploy_tool-2.7.0/tests/integration/__init__.py +9 -0
- {octopize_deploy_tool-2.4.0 → octopize_deploy_tool-2.7.0}/tests/integration/test_cli_integration.py +62 -12
- octopize_deploy_tool-2.7.0/tests/integration/test_configure_command.py +690 -0
- octopize_deploy_tool-2.7.0/tests/integration/test_diff_command.py +245 -0
- {octopize_deploy_tool-2.4.0 → octopize_deploy_tool-2.7.0}/tests/integration/test_generate_env.py +6 -2
- octopize_deploy_tool-2.7.0/tests/integration/test_install_command.py +129 -0
- octopize_deploy_tool-2.7.0/tests/integration/test_update_command.py +288 -0
- octopize_deploy_tool-2.7.0/tests/unit/infra/__init__.py +0 -0
- octopize_deploy_tool-2.7.0/tests/unit/infra/conftest.py +70 -0
- octopize_deploy_tool-2.7.0/tests/unit/infra/test_configure_runner_adapter.py +143 -0
- octopize_deploy_tool-2.7.0/tests/unit/infra/test_filesystem_directory_copier.py +101 -0
- octopize_deploy_tool-2.7.0/tests/unit/infra/test_filesystem_legacy_source.py +62 -0
- octopize_deploy_tool-2.7.0/tests/unit/infra/test_preset_loader.py +132 -0
- octopize_deploy_tool-2.7.0/tests/unit/infra/test_yaml_config_source.py +30 -0
- octopize_deploy_tool-2.7.0/tests/unit/infra/test_yaml_deployment_state_repository.py +83 -0
- {octopize_deploy_tool-2.4.0/tests → octopize_deploy_tool-2.7.0/tests/unit}/steps/test_api_local_source.py +1 -1
- {octopize_deploy_tool-2.4.0/tests → octopize_deploy_tool-2.7.0/tests/unit}/steps/test_base.py +2 -2
- {octopize_deploy_tool-2.4.0/tests → octopize_deploy_tool-2.7.0/tests/unit}/steps/test_component_selection.py +1 -2
- {octopize_deploy_tool-2.4.0/tests → octopize_deploy_tool-2.7.0/tests/unit}/steps/test_email.py +9 -9
- {octopize_deploy_tool-2.4.0/tests → octopize_deploy_tool-2.7.0/tests/unit}/steps/test_local_source.py +1 -1
- octopize_deploy_tool-2.7.0/tests/unit/steps/test_nginx.py +499 -0
- {octopize_deploy_tool-2.4.0/tests → octopize_deploy_tool-2.7.0/tests/unit}/steps/test_state_manager.py +142 -1
- {octopize_deploy_tool-2.4.0/tests → octopize_deploy_tool-2.7.0/tests/unit}/steps/test_storage.py +0 -3
- {octopize_deploy_tool-2.4.0/tests → octopize_deploy_tool-2.7.0/tests/unit}/steps/test_target_environment.py +9 -3
- octopize_deploy_tool-2.7.0/tests/unit/steps/test_telemetry.py +218 -0
- octopize_deploy_tool-2.7.0/tests/unit/steps/test_user.py +41 -0
- octopize_deploy_tool-2.7.0/tests/unit/test_apply_command.py +241 -0
- {octopize_deploy_tool-2.4.0 → octopize_deploy_tool-2.7.0}/tests/unit/test_authentik_client.py +4 -2
- {octopize_deploy_tool-2.4.0 → octopize_deploy_tool-2.7.0}/tests/unit/test_components.py +1 -2
- octopize_deploy_tool-2.7.0/tests/unit/test_configurator.py +390 -0
- octopize_deploy_tool-2.7.0/tests/unit/test_configure_command.py +959 -0
- {octopize_deploy_tool-2.4.0 → octopize_deploy_tool-2.7.0}/tests/unit/test_deployment_configurator.py +46 -80
- octopize_deploy_tool-2.7.0/tests/unit/test_deployment_item.py +40 -0
- octopize_deploy_tool-2.7.0/tests/unit/test_diff_command.py +785 -0
- {octopize_deploy_tool-2.4.0 → octopize_deploy_tool-2.7.0}/tests/unit/test_generate_env_cli.py +6 -9
- {octopize_deploy_tool-2.4.0 → octopize_deploy_tool-2.7.0}/tests/unit/test_generic_prompt.py +2 -2
- {octopize_deploy_tool-2.4.0 → octopize_deploy_tool-2.7.0}/tests/unit/test_input_gatherer.py +15 -3
- octopize_deploy_tool-2.7.0/tests/unit/test_install_command.py +302 -0
- octopize_deploy_tool-2.7.0/tests/unit/test_migrate_command.py +594 -0
- octopize_deploy_tool-2.7.0/tests/unit/test_normalizers.py +42 -0
- octopize_deploy_tool-2.7.0/tests/unit/test_preflight_checks.py +526 -0
- {octopize_deploy_tool-2.4.0 → octopize_deploy_tool-2.7.0}/tests/unit/test_public_url.py +1 -1
- octopize_deploy_tool-2.7.0/tests/unit/test_render_command.py +547 -0
- octopize_deploy_tool-2.7.0/tests/unit/test_renderer.py +276 -0
- {octopize_deploy_tool-2.4.0 → octopize_deploy_tool-2.7.0}/tests/unit/test_rich_implementations.py +2 -15
- {octopize_deploy_tool-2.4.0 → octopize_deploy_tool-2.7.0}/tests/unit/test_step_filtering.py +0 -4
- octopize_deploy_tool-2.7.0/tests/unit/test_update_command.py +367 -0
- octopize_deploy_tool-2.7.0/tests/unit/test_version_id.py +71 -0
- octopize_deploy_tool-2.4.0/src/octopize_avatar_deploy/cli.py +0 -422
- octopize_deploy_tool-2.4.0/src/octopize_avatar_deploy/steps/telemetry.py +0 -97
- octopize_deploy_tool-2.4.0/src/octopize_avatar_deploy/steps/user.py +0 -67
- octopize_deploy_tool-2.4.0/tests/TESTING.md +0 -237
- octopize_deploy_tool-2.4.0/tests/fixtures/dev_mode_deployment/expected/docker-compose.yml +0 -610
- octopize_deploy_tool-2.4.0/tests/fixtures/generate_env_output_dir_error/output.txt +0 -2
- octopize_deploy_tool-2.4.0/tests/fixtures/help/output.txt +0 -13
- octopize_deploy_tool-2.4.0/tests/fixtures/missing_subcommand/output.txt +0 -2
- octopize_deploy_tool-2.4.0/tests/fixtures/no_telemetry/expected/docker-compose.yml +0 -610
- octopize_deploy_tool-2.4.0/tests/fixtures/non_interactive_complete/expected/docker-compose.yml +0 -610
- octopize_deploy_tool-2.4.0/tests/fixtures/output_dir_nested/output.txt +0 -99
- octopize_deploy_tool-2.4.0/tests/integration/__init__.py +0 -1
- octopize_deploy_tool-2.4.0/tests/steps/test_nginx.py +0 -131
- octopize_deploy_tool-2.4.0/tests/steps/test_telemetry.py +0 -111
- octopize_deploy_tool-2.4.0/tests/steps/test_user.py +0 -73
- octopize_deploy_tool-2.4.0/tests/steps/test_user_validation.py +0 -147
- {octopize_deploy_tool-2.4.0 → octopize_deploy_tool-2.7.0}/README.md +0 -0
- {octopize_deploy_tool-2.4.0 → octopize_deploy_tool-2.7.0}/src/octopize_avatar_deploy/components.py +0 -0
- {octopize_deploy_tool-2.4.0 → octopize_deploy_tool-2.7.0}/src/octopize_avatar_deploy/deployment_mode.py +0 -0
- {octopize_deploy_tool-2.4.0 → octopize_deploy_tool-2.7.0}/src/octopize_avatar_deploy/generate_env.py +0 -0
- {octopize_deploy_tool-2.4.0 → octopize_deploy_tool-2.7.0}/src/octopize_avatar_deploy/output_spec.py +0 -0
- {octopize_deploy_tool-2.4.0 → octopize_deploy_tool-2.7.0}/src/octopize_avatar_deploy/steps/__init__.py +0 -0
- {octopize_deploy_tool-2.4.0 → octopize_deploy_tool-2.7.0}/src/octopize_avatar_deploy/steps/authentik_blueprint.py +0 -0
- {octopize_deploy_tool-2.4.0 → octopize_deploy_tool-2.7.0}/src/octopize_avatar_deploy/steps/database.py +0 -0
- {octopize_deploy_tool-2.4.0 → octopize_deploy_tool-2.7.0}/src/octopize_avatar_deploy/steps/logging.py +0 -0
- {octopize_deploy_tool-2.4.0 → octopize_deploy_tool-2.7.0}/src/octopize_avatar_deploy/steps/service_urls.py +0 -0
- {octopize_deploy_tool-2.4.0 → octopize_deploy_tool-2.7.0}/src/octopize_avatar_deploy/templates/.env.template +0 -0
- {octopize_deploy_tool-2.4.0 → octopize_deploy_tool-2.7.0}/src/octopize_avatar_deploy/templates/.template-version +0 -0
- {octopize_deploy_tool-2.4.0 → octopize_deploy_tool-2.7.0}/src/octopize_avatar_deploy/templates/_env_fragment_infra.template +0 -0
- {octopize_deploy_tool-2.4.0 → octopize_deploy_tool-2.7.0}/src/octopize_avatar_deploy/templates/_env_fragment_web.template +0 -0
- {octopize_deploy_tool-2.4.0 → octopize_deploy_tool-2.7.0}/src/octopize_avatar_deploy/templates/authentik/branding/favicon.ico +0 -0
- {octopize_deploy_tool-2.4.0 → octopize_deploy_tool-2.7.0}/src/octopize_avatar_deploy/templates/authentik/branding/logo.png +0 -0
- {octopize_deploy_tool-2.4.0 → octopize_deploy_tool-2.7.0}/src/octopize_avatar_deploy/templates/authentik/custom-templates/email_account_confirmation.html +0 -0
- {octopize_deploy_tool-2.4.0 → octopize_deploy_tool-2.7.0}/src/octopize_avatar_deploy/templates/authentik/custom-templates/email_account_exists.html +0 -0
- {octopize_deploy_tool-2.4.0 → octopize_deploy_tool-2.7.0}/src/octopize_avatar_deploy/templates/authentik/custom-templates/email_account_invitation.html +0 -0
- {octopize_deploy_tool-2.4.0 → octopize_deploy_tool-2.7.0}/src/octopize_avatar_deploy/templates/authentik/custom-templates/email_forgotten_password.html +0 -0
- {octopize_deploy_tool-2.4.0 → octopize_deploy_tool-2.7.0}/src/octopize_avatar_deploy/templates/authentik/custom-templates/email_password_changed.html +0 -0
- {octopize_deploy_tool-2.4.0 → octopize_deploy_tool-2.7.0}/src/octopize_avatar_deploy/templates/authentik/custom-templates/email_password_reset.html +0 -0
- {octopize_deploy_tool-2.4.0 → octopize_deploy_tool-2.7.0}/src/octopize_avatar_deploy/templates/authentik/octopize-avatar-blueprint.yaml +0 -0
- {octopize_deploy_tool-2.4.0 → octopize_deploy_tool-2.7.0}/src/octopize_avatar_deploy/templates/authentik/translations.json +0 -0
- {octopize_deploy_tool-2.4.0 → octopize_deploy_tool-2.7.0}/src/octopize_avatar_deploy/templates/compose.override.yaml.template +0 -0
- {octopize_deploy_tool-2.4.0 → octopize_deploy_tool-2.7.0}/src/octopize_avatar_deploy/templates/nginx.conf.template +0 -0
- {octopize_deploy_tool-2.4.0 → octopize_deploy_tool-2.7.0}/src/octopize_avatar_deploy/templates/python_client.env.template +0 -0
- {octopize_deploy_tool-2.4.0 → octopize_deploy_tool-2.7.0}/src/octopize_avatar_deploy/templates/web.env.template +0 -0
- {octopize_deploy_tool-2.4.0 → octopize_deploy_tool-2.7.0}/src/octopize_avatar_deploy/topology_urls.py +0 -0
- {octopize_deploy_tool-2.4.0 → octopize_deploy_tool-2.7.0}/src/octopize_avatar_deploy/url_contract.py +0 -0
- {octopize_deploy_tool-2.4.0 → octopize_deploy_tool-2.7.0}/tests/__init__.py +0 -0
- {octopize_deploy_tool-2.4.0 → octopize_deploy_tool-2.7.0}/tests/fixtures/authentik_migration/licenses.csv +0 -0
- {octopize_deploy_tool-2.4.0 → octopize_deploy_tool-2.7.0}/tests/fixtures/authentik_migration/organizations.csv +0 -0
- {octopize_deploy_tool-2.4.0 → octopize_deploy_tool-2.7.0}/tests/fixtures/authentik_migration/users.csv +0 -0
- {octopize_deploy_tool-2.4.0 → octopize_deploy_tool-2.7.0}/tests/fixtures/basic_deployment/expected/authentik/branding/favicon.ico +0 -0
- {octopize_deploy_tool-2.4.0 → octopize_deploy_tool-2.7.0}/tests/fixtures/basic_deployment/expected/authentik/branding/logo.png +0 -0
- {octopize_deploy_tool-2.4.0 → octopize_deploy_tool-2.7.0}/tests/fixtures/basic_deployment/expected/authentik/custom-templates/email_account_confirmation.html +0 -0
- {octopize_deploy_tool-2.4.0 → octopize_deploy_tool-2.7.0}/tests/fixtures/basic_deployment/expected/authentik/custom-templates/email_account_exists.html +0 -0
- {octopize_deploy_tool-2.4.0 → octopize_deploy_tool-2.7.0}/tests/fixtures/basic_deployment/expected/authentik/custom-templates/email_account_invitation.html +0 -0
- {octopize_deploy_tool-2.4.0 → octopize_deploy_tool-2.7.0}/tests/fixtures/basic_deployment/expected/authentik/custom-templates/email_forgotten_password.html +0 -0
- {octopize_deploy_tool-2.4.0 → octopize_deploy_tool-2.7.0}/tests/fixtures/basic_deployment/expected/authentik/custom-templates/email_password_changed.html +0 -0
- {octopize_deploy_tool-2.4.0 → octopize_deploy_tool-2.7.0}/tests/fixtures/basic_deployment/expected/authentik/custom-templates/email_password_reset.html +0 -0
- {octopize_deploy_tool-2.4.0 → octopize_deploy_tool-2.7.0}/tests/fixtures/basic_deployment/expected/authentik/octopize-avatar-blueprint.yaml +0 -0
- {octopize_deploy_tool-2.4.0 → octopize_deploy_tool-2.7.0}/tests/fixtures/basic_deployment/expected/authentik/translations.json +0 -0
- {octopize_deploy_tool-2.4.0 → octopize_deploy_tool-2.7.0}/tests/fixtures/basic_deployment/expected/nginx/nginx.conf +0 -0
- {octopize_deploy_tool-2.4.0 → octopize_deploy_tool-2.7.0}/tests/fixtures/cloud_storage/expected/authentik/branding/favicon.ico +0 -0
- {octopize_deploy_tool-2.4.0 → octopize_deploy_tool-2.7.0}/tests/fixtures/cloud_storage/expected/authentik/branding/logo.png +0 -0
- {octopize_deploy_tool-2.4.0 → octopize_deploy_tool-2.7.0}/tests/fixtures/cloud_storage/expected/authentik/custom-templates/email_account_confirmation.html +0 -0
- {octopize_deploy_tool-2.4.0 → octopize_deploy_tool-2.7.0}/tests/fixtures/cloud_storage/expected/authentik/custom-templates/email_account_exists.html +0 -0
- {octopize_deploy_tool-2.4.0 → octopize_deploy_tool-2.7.0}/tests/fixtures/cloud_storage/expected/authentik/custom-templates/email_account_invitation.html +0 -0
- {octopize_deploy_tool-2.4.0 → octopize_deploy_tool-2.7.0}/tests/fixtures/cloud_storage/expected/authentik/custom-templates/email_forgotten_password.html +0 -0
- {octopize_deploy_tool-2.4.0 → octopize_deploy_tool-2.7.0}/tests/fixtures/cloud_storage/expected/authentik/custom-templates/email_password_changed.html +0 -0
- {octopize_deploy_tool-2.4.0 → octopize_deploy_tool-2.7.0}/tests/fixtures/cloud_storage/expected/authentik/custom-templates/email_password_reset.html +0 -0
- {octopize_deploy_tool-2.4.0 → octopize_deploy_tool-2.7.0}/tests/fixtures/cloud_storage/expected/authentik/octopize-avatar-blueprint.yaml +0 -0
- {octopize_deploy_tool-2.4.0 → octopize_deploy_tool-2.7.0}/tests/fixtures/cloud_storage/expected/authentik/translations.json +0 -0
- {octopize_deploy_tool-2.4.0 → octopize_deploy_tool-2.7.0}/tests/fixtures/cloud_storage/expected/nginx/nginx.conf +0 -0
- {octopize_deploy_tool-2.4.0 → octopize_deploy_tool-2.7.0}/tests/fixtures/config_not_found/output.txt +0 -0
- {octopize_deploy_tool-2.4.0 → octopize_deploy_tool-2.7.0}/tests/fixtures/config_round_trip_first/expected/authentik/branding/favicon.ico +0 -0
- {octopize_deploy_tool-2.4.0 → octopize_deploy_tool-2.7.0}/tests/fixtures/config_round_trip_first/expected/authentik/branding/logo.png +0 -0
- {octopize_deploy_tool-2.4.0 → octopize_deploy_tool-2.7.0}/tests/fixtures/config_round_trip_first/expected/authentik/custom-templates/email_account_confirmation.html +0 -0
- {octopize_deploy_tool-2.4.0 → octopize_deploy_tool-2.7.0}/tests/fixtures/config_round_trip_first/expected/authentik/custom-templates/email_account_exists.html +0 -0
- {octopize_deploy_tool-2.4.0 → octopize_deploy_tool-2.7.0}/tests/fixtures/config_round_trip_first/expected/authentik/custom-templates/email_account_invitation.html +0 -0
- {octopize_deploy_tool-2.4.0 → octopize_deploy_tool-2.7.0}/tests/fixtures/config_round_trip_first/expected/authentik/custom-templates/email_forgotten_password.html +0 -0
- {octopize_deploy_tool-2.4.0 → octopize_deploy_tool-2.7.0}/tests/fixtures/config_round_trip_first/expected/authentik/custom-templates/email_password_changed.html +0 -0
- {octopize_deploy_tool-2.4.0 → octopize_deploy_tool-2.7.0}/tests/fixtures/config_round_trip_first/expected/authentik/custom-templates/email_password_reset.html +0 -0
- {octopize_deploy_tool-2.4.0 → octopize_deploy_tool-2.7.0}/tests/fixtures/config_round_trip_first/expected/authentik/octopize-avatar-blueprint.yaml +0 -0
- {octopize_deploy_tool-2.4.0 → octopize_deploy_tool-2.7.0}/tests/fixtures/config_round_trip_first/expected/authentik/translations.json +0 -0
- {octopize_deploy_tool-2.4.0 → octopize_deploy_tool-2.7.0}/tests/fixtures/config_round_trip_first/expected/nginx/nginx.conf +0 -0
- {octopize_deploy_tool-2.4.0 → octopize_deploy_tool-2.7.0}/tests/fixtures/config_round_trip_second/expected/authentik/branding/favicon.ico +0 -0
- {octopize_deploy_tool-2.4.0 → octopize_deploy_tool-2.7.0}/tests/fixtures/config_round_trip_second/expected/authentik/branding/logo.png +0 -0
- {octopize_deploy_tool-2.4.0 → octopize_deploy_tool-2.7.0}/tests/fixtures/config_round_trip_second/expected/authentik/custom-templates/email_account_confirmation.html +0 -0
- {octopize_deploy_tool-2.4.0 → octopize_deploy_tool-2.7.0}/tests/fixtures/config_round_trip_second/expected/authentik/custom-templates/email_account_exists.html +0 -0
- {octopize_deploy_tool-2.4.0 → octopize_deploy_tool-2.7.0}/tests/fixtures/config_round_trip_second/expected/authentik/custom-templates/email_account_invitation.html +0 -0
- {octopize_deploy_tool-2.4.0 → octopize_deploy_tool-2.7.0}/tests/fixtures/config_round_trip_second/expected/authentik/custom-templates/email_forgotten_password.html +0 -0
- {octopize_deploy_tool-2.4.0 → octopize_deploy_tool-2.7.0}/tests/fixtures/config_round_trip_second/expected/authentik/custom-templates/email_password_changed.html +0 -0
- {octopize_deploy_tool-2.4.0 → octopize_deploy_tool-2.7.0}/tests/fixtures/config_round_trip_second/expected/authentik/custom-templates/email_password_reset.html +0 -0
- {octopize_deploy_tool-2.4.0 → octopize_deploy_tool-2.7.0}/tests/fixtures/config_round_trip_second/expected/authentik/octopize-avatar-blueprint.yaml +0 -0
- {octopize_deploy_tool-2.4.0 → octopize_deploy_tool-2.7.0}/tests/fixtures/config_round_trip_second/expected/authentik/translations.json +0 -0
- {octopize_deploy_tool-2.4.0 → octopize_deploy_tool-2.7.0}/tests/fixtures/config_round_trip_second/expected/nginx/nginx.conf +0 -0
- {octopize_deploy_tool-2.4.0 → octopize_deploy_tool-2.7.0}/tests/fixtures/deploy_help/output.txt +0 -0
- {octopize_deploy_tool-2.4.0 → octopize_deploy_tool-2.7.0}/tests/fixtures/dev_mode_deployment/expected/authentik/branding/favicon.ico +0 -0
- {octopize_deploy_tool-2.4.0 → octopize_deploy_tool-2.7.0}/tests/fixtures/dev_mode_deployment/expected/authentik/branding/logo.png +0 -0
- {octopize_deploy_tool-2.4.0 → octopize_deploy_tool-2.7.0}/tests/fixtures/dev_mode_deployment/expected/authentik/custom-templates/email_account_confirmation.html +0 -0
- {octopize_deploy_tool-2.4.0 → octopize_deploy_tool-2.7.0}/tests/fixtures/dev_mode_deployment/expected/authentik/custom-templates/email_account_exists.html +0 -0
- {octopize_deploy_tool-2.4.0 → octopize_deploy_tool-2.7.0}/tests/fixtures/dev_mode_deployment/expected/authentik/custom-templates/email_account_invitation.html +0 -0
- {octopize_deploy_tool-2.4.0 → octopize_deploy_tool-2.7.0}/tests/fixtures/dev_mode_deployment/expected/authentik/custom-templates/email_forgotten_password.html +0 -0
- {octopize_deploy_tool-2.4.0 → octopize_deploy_tool-2.7.0}/tests/fixtures/dev_mode_deployment/expected/authentik/custom-templates/email_password_changed.html +0 -0
- {octopize_deploy_tool-2.4.0 → octopize_deploy_tool-2.7.0}/tests/fixtures/dev_mode_deployment/expected/authentik/custom-templates/email_password_reset.html +0 -0
- {octopize_deploy_tool-2.4.0 → octopize_deploy_tool-2.7.0}/tests/fixtures/dev_mode_deployment/expected/authentik/octopize-avatar-blueprint.yaml +0 -0
- {octopize_deploy_tool-2.4.0 → octopize_deploy_tool-2.7.0}/tests/fixtures/dev_mode_deployment/expected/authentik/translations.json +0 -0
- {octopize_deploy_tool-2.4.0 → octopize_deploy_tool-2.7.0}/tests/fixtures/dev_mode_deployment/expected/compose.override.yaml +0 -0
- {octopize_deploy_tool-2.4.0 → octopize_deploy_tool-2.7.0}/tests/fixtures/dev_mode_deployment/expected/nginx/nginx.conf +0 -0
- {octopize_deploy_tool-2.4.0 → octopize_deploy_tool-2.7.0}/tests/fixtures/dev_mode_deployment/expected/test-.npmrc +0 -0
- {octopize_deploy_tool-2.4.0 → octopize_deploy_tool-2.7.0}/tests/fixtures/dev_mode_deployment/expected/test-avatar-repo/services/api/main.py +0 -0
- {octopize_deploy_tool-2.4.0 → octopize_deploy_tool-2.7.0}/tests/fixtures/dev_mode_deployment/expected/test-avatar-website/package.json +0 -0
- {octopize_deploy_tool-2.4.0 → octopize_deploy_tool-2.7.0}/tests/fixtures/generate_env_help/output.txt +0 -0
- {octopize_deploy_tool-2.4.0/tests/fixtures/no_telemetry/expected → octopize_deploy_tool-2.7.0/tests/fixtures/install_apply_output}/authentik/branding/favicon.ico +0 -0
- {octopize_deploy_tool-2.4.0/tests/fixtures/no_telemetry/expected → octopize_deploy_tool-2.7.0/tests/fixtures/install_apply_output}/authentik/branding/logo.png +0 -0
- {octopize_deploy_tool-2.4.0/tests/fixtures/no_telemetry/expected → octopize_deploy_tool-2.7.0/tests/fixtures/install_apply_output}/authentik/custom-templates/email_account_confirmation.html +0 -0
- {octopize_deploy_tool-2.4.0/tests/fixtures/no_telemetry/expected → octopize_deploy_tool-2.7.0/tests/fixtures/install_apply_output}/authentik/custom-templates/email_account_exists.html +0 -0
- {octopize_deploy_tool-2.4.0/tests/fixtures/no_telemetry/expected → octopize_deploy_tool-2.7.0/tests/fixtures/install_apply_output}/authentik/custom-templates/email_account_invitation.html +0 -0
- {octopize_deploy_tool-2.4.0/tests/fixtures/no_telemetry/expected → octopize_deploy_tool-2.7.0/tests/fixtures/install_apply_output}/authentik/custom-templates/email_forgotten_password.html +0 -0
- {octopize_deploy_tool-2.4.0/tests/fixtures/no_telemetry/expected → octopize_deploy_tool-2.7.0/tests/fixtures/install_apply_output}/authentik/custom-templates/email_password_changed.html +0 -0
- {octopize_deploy_tool-2.4.0/tests/fixtures/no_telemetry/expected → octopize_deploy_tool-2.7.0/tests/fixtures/install_apply_output}/authentik/custom-templates/email_password_reset.html +0 -0
- {octopize_deploy_tool-2.4.0/tests/fixtures/no_telemetry/expected → octopize_deploy_tool-2.7.0/tests/fixtures/install_apply_output}/authentik/octopize-avatar-blueprint.yaml +0 -0
- {octopize_deploy_tool-2.4.0/tests/fixtures/no_telemetry/expected → octopize_deploy_tool-2.7.0/tests/fixtures/install_apply_output}/authentik/translations.json +0 -0
- {octopize_deploy_tool-2.4.0/tests/fixtures/non_interactive_complete/expected → octopize_deploy_tool-2.7.0/tests/fixtures/install_apply_output}/nginx/nginx.conf +0 -0
- {octopize_deploy_tool-2.4.0/tests/fixtures/non_interactive_complete/expected → octopize_deploy_tool-2.7.0/tests/fixtures/install_render_output}/authentik/branding/favicon.ico +0 -0
- {octopize_deploy_tool-2.4.0/tests/fixtures/non_interactive_complete/expected → octopize_deploy_tool-2.7.0/tests/fixtures/install_render_output}/authentik/branding/logo.png +0 -0
- {octopize_deploy_tool-2.4.0/tests/fixtures/non_interactive_complete/expected → octopize_deploy_tool-2.7.0/tests/fixtures/install_render_output}/authentik/custom-templates/email_account_confirmation.html +0 -0
- {octopize_deploy_tool-2.4.0/tests/fixtures/non_interactive_complete/expected → octopize_deploy_tool-2.7.0/tests/fixtures/install_render_output}/authentik/custom-templates/email_account_exists.html +0 -0
- {octopize_deploy_tool-2.4.0/tests/fixtures/non_interactive_complete/expected → octopize_deploy_tool-2.7.0/tests/fixtures/install_render_output}/authentik/custom-templates/email_account_invitation.html +0 -0
- {octopize_deploy_tool-2.4.0/tests/fixtures/non_interactive_complete/expected → octopize_deploy_tool-2.7.0/tests/fixtures/install_render_output}/authentik/custom-templates/email_forgotten_password.html +0 -0
- {octopize_deploy_tool-2.4.0/tests/fixtures/non_interactive_complete/expected → octopize_deploy_tool-2.7.0/tests/fixtures/install_render_output}/authentik/custom-templates/email_password_changed.html +0 -0
- {octopize_deploy_tool-2.4.0/tests/fixtures/non_interactive_complete/expected → octopize_deploy_tool-2.7.0/tests/fixtures/install_render_output}/authentik/custom-templates/email_password_reset.html +0 -0
- {octopize_deploy_tool-2.4.0/tests/fixtures/non_interactive_complete/expected → octopize_deploy_tool-2.7.0/tests/fixtures/install_render_output}/authentik/octopize-avatar-blueprint.yaml +0 -0
- {octopize_deploy_tool-2.4.0/tests/fixtures/non_interactive_complete/expected → octopize_deploy_tool-2.7.0/tests/fixtures/install_render_output}/authentik/translations.json +0 -0
- {octopize_deploy_tool-2.4.0 → octopize_deploy_tool-2.7.0}/tests/fixtures/invalid_port_config/config.yaml +0 -0
- {octopize_deploy_tool-2.4.0 → octopize_deploy_tool-2.7.0}/tests/fixtures/invalid_url_config/config.yaml +0 -0
- {octopize_deploy_tool-2.4.0 → octopize_deploy_tool-2.7.0}/tests/fixtures/invalid_url_config/output.txt +0 -0
- {octopize_deploy_tool-2.4.0 → octopize_deploy_tool-2.7.0}/tests/fixtures/malformed_yaml/config.yaml +0 -0
- {octopize_deploy_tool-2.4.0 → octopize_deploy_tool-2.7.0}/tests/fixtures/malformed_yaml/output.txt +0 -0
- {octopize_deploy_tool-2.4.0 → octopize_deploy_tool-2.7.0}/tests/fixtures/no_telemetry/expected/nginx/nginx.conf +0 -0
- {octopize_deploy_tool-2.4.0 → octopize_deploy_tool-2.7.0}/tests/fixtures/non_interactive_incomplete_config/config.yaml +0 -0
- {octopize_deploy_tool-2.4.0 → octopize_deploy_tool-2.7.0}/tests/fixtures/non_interactive_no_config/output.txt +0 -0
- {octopize_deploy_tool-2.4.0 → octopize_deploy_tool-2.7.0}/tests/fixtures/non_interactive_partial_config/config.yaml +0 -0
- {octopize_deploy_tool-2.4.0 → octopize_deploy_tool-2.7.0}/tests/fixtures/output_dir_permission_denied/output.txt +0 -0
- {octopize_deploy_tool-2.4.0 → octopize_deploy_tool-2.7.0}/tests/fixtures/save_config_with_existing/config.yaml +0 -0
- {octopize_deploy_tool-2.4.0 → octopize_deploy_tool-2.7.0}/tests/fixtures/type_mismatch_config/config.yaml +0 -0
- {octopize_deploy_tool-2.4.0 → octopize_deploy_tool-2.7.0}/tests/test_cli_harness.py +0 -0
- {octopize_deploy_tool-2.4.0/tests → octopize_deploy_tool-2.7.0/tests/unit}/steps/test_authentik.py +0 -0
- {octopize_deploy_tool-2.4.0/tests → octopize_deploy_tool-2.7.0/tests/unit}/steps/test_authentik_blueprint.py +0 -0
- {octopize_deploy_tool-2.4.0/tests → octopize_deploy_tool-2.7.0/tests/unit}/steps/test_database.py +0 -0
- {octopize_deploy_tool-2.4.0/tests → octopize_deploy_tool-2.7.0/tests/unit}/steps/test_logging.py +0 -0
- {octopize_deploy_tool-2.4.0/tests → octopize_deploy_tool-2.7.0/tests/unit}/steps/test_required.py +0 -0
- {octopize_deploy_tool-2.4.0/tests → octopize_deploy_tool-2.7.0/tests/unit}/steps/test_service_urls.py +0 -0
- {octopize_deploy_tool-2.4.0 → octopize_deploy_tool-2.7.0}/tests/unit/test_authentik_migration.py +0 -0
- {octopize_deploy_tool-2.4.0 → octopize_deploy_tool-2.7.0}/tests/unit/test_compare_helpers.py +0 -0
- {octopize_deploy_tool-2.4.0 → octopize_deploy_tool-2.7.0}/tests/unit/test_deployment_runner.py +0 -0
- {octopize_deploy_tool-2.4.0 → octopize_deploy_tool-2.7.0}/tests/unit/test_output_spec.py +0 -0
- {octopize_deploy_tool-2.4.0 → octopize_deploy_tool-2.7.0}/tests/unit/test_printer.py +0 -0
- {octopize_deploy_tool-2.4.0 → octopize_deploy_tool-2.7.0}/tests/unit/test_topology_urls.py +0 -0
- {octopize_deploy_tool-2.4.0 → octopize_deploy_tool-2.7.0}/tests/unit/test_version_validation.py +0 -0
|
@@ -67,6 +67,9 @@ Thumbs.db
|
|
|
67
67
|
.avatar-templates
|
|
68
68
|
.deployment_state.yaml
|
|
69
69
|
.env
|
|
70
|
-
!tests/fixtures
|
|
70
|
+
!tests/fixtures/**/.env
|
|
71
71
|
config.*.yaml
|
|
72
72
|
!config.example.yaml
|
|
73
|
+
.deployment_states/*
|
|
74
|
+
# TLS test fixtures created dynamically by the test suite
|
|
75
|
+
tls/
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: octopize.deploy_tool
|
|
3
|
-
Version: 2.
|
|
3
|
+
Version: 2.7.0
|
|
4
4
|
Summary: Deployment configuration tool for Octopize Avatar platform
|
|
5
5
|
Project-URL: Homepage, https://octopize.io
|
|
6
6
|
Project-URL: Documentation, https://docs.octopize.io/docs/deploying/self-hosted
|
|
@@ -21,12 +21,9 @@ Requires-Python: >=3.13
|
|
|
21
21
|
Requires-Dist: httpx>=0.28.0
|
|
22
22
|
Requires-Dist: jinja2>=3.1.0
|
|
23
23
|
Requires-Dist: pandas>=3.0.0
|
|
24
|
+
Requires-Dist: python-on-whales>=0.76.0
|
|
24
25
|
Requires-Dist: pyyaml>=6.0
|
|
25
26
|
Requires-Dist: rich>=13.0.0
|
|
26
|
-
Provides-Extra: dev
|
|
27
|
-
Requires-Dist: pyright>=1.1.402; extra == 'dev'
|
|
28
|
-
Requires-Dist: pytest>=7.0; extra == 'dev'
|
|
29
|
-
Requires-Dist: ruff>=0.1.0; extra == 'dev'
|
|
30
27
|
Description-Content-Type: text/markdown
|
|
31
28
|
|
|
32
29
|
# Octopize Avatar Deployment Tool
|
octopize_deploy_tool-2.7.0/infra/deployment/deployment-tool/src/octopize_avatar_deploy/steps/user.py
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"""User authentication configuration step."""
|
|
2
|
+
|
|
3
|
+
from typing import Any
|
|
4
|
+
|
|
5
|
+
from .base import DeploymentStep
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
class UserStep(DeploymentStep):
|
|
9
|
+
"""Handles user authentication configuration."""
|
|
10
|
+
|
|
11
|
+
name = "user"
|
|
12
|
+
description = "Configure user authentication settings"
|
|
13
|
+
|
|
14
|
+
def collect_config(self) -> dict[str, Any]:
|
|
15
|
+
"""Collect user authentication configuration."""
|
|
16
|
+
return {}
|
|
17
|
+
|
|
18
|
+
def generate_secrets(self) -> dict[str, str]:
|
|
19
|
+
"""Generate user-related secrets."""
|
|
20
|
+
return {}
|
|
@@ -4,14 +4,12 @@ build-backend = "hatchling.build"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "octopize.deploy_tool"
|
|
7
|
-
version = "2.
|
|
7
|
+
version = "2.7.0"
|
|
8
8
|
description = "Deployment configuration tool for Octopize Avatar platform"
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
requires-python = ">=3.13"
|
|
11
11
|
license = { text = "MIT" }
|
|
12
|
-
authors = [
|
|
13
|
-
{ name = "Octopize", email = "contact@octopize.io" }
|
|
14
|
-
]
|
|
12
|
+
authors = [{ name = "Octopize", email = "contact@octopize.io" }]
|
|
15
13
|
keywords = ["octopize", "avatar", "deployment", "configuration"]
|
|
16
14
|
classifiers = [
|
|
17
15
|
"Development Status :: 4 - Beta",
|
|
@@ -30,13 +28,18 @@ dependencies = [
|
|
|
30
28
|
"rich>=13.0.0",
|
|
31
29
|
"httpx>=0.28.0",
|
|
32
30
|
"pandas>=3.0.0",
|
|
31
|
+
"python-on-whales>=0.76.0",
|
|
33
32
|
]
|
|
34
33
|
|
|
35
|
-
[
|
|
34
|
+
[dependency-groups]
|
|
36
35
|
dev = [
|
|
37
|
-
"pytest>=
|
|
36
|
+
"pytest>=9",
|
|
37
|
+
"mypy>=1.20.0",
|
|
38
38
|
"pyright>=1.1.402",
|
|
39
|
-
"
|
|
39
|
+
"types-pyyaml>=6.0.12.20241230",
|
|
40
|
+
"pandas-stubs>=3.0.0",
|
|
41
|
+
"pytest-httpx>=0.36.0",
|
|
42
|
+
"pytest-cov>=7.1.0",
|
|
40
43
|
]
|
|
41
44
|
|
|
42
45
|
[project.scripts]
|
|
@@ -55,36 +58,30 @@ packages = ["src/octopize_avatar_deploy"]
|
|
|
55
58
|
"src" = ""
|
|
56
59
|
|
|
57
60
|
[tool.hatch.build.targets.sdist]
|
|
58
|
-
include = [
|
|
59
|
-
"src/",
|
|
60
|
-
"tests/",
|
|
61
|
-
"README.md",
|
|
62
|
-
"pyproject.toml",
|
|
63
|
-
]
|
|
61
|
+
include = ["src/", "tests/", "README.md", "pyproject.toml"]
|
|
64
62
|
|
|
65
63
|
[tool.pytest.ini_options]
|
|
66
64
|
# Test discovery
|
|
67
|
-
testpaths =
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
65
|
+
testpaths = "tests"
|
|
66
|
+
filterwarnings = ["error"]
|
|
67
|
+
# Recommended by pytest
|
|
68
|
+
pythonpath = "src"
|
|
71
69
|
|
|
72
70
|
# Output options
|
|
73
71
|
addopts = [
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
"--
|
|
78
|
-
"-
|
|
72
|
+
# Recommended by pytest
|
|
73
|
+
# https://docs.pytest.org/en/stable/explanation/goodpractices.html#tests-outside-application-code
|
|
74
|
+
|
|
75
|
+
"--import-mode=importlib",
|
|
76
|
+
"--strict-markers", # Error on unknown markers
|
|
77
|
+
"--tb=short", # Short traceback format
|
|
78
|
+
"--color=yes", # Colored output
|
|
79
|
+
"-ra", # Show summary of all test results
|
|
79
80
|
]
|
|
80
81
|
|
|
81
82
|
[tool.coverage.run]
|
|
82
83
|
source = ["src/octopize_avatar_deploy"]
|
|
83
|
-
omit = [
|
|
84
|
-
"*/tests/*",
|
|
85
|
-
"*/__pycache__/*",
|
|
86
|
-
"*/.venv/*",
|
|
87
|
-
]
|
|
84
|
+
omit = ["*/tests/*", "*/__pycache__/*", "*/.venv/*"]
|
|
88
85
|
|
|
89
86
|
[tool.coverage.report]
|
|
90
87
|
exclude_lines = [
|
|
@@ -98,32 +95,7 @@ exclude_lines = [
|
|
|
98
95
|
]
|
|
99
96
|
|
|
100
97
|
[tool.ruff]
|
|
101
|
-
|
|
102
|
-
line-length = 100
|
|
103
|
-
|
|
104
|
-
[tool.ruff.lint]
|
|
105
|
-
extend-select = [
|
|
106
|
-
"E", # pycodestyle errors
|
|
107
|
-
"W", # pycodestyle warnings
|
|
108
|
-
"F", # pyflakes
|
|
109
|
-
"I", # isort
|
|
110
|
-
"B", # flake8-bugbear
|
|
111
|
-
"C4", # flake8-comprehensions
|
|
112
|
-
"UP", # pyupgrade
|
|
113
|
-
]
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
[tool.ruff.lint.isort]
|
|
117
|
-
known-first-party = ["octopize_avatar_deploy"]
|
|
118
|
-
|
|
119
|
-
[dependency-groups]
|
|
120
|
-
dev = [
|
|
121
|
-
"mypy>=1.20.0",
|
|
122
|
-
"pyright>=1.1.402",
|
|
123
|
-
"types-pyyaml>=6.0.12.20241230",
|
|
124
|
-
"pandas-stubs>=3.0.0",
|
|
125
|
-
"pytest-httpx>=0.36.0",
|
|
126
|
-
]
|
|
98
|
+
extend = "../../../ruff.toml"
|
|
127
99
|
|
|
128
100
|
[tool.pyright]
|
|
129
101
|
include = ["src/octopize_avatar_deploy"]
|
{octopize_deploy_tool-2.4.0 → octopize_deploy_tool-2.7.0}/src/octopize_avatar_deploy/__init__.py
RENAMED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
"""Octopize Avatar Deployment Tool."""
|
|
2
2
|
|
|
3
|
-
from .cli import main
|
|
4
3
|
from .configure import DeploymentConfigurator, DeploymentRunner
|
|
5
4
|
from .printer import ConsolePrinter, Printer, SilentPrinter
|
|
6
5
|
from .version_compat import (
|
|
@@ -11,9 +10,8 @@ from .version_compat import (
|
|
|
11
10
|
validate_template_version,
|
|
12
11
|
)
|
|
13
12
|
|
|
14
|
-
__version__ = "2.
|
|
13
|
+
__version__ = "2.7.0"
|
|
15
14
|
__all__ = [
|
|
16
|
-
"main",
|
|
17
15
|
"DeploymentRunner",
|
|
18
16
|
"DeploymentConfigurator",
|
|
19
17
|
"Printer",
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"""Application sub-package for deployment tool refactor (Phase 1)."""
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
"""ApplyCommand: the Phase 1 application entry point for the apply sub-command.
|
|
2
|
+
|
|
3
|
+
``apply`` copies a fully rendered ``generated/`` directory from a versioned
|
|
4
|
+
state slot into ``generated_files/`` (the directory consumed by Docker Compose)
|
|
5
|
+
and updates the ``currently_deployed`` symlink so the active version is always
|
|
6
|
+
traceable.
|
|
7
|
+
|
|
8
|
+
The operation is idempotent: applying the same version twice produces the same
|
|
9
|
+
``generated_files/`` content and symlink target.
|
|
10
|
+
"""
|
|
11
|
+
|
|
12
|
+
from __future__ import annotations
|
|
13
|
+
|
|
14
|
+
from dataclasses import dataclass
|
|
15
|
+
from pathlib import Path
|
|
16
|
+
|
|
17
|
+
from octopize_avatar_deploy.application.deployment_paths import DeploymentPaths
|
|
18
|
+
from octopize_avatar_deploy.application.ports import DirectoryCopier, SymlinkUpdater
|
|
19
|
+
from octopize_avatar_deploy.domain.version_id import VersionId
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
class ApplyError(Exception):
|
|
23
|
+
"""Raised when apply fails due to an operator-fixable problem.
|
|
24
|
+
|
|
25
|
+
Covers missing ``--version`` argument, references to versions whose
|
|
26
|
+
``generated/`` directory does not yet exist (i.e. ``render`` was never run
|
|
27
|
+
for that version), or any filesystem error that maps to an operator action.
|
|
28
|
+
|
|
29
|
+
Distinct from plain ``ValueError`` or ``FileNotFoundError``, which indicate
|
|
30
|
+
programming-contract violations (bugs in the tool) and should surface with a
|
|
31
|
+
full traceback.
|
|
32
|
+
"""
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
@dataclass
|
|
36
|
+
class ApplyCommandArgs:
|
|
37
|
+
"""Arguments for the apply command.
|
|
38
|
+
|
|
39
|
+
``version`` must be provided (e.g. ``"v1"``).
|
|
40
|
+
"""
|
|
41
|
+
|
|
42
|
+
app_root: Path
|
|
43
|
+
version: str # explicit version label, e.g. "v1"
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
@dataclass
|
|
47
|
+
class ApplyCommandResult:
|
|
48
|
+
"""Result returned by :meth:`ApplyCommand.run`."""
|
|
49
|
+
|
|
50
|
+
version: VersionId
|
|
51
|
+
output_dir: Path
|
|
52
|
+
symlink_target: Path
|
|
53
|
+
|
|
54
|
+
|
|
55
|
+
class ApplyCommand:
|
|
56
|
+
"""Orchestrate the apply use case.
|
|
57
|
+
|
|
58
|
+
Copies ``.deployment_states/vX/generated/`` into ``generated_files/`` and
|
|
59
|
+
updates the ``currently_deployed`` symlink.
|
|
60
|
+
|
|
61
|
+
All side effects (directory copy and symlink update) are injected as ports
|
|
62
|
+
so the full use case can be exercised in tests with in-memory doubles.
|
|
63
|
+
|
|
64
|
+
Args:
|
|
65
|
+
directory_copier: Port that performs the full recursive copy from the
|
|
66
|
+
versioned ``generated/`` directory to ``generated_files/``.
|
|
67
|
+
symlink_updater: Port that creates or replaces the
|
|
68
|
+
``currently_deployed`` symlink.
|
|
69
|
+
"""
|
|
70
|
+
|
|
71
|
+
def __init__(
|
|
72
|
+
self,
|
|
73
|
+
*,
|
|
74
|
+
directory_copier: DirectoryCopier,
|
|
75
|
+
symlink_updater: SymlinkUpdater,
|
|
76
|
+
) -> None:
|
|
77
|
+
self._directory_copier = directory_copier
|
|
78
|
+
self._symlink_updater = symlink_updater
|
|
79
|
+
|
|
80
|
+
def run(self, args: ApplyCommandArgs) -> ApplyCommandResult:
|
|
81
|
+
"""Execute the apply use case end-to-end.
|
|
82
|
+
|
|
83
|
+
Flow:
|
|
84
|
+
|
|
85
|
+
1. Validate argument combinations.
|
|
86
|
+
2. Parse the target version label.
|
|
87
|
+
3. Confirm that ``render`` has been run for this version (the
|
|
88
|
+
``generated/`` directory exists).
|
|
89
|
+
4. Copy ``.deployment_states/vX/generated/`` → ``generated_files/``
|
|
90
|
+
(full recursive copy — not a symlink — so operator edits in
|
|
91
|
+
``generated_files/`` never affect the versioned reference).
|
|
92
|
+
5. Update ``.deployment_states/currently_deployed`` symlink → ``vX``.
|
|
93
|
+
6. Return a result.
|
|
94
|
+
|
|
95
|
+
Args:
|
|
96
|
+
args: Apply command arguments.
|
|
97
|
+
|
|
98
|
+
Returns:
|
|
99
|
+
:class:`ApplyCommandResult` with the resolved version, the
|
|
100
|
+
``generated_files/`` output directory, and the symlink target path.
|
|
101
|
+
|
|
102
|
+
Raises:
|
|
103
|
+
ApplyError: For any operator-fixable problem: a version whose
|
|
104
|
+
``generated/`` directory does not exist, or a missing version
|
|
105
|
+
argument.
|
|
106
|
+
"""
|
|
107
|
+
try:
|
|
108
|
+
return self._run(args)
|
|
109
|
+
except ApplyError:
|
|
110
|
+
raise
|
|
111
|
+
except (ValueError, FileNotFoundError) as exc:
|
|
112
|
+
raise ApplyError(str(exc)) from exc
|
|
113
|
+
|
|
114
|
+
def _run(self, args: ApplyCommandArgs) -> ApplyCommandResult:
|
|
115
|
+
"""Internal implementation called by :meth:`run`."""
|
|
116
|
+
# 1. Parse version.
|
|
117
|
+
version = VersionId.parse(args.version)
|
|
118
|
+
paths = DeploymentPaths(app_root=args.app_root, version=version)
|
|
119
|
+
|
|
120
|
+
# 2. Verify that render has been run (generated/ must exist).
|
|
121
|
+
if not self._directory_copier.source_exists(paths.generated_dir):
|
|
122
|
+
raise ApplyError(
|
|
123
|
+
f"Version {version.label!r} has not been rendered yet. "
|
|
124
|
+
f"Run 'render --version {version.label}' first."
|
|
125
|
+
)
|
|
126
|
+
|
|
127
|
+
# 3. Copy generated/ → generated_files/.
|
|
128
|
+
self._directory_copier.copy(paths.generated_dir, paths.generated_files_dir)
|
|
129
|
+
|
|
130
|
+
# 4. Update currently_deployed symlink.
|
|
131
|
+
self._symlink_updater.update(paths.currently_deployed_symlink, paths.version_dir)
|
|
132
|
+
|
|
133
|
+
return ApplyCommandResult(
|
|
134
|
+
version=version,
|
|
135
|
+
output_dir=paths.generated_files_dir,
|
|
136
|
+
symlink_target=paths.version_dir,
|
|
137
|
+
)
|