@terreno/mcp 0.21.0 → 0.22.0

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,1205 @@
1
+ # @terreno/api
2
+
3
+ REST API framework built on Express and Mongoose. Provides modelRouter (CRUD endpoints), JWT auth, permissions, and OpenAPI generation.
4
+
5
+ ## Table of Contents
6
+
7
+ - [Server Setup](#server-setup)
8
+ - [Authentication](#authentication)
9
+ - [Model Schema Conventions](#model-schema-conventions)
10
+ - [Mongoose Plugins](#mongoose-plugins)
11
+ - [Request Validation](#request-validation)
12
+ - [Middleware](#middleware)
13
+ - [Logging & Tracing](#logging--tracing)
14
+ - [Extensibility](#extensibility)
15
+ - [Webhooks & Notifications](#webhooks--notifications)
16
+ - [Utilities](#utilities)
17
+ - [Script Helpers](#script-helpers)
18
+
19
+ ## Key exports
20
+
21
+ - `TerrenoApp`, `setupServer`, `modelRouter`, `Permissions`, `OwnerQueryFilter`
22
+ - `APIError`, `logger`, `asyncHandler`, `authenticateMiddleware`
23
+ - Logging: `logger`, `createScopedLogger`, `createFeatureFlaggedLogger`, `setupLogging`, `formatLogContextSuffix`
24
+ - Correlation: `runWithRequestContext`, `getCurrentLogContext`, `requestContextMiddleware`, `REQUEST_CONTEXT_ATTRIBUTE_NAMES`
25
+ - `createOpenApiBuilder`
26
+ - `githubUserPlugin`, `setupGitHubAuth`, `addGitHubAuthRoutes`
27
+ - Mongoose plugins: `findExactlyOne`, `findOneOrNone`, `upsertPlugin`, `DateOnly`
28
+ - Validation: `configureOpenApiValidator`, `validateRequestBody`, `validateQueryParams`, `createValidator`
29
+ - Middleware: `openApiEtagMiddleware`, `sentryAppVersionMiddleware`
30
+ - Extensibility: `TerrenoPlugin` interface
31
+ - Notifiers: `sendSlackMessage`, `sendGoogleChatMessage`, `sendZoomMessage`
32
+
33
+ ## Server Setup
34
+
35
+ Two patterns for building Terreno APIs:
36
+
37
+ ### TerrenoApp (Recommended)
38
+
39
+ Fluent API with a register pattern:
40
+
41
+ ``````typescript
42
+ import {TerrenoApp, modelRouter} from "@terreno/api";
43
+ import {User, Todo} from "./models";
44
+
45
+ const todoRouter = modelRouter("/todos", Todo, {
46
+ permissions: {
47
+ list: [Permissions.IsAuthenticated],
48
+ create: [Permissions.IsAuthenticated],
49
+ read: [Permissions.IsOwner],
50
+ update: [Permissions.IsOwner],
51
+ delete: [Permissions.IsOwner],
52
+ },
53
+ queryFilter: OwnerQueryFilter,
54
+ });
55
+
56
+ const app = new TerrenoApp({userModel: User})
57
+ .register(todoRouter)
58
+ .register(userRouter)
59
+ .start();
60
+ ``````
61
+
62
+ **Methods:**
63
+ - `register(registration)` — Register `ModelRouterRegistration` or `TerrenoPlugin`
64
+ - `addMiddleware(fn)` — Add Express middleware
65
+ - `build()` — Build Express app without listening
66
+ - `start()` — Build and start server
67
+
68
+ ### setupServer (Legacy)
69
+
70
+ Callback-based pattern:
71
+
72
+ ``````typescript
73
+ import {setupServer, modelRouter} from "@terreno/api";
74
+
75
+ setupServer({
76
+ userModel: User,
77
+ addRoutes: (router) => {
78
+ router.use("/todos", modelRouter(Todo, options));
79
+ },
80
+ });
81
+ ``````
82
+
83
+ Both patterns create the same middleware stack (CORS, auth, logging, OpenAPI).
84
+
85
+ ## Authentication
86
+
87
+ @terreno/api includes built-in authentication with multiple strategies:
88
+
89
+ ### Email/Password Authentication
90
+
91
+ JWT-based authentication using `passport-local-mongoose`:
92
+
93
+ ``````typescript
94
+ import {setupServer} from "@terreno/api";
95
+
96
+ setupServer({
97
+ userModel: User,
98
+ authOptions: {
99
+ generateJWTPayload: (user) => ({
100
+ sub: user._id,
101
+ admin: user.admin,
102
+ }),
103
+ },
104
+ });
105
+ ``````
106
+
107
+ **Endpoints:**
108
+ - `POST /auth/signup` — Create user account
109
+ - `POST /auth/login` — Authenticate with email/password
110
+ - `POST /auth/refresh_token` — Refresh access token
111
+ - `GET /auth/me` — Get current user profile
112
+ - `PATCH /auth/me` — Update current user profile
113
+
114
+ **Environment variables:**
115
+ - `TOKEN_SECRET` — JWT signing secret (required)
116
+ - `TOKEN_ISSUER` — JWT issuer claim (required)
117
+ - `REFRESH_TOKEN_SECRET` — Refresh token secret (required)
118
+ - `SESSION_SECRET` — Express session secret (required)
119
+ - `TOKEN_EXPIRES_IN` — Token expiration (default: `15m`)
120
+ - `REFRESH_TOKEN_EXPIRES_IN` — Refresh token expiration (default: `30d`)
121
+ - `SIGNUP_DISABLED` — Set to `"true"` to disable user signup endpoint
122
+
123
+ ### GitHub OAuth Authentication
124
+
125
+ Add GitHub OAuth login to your API:
126
+
127
+ ``````typescript
128
+ import {githubUserPlugin, setupServer} from "@terreno/api";
129
+
130
+ // Add GitHub fields to user schema
131
+ userSchema.plugin(githubUserPlugin);
132
+
133
+ setupServer({
134
+ userModel: User,
135
+ githubAuth: {
136
+ clientId: process.env.GITHUB_CLIENT_ID!,
137
+ clientSecret: process.env.GITHUB_CLIENT_SECRET!,
138
+ callbackURL: process.env.GITHUB_CALLBACK_URL!,
139
+ scope: ["user:email"],
140
+ allowAccountLinking: true,
141
+ },
142
+ });
143
+ ``````
144
+
145
+ **Endpoints (when configured):**
146
+ - `GET /auth/github` — Initiate OAuth flow
147
+ - `GET /auth/github/callback` — OAuth callback handler
148
+ - `GET /auth/github/link` — Link GitHub to authenticated user (requires JWT)
149
+ - `DELETE /auth/github/unlink` — Unlink GitHub from account (requires JWT)
150
+
151
+ **Learn more:** [Add GitHub OAuth authentication](../how-to/add-github-oauth.md)
152
+
153
+ ### Better Auth Authentication
154
+
155
+ Add Better Auth as an alternative authentication system with built-in social OAuth:
156
+
157
+ ``````typescript
158
+ import {BetterAuthApp, TerrenoApp} from "@terreno/api";
159
+
160
+ const betterAuthConfig = {
161
+ enabled: true,
162
+ secret: process.env.BETTER_AUTH_SECRET,
163
+ baseURL: process.env.BETTER_AUTH_URL,
164
+ trustedOrigins: ["yourapp://", "exp://"],
165
+ googleOAuth: {
166
+ clientId: process.env.GOOGLE_CLIENT_ID!,
167
+ clientSecret: process.env.GOOGLE_CLIENT_SECRET!,
168
+ },
169
+ githubOAuth: {
170
+ clientId: process.env.GITHUB_CLIENT_ID!,
171
+ clientSecret: process.env.GITHUB_CLIENT_SECRET!,
172
+ },
173
+ };
174
+
175
+ const app = new TerrenoApp({userModel: User});
176
+ app.register(new BetterAuthApp({config: betterAuthConfig, userModel: User}));
177
+ const server = app.start();
178
+ ``````
179
+
180
+ **Endpoints (when enabled):**
181
+ - `POST /api/auth/signup/email` — Email/password signup
182
+ - `POST /api/auth/signin/email` — Email/password signin
183
+ - `GET /api/auth/signin/{provider}` — Initiate OAuth (google, github, apple)
184
+ - `GET /api/auth/callback/{provider}` — OAuth callback
185
+ - `POST /api/auth/signout` — Sign out
186
+ - `GET /api/auth/session` — Get session
187
+
188
+ **Environment variables:**
189
+ - `AUTH_PROVIDER` — Set to `"better-auth"` to enable (default: `"jwt"`)
190
+ - `BETTER_AUTH_SECRET` — Session encryption secret (required)
191
+ - `BETTER_AUTH_URL` — Base URL for auth server (required)
192
+ - `GOOGLE_CLIENT_ID` / `GOOGLE_CLIENT_SECRET` — Google OAuth (optional)
193
+ - `GITHUB_CLIENT_ID` / `GITHUB_CLIENT_SECRET` — GitHub OAuth (optional)
194
+ - `APPLE_CLIENT_ID` / `APPLE_CLIENT_SECRET` — Apple Sign In (optional)
195
+
196
+ **Learn more:** [Configure Better Auth](../how-to/configure-better-auth.md)
197
+
198
+ ## Model Schema Conventions
199
+
200
+ ### Required field descriptions
201
+
202
+ **Every field in a Mongoose schema must include a `description` property.** Descriptions are extracted by `mongoose-to-swagger` and included in the generated OpenAPI specification, making your API documentation and auto-generated SDK significantly more useful.
203
+
204
+ ``````typescript
205
+ const schema = new mongoose.Schema<Document, Model>({
206
+ title: {
207
+ description: "The title of the item",
208
+ type: String,
209
+ required: true,
210
+ },
211
+ status: {
212
+ description: "Current processing status",
213
+ type: String,
214
+ enum: ["pending", "active", "completed"],
215
+ default: "pending",
216
+ },
217
+ ownerId: {
218
+ description: "The user who owns this item",
219
+ type: mongoose.Schema.Types.ObjectId,
220
+ ref: "User",
221
+ required: true,
222
+ },
223
+ });
224
+ ``````
225
+
226
+ ### Writing good descriptions
227
+
228
+ - Keep them concise (one sentence is usually enough)
229
+ - Explain the field's purpose, not its type
230
+ - Use active voice: "The user who owns..." not "Owner of..."
231
+ - Include important constraints: "Email address (must be unique)"
232
+
233
+ ### Benefits
234
+
235
+ Field descriptions appear in:
236
+ - OpenAPI spec at `/openapi.json`
237
+ - Generated SDK type definitions
238
+ - API documentation (Swagger UI if enabled)
239
+ - IDE autocomplete hints when using the SDK
240
+
241
+ ## Mongoose Plugins
242
+
243
+ @terreno/api provides several Mongoose plugins to extend model functionality with common patterns.
244
+
245
+ ### findExactlyOne & findOneOrNone
246
+
247
+ **Critical:** Never use `Model.findOne` directly. Use these plugins instead to prevent ambiguous queries.
248
+
249
+ ``````typescript
250
+ import {findExactlyOne, findOneOrNone} from "@terreno/api";
251
+
252
+ // In your schema
253
+ todoSchema.plugin(findExactlyOne);
254
+ todoSchema.plugin(findOneOrNone);
255
+
256
+ // Usage
257
+ const todo = await Todo.findExactlyOne({_id: id}); // Throws if 0 or multiple found
258
+ const maybeUser = await User.findOneOrNone({email}); // Returns null if none, throws if multiple
259
+ ``````
260
+
261
+ **Why these matter:**
262
+ - `findOne()` returns a **random document** if multiple match (non-deterministic)
263
+ - `findExactlyOne()` throws `APIError` (404) if none found, (500) if multiple found
264
+ - `findOneOrNone()` returns `null` if none found, throws (500) if multiple found
265
+
266
+ ### upsertPlugin
267
+
268
+ Create or update a document atomically.
269
+
270
+ ``````typescript
271
+ import {upsertPlugin, type HasUpsert} from "@terreno/api";
272
+
273
+ todoSchema.plugin(upsertPlugin);
274
+
275
+ // TypeScript: Extend your model interface
276
+ interface TodoModel extends DefaultModel<TodoDocument>, HasUpsert<TodoDocument> {}
277
+
278
+ // Usage
279
+ const todo = await Todo.upsert(
280
+ {userId: user._id, taskId: task.id}, // Conditions
281
+ {status: "completed", completedAt: new Date()} // Update
282
+ );
283
+ // Creates new if none exists, updates if found, throws if multiple match
284
+ ``````
285
+
286
+ ### DateOnly Schema Type
287
+
288
+ Custom Mongoose type for date-only fields (no time component).
289
+
290
+ ``````typescript
291
+ import {Schema} from "mongoose";
292
+ import {DateOnly} from "@terreno/api";
293
+
294
+ // IMPORTANT: Register early in your app entry point (before models are loaded)
295
+ (Schema.Types as any).DateOnly = DateOnly;
296
+
297
+ // Then use in schemas
298
+ const eventSchema = new Schema({
299
+ eventDate: {
300
+ type: Schema.Types.DateOnly,
301
+ description: "Date of the event (no time component)",
302
+ },
303
+ });
304
+
305
+ // Automatically strips time when setting or fetching
306
+ event.eventDate = new Date("2026-02-15T14:30:00Z");
307
+ console.log(event.eventDate); // 2026-02-15T00:00:00.000Z
308
+ ``````
309
+
310
+ **Features:**
311
+ - Automatically converts to UTC midnight
312
+ - Supports comparison operators (`$gt`, `$gte`, `$lt`, `$lte`)
313
+ - Throws `CastError` for invalid dates
314
+
315
+ ### createdUpdatedPlugin
316
+
317
+ Adds `created` and `updated` timestamp fields with automatic management.
318
+
319
+ ``````typescript
320
+ import {createdUpdatedPlugin} from "@terreno/api";
321
+
322
+ schema.plugin(createdUpdatedPlugin);
323
+
324
+ // Adds two fields:
325
+ // - created: Date (set on first save)
326
+ // - updated: Date (set on every save/update)
327
+
328
+ // Disable for specific saves
329
+ doc.disableCreatedUpdatedPlugin = true;
330
+ await doc.save();
331
+ ``````
332
+
333
+ ### isDeletedPlugin
334
+
335
+ Soft delete support with automatic query filtering.
336
+
337
+ ``````typescript
338
+ import {isDeletedPlugin, type IsDeleted} from "@terreno/api";
339
+
340
+ schema.plugin(isDeletedPlugin, false); // Default: not deleted
341
+
342
+ // Adds:
343
+ // - deleted: boolean (default: false)
344
+ // - Automatic filtering in find() and findOne() queries
345
+
346
+ // Normal queries exclude deleted docs
347
+ const todos = await Todo.find({}); // Only non-deleted
348
+
349
+ // Explicitly query deleted docs
350
+ const deleted = await Todo.find({deleted: true});
351
+
352
+ // Soft delete
353
+ todo.deleted = true;
354
+ await todo.save();
355
+ ``````
356
+
357
+ ### isDisabledPlugin
358
+
359
+ Disable user accounts (returns 401 for disabled users).
360
+
361
+ ``````typescript
362
+ import {isDisabledPlugin} from "@terreno/api";
363
+
364
+ userSchema.plugin(isDisabledPlugin, false);
365
+
366
+ // Adds disabled: boolean field
367
+ user.disabled = true;
368
+ await user.save();
369
+ // User will receive 401 on authentication attempts
370
+ ``````
371
+
372
+ ### baseUserPlugin
373
+
374
+ Base fields for user models.
375
+
376
+ ``````typescript
377
+ import {baseUserPlugin, type BaseUser} from "@terreno/api";
378
+
379
+ userSchema.plugin(baseUserPlugin);
380
+
381
+ // Adds:
382
+ // - email: string (indexed)
383
+ // - admin: boolean (default: false)
384
+ ``````
385
+
386
+ ### firebaseJWTPlugin
387
+
388
+ Firebase authentication integration.
389
+
390
+ ``````typescript
391
+ import {firebaseJWTPlugin} from "@terreno/api";
392
+
393
+ userSchema.plugin(firebaseJWTPlugin);
394
+
395
+ // Adds:
396
+ // - firebaseId: string (indexed)
397
+ ``````
398
+
399
+ ### Default Plugin Bundle
400
+
401
+ Many schemas use these together:
402
+
403
+ ``````typescript
404
+ import {createdUpdatedPlugin, isDeletedPlugin, findExactlyOne, findOneOrNone} from "@terreno/api";
405
+
406
+ export const addDefaultPlugins = (schema) => {
407
+ schema.plugin(createdUpdatedPlugin);
408
+ schema.plugin(isDeletedPlugin);
409
+ schema.plugin(findExactlyOne);
410
+ schema.plugin(findOneOrNone);
411
+ };
412
+
413
+ // Apply to all schemas
414
+ todoSchema.plugin(addDefaultPlugins);
415
+ ``````
416
+
417
+ ## Request Validation
418
+
419
+ @terreno/api provides runtime validation of incoming requests against OpenAPI schemas using [AJV](https://ajv.js.org/). Validation is opt-in and can be enabled globally or per-route.
420
+
421
+ ### Enabling Validation
422
+
423
+ Call `configureOpenApiValidator()` at server startup to enable validation:
424
+
425
+ ``````typescript
426
+ import {configureOpenApiValidator, setupServer} from "@terreno/api";
427
+
428
+ // Enable validation before setting up the server
429
+ configureOpenApiValidator({
430
+ removeAdditional: true,
431
+ coerceTypes: true,
432
+ logValidationErrors: true,
433
+ onAdditionalPropertiesRemoved: (props, req) => {
434
+ logger.warn(`Stripped properties: ${props.join(", ")} on ${req.method} ${req.path}`);
435
+ },
436
+ });
437
+
438
+ setupServer({
439
+ userModel: User,
440
+ addRoutes: (router) => {
441
+ // Routes will automatically validate when enabled
442
+ },
443
+ });
444
+ ``````
445
+
446
+ **Configuration options:**
447
+
448
+ | Option | Type | Default | Description |
449
+ |--------|------|---------|-------------|
450
+ | `validateRequests` | boolean | `true` | Enable request body validation |
451
+ | `validateResponses` | boolean | `false` | Enable response validation (performance cost) |
452
+ | `coerceTypes` | boolean | `true` | Convert types (e.g., `"123"` → `123`) |
453
+ | `removeAdditional` | boolean | `true` | Strip properties not in schema |
454
+ | `logValidationErrors` | boolean | `true` | Log validation failures |
455
+ | `onValidationError` | function | throws APIError | Custom error handler |
456
+ | `onAdditionalPropertiesRemoved` | function | undefined | Callback when props are stripped |
457
+
458
+ ### Using with modelRouter
459
+
460
+ When validation is enabled globally, modelRouter automatically validates create and update requests:
461
+
462
+ ``````typescript
463
+ import {modelRouter, Permissions} from "@terreno/api";
464
+
465
+ router.use("/todos", modelRouter(Todo, {
466
+ permissions: {
467
+ create: [Permissions.IsAuthenticated],
468
+ update: [Permissions.IsOwner],
469
+ },
470
+ // Validation happens automatically based on Mongoose schema
471
+ }));
472
+ ``````
473
+
474
+ ### Manual Validation
475
+
476
+ For custom routes, use validation middleware directly:
477
+
478
+ ``````typescript
479
+ import {validateRequestBody, validateQueryParams, createOpenApiBuilder} from "@terreno/api";
480
+
481
+ router.post("/search", [
482
+ createOpenApiBuilder()
483
+ .withRequestBody({
484
+ query: {type: "string", required: true},
485
+ filters: {type: "object"},
486
+ })
487
+ .build(),
488
+ validateRequestBody({
489
+ query: {type: "string", required: true},
490
+ filters: {type: "object"},
491
+ }),
492
+ asyncHandler(async (req, res) => {
493
+ // req.body is validated and coerced
494
+ const {query, filters} = req.body;
495
+ return res.json({results: []});
496
+ }),
497
+ ]);
498
+ ``````
499
+
500
+ ### Validating Query Parameters
501
+
502
+ ``````typescript
503
+ import {validateQueryParams} from "@terreno/api";
504
+
505
+ router.get("/items", [
506
+ validateQueryParams({
507
+ limit: {type: "number"},
508
+ status: {type: "string", enum: ["active", "inactive"]},
509
+ }),
510
+ asyncHandler(async (req, res) => {
511
+ // req.query is validated and type-coerced
512
+ const {limit, status} = req.query;
513
+ return res.json({items: []});
514
+ }),
515
+ ]);
516
+ ``````
517
+
518
+ ### Combined Validation
519
+
520
+ Validate both body and query in a single middleware:
521
+
522
+ ``````typescript
523
+ import {createValidator} from "@terreno/api";
524
+
525
+ router.post("/search", [
526
+ createValidator({
527
+ body: {query: {type: "string", required: true}},
528
+ query: {limit: {type: "number"}, page: {type: "number"}},
529
+ }),
530
+ asyncHandler(async (req, res) => {
531
+ // Both req.body and req.query are validated
532
+ return res.json({results: []});
533
+ }),
534
+ ]);
535
+ ``````
536
+
537
+ ### Model-based Validation
538
+
539
+ Generate validators directly from Mongoose models:
540
+
541
+ ``````typescript
542
+ import {validateModelRequestBody, getSchemaFromModel} from "@terreno/api";
543
+
544
+ // Use model schema for validation
545
+ router.post("/todos", [
546
+ authenticateMiddleware(),
547
+ validateModelRequestBody(Todo),
548
+ asyncHandler(async (req, res) => {
549
+ // req.body validated against Todo schema
550
+ const todo = await Todo.create(req.body);
551
+ return res.json({data: todo});
552
+ }),
553
+ ]);
554
+ ``````
555
+
556
+ ### Validation Behavior
557
+
558
+ **When `removeAdditional: true`:**
559
+ - Extra properties are silently removed from request body
560
+ - `onAdditionalPropertiesRemoved` callback fires if configured
561
+ - Useful for preventing client-side injection of unexpected fields
562
+
563
+ **When `coerceTypes: true`:**
564
+ - Query strings are converted to correct types (`"10"` → `10`)
565
+ - Request body values are coerced when possible
566
+ - Reduces type mismatch errors from URL parameters
567
+
568
+ **Error response format:**
569
+ ``````json
570
+ {
571
+ "errors": [{
572
+ "status": "400",
573
+ "title": "Request validation failed",
574
+ "detail": "/body/email: must be a valid email",
575
+ "source": {"pointer": "/body"},
576
+ "meta": {
577
+ "validationErrors": "[{\"path\":\"/email\",\"message\":\"must be a valid email\"}]"
578
+ }
579
+ }]
580
+ }
581
+ ``````
582
+
583
+ **Performance considerations:**
584
+ - Validators are compiled once and cached
585
+ - Minimal overhead after first request (~1-2ms for typical schemas)
586
+ - Response validation is disabled by default due to performance cost
587
+ - Use in development/staging to catch API contract violations
588
+
589
+ **Learn more:** See `api/src/openApiValidator.ts` for advanced usage and `api/src/api.ts` for modelRouter integration.
590
+
591
+ ## Middleware
592
+
593
+ ### openApiEtagMiddleware
594
+
595
+ Adds ETag support to the `/openapi.json` endpoint for efficient caching.
596
+
597
+ ``````typescript
598
+ import {openApiEtagMiddleware} from "@terreno/api";
599
+
600
+ // Add before OpenAPI middleware in setupServer
601
+ app.use(openApiEtagMiddleware);
602
+ ``````
603
+
604
+ **Features:**
605
+ - Generates SHA-256 ETag from OpenAPI spec content
606
+ - Returns `304 Not Modified` when spec hasn't changed
607
+ - Reduces bandwidth for clients polling OpenAPI spec
608
+ - Automatically included in `setupServer()`
609
+
610
+ **Benefits:**
611
+ - SDK code generation tools can skip regeneration if spec unchanged
612
+ - Faster frontend builds in CI/CD pipelines
613
+ - Reduced server load for large OpenAPI specs
614
+
615
+ ### sentryAppVersionMiddleware
616
+
617
+ Captures app version from request headers and adds to Sentry scope for error filtering.
618
+
619
+ ``````typescript
620
+ import {sentryAppVersionMiddleware} from "@terreno/api";
621
+
622
+ app.use(sentryAppVersionMiddleware);
623
+ ``````
624
+
625
+ **Expected header:** `App-Version: 1.2.3`
626
+
627
+ **Sentry tag:** `app_version: 1.2.3`
628
+
629
+ **Use case:** Filter Sentry errors by app version to identify version-specific bugs.
630
+
631
+ ## Logging & Tracing
632
+
633
+ @terreno/api ships a Winston-based logger plus two helpers — **scoped loggers** and
634
+ **feature-flagged loggers** — and automatic **request correlation** so a single request or
635
+ background job can be followed across many log lines, both in plain-text consoles and in structured
636
+ transports (Google Cloud Logging, Sentry).
637
+
638
+ > Never use `console.log` for permanent server logs — use `logger` or a scoped logger. Request
639
+ > logging already redacts `password` on bodies; never log secrets, full auth tokens, or raw
640
+ > passwords.
641
+
642
+ ### Quick reference
643
+
644
+ | Export | Purpose |
645
+ |--------|---------|
646
+ | `logger` | Global logger: `debug` / `info` / `warn` / `error` / `catch`. |
647
+ | `createScopedLogger(options)` | Logger that prepends a `prefix` and/or attaches `labels` to every line. |
648
+ | `createFeatureFlaggedLogger(options)` | Wraps a logger behind an `isEnabled()` gate (feature flags, env, etc.). |
649
+ | `setupLogging(options)` | Configures transports and levels (console/file + custom transports). |
650
+ | `formatLogContextSuffix(fields)` | Builds the trailing ` key=value` suffix (for custom formatters/tests). |
651
+ | `runWithRequestContext(ctx, cb)` | Opens a correlation scope for jobs/scripts (HTTP gets one automatically). |
652
+ | `getCurrentLogContext()` | Reads the active correlation fields as a plain object. |
653
+ | `REQUEST_CONTEXT_ATTRIBUTE_NAMES` | Header names for propagating correlation to other services. |
654
+
655
+ ### The global logger
656
+
657
+ ``````typescript
658
+ import {logger} from "@terreno/api";
659
+
660
+ logger.info("Server started", {port: 4000});
661
+ logger.warn("Slow query", {ms: 500});
662
+ logger.error("Failed to process", {error});
663
+ logger.debug("Request details", {body: req.body});
664
+
665
+ // `.catch` logs and captures the exception — handy as a promise handler:
666
+ await chargeCard(id).catch(logger.catch);
667
+ ``````
668
+
669
+ Each method writes through Winston (console/file transports) and, when `USE_SENTRY_LOGGING=true`,
670
+ mirrors the line to Sentry with the active request context attached.
671
+
672
+ ### Scoped loggers
673
+
674
+ Use **`createScopedLogger`** when a handler, job, or service runs multiple steps and you want a
675
+ consistent prefix and/or extra dimensions on every line. Create the logger once and reuse the same
676
+ instance for the whole operation so every line shares identifiers.
677
+
678
+ ``````typescript
679
+ import {createScopedLogger} from "@terreno/api";
680
+
681
+ const log = createScopedLogger({
682
+ prefix: "[InvoicePay]",
683
+ labels: {invoiceId: invoice._id.toString(), attempt: String(attemptNumber)},
684
+ });
685
+
686
+ log.info("Starting capture");
687
+ log.warn("Stripe rate limited, backing off");
688
+ await capture(invoice).catch(log.catch);
689
+ ``````
690
+
691
+ This produces lines like:
692
+
693
+ ``````text
694
+ info: [InvoicePay] Starting capture invoiceId=665f… attempt=1 requestId=…
695
+ ``````
696
+
697
+ - **`prefix`** — prepended to the human-readable message (easy grep / Log Explorer text search) and
698
+ also stored as the Winston metadata field **`terrenoLogPrefix`** so structured transports get it
699
+ as its own field, not only embedded in `message`.
700
+ - **`labels`** — normalized to strings and stored as the Winston metadata field **`terrenoLabels`**.
701
+ They appear in the same ` key=value` suffix as request fields and are emitted as discrete fields
702
+ for structured transports (for example `@google-cloud/logging-winston`).
703
+
704
+ **Reserved keys:** do not use label keys that collide with framework metadata — `requestId`,
705
+ `jobId`, `sessionId`, `userId`, `traceId`, `spanId`, `terrenoLogPrefix`, `terrenoRequestLog`,
706
+ `terrenoLabels`. Prefer domain names: `invoiceId`, `syncBatchId`, `webhookDeliveryId`.
707
+
708
+ If both `prefix` and `labels` are empty, `createScopedLogger({})` returns the global `logger` (the
709
+ same object).
710
+
711
+ ### Feature-flagged (toggle) logging
712
+
713
+ Use **`createFeatureFlaggedLogger`** to keep verbose diagnostics in the code but silent until a
714
+ flag turns them on — no redeploy required. All `debug` / `info` / `warn` / `error` calls are
715
+ dropped while `isEnabled()` returns false.
716
+
717
+ `isEnabled` is evaluated on **every** call, so flags can flip without a process restart. Wire it to
718
+ any source: an environment variable, a cached/remote flag map, or a call into a feature-flag service
719
+ from your app.
720
+
721
+ ``````typescript
722
+ import {createFeatureFlaggedLogger, createScopedLogger} from "@terreno/api";
723
+
724
+ const jobLog = createFeatureFlaggedLogger({
725
+ isEnabled: () => process.env.JOB_TRACE_LOGS === "true",
726
+ target: createScopedLogger({prefix: "[Job]", labels: {jobName: "nightly-sync"}}),
727
+ });
728
+
729
+ jobLog.info("step 1"); // silent unless JOB_TRACE_LOGS=true
730
+ ``````
731
+
732
+ Driving it from a feature-flag service in app code:
733
+
734
+ ``````typescript
735
+ const debugLog = createFeatureFlaggedLogger({
736
+ isEnabled: () => flags.isEnabled("debug.billing"),
737
+ target: createScopedLogger({prefix: "[Billing]"}),
738
+ gateCatch: true, // also silence `catch` while the flag is off
739
+ });
740
+ ``````
741
+
742
+ Options:
743
+
744
+ | Option | Default | Description |
745
+ |--------|---------|-------------|
746
+ | `isEnabled` | — (required) | `() => boolean` predicate; checked on every log call. |
747
+ | `target` | global `logger` | The `ScopedLogger` (or `logger`) that receives forwarded lines. |
748
+ | `gateCatch` | `false` | When `false`, `catch` still records errors while disabled (so `promise.catch(log.catch)` keeps working). Set `true` to silence `catch` too. |
749
+
750
+ > `@terreno/api` deliberately does **not** import a feature-flags package — you pass the predicate.
751
+ > This avoids a package cycle and lets the gate read from anywhere.
752
+
753
+ ### How loggers correlate
754
+
755
+ While a request or job scope is active, **every** log line — from `logger`, a scoped logger, or a
756
+ feature-flagged logger — is automatically enriched with correlation fields. You never thread them
757
+ through function arguments. This is built on Node's `AsyncLocalStorage` (see `requestContext.ts`).
758
+
759
+ What you get:
760
+
761
+ - **HTTP requests**: `requestContextMiddleware` (mounted early by `TerrenoApp` / `setupServer`)
762
+ resolves a `requestId` from incoming headers (`x-request-id`, `x-correlation-id`,
763
+ `x-cloud-trace-context`, W3C `traceparent`, …) or generates one, echoes it back as the
764
+ `X-Request-ID` response header, and runs the request inside the scope. After auth runs, `userId`
765
+ and `sessionId` are added.
766
+ - **Correlation fields**: `requestId`, `jobId`, `sessionId`, `userId`, `traceId`, `spanId` (when
767
+ available) are merged onto every line as top-level Winston metadata.
768
+ - **Structured object**: every line also carries **`terrenoRequestLog`**: `{requestId, userId}`
769
+ (with `userId: null` for anonymous requests) so Log Explorer and BigQuery can always filter on a
770
+ single nested object. This object is structured metadata only — it is not repeated in the
771
+ plain-text suffix.
772
+ - **Plain-text suffix**: console/file lines append a ` key=value` suffix built by
773
+ `formatLogContextSuffix`, including `logPrefix=…` and any scoped `labels`.
774
+
775
+ Correlating background jobs, cron tasks, and scripts — wrap the work in `runWithRequestContext` so
776
+ it gets the same treatment as an HTTP request:
777
+
778
+ ``````typescript
779
+ import {createScopedLogger, runWithRequestContext} from "@terreno/api";
780
+
781
+ await runWithRequestContext({jobId: "nightly-sync"}, async () => {
782
+ const log = createScopedLogger({prefix: "[NightlySync]"});
783
+ log.info("started"); // every line includes jobId + a generated requestId
784
+ await sync();
785
+ });
786
+ ``````
787
+
788
+ Propagating correlation to other services (so the same `requestId` / `traceId` follows the call):
789
+
790
+ ``````typescript
791
+ import {getCurrentRequestContextAttributes} from "@terreno/api";
792
+
793
+ await fetch(downstreamUrl, {headers: getCurrentRequestContextAttributes()});
794
+ ``````
795
+
796
+ ### Configuring transports
797
+
798
+ `setupLogging` is called for you by `TerrenoApp` / `setupServer` (pass `loggingOptions`). Console
799
+ and file transports are enabled by default; add custom transports (such as Google Cloud Logging) to
800
+ forward the structured metadata above:
801
+
802
+ ``````typescript
803
+ import {setupLogging} from "@terreno/api";
804
+ import {LoggingWinston} from "@google-cloud/logging-winston";
805
+
806
+ setupLogging({
807
+ level: "info",
808
+ disableFileLogging: isDeployed,
809
+ disableConsoleColors: isDeployed,
810
+ transports: isDeployed ? [new LoggingWinston()] : [],
811
+ });
812
+ ``````
813
+
814
+ When deployed, Winston metadata (`terrenoRequestLog`, `terrenoLabels`, `terrenoLogPrefix`, and the
815
+ top-level request fields) flows into Google Cloud Logging `jsonPayload` for Log Explorer filtering.
816
+ To correlate with Cloud Trace, ensure clients or load balancers send `x-cloud-trace-context` or W3C
817
+ `traceparent`.
818
+
819
+ ### Message style
820
+
821
+ - Start with what happened, then optional detail: `User export finished`, not `finished`.
822
+ - Use **low-cardinality** prefixes in brackets (`[WebhookStripe]`, `[NightlyJob]`); put unique IDs
823
+ in `labels`, not in the prefix.
824
+ - Keep the first ~80 characters useful for grouping; push highly variable data to the end or into
825
+ splat args.
826
+
827
+ ## Extensibility
828
+
829
+ ### TerrenoPlugin Interface
830
+
831
+ The `TerrenoPlugin` interface provides a standard way to extend Terreno applications with reusable functionality.
832
+
833
+ ``````typescript
834
+ import type {TerrenoPlugin} from "@terreno/api";
835
+ import type express from "express";
836
+
837
+ export interface TerrenoPlugin {
838
+ register(app: express.Application): void;
839
+ }
840
+ ``````
841
+
842
+ **Creating a plugin:**
843
+
844
+ ``````typescript
845
+ import type {TerrenoPlugin} from "@terreno/api";
846
+ import type express from "express";
847
+
848
+ export class MyPlugin implements TerrenoPlugin {
849
+ private options: MyPluginOptions;
850
+
851
+ constructor(options?: MyPluginOptions) {
852
+ this.options = options ?? {};
853
+ }
854
+
855
+ register(app: express.Application): void {
856
+ // Add routes, middleware, or other setup
857
+ app.get("/my-plugin/status", (_req, res) => {
858
+ res.json({status: "ok"});
859
+ });
860
+ }
861
+ }
862
+ ``````
863
+
864
+ **Using a plugin:**
865
+
866
+ ``````typescript
867
+ import {setupServer} from "@terreno/api";
868
+ import {MyPlugin} from "./plugins/myPlugin";
869
+
870
+ const myPlugin = new MyPlugin({enabled: true});
871
+
872
+ setupServer({
873
+ userModel: User,
874
+ addRoutes: (router) => {
875
+ // Register the plugin
876
+ myPlugin.register(router as any);
877
+ },
878
+ });
879
+ ``````
880
+
881
+ **Example: Health Check Plugin**
882
+
883
+ See `@terreno/api-health` for a complete plugin implementation:
884
+
885
+ ``````typescript
886
+ import {HealthApp} from "@terreno/api-health";
887
+
888
+ const healthCheck = new HealthApp({
889
+ enabled: true,
890
+ path: "/health",
891
+ check: async () => {
892
+ const dbConnected = await checkDatabaseConnection();
893
+ return {
894
+ healthy: dbConnected,
895
+ details: {database: dbConnected ? "connected" : "disconnected"},
896
+ };
897
+ },
898
+ });
899
+
900
+ setupServer({
901
+ userModel: User,
902
+ addRoutes: (router) => {
903
+ healthCheck.register(router as any);
904
+ },
905
+ });
906
+ ``````
907
+
908
+ **Plugin patterns:**
909
+ - **Conditional registration:** Check options to enable/disable functionality
910
+ - **Route registration:** Add custom endpoints (health checks, admin panels, webhooks)
911
+ - **Middleware injection:** Add request/response interceptors
912
+ - **Service initialization:** Connect to external services (monitoring, analytics)
913
+
914
+ **Benefits:**
915
+ - Reusable across multiple Terreno projects
916
+ - Testable in isolation
917
+ - Optional/configurable functionality
918
+ - Clean separation of concerns
919
+
920
+ ## Webhooks & Notifications
921
+
922
+ ### Slack Notifications
923
+
924
+ ``````typescript
925
+ import {sendSlackMessage} from "@terreno/api";
926
+
927
+ await sendSlackMessage({
928
+ webhookUrl: process.env.SLACK_WEBHOOK_URL,
929
+ message: "Deployment complete",
930
+ blocks: [
931
+ {
932
+ type: "section",
933
+ text: {type: "mrkdwn", text: "*Deployment Status*\nVersion 1.2.3 deployed successfully"},
934
+ },
935
+ ],
936
+ });
937
+ ``````
938
+
939
+ ### Google Chat Notifications
940
+
941
+ ``````typescript
942
+ import {sendGoogleChatMessage} from "@terreno/api";
943
+
944
+ await sendGoogleChatMessage({
945
+ webhookUrl: process.env.GOOGLE_CHAT_WEBHOOK_URL,
946
+ message: "Build failed",
947
+ sections: [
948
+ {
949
+ header: "Build Status",
950
+ widgets: [{textParagraph: {text: "Branch: main\nStatus: Failed"}}],
951
+ },
952
+ ],
953
+ });
954
+ ``````
955
+
956
+ ### Zoom Notifications
957
+
958
+ ``````typescript
959
+ import {sendZoomMessage} from "@terreno/api";
960
+
961
+ await sendZoomMessage({
962
+ webhookUrl: process.env.ZOOM_WEBHOOK_URL,
963
+ message: "Server health alert",
964
+ });
965
+ ``````
966
+
967
+ **Common use cases:**
968
+ - CI/CD pipeline notifications
969
+ - Error alerts
970
+ - Deployment confirmations
971
+ - Health check failures
972
+
973
+ ## Utilities
974
+
975
+ ### checkModelsStrict
976
+
977
+ Validates all registered Mongoose models use strict mode and virtual settings.
978
+
979
+ ``````typescript
980
+ import {checkModelsStrict} from "@terreno/api";
981
+
982
+ // Run in non-production environments at startup
983
+ if (process.env.NODE_ENV !== "production") {
984
+ checkModelsStrict();
985
+ }
986
+ ``````
987
+
988
+ **Checks:**
989
+ - `strict: "throw"` or `strict: true` (prevents accidental field additions)
990
+ - `toJSON: {virtuals: true}` (includes virtual fields in JSON output)
991
+ - `toObject: {virtuals: true}` (includes virtual fields in plain objects)
992
+
993
+ **Throws:** Detailed error listing all non-compliant models
994
+
995
+ **Why:** Prevents subtle bugs from schema misconfigurations that only appear in production.
996
+
997
+ ### isValidObjectId
998
+
999
+ Better ObjectId validation than Mongoose's built-in validator.
1000
+
1001
+ ``````typescript
1002
+ import {isValidObjectId} from "@terreno/api";
1003
+
1004
+ // Mongoose's isValidObjectId has false positives
1005
+ console.log(mongoose.isValidObjectId("123456789012")); // true (wrong!)
1006
+
1007
+ // @terreno/api's version correctly validates
1008
+ console.log(isValidObjectId("123456789012")); // false (correct)
1009
+ console.log(isValidObjectId("507f1f77bcf86cd799439011")); // true
1010
+ ``````
1011
+
1012
+ **Fix:** Checks length is exactly 24 hex characters, not just 12+ characters.
1013
+
1014
+ ### timeout
1015
+
1016
+ Promise-based timeout utility.
1017
+
1018
+ ``````typescript
1019
+ import {timeout} from "@terreno/api";
1020
+
1021
+ // Wait 1 second
1022
+ await timeout(1000);
1023
+
1024
+ // Use in retry logic
1025
+ for (let i = 0; i < 3; i++) {
1026
+ try {
1027
+ await someOperation();
1028
+ break;
1029
+ } catch (error) {
1030
+ if (i < 2) await timeout(1000 * Math.pow(2, i)); // Exponential backoff
1031
+ }
1032
+ }
1033
+ ``````
1034
+
1035
+ ## Script Helpers
1036
+
1037
+ ### wrapScript
1038
+
1039
+ Error handling wrapper for scripts and cron jobs.
1040
+
1041
+ ``````typescript
1042
+ import {wrapScript} from "@terreno/api";
1043
+
1044
+ wrapScript(async () => {
1045
+ // Your script logic
1046
+ await processData();
1047
+ console.log("Script completed successfully");
1048
+ });
1049
+ ``````
1050
+
1051
+ **Features:**
1052
+ - Catches and logs exceptions via `logger.catch()`
1053
+ - Sends errors to Sentry
1054
+ - Exits with code 1 on error, 0 on success
1055
+ - Ensures process doesn't hang on uncaught errors
1056
+
1057
+ ### cronjob
1058
+
1059
+ Schedule recurring tasks with error handling.
1060
+
1061
+ ``````typescript
1062
+ import {cronjob} from "@terreno/api";
1063
+
1064
+ // Run every hour
1065
+ cronjob("0 * * * *", async () => {
1066
+ await cleanupOldData();
1067
+ }, {
1068
+ name: "Cleanup Job",
1069
+ runOnInit: false, // Run immediately on start?
1070
+ });
1071
+ ``````
1072
+
1073
+ **Features:**
1074
+ - Uses `node-cron` syntax
1075
+ - Automatic error logging
1076
+ - Named jobs for monitoring
1077
+ - Optional immediate execution
1078
+
1079
+ **Cron syntax:** `"minute hour day month weekday"`
1080
+ - `"*/5 * * * *"` — Every 5 minutes
1081
+ - `"0 0 * * *"` — Daily at midnight
1082
+ - `"0 */6 * * *"` — Every 6 hours
1083
+
1084
+ ## Deprecations
1085
+
1086
+ ### transformer (modelRouter option)
1087
+
1088
+ **Deprecated:** Use lifecycle hooks instead (`preCreate`, `postCreate`, etc.)
1089
+
1090
+ ``````typescript
1091
+ // Old (deprecated)
1092
+ modelRouter(Model, {
1093
+ transformer: (doc) => ({...doc, computed: true}),
1094
+ });
1095
+
1096
+ // New (use responseHandler)
1097
+ modelRouter(Model, {
1098
+ responseHandler: (doc, method) => ({...doc, computed: true}),
1099
+ });
1100
+ ``````
1101
+
1102
+ ### responseSerializer (modelRouter option)
1103
+
1104
+ **Deprecated:** Use `responseHandler` instead.
1105
+
1106
+ ``````typescript
1107
+ // Old (deprecated)
1108
+ modelRouter(Model, {
1109
+ responseSerializer: (doc) => serialize(doc),
1110
+ });
1111
+
1112
+ // New
1113
+ modelRouter(Model, {
1114
+ responseHandler: (doc, method) => serialize(doc),
1115
+ });
1116
+ ``````
1117
+
1118
+ ## Environment Variables
1119
+
1120
+ Complete reference of environment variables used by @terreno/api:
1121
+
1122
+ ### Authentication
1123
+
1124
+ | Variable | Required | Default | Description |
1125
+ |----------|----------|---------|-------------|
1126
+ | `TOKEN_SECRET` | Yes | — | JWT signing secret (use long random string) |
1127
+ | `TOKEN_ISSUER` | Yes | — | JWT issuer claim (e.g., "your-app-name") |
1128
+ | `REFRESH_TOKEN_SECRET` | Yes | — | Refresh token secret (different from TOKEN_SECRET) |
1129
+ | `SESSION_SECRET` | Yes | — | Express session secret |
1130
+ | `TOKEN_EXPIRES_IN` | No | `15m` | Access token expiration (e.g., "15m", "1h") |
1131
+ | `REFRESH_TOKEN_EXPIRES_IN` | No | `30d` | Refresh token expiration (e.g., "7d", "30d") |
1132
+ | `SIGNUP_DISABLED` | No | — | Set to `"true"` to disable POST /auth/signup endpoint |
1133
+
1134
+ ### Server Configuration
1135
+
1136
+ | Variable | Required | Default | Description |
1137
+ |----------|----------|---------|-------------|
1138
+ | `PORT` | No | `3000` | HTTP server port |
1139
+ | `NODE_ENV` | No | `development` | Environment: `development`, `production`, `test` |
1140
+ | `MONGO_URI` or `MONGO_CONNECTION` | Yes | — | MongoDB connection string |
1141
+ | `ENABLE_SWAGGER` | No | — | Set to `"true"` to enable Swagger UI at `/docs` |
1142
+ | `WEBSOCKET_PORT` | No | `PORT + 1` | Socket.io server port (if using WebSockets) |
1143
+
1144
+ ### Logging & Monitoring
1145
+
1146
+ | Variable | Required | Default | Description |
1147
+ |----------|----------|---------|-------------|
1148
+ | `USE_SENTRY_LOGGING` | No | — | Set to `"true"` to enable Sentry error tracking |
1149
+ | `SENTRY_DSN` | No | — | Sentry Data Source Name (required if USE_SENTRY_LOGGING=true) |
1150
+ | `SENTRY_TRACES_SAMPLE_RATE` | No | `0.1` | Sentry trace sampling rate (0.0 to 1.0) |
1151
+ | `DISABLE_LOG_ALL_REQUESTS` | No | — | Set to `"true"` to disable request logging |
1152
+ | `SLOW_REQUEST_THRESHOLD_MS` | No | `3000` | Log warning for requests slower than this (milliseconds) |
1153
+ | `SLOW_DB_QUERY_THRESHOLD_MS` | No | `1000` | Log warning for database queries slower than this |
1154
+
1155
+ ### Webhooks & Notifications
1156
+
1157
+ | Variable | Required | Default | Description |
1158
+ |----------|----------|---------|-------------|
1159
+ | `SLACK_WEBHOOKS` | No | — | JSON object mapping names to Slack webhook URLs: `{"default":"https://..."}` |
1160
+ | `GOOGLE_CHAT_WEBHOOKS` | No | — | JSON object mapping names to Google Chat webhook URLs |
1161
+ | `ZOOM_CHAT_WEBHOOKS` | No | — | JSON object mapping names to Zoom webhook URLs |
1162
+ | `WEBHOOK_SECRET` | No | — | Secret for validating incoming webhook signatures |
1163
+
1164
+ ### Google Cloud Platform (Optional)
1165
+
1166
+ | Variable | Required | Default | Description |
1167
+ |----------|----------|---------|-------------|
1168
+ | `GCP_PROJECT` | No | — | Google Cloud project ID (for Cloud Tasks, etc.) |
1169
+ | `GCP_LOCATION` | No | — | GCP region (e.g., "us-central1") |
1170
+ | `GCP_SERVICE_ACCOUNT_EMAIL` | No | — | Service account email for authentication |
1171
+ | `GCP_TASKS_NOTIFICATIONS_QUEUE` | No | — | Cloud Tasks queue name for notifications |
1172
+ | `GCP_TASK_PROCESSOR_QUEUE` | No | — | Cloud Tasks queue name for background jobs |
1173
+
1174
+ ### Other
1175
+
1176
+ | Variable | Required | Default | Description |
1177
+ |----------|----------|---------|-------------|
1178
+ | `VALKEY_URL` | No | — | Valkey/Redis connection URL (for caching) |
1179
+ | `GEMINI_API_KEY` | No | — | Google Gemini API key (if using AI features) |
1180
+
1181
+ **Example `.env` file:**
1182
+
1183
+ ``````env
1184
+ # Required
1185
+ TOKEN_SECRET=your-long-random-secret-here
1186
+ TOKEN_ISSUER=my-app
1187
+ REFRESH_TOKEN_SECRET=different-long-random-secret
1188
+ SESSION_SECRET=session-secret-here
1189
+ MONGO_URI=mongodb://localhost:27017/myapp
1190
+
1191
+ # Optional
1192
+ NODE_ENV=development
1193
+ PORT=4000
1194
+ ENABLE_SWAGGER=true
1195
+ USE_SENTRY_LOGGING=true
1196
+ SENTRY_DSN=https://...@sentry.io/...
1197
+ ``````
1198
+
1199
+ ## Learn more
1200
+
1201
+ - [How to create a model](../how-to/create-a-model.md)
1202
+ - [Add GitHub OAuth](../how-to/add-github-oauth.md)
1203
+ - [Authentication architecture](../explanation/authentication.md)
1204
+ - [API package source](../../api/src/)
1205
+ - [AI assistant rules](./.cursor/rules/api/)