mirror of
https://github.com/danny-avila/LibreChat.git
synced 2026-11-12 09:45:47 +00:00
* perf: Serve JWT Bearer User Lookups From the Auth User Cache * perf: Batch Agent Permission Reads on the File Access Path * perf: Remember a Loaded Google Service Key Across Endpoint Config Reads * perf: Run Independent Startup, Tool, Skill and Erasure Reads Concurrently * fix: Drop JWT User Cache Writes That Race a User Mutation Confirm each cache write with a second read and evict when the user changed, so an in-flight lookup cannot repopulate an entry a credential change just evicted. The cache mode now arrives through the loader dependencies. * refactor: Move Agent Skill Access Reads Into packages/api The chat-completions and Responses controllers call loadSkillAccess instead of orchestrating the three reads in CJS. The preview route spec mocks the batched file access helper the middleware now calls. * test: Cover Agent File Access, JWT Bursts and Remote Skill Reads End to End * fix: Serve a Cached JWT User Only While Its updatedAt Is Current A cache hit now reads the stored updatedAt and deletion fence instead of the fence alone, so a document cached from a read that raced a user mutation is never served, even when the write landed after that mutation's eviction. * refactor: Move Startup Migration Checks Into packages/api * refactor: Inject the Startup Migration Checks Instead of Mongoose Models * fix: Serve Cached OpenID Users Only While Their updatedAt Is Current Moves the freshness check into getCurrentCachedAuthUserDoc and uses it on the OpenID bearer path as well as the local JWT one, so a document cached from a read that raced a credential or role change is never served there either. Fixes berry-13/LibreChat#432 * fix: Compare Authorization Fields on Every Auth Cache Hit updatedAt has millisecond resolution, so the freshness read also compares the token retirement stamps, role, tenant and two-factor state. * fix: Annotate the Auth Freshness Projection for Isolated Declarations * perf: Reuse the OpenID Cache Freshness Read for Deletion Admission A cache hit already proved the deletion fence is clear, so only users read from the database take the separate fence query. * refactor: Keep the OpenID Cache Freshness and Fence Decisions in packages/api * test: Exercise JWT Cache Freshness Against Real User Methods in MongoDB * fix: Stamp the JWT User Lookup So the Cache Write Fence Applies * fix: Reload a Google Service Key File When It Changes or Disappears The availability check remembers a loaded key only while the file's mtime and size are unchanged, and fetches URL sources every time as before. * fix: Recheck a Service Key File After a Permission Change |
||
|---|---|---|
| .. | ||
| __tests__ | ||
| accessResources | ||
| assistants | ||
| config | ||
| limiters | ||
| roles | ||
| spec | ||
| validate | ||
| abortMiddleware.js | ||
| abortMiddleware.spec.js | ||
| abortRun.js | ||
| blockRetiredSetupToken.js | ||
| buildEndpointOption.js | ||
| buildEndpointOption.spec.js | ||
| canAccessSharedLink.js | ||
| canDeleteAccount.js | ||
| canDeleteAccount.spec.js | ||
| checkBan.js | ||
| checkBan.spec.js | ||
| checkDomainAllowed.js | ||
| checkInviteUser.js | ||
| checkInviteUser.spec.js | ||
| checkPeoplePickerAccess.js | ||
| checkSharePublicAccess.js | ||
| checkSharePublicAccess.spec.js | ||
| denyRequest.js | ||
| denyRequest.privateText.spec.js | ||
| error.js | ||
| error.spec.js | ||
| index.js | ||
| logHeaders.js | ||
| messageValidation.js | ||
| moderateText.js | ||
| moderateText.spec.js | ||
| noIndex.js | ||
| oauthNavigation.js | ||
| optionalJwtAuth.js | ||
| optionalJwtAuth.spec.js | ||
| optionalShareFileAuth.js | ||
| optionalShareFileAuth.spec.js | ||
| requireJwtAuth.js | ||
| requireLdapAuth.js | ||
| requireLocalAuth.js | ||
| requireSameOrigin.js | ||
| setHeaders.js | ||
| setTwoFactorTempUser.js | ||
| specs.spec.js | ||
| uaParser.js | ||
| validateEmailLogin.js | ||
| validateImageRequest.js | ||
| validateMessageReq.js | ||
| validateModel.js | ||
| validatePasswordReset.js | ||
| validateRegistration.js | ||