Files
collective-lists/keycloak/realm-export.json
Oier Bravo Urtasun 973f9e413c Fase 0: scaffold monorepo, SvelteKit skeleton, and dev infrastructure
- Turborepo + pnpm workspaces with apps/web and packages/types
- SvelteKit app: Tailwind, Paraglide i18n (en/es), keycloak-js, Supabase client,
  auth/collective stores, PWA service worker skeleton, all route placeholders
- packages/types: domain types (User, Collective, ShoppingList, etc.) and
  database.ts placeholder for generated types
- Justfile with dev, db-*, kc-*, build, backup, restore, deploy recipes
- infra/docker-compose.dev.yml: Postgres 15, GoTrue, PostgREST, Realtime v2.83,
  Storage, Kong (port 8001), Studio, Keycloak 24
- infra/docker-compose.prod.yml, kong.yml, db-init scripts, backup/deploy scripts
- keycloak/realm-export.json with colectivo realm and 5 dev test users
- supabase/config.toml and seed.sql with sample collective and items
- GitHub Actions: ci.yml (lint+typecheck+build) and deploy.yml (GHCR + SSH)
- .env.example documenting all required variables
- Fixed docker-compose issues: Studio image tag, Kong port conflict (8001),
  internal role passwords init script, Realtime METRICS_JWT_SECRET/APP_NAME

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-12 14:37:51 +02:00

142 lines
3.2 KiB
JSON

{
"id": "colectivo",
"realm": "colectivo",
"displayName": "Colectivo",
"enabled": true,
"sslRequired": "external",
"registrationAllowed": false,
"loginWithEmailAllowed": true,
"duplicateEmailsAllowed": false,
"resetPasswordAllowed": true,
"editUsernameAllowed": false,
"bruteForceProtected": true,
"accessTokenLifespan": 3600,
"refreshTokenMaxReuse": 0,
"offlineSessionMaxLifespanEnabled": false,
"clients": [
{
"clientId": "colectivo-web",
"name": "Colectivo Web App",
"enabled": true,
"publicClient": true,
"standardFlowEnabled": true,
"implicitFlowEnabled": false,
"directAccessGrantsEnabled": false,
"serviceAccountsEnabled": false,
"protocol": "openid-connect",
"attributes": {
"pkce.code.challenge.method": "S256"
},
"redirectUris": [
"http://localhost:5173/*",
"http://localhost:3000/*"
],
"webOrigins": [
"http://localhost:5173",
"http://localhost:3000"
],
"fullScopeAllowed": true,
"defaultClientScopes": [
"web-origins",
"profile",
"roles",
"email"
],
"optionalClientScopes": [
"address",
"phone",
"offline_access",
"microprofile-jwt"
]
}
],
"users": [
{
"id": "11111111-1111-1111-1111-111111111111",
"username": "ana",
"email": "ana@dev.local",
"emailVerified": true,
"enabled": true,
"firstName": "Ana",
"lastName": "García",
"credentials": [
{
"type": "password",
"value": "test1234",
"temporary": false
}
]
},
{
"id": "22222222-2222-2222-2222-222222222222",
"username": "borja",
"email": "borja@dev.local",
"emailVerified": true,
"enabled": true,
"firstName": "Borja",
"lastName": "López",
"credentials": [
{
"type": "password",
"value": "test1234",
"temporary": false
}
]
},
{
"id": "33333333-3333-3333-3333-333333333333",
"username": "carmen",
"email": "carmen@dev.local",
"emailVerified": true,
"enabled": true,
"firstName": "Carmen",
"lastName": "Martínez",
"credentials": [
{
"type": "password",
"value": "test1234",
"temporary": false
}
]
},
{
"id": "44444444-4444-4444-4444-444444444444",
"username": "david",
"email": "david@dev.local",
"emailVerified": true,
"enabled": true,
"firstName": "David",
"lastName": "Fernández",
"credentials": [
{
"type": "password",
"value": "test1234",
"temporary": false
}
]
},
{
"id": "55555555-5555-5555-5555-555555555555",
"username": "eva",
"email": "eva@dev.local",
"emailVerified": true,
"enabled": true,
"firstName": "Eva",
"lastName": "Ruiz",
"credentials": [
{
"type": "password",
"value": "test1234",
"temporary": false
}
]
}
],
"scopeMappings": [],
"clientScopeMappings": {},
"roles": {
"realm": [],
"client": {}
}
}