From b6925e0b6303f1d875892f5913e9696df08ebc40 Mon Sep 17 00:00:00 2001 From: Till-JS <101404291+Till-JS@users.noreply.github.com> Date: Mon, 2 Feb 2026 16:16:22 +0100 Subject: [PATCH] feat(matrix-bots): enable cross-bot SSO via Redis sessions All 19 Matrix bots now use SessionModule.forRoot({ storageMode: 'redis' }) to share user sessions across all bots via Redis. Users only need to login once with any bot to be authenticated with all bots. Co-Authored-By: Claude Opus 4.5 --- services/matrix-chat-bot/src/bot/bot.module.ts | 2 +- services/matrix-clock-bot/src/bot/bot.module.ts | 2 +- services/matrix-contacts-bot/src/bot/bot.module.ts | 2 +- services/matrix-mana-bot/src/bot/bot.module.ts | 2 +- services/matrix-manadeck-bot/src/bot/bot.module.ts | 2 +- services/matrix-nutriphi-bot/src/bot/bot.module.ts | 7 ++++++- services/matrix-ollama-bot/src/bot/bot.module.ts | 2 +- services/matrix-picture-bot/src/bot/bot.module.ts | 2 +- services/matrix-planta-bot/src/bot/bot.module.ts | 2 +- services/matrix-presi-bot/src/bot/bot.module.ts | 2 +- services/matrix-project-doc-bot/src/bot/bot.module.ts | 8 +++++++- services/matrix-questions-bot/src/bot/bot.module.ts | 2 +- services/matrix-skilltree-bot/src/bot/bot.module.ts | 2 +- services/matrix-stats-bot/src/bot/bot.module.ts | 2 +- services/matrix-storage-bot/src/bot/bot.module.ts | 2 +- services/matrix-tts-bot/src/bot/bot.module.ts | 2 +- services/matrix-zitare-bot/src/bot/bot.module.ts | 7 ++++++- 17 files changed, 33 insertions(+), 17 deletions(-) diff --git a/services/matrix-chat-bot/src/bot/bot.module.ts b/services/matrix-chat-bot/src/bot/bot.module.ts index 25abb97c1..5355eddda 100644 --- a/services/matrix-chat-bot/src/bot/bot.module.ts +++ b/services/matrix-chat-bot/src/bot/bot.module.ts @@ -6,7 +6,7 @@ import { SessionModule, TranscriptionModule, CreditModule } from '@manacore/bot- @Module({ imports: [ ChatModule, - SessionModule.forRoot(), + SessionModule.forRoot({ storageMode: 'redis' }), TranscriptionModule.register({ sttUrl: process.env.STT_URL || 'http://localhost:3020', }), diff --git a/services/matrix-clock-bot/src/bot/bot.module.ts b/services/matrix-clock-bot/src/bot/bot.module.ts index 98951d8de..0aa9bc01c 100644 --- a/services/matrix-clock-bot/src/bot/bot.module.ts +++ b/services/matrix-clock-bot/src/bot/bot.module.ts @@ -12,7 +12,7 @@ import { imports: [ ClockModule, TranscriptionModule.forRoot(), - SessionModule.forRoot(), + SessionModule.forRoot({ storageMode: 'redis' }), CreditModule.forRoot(), I18nModule.forRoot(), ], diff --git a/services/matrix-contacts-bot/src/bot/bot.module.ts b/services/matrix-contacts-bot/src/bot/bot.module.ts index d4a602d03..b95271d82 100644 --- a/services/matrix-contacts-bot/src/bot/bot.module.ts +++ b/services/matrix-contacts-bot/src/bot/bot.module.ts @@ -11,7 +11,7 @@ import { @Module({ imports: [ ContactsModule, - SessionModule.forRoot(), + SessionModule.forRoot({ storageMode: 'redis' }), TranscriptionModule.register({ sttUrl: process.env.STT_URL || 'http://localhost:3020', }), diff --git a/services/matrix-mana-bot/src/bot/bot.module.ts b/services/matrix-mana-bot/src/bot/bot.module.ts index 2e261d140..5e2213bda 100644 --- a/services/matrix-mana-bot/src/bot/bot.module.ts +++ b/services/matrix-mana-bot/src/bot/bot.module.ts @@ -11,7 +11,7 @@ import { SessionModule, CreditModule } from '@manacore/bot-services'; forwardRef(() => HandlersModule), forwardRef(() => OrchestrationModule), VoiceModule, - SessionModule.forRoot(), + SessionModule.forRoot({ storageMode: 'redis' }), CreditModule.forRoot(), ], providers: [MatrixService, CommandRouterService], diff --git a/services/matrix-manadeck-bot/src/bot/bot.module.ts b/services/matrix-manadeck-bot/src/bot/bot.module.ts index 49796e7e9..6ac8c6e3f 100644 --- a/services/matrix-manadeck-bot/src/bot/bot.module.ts +++ b/services/matrix-manadeck-bot/src/bot/bot.module.ts @@ -6,7 +6,7 @@ import { SessionModule, TranscriptionModule, CreditModule } from '@manacore/bot- @Module({ imports: [ ManadeckModule, - SessionModule.forRoot(), + SessionModule.forRoot({ storageMode: 'redis' }), TranscriptionModule.register({ sttUrl: process.env.STT_URL || 'http://localhost:3020', }), diff --git a/services/matrix-nutriphi-bot/src/bot/bot.module.ts b/services/matrix-nutriphi-bot/src/bot/bot.module.ts index 5bc03ce01..e47adccb6 100644 --- a/services/matrix-nutriphi-bot/src/bot/bot.module.ts +++ b/services/matrix-nutriphi-bot/src/bot/bot.module.ts @@ -4,7 +4,12 @@ import { NutriPhiModule } from '../nutriphi/nutriphi.module'; import { SessionModule, TranscriptionModule, CreditModule } from '@manacore/bot-services'; @Module({ - imports: [NutriPhiModule, SessionModule.forRoot(), TranscriptionModule.forRoot(), CreditModule.forRoot()], + imports: [ + NutriPhiModule, + SessionModule.forRoot({ storageMode: 'redis' }), + TranscriptionModule.forRoot(), + CreditModule.forRoot(), + ], providers: [MatrixService], exports: [MatrixService], }) diff --git a/services/matrix-ollama-bot/src/bot/bot.module.ts b/services/matrix-ollama-bot/src/bot/bot.module.ts index 3a6812280..90685a1fa 100644 --- a/services/matrix-ollama-bot/src/bot/bot.module.ts +++ b/services/matrix-ollama-bot/src/bot/bot.module.ts @@ -9,7 +9,7 @@ import { TranscriptionModule, SessionModule, CreditModule } from '@manacore/bot- TranscriptionModule.register({ sttUrl: process.env.STT_URL || 'http://localhost:3020', }), - SessionModule.forRoot(), + SessionModule.forRoot({ storageMode: 'redis' }), CreditModule.forRoot(), ], providers: [MatrixService], diff --git a/services/matrix-picture-bot/src/bot/bot.module.ts b/services/matrix-picture-bot/src/bot/bot.module.ts index 2a4f48af4..eecbc9583 100644 --- a/services/matrix-picture-bot/src/bot/bot.module.ts +++ b/services/matrix-picture-bot/src/bot/bot.module.ts @@ -6,7 +6,7 @@ import { SessionModule, TranscriptionModule, CreditModule } from '@manacore/bot- @Module({ imports: [ PictureModule, - SessionModule.forRoot(), + SessionModule.forRoot({ storageMode: 'redis' }), TranscriptionModule.register({ sttUrl: process.env.STT_URL || 'http://localhost:3020', }), diff --git a/services/matrix-planta-bot/src/bot/bot.module.ts b/services/matrix-planta-bot/src/bot/bot.module.ts index 0ef9e1d6e..6d0355b2f 100644 --- a/services/matrix-planta-bot/src/bot/bot.module.ts +++ b/services/matrix-planta-bot/src/bot/bot.module.ts @@ -6,7 +6,7 @@ import { SessionModule, TranscriptionModule, CreditModule } from '@manacore/bot- @Module({ imports: [ PlantaModule, - SessionModule.forRoot(), + SessionModule.forRoot({ storageMode: 'redis' }), TranscriptionModule.register({ sttUrl: process.env.STT_URL || 'http://localhost:3020', }), diff --git a/services/matrix-presi-bot/src/bot/bot.module.ts b/services/matrix-presi-bot/src/bot/bot.module.ts index 08ed2ca12..3a8659241 100644 --- a/services/matrix-presi-bot/src/bot/bot.module.ts +++ b/services/matrix-presi-bot/src/bot/bot.module.ts @@ -6,7 +6,7 @@ import { SessionModule, TranscriptionModule, CreditModule } from '@manacore/bot- @Module({ imports: [ PresiModule, - SessionModule.forRoot(), + SessionModule.forRoot({ storageMode: 'redis' }), TranscriptionModule.register({ sttUrl: process.env.STT_URL || 'http://localhost:3020', }), diff --git a/services/matrix-project-doc-bot/src/bot/bot.module.ts b/services/matrix-project-doc-bot/src/bot/bot.module.ts index 76f7a97d3..5dd8c530b 100644 --- a/services/matrix-project-doc-bot/src/bot/bot.module.ts +++ b/services/matrix-project-doc-bot/src/bot/bot.module.ts @@ -6,7 +6,13 @@ import { GenerationModule } from '../generation/generation.module'; import { SessionModule, CreditModule } from '@manacore/bot-services'; @Module({ - imports: [ProjectModule, MediaModule, GenerationModule, SessionModule.forRoot(), CreditModule.forRoot()], + imports: [ + ProjectModule, + MediaModule, + GenerationModule, + SessionModule.forRoot({ storageMode: 'redis' }), + CreditModule.forRoot(), + ], providers: [MatrixService], exports: [MatrixService], }) diff --git a/services/matrix-questions-bot/src/bot/bot.module.ts b/services/matrix-questions-bot/src/bot/bot.module.ts index 304c8eda0..6bfa515de 100644 --- a/services/matrix-questions-bot/src/bot/bot.module.ts +++ b/services/matrix-questions-bot/src/bot/bot.module.ts @@ -6,7 +6,7 @@ import { SessionModule, TranscriptionModule, CreditModule } from '@manacore/bot- @Module({ imports: [ QuestionsModule, - SessionModule.forRoot(), + SessionModule.forRoot({ storageMode: 'redis' }), TranscriptionModule.register({ sttUrl: process.env.STT_URL || 'http://localhost:3020', }), diff --git a/services/matrix-skilltree-bot/src/bot/bot.module.ts b/services/matrix-skilltree-bot/src/bot/bot.module.ts index 6dbf12b7c..cea2bb670 100644 --- a/services/matrix-skilltree-bot/src/bot/bot.module.ts +++ b/services/matrix-skilltree-bot/src/bot/bot.module.ts @@ -6,7 +6,7 @@ import { SessionModule, TranscriptionModule, CreditModule } from '@manacore/bot- @Module({ imports: [ SkilltreeModule, - SessionModule.forRoot(), + SessionModule.forRoot({ storageMode: 'redis' }), TranscriptionModule.register({ sttUrl: process.env.STT_URL || 'http://localhost:3020', }), diff --git a/services/matrix-stats-bot/src/bot/bot.module.ts b/services/matrix-stats-bot/src/bot/bot.module.ts index d6a69c753..50b80cbcb 100644 --- a/services/matrix-stats-bot/src/bot/bot.module.ts +++ b/services/matrix-stats-bot/src/bot/bot.module.ts @@ -11,7 +11,7 @@ import { TranscriptionModule, SessionModule, CreditModule } from '@manacore/bot- TranscriptionModule.register({ sttUrl: process.env.STT_URL || 'http://localhost:3020', }), - SessionModule.forRoot(), + SessionModule.forRoot({ storageMode: 'redis' }), CreditModule.forRoot(), ], providers: [MatrixService], diff --git a/services/matrix-storage-bot/src/bot/bot.module.ts b/services/matrix-storage-bot/src/bot/bot.module.ts index 124d97fdb..3fe9da9e6 100644 --- a/services/matrix-storage-bot/src/bot/bot.module.ts +++ b/services/matrix-storage-bot/src/bot/bot.module.ts @@ -6,7 +6,7 @@ import { SessionModule, TranscriptionModule, CreditModule } from '@manacore/bot- @Module({ imports: [ StorageModule, - SessionModule.forRoot(), + SessionModule.forRoot({ storageMode: 'redis' }), TranscriptionModule.register({ sttUrl: process.env.STT_URL || 'http://localhost:3020', }), diff --git a/services/matrix-tts-bot/src/bot/bot.module.ts b/services/matrix-tts-bot/src/bot/bot.module.ts index 1bb1b7ccc..d436ac972 100644 --- a/services/matrix-tts-bot/src/bot/bot.module.ts +++ b/services/matrix-tts-bot/src/bot/bot.module.ts @@ -9,7 +9,7 @@ import { TranscriptionModule, SessionModule, CreditModule } from '@manacore/bot- TranscriptionModule.register({ sttUrl: process.env.STT_URL || 'http://localhost:3020', }), - SessionModule.forRoot(), + SessionModule.forRoot({ storageMode: 'redis' }), CreditModule.forRoot(), ], providers: [MatrixService], diff --git a/services/matrix-zitare-bot/src/bot/bot.module.ts b/services/matrix-zitare-bot/src/bot/bot.module.ts index 44d86d4e6..018465080 100644 --- a/services/matrix-zitare-bot/src/bot/bot.module.ts +++ b/services/matrix-zitare-bot/src/bot/bot.module.ts @@ -4,7 +4,12 @@ import { QuotesModule } from '../quotes/quotes.module'; import { SessionModule, TranscriptionModule, CreditModule } from '@manacore/bot-services'; @Module({ - imports: [QuotesModule, SessionModule.forRoot(), TranscriptionModule.forRoot(), CreditModule.forRoot()], + imports: [ + QuotesModule, + SessionModule.forRoot({ storageMode: 'redis' }), + TranscriptionModule.forRoot(), + CreditModule.forRoot(), + ], providers: [MatrixService], exports: [MatrixService], })