Fix auth : CORS outermost + dev rate limit + filtre workspace réactif

- Middleware : CORSMiddleware ajouté en dernier = plus externe = tous les
  codes de retour (dont 429) portent Access-Control-Allow-Origin
  → résout "no response / Failed to fetch" sur POST /auth/challenge
- Dev mode : rate_limit_auth = RATE_LIMIT_DEFAULT (60/min) au lieu de 10/min
  → plus de blocage login après quelques reconnexions
- app.vue : watcher activeSlug → refetch documents/décisions/protocoles/mandats
  → le sélecteur de workspace filtre désormais le contenu en temps réel
- TDD : 4 tests middleware (RED→GREEN) + doc méthode docs/dev/tdd-methode.md
- Régression : 190/190 tests verts

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Yvv
2026-04-23 15:51:28 +02:00
parent 79e468b40f
commit fc84600f97
4 changed files with 355 additions and 11 deletions

View File

@@ -1,6 +1,10 @@
<script setup lang="ts">
const auth = useAuthStore()
const orgsStore = useOrganizationsStore()
const documentsStore = useDocumentsStore()
const decisionsStore = useDecisionsStore()
const protocolsStore = useProtocolsStore()
const mandatesStore = useMandatesStore()
const route = useRoute()
const { initMood } = useMood()
@@ -48,6 +52,16 @@ watch(() => route.path, () => {
mobileMenuOpen.value = false
})
/** Refetch all content stores when the active workspace changes. */
watch(() => orgsStore.activeSlug, (newSlug, oldSlug) => {
if (oldSlug !== null && newSlug !== null && newSlug !== oldSlug) {
documentsStore.fetchAll()
decisionsStore.fetchAll()
protocolsStore.fetchProtocols()
mandatesStore.fetchAll()
}
})
/** WebSocket connection and notifications. */
const ws = useWebSocket()
const { setupWsNotifications } = useNotifications()