diff --git a/packages/data-schemas/src/models/plugins/tenantIsolation.coverage.spec.ts b/packages/data-schemas/src/models/plugins/tenantIsolation.coverage.spec.ts index 6f318abe10..3af1e34b79 100644 --- a/packages/data-schemas/src/models/plugins/tenantIsolation.coverage.spec.ts +++ b/packages/data-schemas/src/models/plugins/tenantIsolation.coverage.spec.ts @@ -15,10 +15,17 @@ const TENANT_ISOLATION_APPLIED = Symbol.for('librechat:tenantIsolation'); * status rows and tenant-scoped override rows, so its methods apply explicit * tenant filters instead of ambient ALS scoping. AuditLog composes its tenant * filter from the JWT-resolved caller and uses `{ tenantId: { $exists: false } }` - * for platform-level entries. Adding an entry here must be a deliberate, - * reviewed decision — that is the whole point of this guard. + * for platform-level entries. RefreshTokenBridge resolves tenant context from + * the signed OpenID marker cookie during unauthenticated refresh recovery, and + * its methods apply explicit tenant filters. Adding an entry here must be a + * deliberate, reviewed decision — that is the whole point of this guard. */ -const MANUAL_TENANT_SCOPING = new Set(['SystemGrant', 'SkillSyncStatus', 'AuditLog']); +const MANUAL_TENANT_SCOPING = new Set([ + 'SystemGrant', + 'SkillSyncStatus', + 'AuditLog', + 'RefreshTokenBridge', +]); function isPluginApplied(schema: mongoose.Schema): boolean { return (schema as unknown as { [key: symbol]: boolean })[TENANT_ISOLATION_APPLIED] === true;