wasm-cli 1.6.1__tar.gz → 1.6.2__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.
- {wasm_cli-1.6.1/src/wasm_cli.egg-info → wasm_cli-1.6.2}/PKG-INFO +1 -1
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/pyproject.toml +1 -1
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/setup.py +1 -1
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/__init__.py +1 -1
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/cli/commands/webapp.py +4 -9
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/deployers/base.py +6 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/deployers/helpers/permissions.py +12 -2
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/deployers/monorepo.py +5 -4
- {wasm_cli-1.6.1 → wasm_cli-1.6.2/src/wasm_cli.egg-info}/PKG-INFO +1 -1
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/LICENSE +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/MANIFEST.in +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/README.md +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/docs/MONITOR.md +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/docs/OBS_SETUP.md +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/docs/assets/logo.png +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/docs/assets/logo_bg.png +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/docs/superpowers/plans/2026-08-13-wasm-competitive-parity-roadmap.md +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/docs/superpowers/specs/2026-08-12-wasm-panel-design-direction.md +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/docs/superpowers/specs/2026-08-12-wasm-v1-refactor-design.md +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/docs/superpowers/specs/2026-08-13-wasm-competitive-parity-design.md +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/docs/superpowers/specs/2026-08-14-wasm-panel-design-v2.md +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/man/wasm.1 +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/setup.cfg +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/__main__.py +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/cli/__init__.py +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/cli/app.py +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/cli/commands/__init__.py +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/cli/commands/backup.py +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/cli/commands/cert.py +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/cli/commands/config.py +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/cli/commands/db.py +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/cli/commands/env.py +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/cli/commands/health.py +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/cli/commands/monitor.py +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/cli/commands/service.py +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/cli/commands/setup.py +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/cli/commands/site.py +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/cli/commands/store.py +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/cli/commands/version.py +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/cli/commands/web.py +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/cli/interactive.py +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/cli/panel_links.py +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/cli/prompts.py +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/completions/README.md +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/completions/_wasm +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/completions/wasm.bash +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/completions/wasm.fish +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/core/__init__.py +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/core/app_state.py +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/core/config.py +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/core/dependencies.py +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/core/exceptions.py +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/core/fs.py +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/core/logger.py +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/core/net.py +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/core/notifier.py +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/core/runner.py +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/core/store.py +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/core/totp.py +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/core/update_checker.py +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/core/utils.py +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/deployers/__init__.py +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/deployers/auto.py +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/deployers/docker_compose.py +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/deployers/helpers/__init__.py +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/deployers/helpers/env_manager.py +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/deployers/helpers/health.py +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/deployers/helpers/nginx_config.py +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/deployers/helpers/package_manager.py +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/deployers/helpers/path_resolver.py +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/deployers/helpers/preflight.py +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/deployers/helpers/prisma.py +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/deployers/helpers/registration.py +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/deployers/helpers/summary.py +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/deployers/helpers/turbo.py +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/deployers/helpers/workspace.py +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/deployers/interface.py +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/deployers/nextjs.py +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/deployers/nodejs.py +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/deployers/pipeline.py +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/deployers/python.py +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/deployers/recorder.py +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/deployers/registry.py +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/deployers/static.py +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/deployers/vite.py +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/main.py +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/managers/__init__.py +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/managers/apache_manager.py +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/managers/backup_manager.py +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/managers/backup_scheduler.py +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/managers/base_manager.py +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/managers/cert_manager.py +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/managers/cron_manager.py +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/managers/database/__init__.py +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/managers/database/base.py +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/managers/database/mongodb.py +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/managers/database/mysql.py +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/managers/database/postgres.py +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/managers/database/redis.py +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/managers/database/registry.py +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/managers/nginx_manager.py +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/managers/service_manager.py +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/managers/source_manager.py +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/managers/webserver.py +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/monitor/__init__.py +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/monitor/email_notifier.py +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/monitor/metrics.py +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/monitor/models.py +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/monitor/observation_store.py +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/monitor/process_monitor.py +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/monitor/signals.py +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/monitor/timeseries.py +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/templates/__init__.py +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/templates/apache/proxy.conf.j2 +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/templates/apache/static.conf.j2 +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/templates/nginx/advanced.conf.j2 +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/templates/nginx/monorepo.conf.j2 +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/templates/nginx/proxy.conf.j2 +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/templates/nginx/static.conf.j2 +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/templates/systemd/_escape.j2 +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/templates/systemd/app.service.j2 +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/templates/systemd/backup-service.j2 +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/templates/systemd/backup-timer.j2 +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/templates/systemd/cron-service.j2 +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/templates/systemd/cron-timer.j2 +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/templates/systemd/docker-compose.service.j2 +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/validators/__init__.py +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/validators/domain.py +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/validators/environment.py +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/validators/names.py +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/validators/port.py +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/validators/source.py +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/validators/ssh.py +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/web/__init__.py +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/web/api/__init__.py +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/web/api/apps.py +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/web/api/auth.py +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/web/api/backup_schedules.py +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/web/api/backups.py +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/web/api/certs.py +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/web/api/config.py +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/web/api/cron.py +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/web/api/databases.py +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/web/api/deps.py +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/web/api/hooks.py +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/web/api/jobs.py +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/web/api/metrics.py +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/web/api/monitor.py +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/web/api/router.py +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/web/api/services.py +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/web/api/sites.py +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/web/api/system.py +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/web/auth.py +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/web/events.py +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/web/jobs.py +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/web/metrics_collector.py +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/web/pydantic_compat.py +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/web/server.py +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/web/static/app.css +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/web/static/logo.png +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/web/static/logo.webp +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/web/static/panel.js +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/web/static/vendor/fonts/geist-mono-latin-400-normal.woff2 +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/web/static/vendor/fonts/geist-mono-latin-500-normal.woff2 +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/web/static/vendor/fonts/geist-sans-latin-400-normal.woff2 +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/web/static/vendor/fonts/geist-sans-latin-500-normal.woff2 +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/web/static/vendor/fonts/geist-sans-latin-600-normal.woff2 +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/web/static/vendor/htmx.min.js +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/web/static/vendor/qrcodegen.js +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/web/static/vendor/sse.js +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/web/static/vendor/uplot.min.css +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/web/static/vendor/uplot.min.js +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/web/static/vendor/xterm.css +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/web/static/vendor/xterm.js +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/web/templates/_macros.html +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/web/templates/base.html +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/web/templates/fragments/api_tokens.html +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/web/templates/fragments/app_charts.html +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/web/templates/fragments/app_env.html +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/web/templates/fragments/backup_schedule_section.html +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/web/templates/fragments/cron_runs.html +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/web/templates/fragments/cron_section.html +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/web/templates/fragments/db_console.html +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/web/templates/fragments/db_engine.html +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/web/templates/fragments/deploy_form_check.html +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/web/templates/fragments/deploy_form_options.html +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/web/templates/fragments/deploy_recent.html +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/web/templates/fragments/deploy_rollback.html +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/web/templates/fragments/deploy_rows.html +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/web/templates/fragments/infra_service_editor.html +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/web/templates/fragments/infra_service_form.html +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/web/templates/fragments/infra_site_editor.html +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/web/templates/fragments/infra_site_form.html +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/web/templates/fragments/machine.html +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/web/templates/fragments/notif_channels.html +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/web/templates/fragments/sessions.html +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/web/templates/fragments/settings_editor.html +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/web/templates/fragments/settings_form_backups.html +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/web/templates/fragments/settings_form_notifications.html +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/web/templates/fragments/settings_form_paths.html +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/web/templates/fragments/settings_form_ssl.html +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/web/templates/fragments/settings_form_web.html +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/web/templates/fragments/settings_form_webserver.html +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/web/templates/fragments/settings_section.html +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/web/templates/fragments/totp.html +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/web/templates/fragments/webhook_section.html +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/web/templates/login.html +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/web/templates/pages/activity.html +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/web/templates/pages/app.html +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/web/templates/pages/backups.html +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/web/templates/pages/certificates.html +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/web/templates/pages/cron.html +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/web/templates/pages/dashboard.html +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/web/templates/pages/databases.html +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/web/templates/pages/deploy.html +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/web/templates/pages/deployment_detail.html +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/web/templates/pages/deployments.html +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/web/templates/pages/failure.html +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/web/templates/pages/missing.html +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/web/templates/pages/resources.html +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/web/templates/pages/service_editor.html +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/web/templates/pages/service_new.html +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/web/templates/pages/settings.html +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/web/templates/pages/site_editor.html +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/web/templates/pages/site_new.html +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/web/views/__init__.py +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/web/views/app_charts.py +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/web/views/backup_schedules.py +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/web/views/context.py +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/web/views/cron.py +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/web/views/databases.py +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/web/views/deploy_form.py +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/web/views/deployments.py +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/web/views/infrastructure.py +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/web/views/machine.py +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/web/views/rendering.py +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/web/views/resources.py +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/web/views/router.py +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/web/views/settings_editor.py +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/web/websockets/__init__.py +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/web/websockets/router.py +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm_cli.egg-info/SOURCES.txt +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm_cli.egg-info/dependency_links.txt +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm_cli.egg-info/entry_points.txt +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm_cli.egg-info/requires.txt +0 -0
- {wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm_cli.egg-info/top_level.txt +0 -0
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "wasm-cli"
|
|
7
|
-
version = "1.6.
|
|
7
|
+
version = "1.6.2"
|
|
8
8
|
description = "Web App System Management - Deploy and manage web applications on Linux servers"
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
license = { text = "WASM-NCSAL" }
|
|
@@ -9,7 +9,7 @@ from setuptools import setup, find_packages
|
|
|
9
9
|
|
|
10
10
|
setup(
|
|
11
11
|
name="wasm-cli",
|
|
12
|
-
version="1.6.
|
|
12
|
+
version="1.6.2",
|
|
13
13
|
description="Web App System Management - Deploy and manage web applications on Linux servers",
|
|
14
14
|
author="Yago López Prado",
|
|
15
15
|
author_email="yago.lopez.adeje@gmail.com",
|
|
@@ -15,7 +15,7 @@ from importlib.metadata import version as _installed_version
|
|
|
15
15
|
#: as an OBS build directory. The single source of truth is the ``version``
|
|
16
16
|
#: field of pyproject.toml; ``scripts/release.py`` keeps this literal and the
|
|
17
17
|
#: distribution packaging files in step with it.
|
|
18
|
-
_FALLBACK_VERSION = "1.6.
|
|
18
|
+
_FALLBACK_VERSION = "1.6.2"
|
|
19
19
|
|
|
20
20
|
try:
|
|
21
21
|
__version__ = _installed_version("wasm-cli")
|
|
@@ -833,15 +833,10 @@ def _update_monorepo(
|
|
|
833
833
|
deployer.domain = domain
|
|
834
834
|
deployer.package_manager = "pnpm"
|
|
835
835
|
|
|
836
|
-
|
|
837
|
-
|
|
838
|
-
|
|
839
|
-
logger.step(
|
|
840
|
-
deployer._run_prisma_migrations()
|
|
841
|
-
|
|
842
|
-
logger.step(6, total_steps, "Building applications")
|
|
843
|
-
deployer._set_permissions()
|
|
844
|
-
deployer._build_all()
|
|
836
|
+
# The deployer's own update, not a copy of its steps: the copy handed the
|
|
837
|
+
# tree over before building and left every build output owned by root.
|
|
838
|
+
step = iter(range(4, total_steps + 1))
|
|
839
|
+
deployer.update(on_step=lambda message: logger.step(next(step), total_steps, message))
|
|
845
840
|
|
|
846
841
|
logger.step(7, total_steps, "Restarting applications")
|
|
847
842
|
service_manager = ServiceManager(verbose=logger.verbose)
|
|
@@ -1348,6 +1348,12 @@ class BaseDeployer(AppDeployer):
|
|
|
1348
1348
|
report("Building")
|
|
1349
1349
|
self.build()
|
|
1350
1350
|
|
|
1351
|
+
# The pull, the install and the build all ran as root, and the
|
|
1352
|
+
# service writes into what they produced: Next.js creates
|
|
1353
|
+
# .next/cache/images on the first optimised image, and uploads land
|
|
1354
|
+
# in directories a pull may have just added.
|
|
1355
|
+
self._set_permissions()
|
|
1356
|
+
|
|
1351
1357
|
start_command = self.get_start_command()
|
|
1352
1358
|
result = UpdateResult(
|
|
1353
1359
|
package_manager=self.package_manager,
|
|
@@ -56,15 +56,25 @@ def hand_over_tree(
|
|
|
56
56
|
["chown", "-R", f"{user}:{group}", str(app_path)],
|
|
57
57
|
timeout=_PERMISSIONS_TIMEOUT,
|
|
58
58
|
)
|
|
59
|
+
# Not fatal: the build is good, and an app that never writes runs fine. One
|
|
60
|
+
# that does fails with EACCES in its own log, far from here, so this is the
|
|
61
|
+
# only place the operator can be told the cause.
|
|
59
62
|
if not result.success:
|
|
60
|
-
logger.
|
|
63
|
+
logger.warning(
|
|
64
|
+
f"Could not hand {app_path} over to {user}:{group}; the service may fail "
|
|
65
|
+
f"with EACCES: {result.stderr.strip()}"
|
|
66
|
+
)
|
|
61
67
|
|
|
62
68
|
# Directories need the execute bit and the built assets must stay readable
|
|
63
69
|
# by the web server, whatever umask the fetch and the build left behind.
|
|
64
|
-
runner.run(
|
|
70
|
+
result = runner.run(
|
|
65
71
|
["chmod", "-R", "u+rwX,g+rX,o+rX", str(app_path)],
|
|
66
72
|
timeout=_PERMISSIONS_TIMEOUT,
|
|
67
73
|
)
|
|
74
|
+
if not result.success:
|
|
75
|
+
logger.warning(
|
|
76
|
+
f"Could not make {app_path} readable by the web server: {result.stderr.strip()}"
|
|
77
|
+
)
|
|
68
78
|
|
|
69
79
|
# That -R also put o+r on the .env files, which hold the secrets this
|
|
70
80
|
# deployment was given. The chown above has just made the service account
|
|
@@ -416,9 +416,6 @@ class MonorepoDeployer(AppDeployer):
|
|
|
416
416
|
self.logger.step(5, total_steps, "Installing dependencies", Icons.PACKAGE)
|
|
417
417
|
self._install_dependencies()
|
|
418
418
|
|
|
419
|
-
# Set permissions for service user
|
|
420
|
-
self._set_permissions()
|
|
421
|
-
|
|
422
419
|
# Step 6: Prisma migrations
|
|
423
420
|
self.logger.step(6, total_steps, "Running database migrations", Icons.DATABASE)
|
|
424
421
|
self._run_prisma_migrations()
|
|
@@ -427,6 +424,10 @@ class MonorepoDeployer(AppDeployer):
|
|
|
427
424
|
self.logger.step(7, total_steps, "Building applications", Icons.BUILD)
|
|
428
425
|
self._build_all()
|
|
429
426
|
|
|
427
|
+
# Only now: the build runs as root too, and handing over before it
|
|
428
|
+
# left every workspace's build output unwritable by its service.
|
|
429
|
+
self._set_permissions()
|
|
430
|
+
|
|
430
431
|
# Step 8: Create sites (without SSL initially)
|
|
431
432
|
self.logger.step(8, total_steps, "Creating site configurations", Icons.GLOBE)
|
|
432
433
|
self._create_sites(with_ssl=False)
|
|
@@ -534,8 +535,8 @@ class MonorepoDeployer(AppDeployer):
|
|
|
534
535
|
prisma_updated = self._run_prisma_migrations()
|
|
535
536
|
|
|
536
537
|
report("Building applications")
|
|
537
|
-
self._set_permissions()
|
|
538
538
|
self._build_all()
|
|
539
|
+
self._set_permissions()
|
|
539
540
|
|
|
540
541
|
return UpdateResult(
|
|
541
542
|
package_manager=self.package_manager,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{wasm_cli-1.6.1 → wasm_cli-1.6.2}/docs/superpowers/specs/2026-08-12-wasm-panel-design-direction.md
RENAMED
|
File without changes
|
{wasm_cli-1.6.1 → wasm_cli-1.6.2}/docs/superpowers/specs/2026-08-12-wasm-v1-refactor-design.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/web/static/vendor/fonts/geist-mono-latin-400-normal.woff2
RENAMED
|
File without changes
|
{wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/web/static/vendor/fonts/geist-mono-latin-500-normal.woff2
RENAMED
|
File without changes
|
{wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/web/static/vendor/fonts/geist-sans-latin-400-normal.woff2
RENAMED
|
File without changes
|
{wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/web/static/vendor/fonts/geist-sans-latin-500-normal.woff2
RENAMED
|
File without changes
|
{wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/web/static/vendor/fonts/geist-sans-latin-600-normal.woff2
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/web/templates/fragments/backup_schedule_section.html
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/web/templates/fragments/infra_service_editor.html
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/web/templates/fragments/settings_form_backups.html
RENAMED
|
File without changes
|
{wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/web/templates/fragments/settings_form_notifications.html
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{wasm_cli-1.6.1 → wasm_cli-1.6.2}/src/wasm/web/templates/fragments/settings_form_webserver.html
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|