veza/scripts
senke 112c64a22b
Some checks are pending
Veza CI / Backend (Go) (push) Waiting to run
Veza CI / Frontend (Web) (push) Waiting to run
Veza CI / Rust (Stream Server) (push) Waiting to run
Veza CI / Notify on failure (push) Blocked by required conditions
E2E Playwright / e2e (full) (push) Waiting to run
Security Scan / Secret Scanning (gitleaks) (push) Waiting to run
feat(soft-launch): cohort tooling + email template + monitor + checklist
The soft-launch report doc (SOFT_LAUNCH_BETA_2026.md) had the
narrative — cohort table, email body inline, monitoring list,
acceptance gate. But the operational pieces were notes-to-self :
"add migration if missing", "Typeform to-do", "schema TBD". The
operator was supposed to assemble them on the day, which on a soft-
launch day is the worst possible time.

Added the missing 6 pieces so the day-of work is "tick boxes",
not "build the tooling" :

  * migrations/990_beta_invites.sql — schema with code (16-char
    base32-ish), email, cohort label, used_at, expires_at + 30d
    default, sent_by FK with ON DELETE SET NULL. Three indexes :
    unique on code (signup-path lookup), cohort (post-launch
    attribution report), partial expires_at WHERE used_at IS NULL
    (cleanup cron).

  * scripts/soft-launch/validate-cohort.sh — sanity check on the
    operator's CSV : header form, malformed emails, duplicates,
    cohort distribution (≥50 total / ≥5 creators / ≥3 distinct
    labels), optional collision check against existing users.
    Exit codes 0 / 1 (block) / 2 (warn-but-proceed). Hard checks
    block, soft checks let the operator override with FORCE=1.

  * scripts/soft-launch/send-invitations.sh — split-phase :
      step 1 (default) inserts beta_invites rows + renders one .eml
        per recipient under scripts/soft-launch/out-<date>/
      step 2 (SEND=1) dispatches via $SEND_CMD (msmtp by default)
    so the operator can review the rendered emls before sending
    100 emails. Per-recipient transactional INSERT so a partial
    failure doesn't poison the table. Failed inserts logged with
    the offending email so the operator can rerun on the subset.

  * templates/email/beta_invite.eml.template — proper MIME multipart
    (text + HTML) eml ready for sendmail-compatible piping. French
    copy aligned with the éthique brand (no FOMO, no urgency
    manipulation, no "limited spots" framing).

  * scripts/soft-launch/monitor-checks.sh — polls the 6 acceptance-
    gate signals defined in SOFT_LAUNCH_BETA_2026.md §"Acceptance
    gate" : testers signed up, Sentry P1 events, status page,
    synthetic parcours, k6 nightly age, HIGH issues. Each gate
    independently emits  / 🔴 /  (last for "couldn't check").
    Verdict on stdout. LOOP=1 keeps polling every CHECK_INTERVAL
    seconds. Designed for cron + tmux, not for an interactive UI.

  * docs/SOFT_LAUNCH_BETA_2026_CHECKLIST.md — pre-flight gate that
    must reach 100% green before the first invitation goes out.
    T-72h section (database, cohort, email infra, redemption path,
    monitoring, comms), D-day section (last-hour, send, hour-1,
    every-4h), 18:00 UTC decision call section. Linked back to the
    bigger SOFT_LAUNCH_BETA_2026.md so the operator can navigate
    between the "what" (report) and the "how / has-everything-
    been-checked" (this checklist) without losing context.

What still requires the operator on the day :
  - Build the cohort CSV (curate emails from real sources)
  - Create the Typeform feedback form ; paste its URL into the
    eml template once known
  - Configure msmtp / sendmail ($SEND_CMD)
  - Press the send button
  - Show up at 18:00 UTC for the decision call

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-30 22:38:12 +02:00
..
archive refonte: backend-api go first; phase 1 2025-12-12 21:34:34 -05:00
bootstrap fix(ansible): point community.general.incus connection at the R720 remote 2026-04-30 15:42:44 +02:00
loadtest feat(perf): k6 mixed-scenarios load test + nightly workflow + baseline doc (W4 Day 20) 2026-04-29 11:44:06 +02:00
observability feat(observability): deploy alerts (4) + failed-color scanner script 2026-04-29 14:45:27 +02:00
pentest docs(pentest): add send-package SOP + seed-test-accounts helper 2026-04-30 22:29:35 +02:00
probes chore(release): v1.0.6.2 — subscription payment-gate bypass hotfix 2026-04-17 12:21:53 +02:00
security fix(scripts,docs): game-day prod safety guards + rabbitmq-down runbook 2026-04-30 22:32:05 +02:00
soft-launch feat(soft-launch): cohort tooling + email template + monitor + checklist 2026-04-30 22:38:12 +02:00
align-8px-grid.py aesthetic-improvements: align spacing to 8px grid (Action 11.2.1.3) 2026-01-16 11:50:46 +01:00
audit_backend_endpoints.py [INT-005] int: Verify all backend endpoints have frontend usage 2025-12-25 15:08:30 +01:00
auto_migrate_tailwind_colors.py feat: add automated scripts for Tailwind color migration with batch processing and verification 2026-01-16 01:54:57 +01:00
auto_migrate_tailwind_colors_batch.py feat: add automated scripts for Tailwind color migration with batch processing and verification 2026-01-16 01:54:57 +01:00
bfg-cleanup.sh chore(cleanup): add scripts/bfg-cleanup.sh for history rewrite 2026-04-20 18:55:17 +02:00
check-migration-backward-compat.sh chore(ansible): recover group_vars files lost in parallel-commit shuffle 2026-04-29 14:41:14 +02:00
coverage-trend.mjs chore(cleanup): remove orphan code + archive disabled workflows + .playwright-mcp 2026-04-20 20:33:40 +02:00
deploy-blue-green.sh feat(infra): blue-green deployment via HAProxy 2026-02-23 19:52:19 +01:00
deploy-canary.sh chore(ansible): recover group_vars files lost in parallel-commit shuffle 2026-04-29 14:41:14 +02:00
deploy-staging.sh stabilisation commit A 2026-01-07 19:39:21 +01:00
diagnose-register.sh [FIX] Added TokenVersion field to user creation 2026-01-04 01:44:13 +01:00
dr-drill.sh feat(infra): pgbackrest role + dr-drill + Prometheus backup alerts (W2 Day 8) 2026-04-28 00:51:00 +02:00
flaky-detection.mjs chore(cleanup): remove orphan code + archive disabled workflows + .playwright-mcp 2026-04-20 20:33:40 +02:00
generate-bug-report.sh [TEST] MVP integration tests executed - 2/28 API passed, 0/20 E2E passed, 3 bugs found 2026-01-04 01:44:13 +01:00
generate-jwt-keys.sh v0.9.1 2026-03-05 19:22:31 +01:00
generate-ssl-cert.sh fix(infra): HAProxy HTTPS and stats security 2026-02-15 15:58:51 +01:00
generate_full_schema.sh chore(release): v0.942 — Compress (migration consolidation procedure, mark script) 2026-03-02 19:05:54 +01:00
generate_tailwind_list.py docs: generate comprehensive list of all remaining Tailwind default color instances 2026-01-16 01:51:32 +01:00
mark_consolidated.sql chore(release): v0.942 — Compress (migration consolidation procedure, mark script) 2026-03-02 19:05:54 +01:00
minio-migrate-from-single.sh feat(infra): MinIO distributed EC:2 + migration script (W3 Day 12) 2026-04-28 13:46:42 +02:00
payment-e2e-preflight.sh feat(release): real-money payment E2E walkthrough + report template (W6 Day 27) 2026-04-29 15:35:53 +02:00
payment-e2e-walkthrough.sh fix(scripts): payment-e2e walkthrough safety guards (DRY_RUN + prod confirm) 2026-04-30 22:27:14 +02:00
README_TAILWIND_MIGRATION.md feat: add automated scripts for Tailwind color migration with batch processing and verification 2026-01-16 01:54:57 +01:00
replace-decorative-cyan.py aesthetic-improvements: automated replacement of decorative cyan with steel (80/20 rule, Action 11.3.1.3) 2026-01-16 11:40:13 +01:00
rotate_logs.sh feat: centraliser tous les logs dans /var/log/veza avec rotation 2026-01-04 01:44:23 +01:00
run-all-mvp-tests.sh [TEST] MVP integration tests executed - 2/28 API passed, 0/20 E2E passed, 3 bugs found 2026-01-04 01:44:13 +01:00
run-e2e-local.sh fix(e2e): align local E2E setup with CI or document CI-only validation 2026-02-19 19:10:15 +01:00
setup-mvp-test-env.sh [TEST] MVP integration tests executed - 2/28 API passed, 0/20 E2E passed, 3 bugs found 2026-01-04 01:44:13 +01:00
setup_logs.sh feat: centraliser tous les logs dans /var/log/veza avec rotation 2026-01-04 01:44:23 +01:00
smoke_test.go P0 UUID Phase A: migrations + backend Go UUID refactor 2025-12-04 02:15:48 +01:00
squash_migrations.sh chore(release): v0.602 — Payout, Dette Technique & Tests E2E 2026-02-23 22:32:01 +01:00
staging-stability-check.sh feat(v0.14.0): validation runtime & staging pipeline 2026-03-13 16:09:43 +01:00
start-backend.sh chore(audit 2.4, 2.5): supprimer code mort Education et cmd/modern-server 2026-02-15 14:39:40 +01:00
start_boot.sh chore(audit 2.4, 2.5): supprimer code mort Education et cmd/modern-server 2026-02-15 14:39:40 +01:00
start_minimal.sh chore(audit 2.4, 2.5): supprimer code mort Education et cmd/modern-server 2026-02-15 14:39:40 +01:00
stop_minimal.sh feat: global update including storybook setup and backend fixes 2026-02-02 19:34:14 +01:00
sync-cursor.py BASE: completing the initial repo state 2025-12-03 22:56:50 +01:00
test-endpoint-formats.sh api-contracts: identify endpoint response formats 2026-01-11 16:36:13 +01:00
test-mvp-api.sh fix: resolve stream server compilation errors and integrate chat stability fixes 2026-01-04 01:44:22 +01:00
validate-env.sh v0.9.3 2026-03-05 19:35:57 +01:00
validate-full.sh docs: align FEATURE_STATUS and validation scripts with v0.101 state 2026-02-17 15:35:58 +01:00
validate-light.sh chore: consolidate CI, E2E, backend and frontend updates 2026-02-17 16:43:21 +01:00
verify-rust-build.sh fix(rust): ensure chat-server and stream-server compile in release mode 2026-02-15 15:54:03 +01:00
verify_minimal_journey.sh feat: global update including storybook setup and backend fixes 2026-02-02 19:34:14 +01:00
view_logs.sh release(v0.903): Vault - ORDER BY whitelist, rate limiter, VERSION sync, chat-server cleanup, Go 1.24 2026-02-27 09:43:25 +01:00
visual-update-baselines.sh chore(cleanup): remove orphan code + archive disabled workflows + .playwright-mcp 2026-04-20 20:33:40 +02:00