@terreno/mcp 0.21.0 → 0.22.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (999) hide show
  1. package/dist/docs/versioned/0.21.0/README.md +29 -0
  2. package/dist/docs/versioned/0.21.0/explanation/README.md +13 -0
  3. package/dist/docs/versioned/0.21.0/explanation/ai-workflows.md +270 -0
  4. package/dist/docs/versioned/0.21.0/explanation/authentication.md +438 -0
  5. package/dist/docs/versioned/0.21.0/explanation/configuration-system.md +428 -0
  6. package/dist/docs/versioned/0.21.0/explanation/dependency-management.md +192 -0
  7. package/dist/docs/versioned/0.21.0/explanation/gcp-hosting-architecture.md +319 -0
  8. package/dist/docs/versioned/0.21.0/explanation/model-router-actions.md +156 -0
  9. package/dist/docs/versioned/0.21.0/explanation/modular-api-design.md +228 -0
  10. package/dist/docs/versioned/0.21.0/how-to/README.md +20 -0
  11. package/dist/docs/versioned/0.21.0/how-to/add-feature-flags.md +115 -0
  12. package/dist/docs/versioned/0.21.0/how-to/add-github-oauth.md +316 -0
  13. package/dist/docs/versioned/0.21.0/how-to/configure-better-auth.md +296 -0
  14. package/dist/docs/versioned/0.21.0/how-to/create-a-model.md +165 -0
  15. package/dist/docs/versioned/0.21.0/how-to/deploy-to-gcp.md +244 -0
  16. package/dist/docs/versioned/0.21.0/how-to/upgrade-banner.md +172 -0
  17. package/dist/docs/versioned/0.21.0/how-to/websocket-integration.md +416 -0
  18. package/dist/docs/versioned/0.21.0/implementationPlans/IP_TEMPLATE.md +47 -0
  19. package/dist/docs/versioned/0.21.0/implementationPlans/ModularAPI.md +844 -0
  20. package/dist/docs/versioned/0.21.0/implementationPlans/PLAN_INDEX.md +21 -0
  21. package/dist/docs/versioned/0.21.0/implementationPlans/README.md +42 -0
  22. package/dist/docs/versioned/0.21.0/implementationPlans/admin-improvements.md +577 -0
  23. package/dist/docs/versioned/0.21.0/implementationPlans/admin-only-research.md +258 -0
  24. package/dist/docs/versioned/0.21.0/implementationPlans/admin-only.md +616 -0
  25. package/dist/docs/versioned/0.21.0/implementationPlans/admin-script-runner.md +107 -0
  26. package/dist/docs/versioned/0.21.0/implementationPlans/admin-ui-v2-django-parity.md +204 -0
  27. package/dist/docs/versioned/0.21.0/implementationPlans/consent-forms.md +417 -0
  28. package/dist/docs/versioned/0.21.0/implementationPlans/design-blend-skill.md +188 -0
  29. package/dist/docs/versioned/0.21.0/implementationPlans/docs-site-and-versioning.md +138 -0
  30. package/dist/docs/versioned/0.21.0/implementationPlans/feature-flags-openfeature.md +545 -0
  31. package/dist/docs/versioned/0.21.0/implementationPlans/feature-flags.md +310 -0
  32. package/dist/docs/versioned/0.21.0/implementationPlans/mcp-boost-parity.md +246 -0
  33. package/dist/docs/versioned/0.21.0/implementationPlans/model-router-actions.md +639 -0
  34. package/dist/docs/versioned/0.21.0/implementationPlans/model-router-mcp.md +186 -0
  35. package/dist/docs/versioned/0.21.0/implementationPlans/offline-mode.md +311 -0
  36. package/dist/docs/versioned/0.21.0/implementationPlans/terreno-langfuse-integration.md +145 -0
  37. package/dist/docs/versioned/0.21.0/implementationPlans/upgrade-banner.md +275 -0
  38. package/dist/docs/versioned/0.21.0/reference/README.md +22 -0
  39. package/dist/docs/versioned/0.21.0/reference/admin-backend.md +122 -0
  40. package/dist/docs/versioned/0.21.0/reference/admin-frontend.md +205 -0
  41. package/dist/docs/versioned/0.21.0/reference/api-health.md +81 -0
  42. package/dist/docs/versioned/0.21.0/reference/api.md +1205 -0
  43. package/dist/docs/versioned/0.21.0/reference/components/README.mdx +65 -0
  44. package/dist/docs/versioned/0.21.0/reference/components/accordion.mdx +36 -0
  45. package/dist/docs/versioned/0.21.0/reference/components/addressfield.mdx +26 -0
  46. package/dist/docs/versioned/0.21.0/reference/components/ai-suggestion-box.mdx +26 -0
  47. package/dist/docs/versioned/0.21.0/reference/components/avatar.mdx +35 -0
  48. package/dist/docs/versioned/0.21.0/reference/components/badge.mdx +38 -0
  49. package/dist/docs/versioned/0.21.0/reference/components/banner.mdx +26 -0
  50. package/dist/docs/versioned/0.21.0/reference/components/boolean-field.mdx +34 -0
  51. package/dist/docs/versioned/0.21.0/reference/components/box.mdx +26 -0
  52. package/dist/docs/versioned/0.21.0/reference/components/button.mdx +43 -0
  53. package/dist/docs/versioned/0.21.0/reference/components/card.mdx +26 -0
  54. package/dist/docs/versioned/0.21.0/reference/components/checkbox.mdx +29 -0
  55. package/dist/docs/versioned/0.21.0/reference/components/consentformscreen.mdx +26 -0
  56. package/dist/docs/versioned/0.21.0/reference/components/custom-select-field.mdx +34 -0
  57. package/dist/docs/versioned/0.21.0/reference/components/datatable.mdx +41 -0
  58. package/dist/docs/versioned/0.21.0/reference/components/date-time-field.mdx +48 -0
  59. package/dist/docs/versioned/0.21.0/reference/components/email-field.mdx +42 -0
  60. package/dist/docs/versioned/0.21.0/reference/components/emoji-selector.mdx +26 -0
  61. package/dist/docs/versioned/0.21.0/reference/components/field.mdx +26 -0
  62. package/dist/docs/versioned/0.21.0/reference/components/height-field.mdx +44 -0
  63. package/dist/docs/versioned/0.21.0/reference/components/icon.mdx +31 -0
  64. package/dist/docs/versioned/0.21.0/reference/components/iconbutton.mdx +42 -0
  65. package/dist/docs/versioned/0.21.0/reference/components/inner-modal-content.mdx +39 -0
  66. package/dist/docs/versioned/0.21.0/reference/components/markdown-editor-field.mdx +49 -0
  67. package/dist/docs/versioned/0.21.0/reference/components/markdownview.mdx +37 -0
  68. package/dist/docs/versioned/0.21.0/reference/components/multiselect-field.mdx +34 -0
  69. package/dist/docs/versioned/0.21.0/reference/components/number-field.mdx +45 -0
  70. package/dist/docs/versioned/0.21.0/reference/components/page.mdx +45 -0
  71. package/dist/docs/versioned/0.21.0/reference/components/pagination.mdx +29 -0
  72. package/dist/docs/versioned/0.21.0/reference/components/password-field.mdx +26 -0
  73. package/dist/docs/versioned/0.21.0/reference/components/phone-number-field.mdx +43 -0
  74. package/dist/docs/versioned/0.21.0/reference/components/radio-field.mdx +31 -0
  75. package/dist/docs/versioned/0.21.0/reference/components/sectiondivider.mdx +26 -0
  76. package/dist/docs/versioned/0.21.0/reference/components/segmented-control.mdx +32 -0
  77. package/dist/docs/versioned/0.21.0/reference/components/select-field.mdx +26 -0
  78. package/dist/docs/versioned/0.21.0/reference/components/selectbadge.mdx +35 -0
  79. package/dist/docs/versioned/0.21.0/reference/components/side-drawer.mdx +34 -0
  80. package/dist/docs/versioned/0.21.0/reference/components/sidebar-navigation-non-expo.mdx +35 -0
  81. package/dist/docs/versioned/0.21.0/reference/components/signature-field.mdx +35 -0
  82. package/dist/docs/versioned/0.21.0/reference/components/slider.mdx +43 -0
  83. package/dist/docs/versioned/0.21.0/reference/components/spinner.mdx +28 -0
  84. package/dist/docs/versioned/0.21.0/reference/components/table-badge.mdx +32 -0
  85. package/dist/docs/versioned/0.21.0/reference/components/table-boolean.mdx +29 -0
  86. package/dist/docs/versioned/0.21.0/reference/components/table-date.mdx +30 -0
  87. package/dist/docs/versioned/0.21.0/reference/components/table-icon-button.mdx +28 -0
  88. package/dist/docs/versioned/0.21.0/reference/components/table-number.mdx +30 -0
  89. package/dist/docs/versioned/0.21.0/reference/components/table-text.mdx +30 -0
  90. package/dist/docs/versioned/0.21.0/reference/components/table-title.mdx +28 -0
  91. package/dist/docs/versioned/0.21.0/reference/components/table.mdx +38 -0
  92. package/dist/docs/versioned/0.21.0/reference/components/tap-to-edit.mdx +26 -0
  93. package/dist/docs/versioned/0.21.0/reference/components/text-area.mdx +49 -0
  94. package/dist/docs/versioned/0.21.0/reference/components/text-field.mdx +51 -0
  95. package/dist/docs/versioned/0.21.0/reference/components/theme.mdx +26 -0
  96. package/dist/docs/versioned/0.21.0/reference/components/toast.mdx +26 -0
  97. package/dist/docs/versioned/0.21.0/reference/components/tooltip.mdx +30 -0
  98. package/dist/docs/versioned/0.21.0/reference/components/userinactivity.mdx +32 -0
  99. package/dist/docs/versioned/0.21.0/reference/environment-variables.md +382 -0
  100. package/dist/docs/versioned/0.21.0/reference/feature-flags.md +304 -0
  101. package/dist/docs/versioned/0.21.0/reference/generated/README.md +17 -0
  102. package/dist/docs/versioned/0.21.0/reference/generated/api/README.md +276 -0
  103. package/dist/docs/versioned/0.21.0/reference/generated/api/classes/APIError.md +96 -0
  104. package/dist/docs/versioned/0.21.0/reference/generated/api/classes/BetterAuthApp.md +84 -0
  105. package/dist/docs/versioned/0.21.0/reference/generated/api/classes/CachingSecretProvider.md +118 -0
  106. package/dist/docs/versioned/0.21.0/reference/generated/api/classes/CompositeSecretProvider.md +79 -0
  107. package/dist/docs/versioned/0.21.0/reference/generated/api/classes/ConfigurationApp.md +94 -0
  108. package/dist/docs/versioned/0.21.0/reference/generated/api/classes/ConsentApp.md +74 -0
  109. package/dist/docs/versioned/0.21.0/reference/generated/api/classes/DateOnly.md +123 -0
  110. package/dist/docs/versioned/0.21.0/reference/generated/api/classes/EnvSecretProvider.md +64 -0
  111. package/dist/docs/versioned/0.21.0/reference/generated/api/classes/GcpSecretProvider.md +76 -0
  112. package/dist/docs/versioned/0.21.0/reference/generated/api/classes/OpenApiMiddlewareBuilder.md +543 -0
  113. package/dist/docs/versioned/0.21.0/reference/generated/api/classes/RealtimeApp.md +112 -0
  114. package/dist/docs/versioned/0.21.0/reference/generated/api/classes/TaskCancelledError.md +23 -0
  115. package/dist/docs/versioned/0.21.0/reference/generated/api/classes/TerrenoApp.md +262 -0
  116. package/dist/docs/versioned/0.21.0/reference/generated/api/classes/VersionCheckPlugin.md +43 -0
  117. package/dist/docs/versioned/0.21.0/reference/generated/api/functions/AdminOwnerTransformer.md +47 -0
  118. package/dist/docs/versioned/0.21.0/reference/generated/api/functions/OwnerQueryFilter.md +11 -0
  119. package/dist/docs/versioned/0.21.0/reference/generated/api/functions/addAuthRoutes.md +19 -0
  120. package/dist/docs/versioned/0.21.0/reference/generated/api/functions/addGitHubAuthRoutes.md +31 -0
  121. package/dist/docs/versioned/0.21.0/reference/generated/api/functions/addMeRoutes.md +19 -0
  122. package/dist/docs/versioned/0.21.0/reference/generated/api/functions/addPopulateToQuery.md +15 -0
  123. package/dist/docs/versioned/0.21.0/reference/generated/api/functions/addQuerySubscription.md +26 -0
  124. package/dist/docs/versioned/0.21.0/reference/generated/api/functions/apiErrorMiddleware.md +23 -0
  125. package/dist/docs/versioned/0.21.0/reference/generated/api/functions/apiFallthroughErrorMiddleware.md +26 -0
  126. package/dist/docs/versioned/0.21.0/reference/generated/api/functions/apiUnauthorizedMiddleware.md +23 -0
  127. package/dist/docs/versioned/0.21.0/reference/generated/api/functions/applyRequestContextToSentry.md +11 -0
  128. package/dist/docs/versioned/0.21.0/reference/generated/api/functions/assertNoActionCollisions.md +21 -0
  129. package/dist/docs/versioned/0.21.0/reference/generated/api/functions/asyncHandler.md +15 -0
  130. package/dist/docs/versioned/0.21.0/reference/generated/api/functions/authenticateMiddleware.md +11 -0
  131. package/dist/docs/versioned/0.21.0/reference/generated/api/functions/baseUserPlugin.md +11 -0
  132. package/dist/docs/versioned/0.21.0/reference/generated/api/functions/buildQuerySchemaFromFields.md +30 -0
  133. package/dist/docs/versioned/0.21.0/reference/generated/api/functions/checkModelsStrict.md +21 -0
  134. package/dist/docs/versioned/0.21.0/reference/generated/api/functions/checkPermissions.md +29 -0
  135. package/dist/docs/versioned/0.21.0/reference/generated/api/functions/clearQueryStore.md +7 -0
  136. package/dist/docs/versioned/0.21.0/reference/generated/api/functions/clearRealtimeRegistry.md +7 -0
  137. package/dist/docs/versioned/0.21.0/reference/generated/api/functions/computeQueryId.md +18 -0
  138. package/dist/docs/versioned/0.21.0/reference/generated/api/functions/configurationPlugin.md +48 -0
  139. package/dist/docs/versioned/0.21.0/reference/generated/api/functions/configureOpenApiValidator.md +28 -0
  140. package/dist/docs/versioned/0.21.0/reference/generated/api/functions/createActionOpenApiMiddleware.md +35 -0
  141. package/dist/docs/versioned/0.21.0/reference/generated/api/functions/createBetterAuth.md +13 -0
  142. package/dist/docs/versioned/0.21.0/reference/generated/api/functions/createBetterAuthSessionMiddleware.md +18 -0
  143. package/dist/docs/versioned/0.21.0/reference/generated/api/functions/createFeatureFlaggedLogger.md +53 -0
  144. package/dist/docs/versioned/0.21.0/reference/generated/api/functions/createModelValidators.md +74 -0
  145. package/dist/docs/versioned/0.21.0/reference/generated/api/functions/createOpenApiBuilder.md +39 -0
  146. package/dist/docs/versioned/0.21.0/reference/generated/api/functions/createRouter.md +19 -0
  147. package/dist/docs/versioned/0.21.0/reference/generated/api/functions/createRouterWithAuth.md +19 -0
  148. package/dist/docs/versioned/0.21.0/reference/generated/api/functions/createScopedLogger.md +53 -0
  149. package/dist/docs/versioned/0.21.0/reference/generated/api/functions/createValidator.md +29 -0
  150. package/dist/docs/versioned/0.21.0/reference/generated/api/functions/createdUpdatedPlugin.md +11 -0
  151. package/dist/docs/versioned/0.21.0/reference/generated/api/functions/cronjob.md +19 -0
  152. package/dist/docs/versioned/0.21.0/reference/generated/api/functions/defaultResponseHandler.md +32 -0
  153. package/dist/docs/versioned/0.21.0/reference/generated/api/functions/defineCollectionAction.md +25 -0
  154. package/dist/docs/versioned/0.21.0/reference/generated/api/functions/defineInstanceAction.md +29 -0
  155. package/dist/docs/versioned/0.21.0/reference/generated/api/functions/envConfigurationPlugin.md +11 -0
  156. package/dist/docs/versioned/0.21.0/reference/generated/api/functions/errorMessage.md +13 -0
  157. package/dist/docs/versioned/0.21.0/reference/generated/api/functions/errorStack.md +13 -0
  158. package/dist/docs/versioned/0.21.0/reference/generated/api/functions/errorsPlugin.md +11 -0
  159. package/dist/docs/versioned/0.21.0/reference/generated/api/functions/findExactlyOne.md +25 -0
  160. package/dist/docs/versioned/0.21.0/reference/generated/api/functions/findOneOrNone.md +24 -0
  161. package/dist/docs/versioned/0.21.0/reference/generated/api/functions/findOneOrNoneFor.md +37 -0
  162. package/dist/docs/versioned/0.21.0/reference/generated/api/functions/findRegistryEntryByCollection.md +13 -0
  163. package/dist/docs/versioned/0.21.0/reference/generated/api/functions/findRegistryEntryByRoutePath.md +13 -0
  164. package/dist/docs/versioned/0.21.0/reference/generated/api/functions/firebaseJWTPlugin.md +11 -0
  165. package/dist/docs/versioned/0.21.0/reference/generated/api/functions/fixMixedFields.md +21 -0
  166. package/dist/docs/versioned/0.21.0/reference/generated/api/functions/flattenToDotPaths.md +24 -0
  167. package/dist/docs/versioned/0.21.0/reference/generated/api/functions/formatLogContextSuffix.md +17 -0
  168. package/dist/docs/versioned/0.21.0/reference/generated/api/functions/generateTokens.md +35 -0
  169. package/dist/docs/versioned/0.21.0/reference/generated/api/functions/getAPIErrorBody.md +11 -0
  170. package/dist/docs/versioned/0.21.0/reference/generated/api/functions/getBetterAuthSession.md +13 -0
  171. package/dist/docs/versioned/0.21.0/reference/generated/api/functions/getCurrentLogContext.md +9 -0
  172. package/dist/docs/versioned/0.21.0/reference/generated/api/functions/getCurrentRequestContext.md +8 -0
  173. package/dist/docs/versioned/0.21.0/reference/generated/api/functions/getCurrentRequestContextAttributes.md +15 -0
  174. package/dist/docs/versioned/0.21.0/reference/generated/api/functions/getDisableExternalErrorTracking.md +15 -0
  175. package/dist/docs/versioned/0.21.0/reference/generated/api/functions/getMongoClientFromMongoose.md +7 -0
  176. package/dist/docs/versioned/0.21.0/reference/generated/api/functions/getOpenApiSpecForModel.md +29 -0
  177. package/dist/docs/versioned/0.21.0/reference/generated/api/functions/getOpenApiValidatorConfig.md +7 -0
  178. package/dist/docs/versioned/0.21.0/reference/generated/api/functions/getQuerySubscriptionsForCollection.md +14 -0
  179. package/dist/docs/versioned/0.21.0/reference/generated/api/functions/getRealtimeRegistry.md +7 -0
  180. package/dist/docs/versioned/0.21.0/reference/generated/api/functions/getRequestContextFromAttributes.md +11 -0
  181. package/dist/docs/versioned/0.21.0/reference/generated/api/functions/getSchemaFromModel.md +25 -0
  182. package/dist/docs/versioned/0.21.0/reference/generated/api/functions/getSessionIdFromJwtPayload.md +11 -0
  183. package/dist/docs/versioned/0.21.0/reference/generated/api/functions/githubUserPlugin.md +22 -0
  184. package/dist/docs/versioned/0.21.0/reference/generated/api/functions/hasBetterAuthSession.md +13 -0
  185. package/dist/docs/versioned/0.21.0/reference/generated/api/functions/installRealtimeSocketHandlers.md +27 -0
  186. package/dist/docs/versioned/0.21.0/reference/generated/api/functions/isAPIError.md +11 -0
  187. package/dist/docs/versioned/0.21.0/reference/generated/api/functions/isDeletedPlugin.md +15 -0
  188. package/dist/docs/versioned/0.21.0/reference/generated/api/functions/isDisabledPlugin.md +15 -0
  189. package/dist/docs/versioned/0.21.0/reference/generated/api/functions/isOpenApiValidatorConfigured.md +8 -0
  190. package/dist/docs/versioned/0.21.0/reference/generated/api/functions/isValidObjectId.md +11 -0
  191. package/dist/docs/versioned/0.21.0/reference/generated/api/functions/jsonResponseRequestIdMiddleware.md +24 -0
  192. package/dist/docs/versioned/0.21.0/reference/generated/api/functions/logRequests.md +19 -0
  193. package/dist/docs/versioned/0.21.0/reference/generated/api/functions/matchesQuery.md +23 -0
  194. package/dist/docs/versioned/0.21.0/reference/generated/api/functions/modelRouter.md +83 -0
  195. package/dist/docs/versioned/0.21.0/reference/generated/api/functions/mongooseErrorToAPIError.md +13 -0
  196. package/dist/docs/versioned/0.21.0/reference/generated/api/functions/mountBetterAuthRoutes.md +21 -0
  197. package/dist/docs/versioned/0.21.0/reference/generated/api/functions/openApiCompatMiddleware.md +22 -0
  198. package/dist/docs/versioned/0.21.0/reference/generated/api/functions/openApiEtagMiddleware.md +23 -0
  199. package/dist/docs/versioned/0.21.0/reference/generated/api/functions/patchAppUse.md +17 -0
  200. package/dist/docs/versioned/0.21.0/reference/generated/api/functions/permissionMiddleware.md +21 -0
  201. package/dist/docs/versioned/0.21.0/reference/generated/api/functions/registerActionRoutes.md +25 -0
  202. package/dist/docs/versioned/0.21.0/reference/generated/api/functions/registerRealtime.md +14 -0
  203. package/dist/docs/versioned/0.21.0/reference/generated/api/functions/removeAllSocketQueries.md +13 -0
  204. package/dist/docs/versioned/0.21.0/reference/generated/api/functions/removeQuerySubscription.md +17 -0
  205. package/dist/docs/versioned/0.21.0/reference/generated/api/functions/requestContextMiddleware.md +26 -0
  206. package/dist/docs/versioned/0.21.0/reference/generated/api/functions/resetOpenApiValidatorConfig.md +9 -0
  207. package/dist/docs/versioned/0.21.0/reference/generated/api/functions/runActionPermissions.md +33 -0
  208. package/dist/docs/versioned/0.21.0/reference/generated/api/functions/runWithRequestContext.md +38 -0
  209. package/dist/docs/versioned/0.21.0/reference/generated/api/functions/runWithRequestContextAttributes.md +25 -0
  210. package/dist/docs/versioned/0.21.0/reference/generated/api/functions/sendToGoogleChat.md +25 -0
  211. package/dist/docs/versioned/0.21.0/reference/generated/api/functions/sendToSlack.md +29 -0
  212. package/dist/docs/versioned/0.21.0/reference/generated/api/functions/sendToZoom.md +67 -0
  213. package/dist/docs/versioned/0.21.0/reference/generated/api/functions/sentryAppVersionMiddleware.md +26 -0
  214. package/dist/docs/versioned/0.21.0/reference/generated/api/functions/serialize.md +25 -0
  215. package/dist/docs/versioned/0.21.0/reference/generated/api/functions/setRequestContext.md +11 -0
  216. package/dist/docs/versioned/0.21.0/reference/generated/api/functions/setupAuth.md +15 -0
  217. package/dist/docs/versioned/0.21.0/reference/generated/api/functions/setupBetterAuthUserSync.md +21 -0
  218. package/dist/docs/versioned/0.21.0/reference/generated/api/functions/setupEnvironment.md +5 -0
  219. package/dist/docs/versioned/0.21.0/reference/generated/api/functions/setupGitHubAuth.md +22 -0
  220. package/dist/docs/versioned/0.21.0/reference/generated/api/functions/setupLogging.md +11 -0
  221. package/dist/docs/versioned/0.21.0/reference/generated/api/functions/signupUser.md +23 -0
  222. package/dist/docs/versioned/0.21.0/reference/generated/api/functions/startChangeStreamWatcher.md +21 -0
  223. package/dist/docs/versioned/0.21.0/reference/generated/api/functions/stopChangeStreamWatcher.md +7 -0
  224. package/dist/docs/versioned/0.21.0/reference/generated/api/functions/syncBetterAuthUser.md +19 -0
  225. package/dist/docs/versioned/0.21.0/reference/generated/api/functions/syncConsents.md +45 -0
  226. package/dist/docs/versioned/0.21.0/reference/generated/api/functions/timeout.md +11 -0
  227. package/dist/docs/versioned/0.21.0/reference/generated/api/functions/transform.md +29 -0
  228. package/dist/docs/versioned/0.21.0/reference/generated/api/functions/unpopulate.md +21 -0
  229. package/dist/docs/versioned/0.21.0/reference/generated/api/functions/updateRequestContextFromRequest.md +15 -0
  230. package/dist/docs/versioned/0.21.0/reference/generated/api/functions/upsertPlugin.md +23 -0
  231. package/dist/docs/versioned/0.21.0/reference/generated/api/functions/validateActionRequest.md +35 -0
  232. package/dist/docs/versioned/0.21.0/reference/generated/api/functions/validateModelRequestBody.md +30 -0
  233. package/dist/docs/versioned/0.21.0/reference/generated/api/functions/validateQueryParams.md +23 -0
  234. package/dist/docs/versioned/0.21.0/reference/generated/api/functions/validateRequestBody.md +26 -0
  235. package/dist/docs/versioned/0.21.0/reference/generated/api/functions/validateResponseData.md +32 -0
  236. package/dist/docs/versioned/0.21.0/reference/generated/api/functions/wrapActionResponse.md +19 -0
  237. package/dist/docs/versioned/0.21.0/reference/generated/api/functions/wrapScript.md +15 -0
  238. package/dist/docs/versioned/0.21.0/reference/generated/api/interfaces/APIErrorConstructor.md +93 -0
  239. package/dist/docs/versioned/0.21.0/reference/generated/api/interfaces/ActionContext.md +49 -0
  240. package/dist/docs/versioned/0.21.0/reference/generated/api/interfaces/AsyncHandlerOptions.md +32 -0
  241. package/dist/docs/versioned/0.21.0/reference/generated/api/interfaces/AuthOptions.md +47 -0
  242. package/dist/docs/versioned/0.21.0/reference/generated/api/interfaces/BackgroundTaskDocument.md +141 -0
  243. package/dist/docs/versioned/0.21.0/reference/generated/api/interfaces/BackgroundTaskMethods.md +55 -0
  244. package/dist/docs/versioned/0.21.0/reference/generated/api/interfaces/BackgroundTaskModel.md +51 -0
  245. package/dist/docs/versioned/0.21.0/reference/generated/api/interfaces/BackgroundTaskStatics.md +19 -0
  246. package/dist/docs/versioned/0.21.0/reference/generated/api/interfaces/BaseUser.md +11 -0
  247. package/dist/docs/versioned/0.21.0/reference/generated/api/interfaces/BetterAuthAppOptions.md +11 -0
  248. package/dist/docs/versioned/0.21.0/reference/generated/api/interfaces/BetterAuthConfig.md +74 -0
  249. package/dist/docs/versioned/0.21.0/reference/generated/api/interfaces/BetterAuthOAuthProvider.md +13 -0
  250. package/dist/docs/versioned/0.21.0/reference/generated/api/interfaces/BetterAuthSession.md +43 -0
  251. package/dist/docs/versioned/0.21.0/reference/generated/api/interfaces/BetterAuthSessionData.md +13 -0
  252. package/dist/docs/versioned/0.21.0/reference/generated/api/interfaces/BetterAuthUser.md +43 -0
  253. package/dist/docs/versioned/0.21.0/reference/generated/api/interfaces/CachingSecretProviderOptions.md +9 -0
  254. package/dist/docs/versioned/0.21.0/reference/generated/api/interfaces/ChangeStreamConfig.md +41 -0
  255. package/dist/docs/versioned/0.21.0/reference/generated/api/interfaces/CollectionActionConfig.md +123 -0
  256. package/dist/docs/versioned/0.21.0/reference/generated/api/interfaces/ConfigRegistration.md +23 -0
  257. package/dist/docs/versioned/0.21.0/reference/generated/api/interfaces/ConfigurationAppOptions.md +51 -0
  258. package/dist/docs/versioned/0.21.0/reference/generated/api/interfaces/ConfigurationMetaResponse.md +7 -0
  259. package/dist/docs/versioned/0.21.0/reference/generated/api/interfaces/ConfigurationModel.md +166 -0
  260. package/dist/docs/versioned/0.21.0/reference/generated/api/interfaces/ConfigurationPermissions.md +45 -0
  261. package/dist/docs/versioned/0.21.0/reference/generated/api/interfaces/ConfigurationPluginOptions.md +30 -0
  262. package/dist/docs/versioned/0.21.0/reference/generated/api/interfaces/ConfigurationStatics.md +107 -0
  263. package/dist/docs/versioned/0.21.0/reference/generated/api/interfaces/ConsentAppOptions.md +85 -0
  264. package/dist/docs/versioned/0.21.0/reference/generated/api/interfaces/ConsentFormCheckbox.md +17 -0
  265. package/dist/docs/versioned/0.21.0/reference/generated/api/interfaces/ConsentFormDefinition.md +83 -0
  266. package/dist/docs/versioned/0.21.0/reference/generated/api/interfaces/ConsentFormDocument.md +123 -0
  267. package/dist/docs/versioned/0.21.0/reference/generated/api/interfaces/ConsentFormModel.md +79 -0
  268. package/dist/docs/versioned/0.21.0/reference/generated/api/interfaces/ConsentFormStatics.md +55 -0
  269. package/dist/docs/versioned/0.21.0/reference/generated/api/interfaces/ConsentResponseDocument.md +105 -0
  270. package/dist/docs/versioned/0.21.0/reference/generated/api/interfaces/ConsentResponseMethods.md +1 -0
  271. package/dist/docs/versioned/0.21.0/reference/generated/api/interfaces/ConsentResponseModel.md +79 -0
  272. package/dist/docs/versioned/0.21.0/reference/generated/api/interfaces/ConsentResponseStatics.md +55 -0
  273. package/dist/docs/versioned/0.21.0/reference/generated/api/interfaces/CreateBetterAuthOptions.md +17 -0
  274. package/dist/docs/versioned/0.21.0/reference/generated/api/interfaces/CreateFeatureFlaggedLoggerOptions.md +29 -0
  275. package/dist/docs/versioned/0.21.0/reference/generated/api/interfaces/CreateScopedLoggerOptions.md +18 -0
  276. package/dist/docs/versioned/0.21.0/reference/generated/api/interfaces/CreateValidatorOptions.md +25 -0
  277. package/dist/docs/versioned/0.21.0/reference/generated/api/interfaces/CreatedDeleted.md +27 -0
  278. package/dist/docs/versioned/0.21.0/reference/generated/api/interfaces/DocumentSubscription.md +17 -0
  279. package/dist/docs/versioned/0.21.0/reference/generated/api/interfaces/FindExactlyOnePlugin.md +30 -0
  280. package/dist/docs/versioned/0.21.0/reference/generated/api/interfaces/FindOneOrNonePlugin.md +30 -0
  281. package/dist/docs/versioned/0.21.0/reference/generated/api/interfaces/GcpSecretProviderOptions.md +9 -0
  282. package/dist/docs/versioned/0.21.0/reference/generated/api/interfaces/GenerateTokensOptions.md +5 -0
  283. package/dist/docs/versioned/0.21.0/reference/generated/api/interfaces/GitHubAuthOptions.md +74 -0
  284. package/dist/docs/versioned/0.21.0/reference/generated/api/interfaces/GitHubUserFields.md +33 -0
  285. package/dist/docs/versioned/0.21.0/reference/generated/api/interfaces/HasUpsert.md +27 -0
  286. package/dist/docs/versioned/0.21.0/reference/generated/api/interfaces/InstanceActionConfig.md +127 -0
  287. package/dist/docs/versioned/0.21.0/reference/generated/api/interfaces/IsDeleted.md +7 -0
  288. package/dist/docs/versioned/0.21.0/reference/generated/api/interfaces/JSONArray.md +7 -0
  289. package/dist/docs/versioned/0.21.0/reference/generated/api/interfaces/JSONObject.md +3 -0
  290. package/dist/docs/versioned/0.21.0/reference/generated/api/interfaces/JwtSessionPayload.md +19 -0
  291. package/dist/docs/versioned/0.21.0/reference/generated/api/interfaces/LogContextFields.md +41 -0
  292. package/dist/docs/versioned/0.21.0/reference/generated/api/interfaces/LoggingOptions.md +73 -0
  293. package/dist/docs/versioned/0.21.0/reference/generated/api/interfaces/ModelRouterOptions.md +524 -0
  294. package/dist/docs/versioned/0.21.0/reference/generated/api/interfaces/ModelRouterRegistration.md +33 -0
  295. package/dist/docs/versioned/0.21.0/reference/generated/api/interfaces/ModelRouterValidationOptions.md +89 -0
  296. package/dist/docs/versioned/0.21.0/reference/generated/api/interfaces/MongoClientLike.md +11 -0
  297. package/dist/docs/versioned/0.21.0/reference/generated/api/interfaces/OpenApiBuildResult.md +34 -0
  298. package/dist/docs/versioned/0.21.0/reference/generated/api/interfaces/OpenApiMiddleware.md +98 -0
  299. package/dist/docs/versioned/0.21.0/reference/generated/api/interfaces/OpenApiParameter.md +66 -0
  300. package/dist/docs/versioned/0.21.0/reference/generated/api/interfaces/OpenApiResponse.md +43 -0
  301. package/dist/docs/versioned/0.21.0/reference/generated/api/interfaces/OpenApiSchema.md +62 -0
  302. package/dist/docs/versioned/0.21.0/reference/generated/api/interfaces/OpenApiSchemaProperty.md +89 -0
  303. package/dist/docs/versioned/0.21.0/reference/generated/api/interfaces/OpenApiValidatorConfig.md +94 -0
  304. package/dist/docs/versioned/0.21.0/reference/generated/api/interfaces/PopulatePath.md +17 -0
  305. package/dist/docs/versioned/0.21.0/reference/generated/api/interfaces/QuerySubscription.md +25 -0
  306. package/dist/docs/versioned/0.21.0/reference/generated/api/interfaces/QueryValidatorOptions.md +31 -0
  307. package/dist/docs/versioned/0.21.0/reference/generated/api/interfaces/RESTPermissions.md +35 -0
  308. package/dist/docs/versioned/0.21.0/reference/generated/api/interfaces/RealtimeAppOptions.md +62 -0
  309. package/dist/docs/versioned/0.21.0/reference/generated/api/interfaces/RealtimeConfig.md +44 -0
  310. package/dist/docs/versioned/0.21.0/reference/generated/api/interfaces/RealtimeEvent.md +57 -0
  311. package/dist/docs/versioned/0.21.0/reference/generated/api/interfaces/RealtimeRegistryEntry.md +41 -0
  312. package/dist/docs/versioned/0.21.0/reference/generated/api/interfaces/RealtimeSocketLike.md +94 -0
  313. package/dist/docs/versioned/0.21.0/reference/generated/api/interfaces/RequestBodyValidatorOptions.md +71 -0
  314. package/dist/docs/versioned/0.21.0/reference/generated/api/interfaces/RequestContext.md +59 -0
  315. package/dist/docs/versioned/0.21.0/reference/generated/api/interfaces/ScopedLogger.md +100 -0
  316. package/dist/docs/versioned/0.21.0/reference/generated/api/interfaces/ScriptContext.md +59 -0
  317. package/dist/docs/versioned/0.21.0/reference/generated/api/interfaces/ScriptResult.md +11 -0
  318. package/dist/docs/versioned/0.21.0/reference/generated/api/interfaces/SecretFieldMeta.md +29 -0
  319. package/dist/docs/versioned/0.21.0/reference/generated/api/interfaces/SecretProvider.md +35 -0
  320. package/dist/docs/versioned/0.21.0/reference/generated/api/interfaces/SyncConsentsOptions.md +15 -0
  321. package/dist/docs/versioned/0.21.0/reference/generated/api/interfaces/SyncConsentsResult.md +23 -0
  322. package/dist/docs/versioned/0.21.0/reference/generated/api/interfaces/TerrenoAppOptions.md +112 -0
  323. package/dist/docs/versioned/0.21.0/reference/generated/api/interfaces/TerrenoPlugin.md +78 -0
  324. package/dist/docs/versioned/0.21.0/reference/generated/api/interfaces/TerrenoRequestLogEntry.md +13 -0
  325. package/dist/docs/versioned/0.21.0/reference/generated/api/interfaces/TerrenoTransformer.md +49 -0
  326. package/dist/docs/versioned/0.21.0/reference/generated/api/interfaces/User.md +26 -0
  327. package/dist/docs/versioned/0.21.0/reference/generated/api/interfaces/UserModel.md +113 -0
  328. package/dist/docs/versioned/0.21.0/reference/generated/api/interfaces/VersionCheckResponse.md +37 -0
  329. package/dist/docs/versioned/0.21.0/reference/generated/api/interfaces/VersionConfigDocument.md +65 -0
  330. package/dist/docs/versioned/0.21.0/reference/generated/api/interfaces/VersionConfigModel.md +51 -0
  331. package/dist/docs/versioned/0.21.0/reference/generated/api/interfaces/WrapScriptOptions.md +27 -0
  332. package/dist/docs/versioned/0.21.0/reference/generated/api/type-aliases/AddRoutes.md +15 -0
  333. package/dist/docs/versioned/0.21.0/reference/generated/api/type-aliases/AuthProvider.md +5 -0
  334. package/dist/docs/versioned/0.21.0/reference/generated/api/type-aliases/BetterAuthInstance.md +3 -0
  335. package/dist/docs/versioned/0.21.0/reference/generated/api/type-aliases/ConfigType.md +1 -0
  336. package/dist/docs/versioned/0.21.0/reference/generated/api/type-aliases/ConfigurationPostUpdateHook.md +24 -0
  337. package/dist/docs/versioned/0.21.0/reference/generated/api/type-aliases/ConfigurationPreUpdateHook.md +20 -0
  338. package/dist/docs/versioned/0.21.0/reference/generated/api/type-aliases/ConsentFormMethods.md +1 -0
  339. package/dist/docs/versioned/0.21.0/reference/generated/api/type-aliases/ConsentFormType.md +1 -0
  340. package/dist/docs/versioned/0.21.0/reference/generated/api/type-aliases/DeepPartial.md +9 -0
  341. package/dist/docs/versioned/0.21.0/reference/generated/api/type-aliases/GooseRESTOptions.md +7 -0
  342. package/dist/docs/versioned/0.21.0/reference/generated/api/type-aliases/JSONPrimitive.md +1 -0
  343. package/dist/docs/versioned/0.21.0/reference/generated/api/type-aliases/JSONValue.md +1 -0
  344. package/dist/docs/versioned/0.21.0/reference/generated/api/type-aliases/PathValue.md +19 -0
  345. package/dist/docs/versioned/0.21.0/reference/generated/api/type-aliases/Paths.md +15 -0
  346. package/dist/docs/versioned/0.21.0/reference/generated/api/type-aliases/PermissionMethod.md +25 -0
  347. package/dist/docs/versioned/0.21.0/reference/generated/api/type-aliases/RESTMethod.md +17 -0
  348. package/dist/docs/versioned/0.21.0/reference/generated/api/type-aliases/RequestContextAttributes.md +1 -0
  349. package/dist/docs/versioned/0.21.0/reference/generated/api/type-aliases/ScriptRunner.md +15 -0
  350. package/dist/docs/versioned/0.21.0/reference/generated/api/type-aliases/VersionCheckStatus.md +1 -0
  351. package/dist/docs/versioned/0.21.0/reference/generated/api/variables/ACTION_NAME_PATTERN.md +1 -0
  352. package/dist/docs/versioned/0.21.0/reference/generated/api/variables/BackgroundTask.md +1 -0
  353. package/dist/docs/versioned/0.21.0/reference/generated/api/variables/Config.md +244 -0
  354. package/dist/docs/versioned/0.21.0/reference/generated/api/variables/ConsentForm.md +1 -0
  355. package/dist/docs/versioned/0.21.0/reference/generated/api/variables/ConsentResponse.md +1 -0
  356. package/dist/docs/versioned/0.21.0/reference/generated/api/variables/MAX_DOCUMENT_SUBSCRIPTIONS.md +1 -0
  357. package/dist/docs/versioned/0.21.0/reference/generated/api/variables/MAX_MODEL_SUBSCRIPTIONS.md +4 -0
  358. package/dist/docs/versioned/0.21.0/reference/generated/api/variables/MAX_QUERY_SUBSCRIPTIONS.md +1 -0
  359. package/dist/docs/versioned/0.21.0/reference/generated/api/variables/Permissions.md +109 -0
  360. package/dist/docs/versioned/0.21.0/reference/generated/api/variables/REQUEST_CONTEXT_ATTRIBUTE_NAMES.md +39 -0
  361. package/dist/docs/versioned/0.21.0/reference/generated/api/variables/VersionConfig.md +1 -0
  362. package/dist/docs/versioned/0.21.0/reference/generated/api/variables/gooseRestRouter.md +85 -0
  363. package/dist/docs/versioned/0.21.0/reference/generated/api/variables/logger.md +109 -0
  364. package/dist/docs/versioned/0.21.0/reference/generated/api/variables/winstonLogger.md +1 -0
  365. package/dist/docs/versioned/0.21.0/reference/generated/rtk/README.md +126 -0
  366. package/dist/docs/versioned/0.21.0/reference/generated/rtk/functions/buildOptimisticCreateItem.md +17 -0
  367. package/dist/docs/versioned/0.21.0/reference/generated/rtk/functions/configureOfflineMutationEndpoints.md +13 -0
  368. package/dist/docs/versioned/0.21.0/reference/generated/rtk/functions/createBetterAuthClient.md +30 -0
  369. package/dist/docs/versioned/0.21.0/reference/generated/rtk/functions/createOfflineMiddleware.md +41 -0
  370. package/dist/docs/versioned/0.21.0/reference/generated/rtk/functions/createSessionApi.md +21 -0
  371. package/dist/docs/versioned/0.21.0/reference/generated/rtk/functions/createStorageAdapter.md +17 -0
  372. package/dist/docs/versioned/0.21.0/reference/generated/rtk/functions/generateAuthSlice.md +35 -0
  373. package/dist/docs/versioned/0.21.0/reference/generated/rtk/functions/generateBetterAuthSlice.md +87 -0
  374. package/dist/docs/versioned/0.21.0/reference/generated/rtk/functions/generateProfileEndpoints.md +35 -0
  375. package/dist/docs/versioned/0.21.0/reference/generated/rtk/functions/generateTags.md +15 -0
  376. package/dist/docs/versioned/0.21.0/reference/generated/rtk/functions/getAuthToken.md +5 -0
  377. package/dist/docs/versioned/0.21.0/reference/generated/rtk/functions/getBaseQuery.md +23 -0
  378. package/dist/docs/versioned/0.21.0/reference/generated/rtk/functions/getFriendlyExpirationInfo.md +5 -0
  379. package/dist/docs/versioned/0.21.0/reference/generated/rtk/functions/getRealtimeSocket.md +7 -0
  380. package/dist/docs/versioned/0.21.0/reference/generated/rtk/functions/getTokenExpirationTimes.md +5 -0
  381. package/dist/docs/versioned/0.21.0/reference/generated/rtk/functions/isNetworkFetchError.md +14 -0
  382. package/dist/docs/versioned/0.21.0/reference/generated/rtk/functions/isWebsocketsDebugEnabled.md +5 -0
  383. package/dist/docs/versioned/0.21.0/reference/generated/rtk/functions/logAuth.md +11 -0
  384. package/dist/docs/versioned/0.21.0/reference/generated/rtk/functions/logSocket.md +15 -0
  385. package/dist/docs/versioned/0.21.0/reference/generated/rtk/functions/populateId.md +23 -0
  386. package/dist/docs/versioned/0.21.0/reference/generated/rtk/functions/realtimeDocument.md +37 -0
  387. package/dist/docs/versioned/0.21.0/reference/generated/rtk/functions/realtimeList.md +43 -0
  388. package/dist/docs/versioned/0.21.0/reference/generated/rtk/functions/refreshAuthToken.md +5 -0
  389. package/dist/docs/versioned/0.21.0/reference/generated/rtk/functions/registerTerrenoDevStore.md +14 -0
  390. package/dist/docs/versioned/0.21.0/reference/generated/rtk/functions/resolveBaseUrls.md +28 -0
  391. package/dist/docs/versioned/0.21.0/reference/generated/rtk/functions/resolveFeatureFlagsOptions.md +14 -0
  392. package/dist/docs/versioned/0.21.0/reference/generated/rtk/functions/selectBetterAuthError.md +13 -0
  393. package/dist/docs/versioned/0.21.0/reference/generated/rtk/functions/selectBetterAuthIsAuthenticated.md +13 -0
  394. package/dist/docs/versioned/0.21.0/reference/generated/rtk/functions/selectBetterAuthIsLoading.md +13 -0
  395. package/dist/docs/versioned/0.21.0/reference/generated/rtk/functions/selectBetterAuthState.md +13 -0
  396. package/dist/docs/versioned/0.21.0/reference/generated/rtk/functions/selectBetterAuthUser.md +13 -0
  397. package/dist/docs/versioned/0.21.0/reference/generated/rtk/functions/selectBetterAuthUserId.md +13 -0
  398. package/dist/docs/versioned/0.21.0/reference/generated/rtk/functions/selectConflicts.md +13 -0
  399. package/dist/docs/versioned/0.21.0/reference/generated/rtk/functions/selectCurrentUserId.md +11 -0
  400. package/dist/docs/versioned/0.21.0/reference/generated/rtk/functions/selectIsAuthenticating.md +11 -0
  401. package/dist/docs/versioned/0.21.0/reference/generated/rtk/functions/selectIsOnline.md +13 -0
  402. package/dist/docs/versioned/0.21.0/reference/generated/rtk/functions/selectIsOnlineSafe.md +15 -0
  403. package/dist/docs/versioned/0.21.0/reference/generated/rtk/functions/selectIsSyncing.md +13 -0
  404. package/dist/docs/versioned/0.21.0/reference/generated/rtk/functions/selectLastTokenRefreshTimestamp.md +11 -0
  405. package/dist/docs/versioned/0.21.0/reference/generated/rtk/functions/selectOfflineQueue.md +13 -0
  406. package/dist/docs/versioned/0.21.0/reference/generated/rtk/functions/selectQueueLength.md +13 -0
  407. package/dist/docs/versioned/0.21.0/reference/generated/rtk/functions/setRealtimeDebug.md +13 -0
  408. package/dist/docs/versioned/0.21.0/reference/generated/rtk/functions/setRealtimeSocket.md +27 -0
  409. package/dist/docs/versioned/0.21.0/reference/generated/rtk/functions/shouldDeferOfflineMutation.md +18 -0
  410. package/dist/docs/versioned/0.21.0/reference/generated/rtk/functions/shouldReplayQueuedMutation.md +18 -0
  411. package/dist/docs/versioned/0.21.0/reference/generated/rtk/functions/shouldShowStillThereModal.md +5 -0
  412. package/dist/docs/versioned/0.21.0/reference/generated/rtk/functions/useFeatureFlags.md +15 -0
  413. package/dist/docs/versioned/0.21.0/reference/generated/rtk/functions/useOfflineStatus.md +16 -0
  414. package/dist/docs/versioned/0.21.0/reference/generated/rtk/functions/useRealtimeDebug.md +18 -0
  415. package/dist/docs/versioned/0.21.0/reference/generated/rtk/functions/useSelectCurrentUserId.md +5 -0
  416. package/dist/docs/versioned/0.21.0/reference/generated/rtk/functions/useSelectIsAuthenticating.md +5 -0
  417. package/dist/docs/versioned/0.21.0/reference/generated/rtk/functions/useServerStatus.md +26 -0
  418. package/dist/docs/versioned/0.21.0/reference/generated/rtk/functions/useSocketConnection.md +19 -0
  419. package/dist/docs/versioned/0.21.0/reference/generated/rtk/functions/useSyncConnection.md +32 -0
  420. package/dist/docs/versioned/0.21.0/reference/generated/rtk/functions/useTerrenoFeatureFlags.md +19 -0
  421. package/dist/docs/versioned/0.21.0/reference/generated/rtk/functions/useUpgradeCheck.md +30 -0
  422. package/dist/docs/versioned/0.21.0/reference/generated/rtk/interfaces/BaseUrls.md +17 -0
  423. package/dist/docs/versioned/0.21.0/reference/generated/rtk/interfaces/BetterAuthClientConfig.md +31 -0
  424. package/dist/docs/versioned/0.21.0/reference/generated/rtk/interfaces/BetterAuthClientInterface.md +23 -0
  425. package/dist/docs/versioned/0.21.0/reference/generated/rtk/interfaces/BetterAuthSession.md +43 -0
  426. package/dist/docs/versioned/0.21.0/reference/generated/rtk/interfaces/BetterAuthSessionData.md +13 -0
  427. package/dist/docs/versioned/0.21.0/reference/generated/rtk/interfaces/BetterAuthState.md +49 -0
  428. package/dist/docs/versioned/0.21.0/reference/generated/rtk/interfaces/BetterAuthUser.md +43 -0
  429. package/dist/docs/versioned/0.21.0/reference/generated/rtk/interfaces/ConflictRecord.md +47 -0
  430. package/dist/docs/versioned/0.21.0/reference/generated/rtk/interfaces/EmailSignupRequest.md +15 -0
  431. package/dist/docs/versioned/0.21.0/reference/generated/rtk/interfaces/ExpoConstantsShape.md +29 -0
  432. package/dist/docs/versioned/0.21.0/reference/generated/rtk/interfaces/GenerateBetterAuthSliceConfig.md +23 -0
  433. package/dist/docs/versioned/0.21.0/reference/generated/rtk/interfaces/GoogleLoginRequest.md +5 -0
  434. package/dist/docs/versioned/0.21.0/reference/generated/rtk/interfaces/ListResponse.md +35 -0
  435. package/dist/docs/versioned/0.21.0/reference/generated/rtk/interfaces/OfflineMiddlewareConfig.md +15 -0
  436. package/dist/docs/versioned/0.21.0/reference/generated/rtk/interfaces/OfflineState.md +23 -0
  437. package/dist/docs/versioned/0.21.0/reference/generated/rtk/interfaces/OfflineStatus.md +87 -0
  438. package/dist/docs/versioned/0.21.0/reference/generated/rtk/interfaces/QueuedMutation.md +55 -0
  439. package/dist/docs/versioned/0.21.0/reference/generated/rtk/interfaces/RealtimeEvent.md +58 -0
  440. package/dist/docs/versioned/0.21.0/reference/generated/rtk/interfaces/ResetPasswordRequest.md +15 -0
  441. package/dist/docs/versioned/0.21.0/reference/generated/rtk/interfaces/ServerStatusOptions.md +31 -0
  442. package/dist/docs/versioned/0.21.0/reference/generated/rtk/interfaces/SocketConnection.md +11 -0
  443. package/dist/docs/versioned/0.21.0/reference/generated/rtk/interfaces/StorageAdapter.md +53 -0
  444. package/dist/docs/versioned/0.21.0/reference/generated/rtk/interfaces/TerrenoFlagDefinition.md +19 -0
  445. package/dist/docs/versioned/0.21.0/reference/generated/rtk/interfaces/UseFeatureFlagsOptions.md +50 -0
  446. package/dist/docs/versioned/0.21.0/reference/generated/rtk/interfaces/UseSocketConnectionOptions.md +87 -0
  447. package/dist/docs/versioned/0.21.0/reference/generated/rtk/interfaces/UseTerrenoFeatureFlagsOptions.md +41 -0
  448. package/dist/docs/versioned/0.21.0/reference/generated/rtk/interfaces/UseTerrenoFeatureFlagsResult.md +33 -0
  449. package/dist/docs/versioned/0.21.0/reference/generated/rtk/interfaces/UserResponse.md +17 -0
  450. package/dist/docs/versioned/0.21.0/reference/generated/rtk/interfaces/VersionCheckResponse.md +39 -0
  451. package/dist/docs/versioned/0.21.0/reference/generated/rtk/type-aliases/BetterAuthClient.md +3 -0
  452. package/dist/docs/versioned/0.21.0/reference/generated/rtk/type-aliases/BetterAuthOAuthProvider.md +3 -0
  453. package/dist/docs/versioned/0.21.0/reference/generated/rtk/type-aliases/BetterAuthSlice.md +3 -0
  454. package/dist/docs/versioned/0.21.0/reference/generated/rtk/type-aliases/EmailLoginRequest.md +1 -0
  455. package/dist/docs/versioned/0.21.0/reference/generated/rtk/type-aliases/RootState.md +1 -0
  456. package/dist/docs/versioned/0.21.0/reference/generated/rtk/type-aliases/ServerStatus.md +1 -0
  457. package/dist/docs/versioned/0.21.0/reference/generated/rtk/type-aliases/TerrenoFlagConfiguration.md +1 -0
  458. package/dist/docs/versioned/0.21.0/reference/generated/rtk/variables/AUTH_DEBUG.md +1 -0
  459. package/dist/docs/versioned/0.21.0/reference/generated/rtk/variables/IsWeb.md +1 -0
  460. package/dist/docs/versioned/0.21.0/reference/generated/rtk/variables/LOGOUT_ACTION_TYPE.md +1 -0
  461. package/dist/docs/versioned/0.21.0/reference/generated/rtk/variables/SAME_ORIGIN_SENTINEL.md +5 -0
  462. package/dist/docs/versioned/0.21.0/reference/generated/rtk/variables/TOKEN_REFRESHED_SUCCESS.md +1 -0
  463. package/dist/docs/versioned/0.21.0/reference/generated/rtk/variables/addConflict.md +1 -0
  464. package/dist/docs/versioned/0.21.0/reference/generated/rtk/variables/baseTasksUrl.md +1 -0
  465. package/dist/docs/versioned/0.21.0/reference/generated/rtk/variables/baseUrl.md +1 -0
  466. package/dist/docs/versioned/0.21.0/reference/generated/rtk/variables/baseWebsocketsUrl.md +1 -0
  467. package/dist/docs/versioned/0.21.0/reference/generated/rtk/variables/clearConflicts.md +1 -0
  468. package/dist/docs/versioned/0.21.0/reference/generated/rtk/variables/clearQueue.md +1 -0
  469. package/dist/docs/versioned/0.21.0/reference/generated/rtk/variables/dequeue.md +1 -0
  470. package/dist/docs/versioned/0.21.0/reference/generated/rtk/variables/dismissConflict.md +1 -0
  471. package/dist/docs/versioned/0.21.0/reference/generated/rtk/variables/emptySplitApi.md +1 -0
  472. package/dist/docs/versioned/0.21.0/reference/generated/rtk/variables/enqueue.md +1 -0
  473. package/dist/docs/versioned/0.21.0/reference/generated/rtk/variables/offlineReducer.md +1 -0
  474. package/dist/docs/versioned/0.21.0/reference/generated/rtk/variables/offlineSlice.md +1 -0
  475. package/dist/docs/versioned/0.21.0/reference/generated/rtk/variables/selectUndismissedConflicts.md +1 -0
  476. package/dist/docs/versioned/0.21.0/reference/generated/rtk/variables/setOnlineStatus.md +1 -0
  477. package/dist/docs/versioned/0.21.0/reference/generated/rtk/variables/setSyncing.md +1 -0
  478. package/dist/docs/versioned/0.21.0/reference/generated/rtk/variables/staggeredBaseQuery.md +1 -0
  479. package/dist/docs/versioned/0.21.0/reference/generated/rtk/variables/useGetVersionCheckQuery.md +1 -0
  480. package/dist/docs/versioned/0.21.0/reference/generated/rtk/variables/useLazyGetVersionCheckQuery.md +1 -0
  481. package/dist/docs/versioned/0.21.0/reference/mcp-server.md +586 -0
  482. package/dist/docs/versioned/0.21.0/reference/rtk.md +439 -0
  483. package/dist/docs/versioned/0.21.0/reference/ui.md +418 -0
  484. package/dist/docs/versioned/0.21.0/tasks/admin-improvements.md +429 -0
  485. package/dist/docs/versioned/0.21.0/tasks/admin-only.md +221 -0
  486. package/dist/docs/versioned/0.21.0/tasks/admin-script-runner.md +50 -0
  487. package/dist/docs/versioned/0.21.0/tasks/admin-ui-v2-django-parity.md +135 -0
  488. package/dist/docs/versioned/0.21.0/tasks/consent-forms.md +193 -0
  489. package/dist/docs/versioned/0.21.0/tasks/design-blend-skill.md +147 -0
  490. package/dist/docs/versioned/0.21.0/tasks/feature-flags-openfeature.md +77 -0
  491. package/dist/docs/versioned/0.21.0/tasks/feature-flags.md +23 -0
  492. package/dist/docs/versioned/0.21.0/tasks/model-router-actions.md +46 -0
  493. package/dist/docs/versioned/0.21.0/tasks/model-router-mcp.md +105 -0
  494. package/dist/docs/versioned/0.21.0/tasks/offline-mode.md +139 -0
  495. package/dist/docs/versioned/0.21.0/tasks/upgrade-banner.md +73 -0
  496. package/dist/docs/versioned/0.21.0/tutorials/README.md +7 -0
  497. package/dist/docs/versioned/0.21.0/tutorials/getting-started.md +44 -0
  498. package/dist/docs/versioned/next/implementationPlans/syncdb-local-first.md +591 -0
  499. package/dist/docs/versioned/next/tasks/syncdb-local-first.md +117 -0
  500. package/package.json +2 -2
  501. package/src/docs/versioned/0.21.0/README.md +29 -0
  502. package/src/docs/versioned/0.21.0/explanation/README.md +13 -0
  503. package/src/docs/versioned/0.21.0/explanation/ai-workflows.md +270 -0
  504. package/src/docs/versioned/0.21.0/explanation/authentication.md +438 -0
  505. package/src/docs/versioned/0.21.0/explanation/configuration-system.md +428 -0
  506. package/src/docs/versioned/0.21.0/explanation/dependency-management.md +192 -0
  507. package/src/docs/versioned/0.21.0/explanation/gcp-hosting-architecture.md +319 -0
  508. package/src/docs/versioned/0.21.0/explanation/model-router-actions.md +156 -0
  509. package/src/docs/versioned/0.21.0/explanation/modular-api-design.md +228 -0
  510. package/src/docs/versioned/0.21.0/how-to/README.md +20 -0
  511. package/src/docs/versioned/0.21.0/how-to/add-feature-flags.md +115 -0
  512. package/src/docs/versioned/0.21.0/how-to/add-github-oauth.md +316 -0
  513. package/src/docs/versioned/0.21.0/how-to/configure-better-auth.md +296 -0
  514. package/src/docs/versioned/0.21.0/how-to/create-a-model.md +165 -0
  515. package/src/docs/versioned/0.21.0/how-to/deploy-to-gcp.md +244 -0
  516. package/src/docs/versioned/0.21.0/how-to/upgrade-banner.md +172 -0
  517. package/src/docs/versioned/0.21.0/how-to/websocket-integration.md +416 -0
  518. package/src/docs/versioned/0.21.0/implementationPlans/IP_TEMPLATE.md +47 -0
  519. package/src/docs/versioned/0.21.0/implementationPlans/ModularAPI.md +844 -0
  520. package/src/docs/versioned/0.21.0/implementationPlans/PLAN_INDEX.md +21 -0
  521. package/src/docs/versioned/0.21.0/implementationPlans/README.md +42 -0
  522. package/src/docs/versioned/0.21.0/implementationPlans/admin-improvements.md +577 -0
  523. package/src/docs/versioned/0.21.0/implementationPlans/admin-only-research.md +258 -0
  524. package/src/docs/versioned/0.21.0/implementationPlans/admin-only.md +616 -0
  525. package/src/docs/versioned/0.21.0/implementationPlans/admin-script-runner.md +107 -0
  526. package/src/docs/versioned/0.21.0/implementationPlans/admin-ui-v2-django-parity.md +204 -0
  527. package/src/docs/versioned/0.21.0/implementationPlans/consent-forms.md +417 -0
  528. package/src/docs/versioned/0.21.0/implementationPlans/design-blend-skill.md +188 -0
  529. package/src/docs/versioned/0.21.0/implementationPlans/docs-site-and-versioning.md +138 -0
  530. package/src/docs/versioned/0.21.0/implementationPlans/feature-flags-openfeature.md +545 -0
  531. package/src/docs/versioned/0.21.0/implementationPlans/feature-flags.md +310 -0
  532. package/src/docs/versioned/0.21.0/implementationPlans/mcp-boost-parity.md +246 -0
  533. package/src/docs/versioned/0.21.0/implementationPlans/model-router-actions.md +639 -0
  534. package/src/docs/versioned/0.21.0/implementationPlans/model-router-mcp.md +186 -0
  535. package/src/docs/versioned/0.21.0/implementationPlans/offline-mode.md +311 -0
  536. package/src/docs/versioned/0.21.0/implementationPlans/terreno-langfuse-integration.md +145 -0
  537. package/src/docs/versioned/0.21.0/implementationPlans/upgrade-banner.md +275 -0
  538. package/src/docs/versioned/0.21.0/reference/README.md +22 -0
  539. package/src/docs/versioned/0.21.0/reference/admin-backend.md +122 -0
  540. package/src/docs/versioned/0.21.0/reference/admin-frontend.md +205 -0
  541. package/src/docs/versioned/0.21.0/reference/api-health.md +81 -0
  542. package/src/docs/versioned/0.21.0/reference/api.md +1205 -0
  543. package/src/docs/versioned/0.21.0/reference/components/README.mdx +65 -0
  544. package/src/docs/versioned/0.21.0/reference/components/accordion.mdx +36 -0
  545. package/src/docs/versioned/0.21.0/reference/components/addressfield.mdx +26 -0
  546. package/src/docs/versioned/0.21.0/reference/components/ai-suggestion-box.mdx +26 -0
  547. package/src/docs/versioned/0.21.0/reference/components/avatar.mdx +35 -0
  548. package/src/docs/versioned/0.21.0/reference/components/badge.mdx +38 -0
  549. package/src/docs/versioned/0.21.0/reference/components/banner.mdx +26 -0
  550. package/src/docs/versioned/0.21.0/reference/components/boolean-field.mdx +34 -0
  551. package/src/docs/versioned/0.21.0/reference/components/box.mdx +26 -0
  552. package/src/docs/versioned/0.21.0/reference/components/button.mdx +43 -0
  553. package/src/docs/versioned/0.21.0/reference/components/card.mdx +26 -0
  554. package/src/docs/versioned/0.21.0/reference/components/checkbox.mdx +29 -0
  555. package/src/docs/versioned/0.21.0/reference/components/consentformscreen.mdx +26 -0
  556. package/src/docs/versioned/0.21.0/reference/components/custom-select-field.mdx +34 -0
  557. package/src/docs/versioned/0.21.0/reference/components/datatable.mdx +41 -0
  558. package/src/docs/versioned/0.21.0/reference/components/date-time-field.mdx +48 -0
  559. package/src/docs/versioned/0.21.0/reference/components/email-field.mdx +42 -0
  560. package/src/docs/versioned/0.21.0/reference/components/emoji-selector.mdx +26 -0
  561. package/src/docs/versioned/0.21.0/reference/components/field.mdx +26 -0
  562. package/src/docs/versioned/0.21.0/reference/components/height-field.mdx +44 -0
  563. package/src/docs/versioned/0.21.0/reference/components/icon.mdx +31 -0
  564. package/src/docs/versioned/0.21.0/reference/components/iconbutton.mdx +42 -0
  565. package/src/docs/versioned/0.21.0/reference/components/inner-modal-content.mdx +39 -0
  566. package/src/docs/versioned/0.21.0/reference/components/markdown-editor-field.mdx +49 -0
  567. package/src/docs/versioned/0.21.0/reference/components/markdownview.mdx +37 -0
  568. package/src/docs/versioned/0.21.0/reference/components/multiselect-field.mdx +34 -0
  569. package/src/docs/versioned/0.21.0/reference/components/number-field.mdx +45 -0
  570. package/src/docs/versioned/0.21.0/reference/components/page.mdx +45 -0
  571. package/src/docs/versioned/0.21.0/reference/components/pagination.mdx +29 -0
  572. package/src/docs/versioned/0.21.0/reference/components/password-field.mdx +26 -0
  573. package/src/docs/versioned/0.21.0/reference/components/phone-number-field.mdx +43 -0
  574. package/src/docs/versioned/0.21.0/reference/components/radio-field.mdx +31 -0
  575. package/src/docs/versioned/0.21.0/reference/components/sectiondivider.mdx +26 -0
  576. package/src/docs/versioned/0.21.0/reference/components/segmented-control.mdx +32 -0
  577. package/src/docs/versioned/0.21.0/reference/components/select-field.mdx +26 -0
  578. package/src/docs/versioned/0.21.0/reference/components/selectbadge.mdx +35 -0
  579. package/src/docs/versioned/0.21.0/reference/components/side-drawer.mdx +34 -0
  580. package/src/docs/versioned/0.21.0/reference/components/sidebar-navigation-non-expo.mdx +35 -0
  581. package/src/docs/versioned/0.21.0/reference/components/signature-field.mdx +35 -0
  582. package/src/docs/versioned/0.21.0/reference/components/slider.mdx +43 -0
  583. package/src/docs/versioned/0.21.0/reference/components/spinner.mdx +28 -0
  584. package/src/docs/versioned/0.21.0/reference/components/table-badge.mdx +32 -0
  585. package/src/docs/versioned/0.21.0/reference/components/table-boolean.mdx +29 -0
  586. package/src/docs/versioned/0.21.0/reference/components/table-date.mdx +30 -0
  587. package/src/docs/versioned/0.21.0/reference/components/table-icon-button.mdx +28 -0
  588. package/src/docs/versioned/0.21.0/reference/components/table-number.mdx +30 -0
  589. package/src/docs/versioned/0.21.0/reference/components/table-text.mdx +30 -0
  590. package/src/docs/versioned/0.21.0/reference/components/table-title.mdx +28 -0
  591. package/src/docs/versioned/0.21.0/reference/components/table.mdx +38 -0
  592. package/src/docs/versioned/0.21.0/reference/components/tap-to-edit.mdx +26 -0
  593. package/src/docs/versioned/0.21.0/reference/components/text-area.mdx +49 -0
  594. package/src/docs/versioned/0.21.0/reference/components/text-field.mdx +51 -0
  595. package/src/docs/versioned/0.21.0/reference/components/theme.mdx +26 -0
  596. package/src/docs/versioned/0.21.0/reference/components/toast.mdx +26 -0
  597. package/src/docs/versioned/0.21.0/reference/components/tooltip.mdx +30 -0
  598. package/src/docs/versioned/0.21.0/reference/components/userinactivity.mdx +32 -0
  599. package/src/docs/versioned/0.21.0/reference/environment-variables.md +382 -0
  600. package/src/docs/versioned/0.21.0/reference/feature-flags.md +304 -0
  601. package/src/docs/versioned/0.21.0/reference/generated/README.md +17 -0
  602. package/src/docs/versioned/0.21.0/reference/generated/api/README.md +276 -0
  603. package/src/docs/versioned/0.21.0/reference/generated/api/classes/APIError.md +96 -0
  604. package/src/docs/versioned/0.21.0/reference/generated/api/classes/BetterAuthApp.md +84 -0
  605. package/src/docs/versioned/0.21.0/reference/generated/api/classes/CachingSecretProvider.md +118 -0
  606. package/src/docs/versioned/0.21.0/reference/generated/api/classes/CompositeSecretProvider.md +79 -0
  607. package/src/docs/versioned/0.21.0/reference/generated/api/classes/ConfigurationApp.md +94 -0
  608. package/src/docs/versioned/0.21.0/reference/generated/api/classes/ConsentApp.md +74 -0
  609. package/src/docs/versioned/0.21.0/reference/generated/api/classes/DateOnly.md +123 -0
  610. package/src/docs/versioned/0.21.0/reference/generated/api/classes/EnvSecretProvider.md +64 -0
  611. package/src/docs/versioned/0.21.0/reference/generated/api/classes/GcpSecretProvider.md +76 -0
  612. package/src/docs/versioned/0.21.0/reference/generated/api/classes/OpenApiMiddlewareBuilder.md +543 -0
  613. package/src/docs/versioned/0.21.0/reference/generated/api/classes/RealtimeApp.md +112 -0
  614. package/src/docs/versioned/0.21.0/reference/generated/api/classes/TaskCancelledError.md +23 -0
  615. package/src/docs/versioned/0.21.0/reference/generated/api/classes/TerrenoApp.md +262 -0
  616. package/src/docs/versioned/0.21.0/reference/generated/api/classes/VersionCheckPlugin.md +43 -0
  617. package/src/docs/versioned/0.21.0/reference/generated/api/functions/AdminOwnerTransformer.md +47 -0
  618. package/src/docs/versioned/0.21.0/reference/generated/api/functions/OwnerQueryFilter.md +11 -0
  619. package/src/docs/versioned/0.21.0/reference/generated/api/functions/addAuthRoutes.md +19 -0
  620. package/src/docs/versioned/0.21.0/reference/generated/api/functions/addGitHubAuthRoutes.md +31 -0
  621. package/src/docs/versioned/0.21.0/reference/generated/api/functions/addMeRoutes.md +19 -0
  622. package/src/docs/versioned/0.21.0/reference/generated/api/functions/addPopulateToQuery.md +15 -0
  623. package/src/docs/versioned/0.21.0/reference/generated/api/functions/addQuerySubscription.md +26 -0
  624. package/src/docs/versioned/0.21.0/reference/generated/api/functions/apiErrorMiddleware.md +23 -0
  625. package/src/docs/versioned/0.21.0/reference/generated/api/functions/apiFallthroughErrorMiddleware.md +26 -0
  626. package/src/docs/versioned/0.21.0/reference/generated/api/functions/apiUnauthorizedMiddleware.md +23 -0
  627. package/src/docs/versioned/0.21.0/reference/generated/api/functions/applyRequestContextToSentry.md +11 -0
  628. package/src/docs/versioned/0.21.0/reference/generated/api/functions/assertNoActionCollisions.md +21 -0
  629. package/src/docs/versioned/0.21.0/reference/generated/api/functions/asyncHandler.md +15 -0
  630. package/src/docs/versioned/0.21.0/reference/generated/api/functions/authenticateMiddleware.md +11 -0
  631. package/src/docs/versioned/0.21.0/reference/generated/api/functions/baseUserPlugin.md +11 -0
  632. package/src/docs/versioned/0.21.0/reference/generated/api/functions/buildQuerySchemaFromFields.md +30 -0
  633. package/src/docs/versioned/0.21.0/reference/generated/api/functions/checkModelsStrict.md +21 -0
  634. package/src/docs/versioned/0.21.0/reference/generated/api/functions/checkPermissions.md +29 -0
  635. package/src/docs/versioned/0.21.0/reference/generated/api/functions/clearQueryStore.md +7 -0
  636. package/src/docs/versioned/0.21.0/reference/generated/api/functions/clearRealtimeRegistry.md +7 -0
  637. package/src/docs/versioned/0.21.0/reference/generated/api/functions/computeQueryId.md +18 -0
  638. package/src/docs/versioned/0.21.0/reference/generated/api/functions/configurationPlugin.md +48 -0
  639. package/src/docs/versioned/0.21.0/reference/generated/api/functions/configureOpenApiValidator.md +28 -0
  640. package/src/docs/versioned/0.21.0/reference/generated/api/functions/createActionOpenApiMiddleware.md +35 -0
  641. package/src/docs/versioned/0.21.0/reference/generated/api/functions/createBetterAuth.md +13 -0
  642. package/src/docs/versioned/0.21.0/reference/generated/api/functions/createBetterAuthSessionMiddleware.md +18 -0
  643. package/src/docs/versioned/0.21.0/reference/generated/api/functions/createFeatureFlaggedLogger.md +53 -0
  644. package/src/docs/versioned/0.21.0/reference/generated/api/functions/createModelValidators.md +74 -0
  645. package/src/docs/versioned/0.21.0/reference/generated/api/functions/createOpenApiBuilder.md +39 -0
  646. package/src/docs/versioned/0.21.0/reference/generated/api/functions/createRouter.md +19 -0
  647. package/src/docs/versioned/0.21.0/reference/generated/api/functions/createRouterWithAuth.md +19 -0
  648. package/src/docs/versioned/0.21.0/reference/generated/api/functions/createScopedLogger.md +53 -0
  649. package/src/docs/versioned/0.21.0/reference/generated/api/functions/createValidator.md +29 -0
  650. package/src/docs/versioned/0.21.0/reference/generated/api/functions/createdUpdatedPlugin.md +11 -0
  651. package/src/docs/versioned/0.21.0/reference/generated/api/functions/cronjob.md +19 -0
  652. package/src/docs/versioned/0.21.0/reference/generated/api/functions/defaultResponseHandler.md +32 -0
  653. package/src/docs/versioned/0.21.0/reference/generated/api/functions/defineCollectionAction.md +25 -0
  654. package/src/docs/versioned/0.21.0/reference/generated/api/functions/defineInstanceAction.md +29 -0
  655. package/src/docs/versioned/0.21.0/reference/generated/api/functions/envConfigurationPlugin.md +11 -0
  656. package/src/docs/versioned/0.21.0/reference/generated/api/functions/errorMessage.md +13 -0
  657. package/src/docs/versioned/0.21.0/reference/generated/api/functions/errorStack.md +13 -0
  658. package/src/docs/versioned/0.21.0/reference/generated/api/functions/errorsPlugin.md +11 -0
  659. package/src/docs/versioned/0.21.0/reference/generated/api/functions/findExactlyOne.md +25 -0
  660. package/src/docs/versioned/0.21.0/reference/generated/api/functions/findOneOrNone.md +24 -0
  661. package/src/docs/versioned/0.21.0/reference/generated/api/functions/findOneOrNoneFor.md +37 -0
  662. package/src/docs/versioned/0.21.0/reference/generated/api/functions/findRegistryEntryByCollection.md +13 -0
  663. package/src/docs/versioned/0.21.0/reference/generated/api/functions/findRegistryEntryByRoutePath.md +13 -0
  664. package/src/docs/versioned/0.21.0/reference/generated/api/functions/firebaseJWTPlugin.md +11 -0
  665. package/src/docs/versioned/0.21.0/reference/generated/api/functions/fixMixedFields.md +21 -0
  666. package/src/docs/versioned/0.21.0/reference/generated/api/functions/flattenToDotPaths.md +24 -0
  667. package/src/docs/versioned/0.21.0/reference/generated/api/functions/formatLogContextSuffix.md +17 -0
  668. package/src/docs/versioned/0.21.0/reference/generated/api/functions/generateTokens.md +35 -0
  669. package/src/docs/versioned/0.21.0/reference/generated/api/functions/getAPIErrorBody.md +11 -0
  670. package/src/docs/versioned/0.21.0/reference/generated/api/functions/getBetterAuthSession.md +13 -0
  671. package/src/docs/versioned/0.21.0/reference/generated/api/functions/getCurrentLogContext.md +9 -0
  672. package/src/docs/versioned/0.21.0/reference/generated/api/functions/getCurrentRequestContext.md +8 -0
  673. package/src/docs/versioned/0.21.0/reference/generated/api/functions/getCurrentRequestContextAttributes.md +15 -0
  674. package/src/docs/versioned/0.21.0/reference/generated/api/functions/getDisableExternalErrorTracking.md +15 -0
  675. package/src/docs/versioned/0.21.0/reference/generated/api/functions/getMongoClientFromMongoose.md +7 -0
  676. package/src/docs/versioned/0.21.0/reference/generated/api/functions/getOpenApiSpecForModel.md +29 -0
  677. package/src/docs/versioned/0.21.0/reference/generated/api/functions/getOpenApiValidatorConfig.md +7 -0
  678. package/src/docs/versioned/0.21.0/reference/generated/api/functions/getQuerySubscriptionsForCollection.md +14 -0
  679. package/src/docs/versioned/0.21.0/reference/generated/api/functions/getRealtimeRegistry.md +7 -0
  680. package/src/docs/versioned/0.21.0/reference/generated/api/functions/getRequestContextFromAttributes.md +11 -0
  681. package/src/docs/versioned/0.21.0/reference/generated/api/functions/getSchemaFromModel.md +25 -0
  682. package/src/docs/versioned/0.21.0/reference/generated/api/functions/getSessionIdFromJwtPayload.md +11 -0
  683. package/src/docs/versioned/0.21.0/reference/generated/api/functions/githubUserPlugin.md +22 -0
  684. package/src/docs/versioned/0.21.0/reference/generated/api/functions/hasBetterAuthSession.md +13 -0
  685. package/src/docs/versioned/0.21.0/reference/generated/api/functions/installRealtimeSocketHandlers.md +27 -0
  686. package/src/docs/versioned/0.21.0/reference/generated/api/functions/isAPIError.md +11 -0
  687. package/src/docs/versioned/0.21.0/reference/generated/api/functions/isDeletedPlugin.md +15 -0
  688. package/src/docs/versioned/0.21.0/reference/generated/api/functions/isDisabledPlugin.md +15 -0
  689. package/src/docs/versioned/0.21.0/reference/generated/api/functions/isOpenApiValidatorConfigured.md +8 -0
  690. package/src/docs/versioned/0.21.0/reference/generated/api/functions/isValidObjectId.md +11 -0
  691. package/src/docs/versioned/0.21.0/reference/generated/api/functions/jsonResponseRequestIdMiddleware.md +24 -0
  692. package/src/docs/versioned/0.21.0/reference/generated/api/functions/logRequests.md +19 -0
  693. package/src/docs/versioned/0.21.0/reference/generated/api/functions/matchesQuery.md +23 -0
  694. package/src/docs/versioned/0.21.0/reference/generated/api/functions/modelRouter.md +83 -0
  695. package/src/docs/versioned/0.21.0/reference/generated/api/functions/mongooseErrorToAPIError.md +13 -0
  696. package/src/docs/versioned/0.21.0/reference/generated/api/functions/mountBetterAuthRoutes.md +21 -0
  697. package/src/docs/versioned/0.21.0/reference/generated/api/functions/openApiCompatMiddleware.md +22 -0
  698. package/src/docs/versioned/0.21.0/reference/generated/api/functions/openApiEtagMiddleware.md +23 -0
  699. package/src/docs/versioned/0.21.0/reference/generated/api/functions/patchAppUse.md +17 -0
  700. package/src/docs/versioned/0.21.0/reference/generated/api/functions/permissionMiddleware.md +21 -0
  701. package/src/docs/versioned/0.21.0/reference/generated/api/functions/registerActionRoutes.md +25 -0
  702. package/src/docs/versioned/0.21.0/reference/generated/api/functions/registerRealtime.md +14 -0
  703. package/src/docs/versioned/0.21.0/reference/generated/api/functions/removeAllSocketQueries.md +13 -0
  704. package/src/docs/versioned/0.21.0/reference/generated/api/functions/removeQuerySubscription.md +17 -0
  705. package/src/docs/versioned/0.21.0/reference/generated/api/functions/requestContextMiddleware.md +26 -0
  706. package/src/docs/versioned/0.21.0/reference/generated/api/functions/resetOpenApiValidatorConfig.md +9 -0
  707. package/src/docs/versioned/0.21.0/reference/generated/api/functions/runActionPermissions.md +33 -0
  708. package/src/docs/versioned/0.21.0/reference/generated/api/functions/runWithRequestContext.md +38 -0
  709. package/src/docs/versioned/0.21.0/reference/generated/api/functions/runWithRequestContextAttributes.md +25 -0
  710. package/src/docs/versioned/0.21.0/reference/generated/api/functions/sendToGoogleChat.md +25 -0
  711. package/src/docs/versioned/0.21.0/reference/generated/api/functions/sendToSlack.md +29 -0
  712. package/src/docs/versioned/0.21.0/reference/generated/api/functions/sendToZoom.md +67 -0
  713. package/src/docs/versioned/0.21.0/reference/generated/api/functions/sentryAppVersionMiddleware.md +26 -0
  714. package/src/docs/versioned/0.21.0/reference/generated/api/functions/serialize.md +25 -0
  715. package/src/docs/versioned/0.21.0/reference/generated/api/functions/setRequestContext.md +11 -0
  716. package/src/docs/versioned/0.21.0/reference/generated/api/functions/setupAuth.md +15 -0
  717. package/src/docs/versioned/0.21.0/reference/generated/api/functions/setupBetterAuthUserSync.md +21 -0
  718. package/src/docs/versioned/0.21.0/reference/generated/api/functions/setupEnvironment.md +5 -0
  719. package/src/docs/versioned/0.21.0/reference/generated/api/functions/setupGitHubAuth.md +22 -0
  720. package/src/docs/versioned/0.21.0/reference/generated/api/functions/setupLogging.md +11 -0
  721. package/src/docs/versioned/0.21.0/reference/generated/api/functions/signupUser.md +23 -0
  722. package/src/docs/versioned/0.21.0/reference/generated/api/functions/startChangeStreamWatcher.md +21 -0
  723. package/src/docs/versioned/0.21.0/reference/generated/api/functions/stopChangeStreamWatcher.md +7 -0
  724. package/src/docs/versioned/0.21.0/reference/generated/api/functions/syncBetterAuthUser.md +19 -0
  725. package/src/docs/versioned/0.21.0/reference/generated/api/functions/syncConsents.md +45 -0
  726. package/src/docs/versioned/0.21.0/reference/generated/api/functions/timeout.md +11 -0
  727. package/src/docs/versioned/0.21.0/reference/generated/api/functions/transform.md +29 -0
  728. package/src/docs/versioned/0.21.0/reference/generated/api/functions/unpopulate.md +21 -0
  729. package/src/docs/versioned/0.21.0/reference/generated/api/functions/updateRequestContextFromRequest.md +15 -0
  730. package/src/docs/versioned/0.21.0/reference/generated/api/functions/upsertPlugin.md +23 -0
  731. package/src/docs/versioned/0.21.0/reference/generated/api/functions/validateActionRequest.md +35 -0
  732. package/src/docs/versioned/0.21.0/reference/generated/api/functions/validateModelRequestBody.md +30 -0
  733. package/src/docs/versioned/0.21.0/reference/generated/api/functions/validateQueryParams.md +23 -0
  734. package/src/docs/versioned/0.21.0/reference/generated/api/functions/validateRequestBody.md +26 -0
  735. package/src/docs/versioned/0.21.0/reference/generated/api/functions/validateResponseData.md +32 -0
  736. package/src/docs/versioned/0.21.0/reference/generated/api/functions/wrapActionResponse.md +19 -0
  737. package/src/docs/versioned/0.21.0/reference/generated/api/functions/wrapScript.md +15 -0
  738. package/src/docs/versioned/0.21.0/reference/generated/api/interfaces/APIErrorConstructor.md +93 -0
  739. package/src/docs/versioned/0.21.0/reference/generated/api/interfaces/ActionContext.md +49 -0
  740. package/src/docs/versioned/0.21.0/reference/generated/api/interfaces/AsyncHandlerOptions.md +32 -0
  741. package/src/docs/versioned/0.21.0/reference/generated/api/interfaces/AuthOptions.md +47 -0
  742. package/src/docs/versioned/0.21.0/reference/generated/api/interfaces/BackgroundTaskDocument.md +141 -0
  743. package/src/docs/versioned/0.21.0/reference/generated/api/interfaces/BackgroundTaskMethods.md +55 -0
  744. package/src/docs/versioned/0.21.0/reference/generated/api/interfaces/BackgroundTaskModel.md +51 -0
  745. package/src/docs/versioned/0.21.0/reference/generated/api/interfaces/BackgroundTaskStatics.md +19 -0
  746. package/src/docs/versioned/0.21.0/reference/generated/api/interfaces/BaseUser.md +11 -0
  747. package/src/docs/versioned/0.21.0/reference/generated/api/interfaces/BetterAuthAppOptions.md +11 -0
  748. package/src/docs/versioned/0.21.0/reference/generated/api/interfaces/BetterAuthConfig.md +74 -0
  749. package/src/docs/versioned/0.21.0/reference/generated/api/interfaces/BetterAuthOAuthProvider.md +13 -0
  750. package/src/docs/versioned/0.21.0/reference/generated/api/interfaces/BetterAuthSession.md +43 -0
  751. package/src/docs/versioned/0.21.0/reference/generated/api/interfaces/BetterAuthSessionData.md +13 -0
  752. package/src/docs/versioned/0.21.0/reference/generated/api/interfaces/BetterAuthUser.md +43 -0
  753. package/src/docs/versioned/0.21.0/reference/generated/api/interfaces/CachingSecretProviderOptions.md +9 -0
  754. package/src/docs/versioned/0.21.0/reference/generated/api/interfaces/ChangeStreamConfig.md +41 -0
  755. package/src/docs/versioned/0.21.0/reference/generated/api/interfaces/CollectionActionConfig.md +123 -0
  756. package/src/docs/versioned/0.21.0/reference/generated/api/interfaces/ConfigRegistration.md +23 -0
  757. package/src/docs/versioned/0.21.0/reference/generated/api/interfaces/ConfigurationAppOptions.md +51 -0
  758. package/src/docs/versioned/0.21.0/reference/generated/api/interfaces/ConfigurationMetaResponse.md +7 -0
  759. package/src/docs/versioned/0.21.0/reference/generated/api/interfaces/ConfigurationModel.md +166 -0
  760. package/src/docs/versioned/0.21.0/reference/generated/api/interfaces/ConfigurationPermissions.md +45 -0
  761. package/src/docs/versioned/0.21.0/reference/generated/api/interfaces/ConfigurationPluginOptions.md +30 -0
  762. package/src/docs/versioned/0.21.0/reference/generated/api/interfaces/ConfigurationStatics.md +107 -0
  763. package/src/docs/versioned/0.21.0/reference/generated/api/interfaces/ConsentAppOptions.md +85 -0
  764. package/src/docs/versioned/0.21.0/reference/generated/api/interfaces/ConsentFormCheckbox.md +17 -0
  765. package/src/docs/versioned/0.21.0/reference/generated/api/interfaces/ConsentFormDefinition.md +83 -0
  766. package/src/docs/versioned/0.21.0/reference/generated/api/interfaces/ConsentFormDocument.md +123 -0
  767. package/src/docs/versioned/0.21.0/reference/generated/api/interfaces/ConsentFormModel.md +79 -0
  768. package/src/docs/versioned/0.21.0/reference/generated/api/interfaces/ConsentFormStatics.md +55 -0
  769. package/src/docs/versioned/0.21.0/reference/generated/api/interfaces/ConsentResponseDocument.md +105 -0
  770. package/src/docs/versioned/0.21.0/reference/generated/api/interfaces/ConsentResponseMethods.md +1 -0
  771. package/src/docs/versioned/0.21.0/reference/generated/api/interfaces/ConsentResponseModel.md +79 -0
  772. package/src/docs/versioned/0.21.0/reference/generated/api/interfaces/ConsentResponseStatics.md +55 -0
  773. package/src/docs/versioned/0.21.0/reference/generated/api/interfaces/CreateBetterAuthOptions.md +17 -0
  774. package/src/docs/versioned/0.21.0/reference/generated/api/interfaces/CreateFeatureFlaggedLoggerOptions.md +29 -0
  775. package/src/docs/versioned/0.21.0/reference/generated/api/interfaces/CreateScopedLoggerOptions.md +18 -0
  776. package/src/docs/versioned/0.21.0/reference/generated/api/interfaces/CreateValidatorOptions.md +25 -0
  777. package/src/docs/versioned/0.21.0/reference/generated/api/interfaces/CreatedDeleted.md +27 -0
  778. package/src/docs/versioned/0.21.0/reference/generated/api/interfaces/DocumentSubscription.md +17 -0
  779. package/src/docs/versioned/0.21.0/reference/generated/api/interfaces/FindExactlyOnePlugin.md +30 -0
  780. package/src/docs/versioned/0.21.0/reference/generated/api/interfaces/FindOneOrNonePlugin.md +30 -0
  781. package/src/docs/versioned/0.21.0/reference/generated/api/interfaces/GcpSecretProviderOptions.md +9 -0
  782. package/src/docs/versioned/0.21.0/reference/generated/api/interfaces/GenerateTokensOptions.md +5 -0
  783. package/src/docs/versioned/0.21.0/reference/generated/api/interfaces/GitHubAuthOptions.md +74 -0
  784. package/src/docs/versioned/0.21.0/reference/generated/api/interfaces/GitHubUserFields.md +33 -0
  785. package/src/docs/versioned/0.21.0/reference/generated/api/interfaces/HasUpsert.md +27 -0
  786. package/src/docs/versioned/0.21.0/reference/generated/api/interfaces/InstanceActionConfig.md +127 -0
  787. package/src/docs/versioned/0.21.0/reference/generated/api/interfaces/IsDeleted.md +7 -0
  788. package/src/docs/versioned/0.21.0/reference/generated/api/interfaces/JSONArray.md +7 -0
  789. package/src/docs/versioned/0.21.0/reference/generated/api/interfaces/JSONObject.md +3 -0
  790. package/src/docs/versioned/0.21.0/reference/generated/api/interfaces/JwtSessionPayload.md +19 -0
  791. package/src/docs/versioned/0.21.0/reference/generated/api/interfaces/LogContextFields.md +41 -0
  792. package/src/docs/versioned/0.21.0/reference/generated/api/interfaces/LoggingOptions.md +73 -0
  793. package/src/docs/versioned/0.21.0/reference/generated/api/interfaces/ModelRouterOptions.md +524 -0
  794. package/src/docs/versioned/0.21.0/reference/generated/api/interfaces/ModelRouterRegistration.md +33 -0
  795. package/src/docs/versioned/0.21.0/reference/generated/api/interfaces/ModelRouterValidationOptions.md +89 -0
  796. package/src/docs/versioned/0.21.0/reference/generated/api/interfaces/MongoClientLike.md +11 -0
  797. package/src/docs/versioned/0.21.0/reference/generated/api/interfaces/OpenApiBuildResult.md +34 -0
  798. package/src/docs/versioned/0.21.0/reference/generated/api/interfaces/OpenApiMiddleware.md +98 -0
  799. package/src/docs/versioned/0.21.0/reference/generated/api/interfaces/OpenApiParameter.md +66 -0
  800. package/src/docs/versioned/0.21.0/reference/generated/api/interfaces/OpenApiResponse.md +43 -0
  801. package/src/docs/versioned/0.21.0/reference/generated/api/interfaces/OpenApiSchema.md +62 -0
  802. package/src/docs/versioned/0.21.0/reference/generated/api/interfaces/OpenApiSchemaProperty.md +89 -0
  803. package/src/docs/versioned/0.21.0/reference/generated/api/interfaces/OpenApiValidatorConfig.md +94 -0
  804. package/src/docs/versioned/0.21.0/reference/generated/api/interfaces/PopulatePath.md +17 -0
  805. package/src/docs/versioned/0.21.0/reference/generated/api/interfaces/QuerySubscription.md +25 -0
  806. package/src/docs/versioned/0.21.0/reference/generated/api/interfaces/QueryValidatorOptions.md +31 -0
  807. package/src/docs/versioned/0.21.0/reference/generated/api/interfaces/RESTPermissions.md +35 -0
  808. package/src/docs/versioned/0.21.0/reference/generated/api/interfaces/RealtimeAppOptions.md +62 -0
  809. package/src/docs/versioned/0.21.0/reference/generated/api/interfaces/RealtimeConfig.md +44 -0
  810. package/src/docs/versioned/0.21.0/reference/generated/api/interfaces/RealtimeEvent.md +57 -0
  811. package/src/docs/versioned/0.21.0/reference/generated/api/interfaces/RealtimeRegistryEntry.md +41 -0
  812. package/src/docs/versioned/0.21.0/reference/generated/api/interfaces/RealtimeSocketLike.md +94 -0
  813. package/src/docs/versioned/0.21.0/reference/generated/api/interfaces/RequestBodyValidatorOptions.md +71 -0
  814. package/src/docs/versioned/0.21.0/reference/generated/api/interfaces/RequestContext.md +59 -0
  815. package/src/docs/versioned/0.21.0/reference/generated/api/interfaces/ScopedLogger.md +100 -0
  816. package/src/docs/versioned/0.21.0/reference/generated/api/interfaces/ScriptContext.md +59 -0
  817. package/src/docs/versioned/0.21.0/reference/generated/api/interfaces/ScriptResult.md +11 -0
  818. package/src/docs/versioned/0.21.0/reference/generated/api/interfaces/SecretFieldMeta.md +29 -0
  819. package/src/docs/versioned/0.21.0/reference/generated/api/interfaces/SecretProvider.md +35 -0
  820. package/src/docs/versioned/0.21.0/reference/generated/api/interfaces/SyncConsentsOptions.md +15 -0
  821. package/src/docs/versioned/0.21.0/reference/generated/api/interfaces/SyncConsentsResult.md +23 -0
  822. package/src/docs/versioned/0.21.0/reference/generated/api/interfaces/TerrenoAppOptions.md +112 -0
  823. package/src/docs/versioned/0.21.0/reference/generated/api/interfaces/TerrenoPlugin.md +78 -0
  824. package/src/docs/versioned/0.21.0/reference/generated/api/interfaces/TerrenoRequestLogEntry.md +13 -0
  825. package/src/docs/versioned/0.21.0/reference/generated/api/interfaces/TerrenoTransformer.md +49 -0
  826. package/src/docs/versioned/0.21.0/reference/generated/api/interfaces/User.md +26 -0
  827. package/src/docs/versioned/0.21.0/reference/generated/api/interfaces/UserModel.md +113 -0
  828. package/src/docs/versioned/0.21.0/reference/generated/api/interfaces/VersionCheckResponse.md +37 -0
  829. package/src/docs/versioned/0.21.0/reference/generated/api/interfaces/VersionConfigDocument.md +65 -0
  830. package/src/docs/versioned/0.21.0/reference/generated/api/interfaces/VersionConfigModel.md +51 -0
  831. package/src/docs/versioned/0.21.0/reference/generated/api/interfaces/WrapScriptOptions.md +27 -0
  832. package/src/docs/versioned/0.21.0/reference/generated/api/type-aliases/AddRoutes.md +15 -0
  833. package/src/docs/versioned/0.21.0/reference/generated/api/type-aliases/AuthProvider.md +5 -0
  834. package/src/docs/versioned/0.21.0/reference/generated/api/type-aliases/BetterAuthInstance.md +3 -0
  835. package/src/docs/versioned/0.21.0/reference/generated/api/type-aliases/ConfigType.md +1 -0
  836. package/src/docs/versioned/0.21.0/reference/generated/api/type-aliases/ConfigurationPostUpdateHook.md +24 -0
  837. package/src/docs/versioned/0.21.0/reference/generated/api/type-aliases/ConfigurationPreUpdateHook.md +20 -0
  838. package/src/docs/versioned/0.21.0/reference/generated/api/type-aliases/ConsentFormMethods.md +1 -0
  839. package/src/docs/versioned/0.21.0/reference/generated/api/type-aliases/ConsentFormType.md +1 -0
  840. package/src/docs/versioned/0.21.0/reference/generated/api/type-aliases/DeepPartial.md +9 -0
  841. package/src/docs/versioned/0.21.0/reference/generated/api/type-aliases/GooseRESTOptions.md +7 -0
  842. package/src/docs/versioned/0.21.0/reference/generated/api/type-aliases/JSONPrimitive.md +1 -0
  843. package/src/docs/versioned/0.21.0/reference/generated/api/type-aliases/JSONValue.md +1 -0
  844. package/src/docs/versioned/0.21.0/reference/generated/api/type-aliases/PathValue.md +19 -0
  845. package/src/docs/versioned/0.21.0/reference/generated/api/type-aliases/Paths.md +15 -0
  846. package/src/docs/versioned/0.21.0/reference/generated/api/type-aliases/PermissionMethod.md +25 -0
  847. package/src/docs/versioned/0.21.0/reference/generated/api/type-aliases/RESTMethod.md +17 -0
  848. package/src/docs/versioned/0.21.0/reference/generated/api/type-aliases/RequestContextAttributes.md +1 -0
  849. package/src/docs/versioned/0.21.0/reference/generated/api/type-aliases/ScriptRunner.md +15 -0
  850. package/src/docs/versioned/0.21.0/reference/generated/api/type-aliases/VersionCheckStatus.md +1 -0
  851. package/src/docs/versioned/0.21.0/reference/generated/api/variables/ACTION_NAME_PATTERN.md +1 -0
  852. package/src/docs/versioned/0.21.0/reference/generated/api/variables/BackgroundTask.md +1 -0
  853. package/src/docs/versioned/0.21.0/reference/generated/api/variables/Config.md +244 -0
  854. package/src/docs/versioned/0.21.0/reference/generated/api/variables/ConsentForm.md +1 -0
  855. package/src/docs/versioned/0.21.0/reference/generated/api/variables/ConsentResponse.md +1 -0
  856. package/src/docs/versioned/0.21.0/reference/generated/api/variables/MAX_DOCUMENT_SUBSCRIPTIONS.md +1 -0
  857. package/src/docs/versioned/0.21.0/reference/generated/api/variables/MAX_MODEL_SUBSCRIPTIONS.md +4 -0
  858. package/src/docs/versioned/0.21.0/reference/generated/api/variables/MAX_QUERY_SUBSCRIPTIONS.md +1 -0
  859. package/src/docs/versioned/0.21.0/reference/generated/api/variables/Permissions.md +109 -0
  860. package/src/docs/versioned/0.21.0/reference/generated/api/variables/REQUEST_CONTEXT_ATTRIBUTE_NAMES.md +39 -0
  861. package/src/docs/versioned/0.21.0/reference/generated/api/variables/VersionConfig.md +1 -0
  862. package/src/docs/versioned/0.21.0/reference/generated/api/variables/gooseRestRouter.md +85 -0
  863. package/src/docs/versioned/0.21.0/reference/generated/api/variables/logger.md +109 -0
  864. package/src/docs/versioned/0.21.0/reference/generated/api/variables/winstonLogger.md +1 -0
  865. package/src/docs/versioned/0.21.0/reference/generated/rtk/README.md +126 -0
  866. package/src/docs/versioned/0.21.0/reference/generated/rtk/functions/buildOptimisticCreateItem.md +17 -0
  867. package/src/docs/versioned/0.21.0/reference/generated/rtk/functions/configureOfflineMutationEndpoints.md +13 -0
  868. package/src/docs/versioned/0.21.0/reference/generated/rtk/functions/createBetterAuthClient.md +30 -0
  869. package/src/docs/versioned/0.21.0/reference/generated/rtk/functions/createOfflineMiddleware.md +41 -0
  870. package/src/docs/versioned/0.21.0/reference/generated/rtk/functions/createSessionApi.md +21 -0
  871. package/src/docs/versioned/0.21.0/reference/generated/rtk/functions/createStorageAdapter.md +17 -0
  872. package/src/docs/versioned/0.21.0/reference/generated/rtk/functions/generateAuthSlice.md +35 -0
  873. package/src/docs/versioned/0.21.0/reference/generated/rtk/functions/generateBetterAuthSlice.md +87 -0
  874. package/src/docs/versioned/0.21.0/reference/generated/rtk/functions/generateProfileEndpoints.md +35 -0
  875. package/src/docs/versioned/0.21.0/reference/generated/rtk/functions/generateTags.md +15 -0
  876. package/src/docs/versioned/0.21.0/reference/generated/rtk/functions/getAuthToken.md +5 -0
  877. package/src/docs/versioned/0.21.0/reference/generated/rtk/functions/getBaseQuery.md +23 -0
  878. package/src/docs/versioned/0.21.0/reference/generated/rtk/functions/getFriendlyExpirationInfo.md +5 -0
  879. package/src/docs/versioned/0.21.0/reference/generated/rtk/functions/getRealtimeSocket.md +7 -0
  880. package/src/docs/versioned/0.21.0/reference/generated/rtk/functions/getTokenExpirationTimes.md +5 -0
  881. package/src/docs/versioned/0.21.0/reference/generated/rtk/functions/isNetworkFetchError.md +14 -0
  882. package/src/docs/versioned/0.21.0/reference/generated/rtk/functions/isWebsocketsDebugEnabled.md +5 -0
  883. package/src/docs/versioned/0.21.0/reference/generated/rtk/functions/logAuth.md +11 -0
  884. package/src/docs/versioned/0.21.0/reference/generated/rtk/functions/logSocket.md +15 -0
  885. package/src/docs/versioned/0.21.0/reference/generated/rtk/functions/populateId.md +23 -0
  886. package/src/docs/versioned/0.21.0/reference/generated/rtk/functions/realtimeDocument.md +37 -0
  887. package/src/docs/versioned/0.21.0/reference/generated/rtk/functions/realtimeList.md +43 -0
  888. package/src/docs/versioned/0.21.0/reference/generated/rtk/functions/refreshAuthToken.md +5 -0
  889. package/src/docs/versioned/0.21.0/reference/generated/rtk/functions/registerTerrenoDevStore.md +14 -0
  890. package/src/docs/versioned/0.21.0/reference/generated/rtk/functions/resolveBaseUrls.md +28 -0
  891. package/src/docs/versioned/0.21.0/reference/generated/rtk/functions/resolveFeatureFlagsOptions.md +14 -0
  892. package/src/docs/versioned/0.21.0/reference/generated/rtk/functions/selectBetterAuthError.md +13 -0
  893. package/src/docs/versioned/0.21.0/reference/generated/rtk/functions/selectBetterAuthIsAuthenticated.md +13 -0
  894. package/src/docs/versioned/0.21.0/reference/generated/rtk/functions/selectBetterAuthIsLoading.md +13 -0
  895. package/src/docs/versioned/0.21.0/reference/generated/rtk/functions/selectBetterAuthState.md +13 -0
  896. package/src/docs/versioned/0.21.0/reference/generated/rtk/functions/selectBetterAuthUser.md +13 -0
  897. package/src/docs/versioned/0.21.0/reference/generated/rtk/functions/selectBetterAuthUserId.md +13 -0
  898. package/src/docs/versioned/0.21.0/reference/generated/rtk/functions/selectConflicts.md +13 -0
  899. package/src/docs/versioned/0.21.0/reference/generated/rtk/functions/selectCurrentUserId.md +11 -0
  900. package/src/docs/versioned/0.21.0/reference/generated/rtk/functions/selectIsAuthenticating.md +11 -0
  901. package/src/docs/versioned/0.21.0/reference/generated/rtk/functions/selectIsOnline.md +13 -0
  902. package/src/docs/versioned/0.21.0/reference/generated/rtk/functions/selectIsOnlineSafe.md +15 -0
  903. package/src/docs/versioned/0.21.0/reference/generated/rtk/functions/selectIsSyncing.md +13 -0
  904. package/src/docs/versioned/0.21.0/reference/generated/rtk/functions/selectLastTokenRefreshTimestamp.md +11 -0
  905. package/src/docs/versioned/0.21.0/reference/generated/rtk/functions/selectOfflineQueue.md +13 -0
  906. package/src/docs/versioned/0.21.0/reference/generated/rtk/functions/selectQueueLength.md +13 -0
  907. package/src/docs/versioned/0.21.0/reference/generated/rtk/functions/setRealtimeDebug.md +13 -0
  908. package/src/docs/versioned/0.21.0/reference/generated/rtk/functions/setRealtimeSocket.md +27 -0
  909. package/src/docs/versioned/0.21.0/reference/generated/rtk/functions/shouldDeferOfflineMutation.md +18 -0
  910. package/src/docs/versioned/0.21.0/reference/generated/rtk/functions/shouldReplayQueuedMutation.md +18 -0
  911. package/src/docs/versioned/0.21.0/reference/generated/rtk/functions/shouldShowStillThereModal.md +5 -0
  912. package/src/docs/versioned/0.21.0/reference/generated/rtk/functions/useFeatureFlags.md +15 -0
  913. package/src/docs/versioned/0.21.0/reference/generated/rtk/functions/useOfflineStatus.md +16 -0
  914. package/src/docs/versioned/0.21.0/reference/generated/rtk/functions/useRealtimeDebug.md +18 -0
  915. package/src/docs/versioned/0.21.0/reference/generated/rtk/functions/useSelectCurrentUserId.md +5 -0
  916. package/src/docs/versioned/0.21.0/reference/generated/rtk/functions/useSelectIsAuthenticating.md +5 -0
  917. package/src/docs/versioned/0.21.0/reference/generated/rtk/functions/useServerStatus.md +26 -0
  918. package/src/docs/versioned/0.21.0/reference/generated/rtk/functions/useSocketConnection.md +19 -0
  919. package/src/docs/versioned/0.21.0/reference/generated/rtk/functions/useSyncConnection.md +32 -0
  920. package/src/docs/versioned/0.21.0/reference/generated/rtk/functions/useTerrenoFeatureFlags.md +19 -0
  921. package/src/docs/versioned/0.21.0/reference/generated/rtk/functions/useUpgradeCheck.md +30 -0
  922. package/src/docs/versioned/0.21.0/reference/generated/rtk/interfaces/BaseUrls.md +17 -0
  923. package/src/docs/versioned/0.21.0/reference/generated/rtk/interfaces/BetterAuthClientConfig.md +31 -0
  924. package/src/docs/versioned/0.21.0/reference/generated/rtk/interfaces/BetterAuthClientInterface.md +23 -0
  925. package/src/docs/versioned/0.21.0/reference/generated/rtk/interfaces/BetterAuthSession.md +43 -0
  926. package/src/docs/versioned/0.21.0/reference/generated/rtk/interfaces/BetterAuthSessionData.md +13 -0
  927. package/src/docs/versioned/0.21.0/reference/generated/rtk/interfaces/BetterAuthState.md +49 -0
  928. package/src/docs/versioned/0.21.0/reference/generated/rtk/interfaces/BetterAuthUser.md +43 -0
  929. package/src/docs/versioned/0.21.0/reference/generated/rtk/interfaces/ConflictRecord.md +47 -0
  930. package/src/docs/versioned/0.21.0/reference/generated/rtk/interfaces/EmailSignupRequest.md +15 -0
  931. package/src/docs/versioned/0.21.0/reference/generated/rtk/interfaces/ExpoConstantsShape.md +29 -0
  932. package/src/docs/versioned/0.21.0/reference/generated/rtk/interfaces/GenerateBetterAuthSliceConfig.md +23 -0
  933. package/src/docs/versioned/0.21.0/reference/generated/rtk/interfaces/GoogleLoginRequest.md +5 -0
  934. package/src/docs/versioned/0.21.0/reference/generated/rtk/interfaces/ListResponse.md +35 -0
  935. package/src/docs/versioned/0.21.0/reference/generated/rtk/interfaces/OfflineMiddlewareConfig.md +15 -0
  936. package/src/docs/versioned/0.21.0/reference/generated/rtk/interfaces/OfflineState.md +23 -0
  937. package/src/docs/versioned/0.21.0/reference/generated/rtk/interfaces/OfflineStatus.md +87 -0
  938. package/src/docs/versioned/0.21.0/reference/generated/rtk/interfaces/QueuedMutation.md +55 -0
  939. package/src/docs/versioned/0.21.0/reference/generated/rtk/interfaces/RealtimeEvent.md +58 -0
  940. package/src/docs/versioned/0.21.0/reference/generated/rtk/interfaces/ResetPasswordRequest.md +15 -0
  941. package/src/docs/versioned/0.21.0/reference/generated/rtk/interfaces/ServerStatusOptions.md +31 -0
  942. package/src/docs/versioned/0.21.0/reference/generated/rtk/interfaces/SocketConnection.md +11 -0
  943. package/src/docs/versioned/0.21.0/reference/generated/rtk/interfaces/StorageAdapter.md +53 -0
  944. package/src/docs/versioned/0.21.0/reference/generated/rtk/interfaces/TerrenoFlagDefinition.md +19 -0
  945. package/src/docs/versioned/0.21.0/reference/generated/rtk/interfaces/UseFeatureFlagsOptions.md +50 -0
  946. package/src/docs/versioned/0.21.0/reference/generated/rtk/interfaces/UseSocketConnectionOptions.md +87 -0
  947. package/src/docs/versioned/0.21.0/reference/generated/rtk/interfaces/UseTerrenoFeatureFlagsOptions.md +41 -0
  948. package/src/docs/versioned/0.21.0/reference/generated/rtk/interfaces/UseTerrenoFeatureFlagsResult.md +33 -0
  949. package/src/docs/versioned/0.21.0/reference/generated/rtk/interfaces/UserResponse.md +17 -0
  950. package/src/docs/versioned/0.21.0/reference/generated/rtk/interfaces/VersionCheckResponse.md +39 -0
  951. package/src/docs/versioned/0.21.0/reference/generated/rtk/type-aliases/BetterAuthClient.md +3 -0
  952. package/src/docs/versioned/0.21.0/reference/generated/rtk/type-aliases/BetterAuthOAuthProvider.md +3 -0
  953. package/src/docs/versioned/0.21.0/reference/generated/rtk/type-aliases/BetterAuthSlice.md +3 -0
  954. package/src/docs/versioned/0.21.0/reference/generated/rtk/type-aliases/EmailLoginRequest.md +1 -0
  955. package/src/docs/versioned/0.21.0/reference/generated/rtk/type-aliases/RootState.md +1 -0
  956. package/src/docs/versioned/0.21.0/reference/generated/rtk/type-aliases/ServerStatus.md +1 -0
  957. package/src/docs/versioned/0.21.0/reference/generated/rtk/type-aliases/TerrenoFlagConfiguration.md +1 -0
  958. package/src/docs/versioned/0.21.0/reference/generated/rtk/variables/AUTH_DEBUG.md +1 -0
  959. package/src/docs/versioned/0.21.0/reference/generated/rtk/variables/IsWeb.md +1 -0
  960. package/src/docs/versioned/0.21.0/reference/generated/rtk/variables/LOGOUT_ACTION_TYPE.md +1 -0
  961. package/src/docs/versioned/0.21.0/reference/generated/rtk/variables/SAME_ORIGIN_SENTINEL.md +5 -0
  962. package/src/docs/versioned/0.21.0/reference/generated/rtk/variables/TOKEN_REFRESHED_SUCCESS.md +1 -0
  963. package/src/docs/versioned/0.21.0/reference/generated/rtk/variables/addConflict.md +1 -0
  964. package/src/docs/versioned/0.21.0/reference/generated/rtk/variables/baseTasksUrl.md +1 -0
  965. package/src/docs/versioned/0.21.0/reference/generated/rtk/variables/baseUrl.md +1 -0
  966. package/src/docs/versioned/0.21.0/reference/generated/rtk/variables/baseWebsocketsUrl.md +1 -0
  967. package/src/docs/versioned/0.21.0/reference/generated/rtk/variables/clearConflicts.md +1 -0
  968. package/src/docs/versioned/0.21.0/reference/generated/rtk/variables/clearQueue.md +1 -0
  969. package/src/docs/versioned/0.21.0/reference/generated/rtk/variables/dequeue.md +1 -0
  970. package/src/docs/versioned/0.21.0/reference/generated/rtk/variables/dismissConflict.md +1 -0
  971. package/src/docs/versioned/0.21.0/reference/generated/rtk/variables/emptySplitApi.md +1 -0
  972. package/src/docs/versioned/0.21.0/reference/generated/rtk/variables/enqueue.md +1 -0
  973. package/src/docs/versioned/0.21.0/reference/generated/rtk/variables/offlineReducer.md +1 -0
  974. package/src/docs/versioned/0.21.0/reference/generated/rtk/variables/offlineSlice.md +1 -0
  975. package/src/docs/versioned/0.21.0/reference/generated/rtk/variables/selectUndismissedConflicts.md +1 -0
  976. package/src/docs/versioned/0.21.0/reference/generated/rtk/variables/setOnlineStatus.md +1 -0
  977. package/src/docs/versioned/0.21.0/reference/generated/rtk/variables/setSyncing.md +1 -0
  978. package/src/docs/versioned/0.21.0/reference/generated/rtk/variables/staggeredBaseQuery.md +1 -0
  979. package/src/docs/versioned/0.21.0/reference/generated/rtk/variables/useGetVersionCheckQuery.md +1 -0
  980. package/src/docs/versioned/0.21.0/reference/generated/rtk/variables/useLazyGetVersionCheckQuery.md +1 -0
  981. package/src/docs/versioned/0.21.0/reference/mcp-server.md +586 -0
  982. package/src/docs/versioned/0.21.0/reference/rtk.md +439 -0
  983. package/src/docs/versioned/0.21.0/reference/ui.md +418 -0
  984. package/src/docs/versioned/0.21.0/tasks/admin-improvements.md +429 -0
  985. package/src/docs/versioned/0.21.0/tasks/admin-only.md +221 -0
  986. package/src/docs/versioned/0.21.0/tasks/admin-script-runner.md +50 -0
  987. package/src/docs/versioned/0.21.0/tasks/admin-ui-v2-django-parity.md +135 -0
  988. package/src/docs/versioned/0.21.0/tasks/consent-forms.md +193 -0
  989. package/src/docs/versioned/0.21.0/tasks/design-blend-skill.md +147 -0
  990. package/src/docs/versioned/0.21.0/tasks/feature-flags-openfeature.md +77 -0
  991. package/src/docs/versioned/0.21.0/tasks/feature-flags.md +23 -0
  992. package/src/docs/versioned/0.21.0/tasks/model-router-actions.md +46 -0
  993. package/src/docs/versioned/0.21.0/tasks/model-router-mcp.md +105 -0
  994. package/src/docs/versioned/0.21.0/tasks/offline-mode.md +139 -0
  995. package/src/docs/versioned/0.21.0/tasks/upgrade-banner.md +73 -0
  996. package/src/docs/versioned/0.21.0/tutorials/README.md +7 -0
  997. package/src/docs/versioned/0.21.0/tutorials/getting-started.md +44 -0
  998. package/src/docs/versioned/next/implementationPlans/syncdb-local-first.md +591 -0
  999. package/src/docs/versioned/next/tasks/syncdb-local-first.md +117 -0
@@ -0,0 +1,21 @@
1
+ # Implementation plan index
2
+
3
+ Tracks active and completed implementation plans (IP) for Terreno. File paths are relative to `docs/implementationPlans/`.
4
+
5
+ ## Active
6
+
7
+ | Plan | Status | Created | Tasks |
8
+ |------|--------|---------|-------|
9
+ | [Admin UI v2 — Django-parity admin](admin-ui-v2-django-parity.md) | Approved | 2026-06-15 | [tasks](../tasks/admin-ui-v2-django-parity.md) |
10
+
11
+ ## Completed
12
+
13
+ *(Move rows here from Active when the IP status becomes Complete.)*
14
+
15
+ ## Deferred / Closed
16
+
17
+ *(Plans parked or superseded.)*
18
+
19
+ ## Backlog
20
+
21
+ *(Links to ideas not yet promoted to a full IP.)*
@@ -0,0 +1,42 @@
1
+ # Implementation Plans
2
+
3
+ Forward-looking implementation plans for significant features and architectural changes to Terreno packages.
4
+
5
+ ## Purpose
6
+
7
+ This directory contains detailed technical plans for major features **before implementation**. Each plan documents:
8
+
9
+ - Design goals and rationale
10
+ - Architecture and file structure
11
+ - Configuration interfaces
12
+ - Usage examples
13
+ - Breaking changes and migration paths
14
+ - Implementation tasks and phases
15
+
16
+ ## Current Plans
17
+
18
+ - **[Admin UI v2 — Django-parity admin](admin-ui-v2-django-parity.md)** — Config-driven admin shell (sidebar, home widgets, changelist, forms, bulk + background actions); tasks in [`docs/tasks/admin-ui-v2-django-parity.md`](../tasks/admin-ui-v2-django-parity.md)
19
+ - **[Modular API (TerrenoApp)](ModularAPI.md)** — New fluent builder API to replace `setupServer` in `@terreno/api`
20
+ - **[Offline Mode](offline-mode.md)** — Placeholder plan for offline queueing, replay, conflict handling, and UI surfaces
21
+ - **[MCP Boost Parity](mcp-boost-parity.md)** — Docs search tools, local stdio MCP with runtime introspection, browser log capture, per-package guidelines, and upgrade prompts (inspired by laravel/boost)
22
+ - **[Docs Site & Versioning](docs-site-and-versioning.md)** — Docusaurus site, versioned docs per release, UI demo embeds, and docs-maintenance skills
23
+
24
+ ## Status Tracking
25
+
26
+ | Plan | Status | Target Version | Discussion |
27
+ |------|--------|----------------|------------|
28
+ | Admin UI v2 (Django parity) | ✅ Approved | TBD | — |
29
+ | Modular API | 📝 Planning | 2.0.0 | [#149](https://github.com/FlourishHealth/terreno/pull/149) |
30
+ | Offline Mode | Placeholder | TBD | TBD |
31
+ | MCP Boost Parity | 📝 Planning | TBD | TBD |
32
+ | Docs Site & Versioning | 📝 Planning | TBD | TBD |
33
+
34
+ ## Process
35
+
36
+ 1. **Planning**: Implementation plan merged to master
37
+ 2. **Discussion**: Community feedback in linked PR/issue
38
+ 3. **Implementation**: Feature developed in feature branch with tests
39
+ 4. **Documentation**: How-to guides and migration docs updated
40
+ 5. **Release**: Plan moves to `docs/explanation/` as architectural documentation
41
+
42
+ Plans that are fully implemented should be moved to `docs/explanation/` and updated to reflect the actual implementation.
@@ -0,0 +1,577 @@
1
+ # Implementation Plan: Admin Interface Overhaul (Django-Admin Parity)
2
+
3
+ ## Goal
4
+
5
+ Bring Terreno's admin from "rendered CRUD" to "Django-admin-class developer experience": admin config co-located on `modelRouter`, pre-built admins composable via the existing `TerrenoPlugin` contract, a richer table (search, filter sidebar, bulk actions, fieldsets, readonlyFields), a declarative customizable home page, a widget registry consumers can extend, and an API surface that's forward-compatible with realtime via Socket.io.
6
+
7
+ ## Non-goals (v1)
8
+
9
+ - Shipping a Socket.io server (the API surface is realtime-ready; the transport ships in a follow-up).
10
+ - True related-model inlines (Django `TabularInline`/`StackedInline`). Subdoc inlines via `AdminNestedArrayField` continue to work.
11
+ - `date_hierarchy`, `prepopulated_fields`, `list_editable`, `show_facets`. Roadmapped for v1.1+.
12
+ - Replacing the existing AdminApp config (`AdminApp.models`) — kept with deprecation warning for one minor cycle.
13
+
14
+ ## Decisions from adversarial review
15
+
16
+ Verified findings folded back in. The five most consequential:
17
+
18
+ 1. **TerrenoPlugin signature is extended (not changed).** `register(app, openApi?, terrenoApp?)` — third argument optional, ignored by existing plugins. `TerrenoApp.build()` passes itself as the third arg. This is how `AdminApp` discovers registered routers and plugin contributions, and how `modelRouter` reaches the app to emit events. No new global registry.
19
+ 2. **No renames of existing fields.** `listFields`, `defaultSort`, `fieldOverrides`, `fieldOrder`, `hiddenFields` stay as-is. Only *new* options are added (`searchFields`, `sortableFields`, `filters`, `fieldsets`, `readonlyFields`, `excludeFields`, `autocompleteFields`, `actions`, `adminPermissions`, `adminFilter`, `realtime`, `listDisplayLinks`, `pageSize`, `group`, `icon`). The "Alias + warning" migration applies only to the *shape* (passing `AdminModelConfig` to `AdminApp.models` vs. setting `admin:` on the modelRouter).
20
+ 3. **Event payloads are scrubbed at emit time.** `admin:model.changed` events are emitted *after* `excludeFields`/`hiddenFields` filtering (not from raw `postCreate`/etc. hooks). The emit step runs `removeHiddenFields` against the merged exclude+hidden set so future socket listeners cannot leak secrets.
21
+ 4. **`adminFilter` is async from day one.** Signature: `(req: AuthedRequest) => Promise<FilterQuery<T>> | FilterQuery<T>`. Matches the existing async `queryFilter` contract.
22
+ 5. **Action runs use a frozen context, not the live `req`.** Background actions especially: at enqueue time we snapshot `{ userId, userSnapshot, ids, actionName, requestId, startedAt }` into an `AdminActionContext` and pass *that* to `action.run`. Mirrors the existing `ScriptContext` pattern (admin-backend/src/adminApp.ts:622-638).
23
+
24
+ Also folded (lower severity, see Risks/Files-to-Touch/Tasks for specifics):
25
+
26
+ - Widget registry locked to `{ fields, home, screens }` three-bucket shape *before* Phase 3 begins. Field-widgets and home-widgets and screen-widgets are semantically different and use the same lookup mechanism.
27
+ - Collision precedence reversed: **registered modelRouter > plugin contribution > legacy `AdminApp.models`**. Most-specific source wins, "legacy" is purely additive. Duplicate `routePath` from two registered modelRouters → throw at build time.
28
+ - Filter parser is per-type strict: each `AdminFilter.type` accepts exactly one value shape; anything else → 400. Test matrix in Task 2.6 covers array-injection, operator-injection (`$ne`, `$gt`, `$where`, `$regex`), prototype-pollution, and shape mismatches.
29
+ - `readonlyFields` enforced on all body-accepting routes including modelRouter's array sub-routes (`POST /:id/:field`, `PATCH /:id/:field/:itemId`, `DELETE /:id/:field/:itemId`). Implementation point: wrap `preUpdate` AND `preCreate` once; enforcement runs unconditionally regardless of route.
30
+ - `excludeFields` / `hiddenFields` recursion through `populatePaths`: each populated document is scrubbed with *its* model's admin config. If the referenced model has no admin config, populated docs are returned as-is (consumer's choice not to admin-register that model).
31
+ - Bulk actions capped at `MAX_ACTION_IDS = 1000` per request. Bulk validation uses one `find({_id: {$in: ids}, ...adminFilter})` round-trip — no N+1.
32
+ - Per-action permission booleans in `/admin/config`: class-level evaluation calls `checkPermissions(action, ..., user, undefined)` and treats any throw as `false`. `IsOwner` returns `false` (no object) — that's correct: admins can't generally "own" all rows pre-fetch.
33
+ - Soft-deleted documents: out of scope for this IP. `AdminConfig.includeDeleted?: boolean` added to the type for v1.1; no implementation now (documented in non-goals).
34
+ - `ConfigurationApp` and the existing `VersionConfig` singleton routes: stay where they are. Singleton models get a separate IP. `VersionConfig` continues to be served by `AdminApp` directly (until then) but no longer appears in the synthetic `customScreens` array — it's surfaced via a built-in `versionConfig` home widget.
35
+ - CSRF + rate-limit: `/actions/:name` inherits whatever auth+rate-limit middleware the app has installed. Documented; no new middleware in this IP. Better Auth cookie sessions are a known risk (out-of-scope until rate-limit IP).
36
+
37
+ ## High-level architecture
38
+
39
+ ```
40
+ @terreno/api
41
+ modelRouter(...) { ...options, admin?: AdminConfig } ← new option
42
+ TerrenoApp.getRegistrations() ← new accessor
43
+ TerrenoPlugin.adminContribution?(): AdminContribution ← new optional method
44
+ AdminEventBus (typed emit/on, no transport) ← new (lays realtime groundwork)
45
+
46
+ @terreno/admin-backend
47
+ AdminApp ← rewritten to aggregate:
48
+ 1. admin configs on registered model routers
49
+ 2. plugin adminContribution() results
50
+ 3. legacy AdminApp({models:[]}) input (deprecated, accepted)
51
+ Server-side enforcement:
52
+ - readonlyFields stripped from PATCH bodies
53
+ - excludeFields removed from forms AND responses
54
+ - filters/search/ordering parsed from query params
55
+ - actions executed (sync or background via BackgroundTask)
56
+
57
+ @terreno/admin-frontend
58
+ <AdminProvider api baseUrl widgets={...}> ← new top-level context
59
+ <AdminScreenRouter> ← new data-driven dispatcher (replaces consumer's switch)
60
+ <AdminHome> ← rewrite of AdminModelList; widget-driven
61
+ AdminModelTable (extended) ← search box, filter drawer, bulk-select, actions
62
+ AdminModelForm (extended) ← fieldsets, readonlyFields, autocomplete refs
63
+ AdminFieldRenderer ← widget map from context
64
+ widgets/ ← built-in widgets (ModelStats, RecentActivity, ScriptRunner)
65
+ ```
66
+
67
+ ## Configuration shapes (canonical)
68
+
69
+ ### `AdminConfig` (on modelRouter)
70
+
71
+ **Naming note:** existing fields (`listFields`, `defaultSort`, `fieldOverrides`, `fieldOrder`, `hiddenFields`) keep their names. The "alias + warning" migration applies to the *shape* (passing `AdminModelConfig` to `AdminApp.models` vs. setting `admin:` on the modelRouter), not to renaming individual fields.
72
+
73
+ ```typescript
74
+ export interface AdminConfig<T = unknown> {
75
+ /** Human-readable name for the model in the admin (e.g., "Users"). */
76
+ displayName: string;
77
+
78
+ /** Optional sidebar group label. Models without a group go in "Other". */
79
+ group?: string;
80
+
81
+ /** Optional icon (FontAwesome 6 name) for navigation. */
82
+ icon?: string;
83
+
84
+ // ── List view ───────────────────────────────────────────────────
85
+ listFields: string[]; // columns shown in the table (existing name kept)
86
+ listDisplayLinks?: string[]; // NEW. columns that click-through to edit (default: [first])
87
+ searchFields?: string[]; // NEW. strings → regex search; surfaces search box in UI
88
+ sortableFields?: string[]; // NEW. allowlist; default = all in listFields
89
+ defaultSort?: string | string[]; // existing name kept
90
+ pageSize?: number; // NEW. default rows per page (default: 25)
91
+
92
+ filters?: AdminFilter[]; // NEW. sidebar filters (see below)
93
+
94
+ // ── Form view ───────────────────────────────────────────────────
95
+ fieldsets?: AdminFieldset[]; // NEW. grouped form layout; mutually exclusive with fieldOrder
96
+ fieldOrder?: string[]; // existing
97
+ readonlyFields?: string[]; // NEW. display-only; enforced server-side
98
+ excludeFields?: string[]; // NEW. stronger than hiddenFields — not in forms OR detail responses
99
+ hiddenFields?: string[]; // existing (not in list/form; still in raw detail unless also excluded)
100
+ autocompleteFields?: string[]; // NEW. ref fields → async search (uses /search)
101
+ fieldOverrides?: Record<string, AdminFieldOverride>; // existing
102
+
103
+ // ── Permissions & scoping ───────────────────────────────────────
104
+ adminPermissions?: Partial<{ // NEW. per-action override (default: IsAdmin for all)
105
+ list: Permission[];
106
+ read: Permission[];
107
+ create: Permission[];
108
+ update: Permission[];
109
+ delete: Permission[];
110
+ }>;
111
+ /** NEW. Row-level scoping for admins. Async to allow fetching scope info (e.g., user.organizationId → org members). */
112
+ adminFilter?: (req: AuthedRequest) => Promise<mongoose.FilterQuery<T>> | mongoose.FilterQuery<T>;
113
+
114
+ // ── Bulk actions ────────────────────────────────────────────────
115
+ actions?: AdminAction<T>[]; // NEW
116
+
117
+ // ── Realtime (API surface only in this IP) ──────────────────────
118
+ realtime?: boolean; // NEW. when true, scrubbed emit fires after each mutation
119
+
120
+ // ── Forward-compat placeholder (v1.1) ───────────────────────────
121
+ includeDeleted?: boolean; // NEW (type only; behavior in v1.1)
122
+ }
123
+
124
+ export interface AdminFilter {
125
+ field: string; // schema field name (must be in queryFields)
126
+ type: "boolean" | "choice" | "date" | "dateRange" | "ref" | "text";
127
+ label?: string; // display label (default: humanized field name)
128
+ choices?: { value: string; label: string }[]; // for "choice"; auto-derived from schema enum if absent
129
+ refModel?: string; // for "ref"; auto-derived from schema ref if absent
130
+ }
131
+
132
+ export interface AdminFieldset {
133
+ title: string;
134
+ fields: string[];
135
+ collapsed?: boolean;
136
+ description?: string;
137
+ }
138
+
139
+ export interface AdminFieldOverride {
140
+ widget?: string; // widget key (resolved against the frontend widget registry)
141
+ label?: string;
142
+ helpText?: string;
143
+ }
144
+
145
+ export interface AdminAction<T = unknown> {
146
+ name: string; // url-safe id
147
+ label: string; // shown in dropdown
148
+ description?: string;
149
+ confirm?: string; // confirmation prompt text
150
+ permissions?: Permission[]; // defaults to model's adminPermissions.update
151
+ background?: boolean; // route through BackgroundTask + AdminScriptRunModal
152
+ run: (ctx: AdminActionContext<T>) =>
153
+ Promise<{ updatedIds?: string[]; message?: string; results?: string[] }>;
154
+ }
155
+
156
+ /**
157
+ * Frozen, request-independent context handed to `action.run`. For sync actions, captured immediately
158
+ * before invocation. For `background: true` actions, captured at enqueue time and persisted on the
159
+ * BackgroundTask — `req` may be torn down by the time the background runner picks it up.
160
+ *
161
+ * Mirrors the `ScriptContext` pattern in admin-backend/src/adminApp.ts:622-638.
162
+ */
163
+ export interface AdminActionContext<T = unknown> {
164
+ /** Snapshot of `req.user._id` at enqueue. */
165
+ userId: string;
166
+ /** Snapshot of `req.user` (lean, no methods). May be stale for long-running background actions. */
167
+ user: Pick<UserDocument, "_id" | "email" | "admin" | "name">;
168
+ /** Validated ids that exist AND pass the model's `adminFilter`. Capped at `MAX_ACTION_IDS`. */
169
+ ids: string[];
170
+ /** Echoed back from URL. */
171
+ actionName: string;
172
+ /** Stable id for log correlation. */
173
+ requestId: string;
174
+ /** ISO timestamp captured at enqueue. */
175
+ startedAt: string;
176
+ /** Model the action is acting on (avoids importing model registry from inside run). */
177
+ model: Model<T>;
178
+ /** Logger pre-tagged with {actionName, requestId, userId}. */
179
+ logger: Logger;
180
+ }
181
+
182
+ /** Server-side cap on `ids[]` accepted in a single action invocation. Documented; enforced; configurable per-app. */
183
+ export const MAX_ACTION_IDS = 1000;
184
+ ```
185
+
186
+ ### `AdminContribution` (on plugins)
187
+
188
+ ```typescript
189
+ export interface AdminContribution {
190
+ /** Model admins this plugin provides. Equivalent to registering a modelRouter with admin set. */
191
+ models?: AdminModelContribution[];
192
+
193
+ /** Standalone screens for things like DocumentStorageBrowser. */
194
+ customScreens?: AdminCustomScreen[];
195
+
196
+ /** Optional contributions to the home page. Host must list the id in home.widgets to surface it. */
197
+ homeWidgets?: AdminHomeWidgetContribution[];
198
+
199
+ /** Server-side admin scripts (one-off jobs). */
200
+ scripts?: AdminScriptConfig[];
201
+ }
202
+
203
+ export interface AdminModelContribution<T = unknown> {
204
+ model: Model<T>;
205
+ routePath: string;
206
+ admin: AdminConfig<T>;
207
+ permissions?: RESTPermissions<T>; // public-API permissions if the plugin owns the router
208
+ }
209
+
210
+ export interface AdminCustomScreen {
211
+ name: string; // url-safe id, used in URL (/admin/{name})
212
+ displayName: string;
213
+ icon?: string;
214
+ group?: string;
215
+ }
216
+
217
+ export interface AdminHomeWidgetContribution {
218
+ id: string; // referenced by host from home.widgets
219
+ displayName: string;
220
+ icon?: string;
221
+ /** Optional list of model names whose changes the widget cares about (used by the future realtime layer). */
222
+ watches?: string[];
223
+ }
224
+
225
+ export interface TerrenoPlugin {
226
+ /**
227
+ * Existing signature is preserved with one BACKWARD-COMPATIBLE extension: a third optional `terrenoApp`
228
+ * argument carrying the parent `TerrenoApp`. Plugins that ignore it work unchanged.
229
+ *
230
+ * `TerrenoApp.build()` always passes `(app, oapi, this)` from terrenoApp.ts:321.
231
+ */
232
+ register(app: express.Application, openApi?: unknown, terrenoApp?: TerrenoApp): void;
233
+
234
+ /** NEW (optional). Called by `AdminApp` during its own `register()` to collect contributions. */
235
+ adminContribution?(): AdminContribution;
236
+ }
237
+ ```
238
+
239
+ **Why this signature, not constructor injection or a `terreno.useAdmin(...)` method:** keeps plugin construction order (`new AdminApp({...})`) free of references to `TerrenoApp`, mirrors how `openApi` is already passed, and is a backward-compatible additive change. All existing plugins (`HealthApp`, `BetterAuthApp`, `ConfigurationApp`, `FeatureFlagsApp`, `LangfuseApp`, `DocumentStorageApp`, `ConsentApp`) compile unchanged.
240
+
241
+ **modelRouter discovery side:** `ModelRouterRegistration._buildWithOpenApi(openApi)` (api/src/api.ts:449) becomes `_buildWithContext({openApi, terrenoApp})`. `TerrenoApp.build()` passes itself in at registration time. The built router closes over the TerrenoApp reference so its lifecycle hooks can call `terrenoApp.emit("admin:model.changed", ...)`. The existing function signature is renamed; this is internal API. No public consumer should be calling `_buildWithOpenApi` directly.
242
+
243
+ ### `AdminApp` options (host-side)
244
+
245
+ ```typescript
246
+ new AdminApp({
247
+ basePath?: "/admin"; // existing
248
+ models?: AdminModelContribution[]; // existing; accepts the legacy shape too (with warning)
249
+ scripts?: AdminScriptConfig[]; // existing
250
+ home?: AdminHomeConfig; // NEW
251
+ });
252
+
253
+ export interface AdminHomeConfig {
254
+ title?: string;
255
+ widgets?: (AdminHomeWidgetSpec | string)[]; // strings resolve to plugin-contributed widgets by id
256
+ layout?: "grid" | "list";
257
+ }
258
+
259
+ export type AdminHomeWidgetSpec =
260
+ | { type: "modelStats"; models?: string[] } // counts for selected models
261
+ | { type: "recentActivity"; limit?: number; models?: string[] }
262
+ | { type: "scriptRunner" }
263
+ | { type: "customScreensList" }
264
+ | { type: "modelsGrid"; group?: string } // legacy auto-grid (default if no home given)
265
+ | string // plugin-contributed widget id
266
+ | React.ComponentType; // ad-hoc inline component
267
+ ```
268
+
269
+ ## `/admin/config` response (extended)
270
+
271
+ ```typescript
272
+ interface AdminConfigResponse {
273
+ models: AdminModelMeta[]; // existing, with fields below added
274
+ scripts: AdminScriptMeta[]; // existing
275
+ customScreens: AdminCustomScreen[]; // existing, plugin contributions merged in
276
+ home?: AdminHomeMeta; // NEW
277
+ widgetIds: string[]; // NEW: plugin-contributed widget ids the frontend should look up
278
+ capabilities: { // NEW: simple feature flags so older frontends fail soft
279
+ actions: boolean;
280
+ filters: boolean;
281
+ fieldsets: boolean;
282
+ realtime: boolean;
283
+ };
284
+ }
285
+
286
+ interface AdminModelMeta {
287
+ name: string;
288
+ routePath: string;
289
+ displayName: string;
290
+ group?: string;
291
+ icon?: string;
292
+
293
+ listFields: string[]; // existing name kept; canonical
294
+ listDisplayLinks: string[]; // defaults to [first of listFields]
295
+ searchFields: string[]; // empty array if search not configured
296
+ sortableFields: string[]; // defaults to listFields
297
+ defaultSort: string; // existing name kept
298
+ pageSize: number; // default 25
299
+
300
+ filters: AdminFilterMeta[];
301
+
302
+ fieldsets?: AdminFieldset[]; // if absent, frontend falls back to fieldOrder
303
+ fieldOrder?: string[]; // existing
304
+ readonlyFields: string[];
305
+ excludeFields: string[];
306
+ hiddenFields: string[]; // existing; emitted alongside excludeFields for clarity
307
+ autocompleteFields: string[];
308
+ fields: Record<string, AdminFieldMeta>; // existing
309
+ fieldOverrides: Record<string, AdminFieldOverride>; // emitted so the frontend can resolve widgets
310
+
311
+ actions: AdminActionMeta[]; // {name, label, confirm, background, allowed: boolean}
312
+ permissions: { // booleans for the current user (computed server-side per request)
313
+ list: boolean; read: boolean; create: boolean; update: boolean; delete: boolean;
314
+ };
315
+ realtime: boolean;
316
+ }
317
+ ```
318
+
319
+ ### Widget registry shape (locked here so Phase 3/4/5 don't reinvent it)
320
+
321
+ ```typescript
322
+ export interface AdminWidgetRegistry {
323
+ /** Field widgets resolve `fieldOverrides[fieldName].widget` to a form-field component. */
324
+ fields: Record<string, FieldWidgetComponent>;
325
+ /** Home widgets resolve `home.widgets` string ids (and plugin-contributed widget ids) to a dashboard component. */
326
+ home: Record<string, HomeWidgetComponent>;
327
+ /** Screen widgets resolve `customScreens[].name` to a full-page screen component. Used by AdminScreenRouter. */
328
+ screens: Record<string, ScreenWidgetComponent>;
329
+ }
330
+ ```
331
+
332
+ Three separate buckets because (a) the lookup happens in three different places, (b) the component props differ (field widgets receive `value`/`onChange`; home widgets receive `config`; screen widgets receive route params), and (c) lets each bucket evolve its prop contract independently. Same string id can exist in two buckets without conflict.
333
+
334
+ ### Realtime emit step (no leakage)
335
+
336
+ ```typescript
337
+ // inside modelRouter postCreate/postUpdate/postDelete, guarded by options.admin?.realtime === true:
338
+ const safeDoc = scrubAdminFields(savedDoc, options.admin); // strips excludeFields + hiddenFields
339
+ terrenoApp.emit("admin:model.changed", {
340
+ type: "create" | "update" | "delete",
341
+ modelName: model.modelName,
342
+ routePath: registration.path,
343
+ documentId: String(savedDoc._id),
344
+ document: safeDoc, // already scrubbed
345
+ user: { id: String(req.user._id) },
346
+ at: new Date().toISOString(),
347
+ });
348
+ ```
349
+
350
+ `scrubAdminFields` shares the implementation of `removeHiddenFields` (admin-backend/src/adminApp.ts:132). For delete events, `document` is omitted entirely.
351
+
352
+ The current-user permission booleans are computed **per-request** (`/admin/config` is gated by `IsAdmin`, but per-action permissions may further restrict). This lets the frontend hide "Create" buttons the user can't use.
353
+
354
+ ## URL conventions
355
+
356
+ Concrete example (Users model with `routePath: "/users"` and an `activate` action):
357
+
358
+ ```
359
+ GET /admin/config
360
+ GET /admin/users?page=2&pageSize=25&sort=-created&q=alice&filter[admin]=true&filter[role]=staff
361
+ GET /admin/users/507f1f77bcf86cd799439011
362
+ POST /admin/users
363
+ PATCH /admin/users/507f1f77bcf86cd799439011
364
+ DELETE /admin/users/507f1f77bcf86cd799439011
365
+ GET /admin/users/search?q=ali&fields=email,name ← used by autocompleteFields ref pickers
366
+ POST /admin/users/actions/activate ← body: {ids: string[]} (≤ MAX_ACTION_IDS=1000)
367
+ POST /admin/scripts/syncConsents/run ← existing
368
+ GET /admin/scripts/tasks/abc123 ← existing (also used for background actions)
369
+ GET /admin/widgets/feature-flags-overrides/data ← OPTIONAL — plugin widgets may register a data endpoint
370
+ ```
371
+
372
+ ### Filter param parsing (strict per-type)
373
+
374
+ Express+`qs` parses `filter[k]=v`, `filter[k][gte]=v`, and `filter[k][]=v` into different shapes. The filter parser declares one accepted shape per `AdminFilter.type`; everything else returns HTTP 400 with `{title: "Invalid filter", fields: {<filterName>: "..."}}`:
375
+
376
+ | `type` | Accepted shape | Rejects |
377
+ |--------|----------------|---------|
378
+ | `boolean` | scalar `"true"` \| `"false"` | arrays, nested objects, anything else |
379
+ | `text` | scalar string | arrays, objects |
380
+ | `choice` | scalar string in declared choices | arrays, objects, unknown values |
381
+ | `ref` | scalar string that is a valid ObjectId | arrays, objects, non-ObjectId strings |
382
+ | `date` | scalar ISO date string | arrays, objects |
383
+ | `dateRange` | `{ gte?: ISO, lte?: ISO }` only — both keys optional but no others | arrays, scalars, extra keys |
384
+
385
+ Mongo operator keys (`$ne`, `$gt`, `$where`, `$regex`, `$in`, …) are NEVER passed through. Prototype-pollution attempts (`__proto__`, `constructor.prototype`, …) are dropped silently and logged at warn level. Only fields declared in `admin.filters[]` are honored at all.
386
+
387
+ ## Server-side enforcement (security-critical)
388
+
389
+ | Concern | Enforcement |
390
+ |---------|-------------|
391
+ | `readonlyFields` | Stripped from POST + PATCH bodies AND from array sub-routes (`POST /:id/:field`, `PATCH /:id/:field/:itemId`, `DELETE /:id/:field/:itemId`). Single enforcement point: a body-scrubbing middleware installed on every body-accepting admin route, not just `preUpdate`. |
392
+ | `excludeFields` / `hiddenFields` | Stripped from POST + PATCH bodies and from list + detail responses. **Recursively applied through `populatePaths`**: when a populated doc is encountered, scrub it against *its* model's admin config (if any). Models with no admin config are returned as-is — consumer's responsibility not to populate sensitive refs without admin-registering them. |
393
+ | `adminPermissions` | Per-route guard. Class-level evaluation (no object): `checkPermissions(action, perms, user, undefined)`; any throw → `false`. `IsOwner` returns `false` at the class level (no object to own). Per-action endpoints additionally run `action.permissions`. |
394
+ | `adminFilter` | Async signature. Applied as a `$and` to the modelRouter's existing `queryFilter` for all list/read/update/delete on the admin namespace. |
395
+ | `filters` | Per-type strict shape (see "Filter param parsing"). Only fields in `admin.filters[]` honored. Mongo operator keys never pass through. Prototype-pollution attempts dropped. |
396
+ | `actions[].run` | Receives a frozen `AdminActionContext` (snapshot of user+ids+metadata at enqueue) — never the live `req`. Ids are validated via a single `find({_id: {$in: ids}, ...adminFilter})` round-trip; ids that don't pass `adminFilter` are silently excluded from the action's `ctx.ids`. |
397
+ | `MAX_ACTION_IDS` | `ids[]` capped at 1000 per request. Above → 413 Payload Too Large. Configurable per-app via `AdminApp.maxActionIds`. |
398
+ | `sortableFields` | Only allowlisted sort fields accepted. Unknown → 400. |
399
+ | Search | Regex over `searchFields` only; query string escaped (existing pattern). ObjectId fast-path for valid IDs. List endpoint's `?q=` and the `/search` endpoint share a single helper function — no two implementations of the same semantics. |
400
+ | Realtime emit | Emit happens *after* `removeHiddenFields`/`removeExcludeFields` scrub. Listeners (current AND future socket transport) never see hidden/excluded data. Delete events omit `document` entirely. |
401
+
402
+ ## Realtime API surface (no transport in this IP)
403
+
404
+ Introduce a typed event bus on `TerrenoApp`:
405
+
406
+ ```typescript
407
+ type AdminChangeEvent = {
408
+ type: "create" | "update" | "delete";
409
+ modelName: string;
410
+ routePath: string;
411
+ documentId: string;
412
+ document?: unknown; // omitted for delete
413
+ user: { id: string }; // who made the change
414
+ at: string; // ISO timestamp
415
+ };
416
+
417
+ class TerrenoApp {
418
+ on(event: "admin:model.changed", listener: (e: AdminChangeEvent) => void): void;
419
+ off(event: "admin:model.changed", listener: (e: AdminChangeEvent) => void): void;
420
+ // (internal) emit("admin:model.changed", event)
421
+ }
422
+ ```
423
+
424
+ `modelRouter` `postCreate`/`postUpdate`/`postDelete` hooks emit when `admin.realtime === true`. AdminApp registers a no-op listener that logs in debug mode. **No socket server is started.** The follow-up IP wires this to Socket.io. Frontend hooks accept an optional `socket` in `AdminProvider` and behave normally when absent.
425
+
426
+ ## Files to Create / Modify
427
+
428
+ ### `@terreno/api`
429
+
430
+ | File | Change |
431
+ |------|--------|
432
+ | `api/src/api.ts` | Add `admin?: AdminConfig` to `ModelRouterOptions`. Wrap lifecycle hooks to emit `admin:model.changed` when `admin.realtime` is true. |
433
+ | `api/src/terrenoApp.ts` | Add `getRegistrations()`, `getPlugins()`, `on/off/emit` typed event bus. |
434
+ | `api/src/terrenoPlugin.ts` | Add `adminContribution?(): AdminContribution` to the interface. |
435
+ | `api/src/adminTypes.ts` (NEW) | Export `AdminConfig`, `AdminFilter`, `AdminFieldset`, `AdminAction`, `AdminContribution`, `AdminChangeEvent`. (Live in `api` so plugins can import without depending on `admin-backend`.) |
436
+ | `api/src/index.ts` | Re-export the new types. |
437
+ | `api/src/api.test.ts` | Tests for emit-on-mutation gate, readonlyFields enforcement when admin config present. |
438
+
439
+ ### `@terreno/admin-backend`
440
+
441
+ | File | Change |
442
+ |------|--------|
443
+ | `admin-backend/src/adminApp.ts` | Rewrite to aggregate from registered model routers, plugin contributions, and legacy `models[]`. Extend `/admin/config` response. Add filter/sort/search parsing. Add `/actions/:name` endpoint. Compute per-action permission booleans. |
444
+ | `admin-backend/src/legacy.ts` (NEW) | Adapt the legacy `AdminModelConfig` shape (`listFields`, etc.) to `AdminModelContribution`. Emit one-time deprecation warning per legacy entry. |
445
+ | `admin-backend/src/filterParser.ts` (NEW) | Convert `filter[k]=v` query params into a safe Mongoose filter using the model's declared `AdminFilter[]`. |
446
+ | `admin-backend/src/actionRunner.ts` (NEW) | Validate selected ids against `adminFilter`, run sync or background, return result. |
447
+ | `admin-backend/src/index.ts` | Export `AdminApp` + types. |
448
+ | `admin-backend/src/adminApp.test.ts` | Extend with tests for filter parsing, action invocation, plugin contribution aggregation, legacy shape acceptance. |
449
+
450
+ ### `@terreno/admin-frontend`
451
+
452
+ | File | Change |
453
+ |------|--------|
454
+ | `admin-frontend/src/AdminProvider.tsx` (NEW) | React context: `{ api, baseUrl, widgets, socket?, theme? }`. Wraps the admin tree. |
455
+ | `admin-frontend/src/AdminScreenRouter.tsx` (NEW) | Data-driven dispatcher: reads `customScreens` from config, looks up component by name in registry, falls back to `AdminModelTable`. |
456
+ | `admin-frontend/src/AdminHome.tsx` (NEW; replaces AdminModelList semantically) | Renders `home.widgets` from config. Built-in widget components for `modelStats`, `recentActivity`, `scriptRunner`, `customScreensList`, `modelsGrid`. |
457
+ | `admin-frontend/src/AdminModelTable.tsx` | Add: search box (debounced, surfaces `?q=`), filter drawer (right-side, collapsible, mobile sheet), bulk-select column, actions dropdown, `sortableFields` enforcement, `pageSize` honored. |
458
+ | `admin-frontend/src/AdminModelForm.tsx` | Add: fieldsets (collapsible groups), `readonlyFields`, `autocompleteFields` → async ref picker, `excludeFields` honored. |
459
+ | `admin-frontend/src/AdminFieldRenderer.tsx` | Read widget map from `AdminProvider` context instead of hardcoded switch. |
460
+ | `admin-frontend/src/AdminFilterDrawer.tsx` (NEW) | Right-side drawer with one input per `AdminFilter`. Builds `filter[k]=v` query string. |
461
+ | `admin-frontend/src/AdminActionMenu.tsx` (NEW) | Dropdown next to bulk-select count. Confirms, sends POST to `/actions/:name`. For `background` actions, opens existing `AdminScriptRunModal`. |
462
+ | `admin-frontend/src/widgets/ModelStatsWidget.tsx` (NEW) | Renders counts via `useListQuery({page:1,pageSize:1})`. |
463
+ | `admin-frontend/src/widgets/RecentActivityWidget.tsx` (NEW) | Lists latest documents across selected models. |
464
+ | `admin-frontend/src/widgets/ScriptRunnerWidget.tsx` (NEW) | Compact script list (existing AdminScriptList trimmed). |
465
+ | `admin-frontend/src/widgets/ModelsGridWidget.tsx` (NEW) | The legacy "grid of every model" widget — the default home. |
466
+ | `admin-frontend/src/widgets/CustomScreensListWidget.tsx` (NEW) | Lists plugin-contributed custom screens. |
467
+ | `admin-frontend/src/types.ts` | Add: `AdminWidgetComponent`, `AdminWidgetRegistry`, `AdminContextValue`. Mirror the backend `AdminConfigResponse` shape. |
468
+ | `admin-frontend/src/AdminModelList.tsx` | Deprecate — keep as a thin wrapper that renders `<AdminHome widgets={[{type:"modelsGrid"}, {type:"scriptRunner"}, ...]}>` so existing consumers don't break. Mark for removal in v2. |
469
+ | `admin-frontend/src/index.tsx` | Export `AdminProvider`, `AdminHome`, `AdminScreenRouter`, widgets, types. |
470
+
471
+ ### Pre-built admins (light contribution refactors)
472
+
473
+ | File | Change |
474
+ |------|--------|
475
+ | `feature-flags/src/featureFlagsApp.ts` | Implement `adminContribution()` returning the model admin + a `feature-flags-overrides` home widget. Delete bare `featureFlagAdminConfig` export (deprecate first). |
476
+ | `feature-flags/src/featureFlagAdminWidget.tsx` (NEW, in a frontend-shipping path) | The flag-overrides home widget component. |
477
+ | `api/src/consent/consentApp.ts` (wherever it lives) | Implement `adminContribution()` returning ConsentForm + ConsentResponse admins, plus `widgetComponents` for `locale-content`, `locale-default`, `checkbox-list`. |
478
+ | `admin-backend/src/documentStorageApp.ts` | Convert to a proper plugin contribution: `adminContribution()` returns `customScreens: [{name:"documents", displayName:"Documents", icon:"folder"}]`. Frontend component registered via the widget registry. |
479
+ | `ai/src/aiAdminApp.ts` (NEW or split out of routes) | Implement `adminContribution()` returning a custom screen for AI Requests Explorer. Consumer no longer needs to hand-roll it. |
480
+
481
+ ### Example apps
482
+
483
+ | File | Change |
484
+ |------|--------|
485
+ | `example-backend/src/server.ts` | Demonstrate new pattern: pass `admin:` on each modelRouter, remove the verbose `AdminApp.models` repetition. Show declarative `home: { widgets }`. Leave one legacy `models[]` entry to demonstrate back-compat. |
486
+ | `example-backend/src/api/users.ts`, `api/todos.ts` | Add `admin:` config to each. |
487
+ | `example-frontend/app/admin/_layout.tsx` | Wrap in `<AdminProvider api={api} baseUrl="/admin" widgets={{...}}>`. |
488
+ | `example-frontend/app/admin/[model]/index.tsx` | Replace string-switch with `<AdminScreenRouter modelName={...}>`. |
489
+ | `example-frontend/app/admin/index.tsx` | Render `<AdminHome />` (was `<AdminModelList ...>`). |
490
+
491
+ ### Documentation
492
+
493
+ | File | Change |
494
+ |------|--------|
495
+ | `docs/how-to/admin-add-model.md` (NEW) | "Add an admin for your model in three lines." |
496
+ | `docs/how-to/admin-custom-widget.md` (NEW) | "Build and register a custom field widget." |
497
+ | `docs/how-to/admin-custom-home.md` (NEW) | "Customize the admin home page." |
498
+ | `docs/how-to/admin-import-prebuilt.md` (NEW) | "Import the consent / feature-flags admins." |
499
+ | `docs/reference/admin-config.md` (NEW) | Full `AdminConfig` reference, mapped from Django equivalents. |
500
+ | `docs/implementationPlans/admin-improvements.md` | (this file) |
501
+
502
+ ## Backward Compatibility & Migration
503
+
504
+ - `AdminApp({models: [{model, listFields, ...}]})` — accepted as-is for one minor release. Logged once-per-process as `[admin] AdminApp.models entry for "Users" uses the legacy shape (listFields/fieldOverrides). Migrate to modelRouter({...,admin:{listDisplay,...}}) — see docs/how-to/admin-add-model.md.`
505
+ - `listFields` accepted as an alias for `listDisplay` in the same window. Same one-time warning.
506
+ - `defaultSort` accepted as an alias for `ordering`.
507
+ - `hiddenFields` continues to mean "stripped from responses" (today's behavior). `excludeFields` is the new stronger version (stripped from forms AND responses). When both are set: union.
508
+ - `customScreens` array prop on `AdminModelList` becomes a no-op once the consumer switches to `AdminProvider` + `AdminScreenRouter`. We log a one-time warning if both are used.
509
+ - All existing endpoints (`GET /admin/config`, `GET /admin/{routePath}`, …) continue to work with the same payloads, plus additive fields. Old frontends see `capabilities.{actions,filters,fieldsets} === false` and skip the new UI affordances.
510
+
511
+ ## Phases
512
+
513
+ ### Phase 1 — Core API surface (`@terreno/api`)
514
+ Adds `AdminConfig`, plugin contribution interface, and the event bus. No UI changes; everything stays backward compatible.
515
+
516
+ ### Phase 2 — Admin backend aggregation
517
+ Rewrites `AdminApp` to aggregate from registered routers and plugin contributions. Extends `/admin/config`. Adds filter parsing, action runner, server-side `readonlyFields`/`excludeFields` enforcement.
518
+
519
+ ### Phase 3 — Admin frontend foundations
520
+ `AdminProvider`, `AdminScreenRouter`, widget registry, `AdminHome`, built-in widgets. No new table/form features yet — keep existing screens working through the new context.
521
+
522
+ ### Phase 4 — Admin frontend feature lift
523
+ Search box, filter drawer, bulk-select + actions, fieldsets, `readonlyFields`, autocomplete refs. Each is a small PR.
524
+
525
+ ### Phase 5 — Pre-built admin migrations
526
+ `feature-flags`, `consent`, `documentStorage`, `ai` all adopt `adminContribution()`. Each pre-built admin gets a one-line consumer story.
527
+
528
+ ### Phase 6 — Examples and docs
529
+ `example-backend` and `example-frontend` rewritten to showcase. Four how-to docs and the reference.
530
+
531
+ ### Phase 7 — Deprecations & polish
532
+ Warning messages, telemetry/log lines, codemod note in CHANGELOG.
533
+
534
+ ## Risks
535
+
536
+ | Risk | Mitigation |
537
+ |------|-----------|
538
+ | Field-rename churn. | No renames. Only additive new options. Existing `listFields`, `defaultSort`, `fieldOverrides`, `fieldOrder`, `hiddenFields` keep their names. |
539
+ | Plugin discovery — `AdminApp` needs the parent `TerrenoApp`. | Extend `TerrenoPlugin.register(app, openApi?, terrenoApp?)` backward-compat additively. `TerrenoApp.build()` passes itself. Internal `_buildWithContext` on `ModelRouterRegistration` carries the same reference into modelRouter. |
540
+ | **routePath collisions.** Two registered modelRouters with the same `routePath` → fatal at build time (throw). | Plugin contribution and legacy `AdminApp.models` are additive: registered modelRouter wins over plugin wins over legacy. Loudest collision logs are the registered-vs-registered case. |
541
+ | Filter-injection. | Per-type strict shape (see "Filter param parsing"). Mongo operator keys never pass through. Declared-only fields honored. |
542
+ | Action runner footguns (deleting too many rows). | `confirm` text rendered server-side. `MAX_ACTION_IDS=1000`. Single `$in` validation; ids outside `adminFilter` scope silently excluded. Background actions get a frozen context, not the live `req`. |
543
+ | Realtime payload leakage. | Emit fires *after* `excludeFields`/`hiddenFields` scrub. Verified by test that asserts `hash` is absent from the emitted payload for a User-like model. |
544
+ | Widget registry typing. | Three buckets: `{ fields, home, screens }`. Each bucket has a typed component contract. Runtime fallback to a "missing widget" placeholder + one-time `console.warn` if a referenced key is absent. |
545
+ | `realtime: true` emits events with nowhere to go in v1. | Default `false`. Listener is no-op (debug-logged). Documented as forward-compat. |
546
+ | `AdminScreenRouter` rollout breaks consumers' existing string-switch. | Both paths supported during transition; warning emitted if consumer's `customScreens` prop and `AdminProvider` widgets are both set. |
547
+ | Per-user permission booleans in `/admin/config` make it uncacheable. | `Cache-Control: private, no-store` header. Endpoint already gated by `IsAdmin`. Test guards response size stays under 50KB for 30 models. |
548
+ | Background action runner uses stale `req.user`. | Captured snapshot only. Background task records `userId` separately; the snapshot is a hint, not authoritative. Re-resolve user via `userModel.findById(ctx.userId)` inside `action.run` if fresh data is needed. |
549
+ | `EventEmitter` default max listeners (10). | `TerrenoApp` constructor calls `setMaxListeners(50)` on its emitter. Documented. |
550
+ | Bundle size of widget registry. | Widgets are React components passed at provider construction time — consumers control which they import. Lazy-load via React.lazy is the consumer's choice (no built-in lazy support in v1). |
551
+ | Custom-screen pages in `example-frontend/app/admin/consent-forms/` etc. | Phase 6 explicitly audits these directories; behaviors that the generic `AdminScreenRouter` doesn't subsume become contributed screen widgets. |
552
+
553
+ ## Acceptance Criteria (high level — full per-task in the task file)
554
+
555
+ 1. A model with `admin: {...}` on its `modelRouter` appears in `/admin/config` with full metadata, without being passed to `AdminApp.models`.
556
+ 2. Registering `new FeatureFlagsApp(...)` causes the `FeatureFlag` admin to appear automatically and `home.widgets: ["feature-flags-overrides"]` renders its widget.
557
+ 3. Search box in the table debounces and surfaces hits using the existing `/search` endpoint scoped to `searchFields`.
558
+ 4. Filter drawer renders one control per `AdminFilter`; combining filters narrows the list correctly server-side.
559
+ 5. Bulk-select + actions: selecting rows and choosing an action POSTs `{ids}` to `/admin/{routePath}/actions/:name`. Sync actions return updated rows; `background: true` actions route through `AdminScriptRunModal` and show progress.
560
+ 6. `readonlyFields` are visible in the form but disabled, and a manual PATCH that tries to change them is silently dropped server-side.
561
+ 7. `fieldsets` render as collapsible groups in `AdminModelForm`.
562
+ 8. `autocompleteFields` ref pickers async-search via `/search` instead of fetching the whole referenced collection.
563
+ 9. The admin home page renders the configured widgets in the configured order. Plugin-contributed widgets only appear when listed.
564
+ 10. The legacy `AdminApp({models: [{listFields: [...]}]})` shape continues to work and emits exactly one deprecation warning per legacy entry.
565
+ 11. No socket server is started; no realtime events fire to clients. `admin.realtime: true` causes `TerrenoApp.emit("admin:model.changed", ...)` to fire (verified in unit test).
566
+ 12. `example-backend` boots; `example-frontend` admin renders; all existing example admin flows still work.
567
+ 13. All new types are exported from `@terreno/api`, `@terreno/admin-backend`, `@terreno/admin-frontend`.
568
+ 14. Test coverage: filter parser, action runner, readonlyFields enforcement, plugin aggregation, legacy shape adapter, widget registry resolution, search debounce.
569
+
570
+ ## Out of scope (explicit)
571
+
572
+ - Socket.io server / realtime UI updates.
573
+ - MongoDB change-stream emitter.
574
+ - True related-model inlines.
575
+ - `date_hierarchy`, `prepopulated_fields`, `list_editable`, `show_facets`.
576
+ - Theming / brand customization beyond `home.title`.
577
+ - Multi-AdminSite (Django allows several `AdminSite` instances).