- A1: SPEC-MVP-RECESSO.md (criteri + copy IT) - A3: App Proxy /apps/recesso — lookup guest ordine+email (anti-leak), form 2-step, funzione dedicata Conferma recesso, persist WithdrawalRequest + transmittedAt + AuditLog - A4: ricevuta durevole via nodemailer (mailer.server.ts) + receiptSentAt + AuditLog - Design: recesso.server.ts restyle token CSS light/dark, coerente Shopify - Fix: @shopify/shopify-api pinnato 13.1.0 (dedupe) -> tsc clean - PLAN: A5 esteso a motore di stile a 3 livelli Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Mv83a29B4eFv5ixoj6PoE1
26 lines
1.0 KiB
Plaintext
26 lines
1.0 KiB
Plaintext
# Copy this file to `.env` and fill in real values. NEVER commit `.env`.
|
|
# In production (Fly) these are provided via `fly secrets set`, not this file.
|
|
|
|
# Shopify app credentials — from the Partner Dashboard app "Legal Return PCRT".
|
|
SHOPIFY_API_KEY=your_api_key_here
|
|
SHOPIFY_API_SECRET=your_api_secret_here
|
|
|
|
# Access scopes — keep in sync with shopify.app.toml [access_scopes].scopes
|
|
SCOPES=read_orders,read_products
|
|
|
|
# Public URL of the app (dev tunnel, or the Fly URL in prod). No trailing slash.
|
|
SHOPIFY_APP_URL=https://your-tunnel-or-fly-url.example
|
|
|
|
# Postgres connection string (Fly Postgres or Supabase).
|
|
DATABASE_URL=postgresql://user:password@host:5432/recesso?sslmode=require
|
|
|
|
# Email ricevuta recesso (supporto durevole).
|
|
# DEV: Mailpit → SMTP_HOST=localhost SMTP_PORT=1025 SMTP_SECURE=false (nessuna auth).
|
|
# PROD: provider reale (Resend/Postmark/SMTP) con SMTP_USER/SMTP_PASS.
|
|
SMTP_HOST=smtp.your-provider.example
|
|
SMTP_PORT=587
|
|
SMTP_SECURE=false
|
|
SMTP_USER=your_smtp_user
|
|
SMTP_PASS=your_smtp_password
|
|
MAIL_FROM=Recesso <no-reply@yourdomain.example>
|