L’interface est localisée ; les présentations et documents des Skills sont traduits automatiquement par IA dans votre langue. Le code, les commandes, chemins et termes techniques restent en version originale, et le document de l’auteur fait foi.
Explorer les Skills
Déploiement et opérations · SKILL.md

saas-developer

saas-developer

Use when implementing SaaS application features — tenant-aware middleware and request context, multi-tenant database queries (Django/Flask/FastAPI with SQLAlchemy), tenant-scoped API endpoints, webhook delivery systems, background job processing per tenant, email and notification systems, file storage isolation (S3 prefix per tenant), caching strategies (Re…

Independent GitHub snapshot · Automated classification · Original documentation governs

Documentation de la Skill

GitHub

name: saas-developer description: Use when implementing SaaS application features — tenant-aware middleware and request context, multi-tenant database queries (Django/Flask/FastAPI with SQLAlchemy), tenant-scoped API endpoints, webhook delivery systems, background job processing per tenant, email and notification systems, file storage isolation (S3 prefix per tenant), caching strategies (Redis key namespacing), testing multi-tenant code, and deployment patterns (blue-green, canary per tier). Complements saas-architecture with hands-on code. Part of the saas-* skill family.

SaaS Developer Patterns

Reference Files

Detailed code examples, patterns, and configuration are in the reference files below. Read the relevant file when working on that area.

FileCovers
api-jobs-webhooks.mdtenant-scoped API endpoints, background job processing per tenant, webhook delivery systems
email-storage-testing-deploy.mdemail/notification systems, file storage isolation, caching strategies, testing multi-tenant code, and deployment patterns
tenant-context-database.mdtenant context middleware, multi-tenant database layer with SQLAlchemy, row-level security

Anti-Patterns

Don'tDo Instead
Pass tenant_id as function parameter through 15 layersUse contextvars — set once in middleware, read anywhere
Cache with keys like project:123 (no tenant prefix)Always tenant:{tid}:project:123 — prevents cross-tenant cache reads
Run Celery tasks without tenant context propagationUse TenantTask base class that injects/restores tenant from headers
Generate pre-signed S3 URLs without validating key prefixAlways verify the key starts with tenant-{tenant_id}/ before signing
Use KEYS * in Redis for tenant key operationsUse SCAN with cursor — KEYS blocks Redis on large datasets
Run all tenant schema migrations seriallyParallelize with bounded concurrency (5-10 at a time)
Write tests that share a single hardcoded tenant_idEach test gets a fresh uuid4() tenant_id via fixture
Deploy new features to all tenants simultaneouslyCanary by tier: internal, then starter, then pro, then enterprise
Store uploaded files at user-chosen pathsSanitize filenames, prepend UUID, enforce tenant prefix
Let one tenant's failed webhook retries consume the entire retry queueUse per-tenant or per-endpoint retry budgets with circuit breakers
Skills enregistrées