Skip to content

feat(migrate): provision analytics metadata in decocms Supabase - #418

Closed
JonasJesus42 wants to merge 2 commits into
mainfrom
feat/migrate-provision-analytics
Closed

feat(migrate): provision analytics metadata in decocms Supabase#418
JonasJesus42 wants to merge 2 commits into
mainfrom
feat/migrate-provision-analytics

Conversation

@JonasJesus42

@JonasJesus42 JonasJesus42 commented Aug 4, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Adiciona fase "Provision analytics" ao final do deco-migrate, após o bootstrap
  • Atualiza sites.metadata com analytics: "onedollarstats" via Supabase Management API
  • Requer SUPABASE_ACCESS_TOKEN no ambiente; se ausente, printa o SQL para rodar manualmente
  • Garante que todo site migrado Fresh → TanStack seja registrado corretamente no decocms

Test plan

  • Rodar deco-migrate com SUPABASE_ACCESS_TOKEN setado → confirmar log ✓ <site> → analytics: onedollarstats
  • Rodar sem token → confirmar que o SQL manual é exibido no output

🤖 Generated with Claude Code


Summary by cubic

Adds a “Provision analytics” step to deco-migrate and materializes CSV-backed redirects at generate time so migrated sites route correctly and are tracked in decocms.

  • New Features

    • deco-migrate: After bootstrap, updates decocms sites.metadata to analytics: "onedollarstats" via Supabase. Requires SUPABASE_ACCESS_TOKEN; prints manual SQL if missing.
    • blocks-cli: Reads public/*.csv referenced by website/loaders/redirectsFromCsv.ts and emits top‑level synthetic __csv_redirects__<name> blocks that loadRedirects consumes. CSV blocks are merged with lower precedence than curated redirect blocks. Also re-materializes these blocks in readBlockDelta so snapshots stay in sync.
    • Tests: Added unit tests for CSV redirect materialization.
  • Bug Fixes

    • @decocms/blocks redirects CSV parser now skips a from,to[,type] header row (avoids a bogus /from -> to rule).

Written for commit 31f5ac3. Summary will update on new commits.

Review in cubic

JonasJesus42 and others added 2 commits July 22, 2026 14:16
…enerate time

`website/loaders/redirectsFromCsv.ts` blocks only carry a `from` CSV path and
an empty `redirects: []`; the Fresh/Deno loader that read the CSV at runtime was
never ported to TanStack. Worse, these blocks are typically nested inside
`site.routes[]`, and the runtime `loadRedirects` only scans TOP-LEVEL decofile
entries — so CSV-backed bulk redirects never fired on migrated sites.

Read each referenced CSV from `public/` at generate time (Node, fs available)
and emit synthetic top-level `__csv_redirects__<name>` blocks that
`loadRedirects` already understands. Runtime stays synchronous and does no I/O.
CSV blocks are merged with lower precedence than curated redirect blocks, so a
CMS-authored redirect wins over a bulk CSV row for the same `from`.

Also fix `parseRedirectsCsv` to skip a `from,to` header row instead of turning
it into a bogus `/from -> to` redirect.

Verified against the granadobr-tanstack decofile: 18,455 CSV rows materialized,
matchRedirect returns 301s for the migrated URLs, curated blocks unaffected.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
After bootstrap, updates sites.metadata with analytics: "onedollarstats"
via Supabase Management API (requires SUPABASE_ACCESS_TOKEN). Falls back
to printing the SQL manually if token is not available.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@JonasJesus42
JonasJesus42 requested a review from a team August 4, 2026 01:19
@JonasJesus42

Copy link
Copy Markdown
Contributor Author

Substituído por #419 com branch correta

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant