SaaS foundations · 0.1.60

Socle SaaS NFZ Docs

Cette vue transforme la roadmap commerciale en plan d’exécution technique : tenant, entitlements, abonnements, paiement, audit/versioning, média S3/RustFS, connecteurs de publication et parité FR/EN.

Niveau produit
Démonstrateur commercial avancé → SaaS opérable
6/9
Objectif : 9/9 après tenant isolation, billing, versions/restauration, média S3 et publication UI.
À implémenter en premier
Multi-tenant documentaire

Isoler les organisations, espaces documentaires, utilisateurs et builds pour vendre la solution en SaaS ou en instance dédiée.

Services cibles
tenants
tenant-members
docs-scope
Socle commercial
Entitlements et limitations

Contrôler les fonctionnalités par édition : Free, Starter, Pro, Enterprise.

Services cibles
plans
features
entitlements
Après entitlements
Abonnements

Suivre l’état actif, trialing, past_due ou canceled d’une organisation.

Services cibles
subscriptions
billing-customers
Provider-neutral
Paiement et webhooks

Permettre Stripe, PayPal ou paiement manuel sans coupler le cœur documentaire.

Services cibles
payments
payment-webhooks
invoices
Audit 0.1.68 actif
Audit et versioning éditorial

Rassurer les DSI/RSSI : traçabilité, rollback, conformité et preuve d’action.

Services cibles
docs-audit-logs
docs-versions
Local → S3
Provider média RustFS / S3

Sortir les assets de docs/uploads local pour supporter SaaS, cluster, sauvegarde et CDN.

Services cibles
docs-assets
media-providers
Diffusion pro
Connecteurs de publication UI

Publier vers GitHub Pages, serveur SFTP, bucket S3/CDN ou pipeline CI depuis l’interface.

Services cibles
publish-targets
publish-runs
Qualité produit
Parité i18n FR/EN app + guide

Rendre la solution vendable hors contexte francophone sans traduire le contenu VitePress client /docs/.

Services cibles
i18n messages
user-guide/en
diagnose-i18n

Phase 1 — Tenant + entitlements serveur

Sécuriser le modèle commercial avant d’ajouter le paiement.

Livrables
  • Services tenants, plans, entitlements.
  • Hook requireTenantMembership() et requireEntitlement().
  • UI sélecteur tenant + badges limites sur les actions sensibles.

Critères de sortie
  • Impossible de lire/modifier une ressource d’un autre tenant.
  • Les limites Free/Starter bloquent build/export/publish côté serveur.
Phase 2 — Audit/versioning + média S3

Rendre le produit robuste pour DSI/RSSI et usage multi-instance.

Livrables
  • Service docs-audit-logs actif + futur service docs-versions append-only.
  • Provider docs-assets local|s3 avec RustFS en docker-compose profil media.
  • Vue historique + rollback dans l’éditeur.

Critères de sortie
  • Chaque save/build/export produit un événement audit.
  • Les images sauvegardées restent accessibles après rebuild et export.
Phase 3 — Billing + publication UI

Transformer la démo commerciale en offre SaaS opérable.

Livrables
  • Subscriptions, billing-customers, payment-webhooks, invoices.
  • Publish-targets et publish-runs GitHub Pages/S3/SFTP.
  • Logs, statuts, URL publique et artefacts de publication.

Critères de sortie
  • Un tenant peut souscrire, changer de plan, payer et publier depuis l’UI.
  • Les webhooks paiement sont signés, idempotents et journalisés.
Phase 4 — i18n FR/EN et polish commercial

Finaliser le shell SaaS vendable et le guide produit bilingue.

Livrables
  • Toutes les pages app/pages/** passent par i18n.
  • Guide utilisateur /guide/ en FR/EN, sans traduire le contenu client /docs/.
  • Script diagnose:i18n intégré dans doctor:docs.

Critères de sortie
  • Aucune chaîne UI critique hardcodée en FR dans app/pages/**.
  • Chaque page guide FR a son équivalent EN.