soul v4.2.0

Instalacion

Crear un proyecto nuevo, o sumar soul a uno que ya existe.

Requisitos#

  • Node 20 o superior y una cuenta de Cloudflare (el plan gratuito basta).
  • Acceso al repositorio privado de soul (una deploy key por proyecto).
  • Un cliente OAuth de Google, para el login.

Crear un proyecto nuevo#

El CLI arma el proyecto completo: estructura, migraciones del core, wrangler.jsonc, tests y el cableado de auth, tenancy y admin.

Terminal
npx --package=git+ssh://git@github/jun-studio/soul.git#v4.2.0 soul create mi-saas
cd mi-saas
npm install

Base de datos y migraciones#

Terminal
npx wrangler d1 create mi-saas-db
# pega el database_id en wrangler.jsonc (en el bloque raiz Y en cada env)

npx soul sync-migrations                       # copia las migraciones del core
npx wrangler d1 migrations apply mi-saas-db --local

sync-migrations copia las migraciones de soul a tu carpeta migrations/, donde conviven con las tuyas. Nunca sobreescribe una que ya existe: una migracion copiada (y quizas aplicada) es inmutable.

MigracionQue traeCuando
0001_soul_coreusers, orgs, org_members, subscriptionsSiempre
0005_soul_ratelimittabla rate_limitsSi usas ratelimit
0006_soul_users_email_indexindice en users(email)Recomendada
0007_soul_credentialstabla soul_credentialsSi usas credentials

Variables y secretos#

En desarrollo van en .dev.vars; en produccion, como secretos de Wrangler.

Terminal
cp .dev.vars.example .dev.vars     # completa los valores

# En produccion, uno por uno:
npx wrangler secret put SESSION_SECRET --env production
npx wrangler secret put GOOGLE_CLIENT_ID --env production
npx wrangler secret put GOOGLE_CLIENT_SECRET --env production

Levantar y desplegar#

Terminal
npm run dev                    # local, en :8787
npm run deploy:production      # soul build + wrangler deploy --env production

Despues del primer deploy, date superadmin a ti mismo:

Terminal
npx wrangler d1 execute mi-saas-db --env production --remote \
  --command "UPDATE users SET is_admin = 1 WHERE email = 'tu@email.com'"