@terreno/mcp 0.23.0 → 0.23.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/docs/versioned/0.23.0/README.md +29 -0
- package/dist/docs/versioned/0.23.0/explanation/README.md +13 -0
- package/dist/docs/versioned/0.23.0/explanation/ai-workflows.md +270 -0
- package/dist/docs/versioned/0.23.0/explanation/authentication.md +438 -0
- package/dist/docs/versioned/0.23.0/explanation/configuration-system.md +428 -0
- package/dist/docs/versioned/0.23.0/explanation/dependency-management.md +192 -0
- package/dist/docs/versioned/0.23.0/explanation/gcp-hosting-architecture.md +319 -0
- package/dist/docs/versioned/0.23.0/explanation/model-router-actions.md +156 -0
- package/dist/docs/versioned/0.23.0/explanation/modular-api-design.md +228 -0
- package/dist/docs/versioned/0.23.0/how-to/README.md +20 -0
- package/dist/docs/versioned/0.23.0/how-to/add-feature-flags.md +115 -0
- package/dist/docs/versioned/0.23.0/how-to/add-github-oauth.md +316 -0
- package/dist/docs/versioned/0.23.0/how-to/configure-better-auth.md +296 -0
- package/dist/docs/versioned/0.23.0/how-to/create-a-model.md +165 -0
- package/dist/docs/versioned/0.23.0/how-to/deploy-to-gcp.md +244 -0
- package/dist/docs/versioned/0.23.0/how-to/upgrade-banner.md +172 -0
- package/dist/docs/versioned/0.23.0/how-to/websocket-integration.md +416 -0
- package/dist/docs/versioned/0.23.0/implementationPlans/IP_TEMPLATE.md +47 -0
- package/dist/docs/versioned/0.23.0/implementationPlans/ModularAPI.md +844 -0
- package/dist/docs/versioned/0.23.0/implementationPlans/PLAN_INDEX.md +21 -0
- package/dist/docs/versioned/0.23.0/implementationPlans/README.md +42 -0
- package/dist/docs/versioned/0.23.0/implementationPlans/admin-improvements.md +577 -0
- package/dist/docs/versioned/0.23.0/implementationPlans/admin-only-research.md +258 -0
- package/dist/docs/versioned/0.23.0/implementationPlans/admin-only.md +616 -0
- package/dist/docs/versioned/0.23.0/implementationPlans/admin-script-runner.md +107 -0
- package/dist/docs/versioned/0.23.0/implementationPlans/admin-ui-v2-django-parity.md +204 -0
- package/dist/docs/versioned/0.23.0/implementationPlans/consent-forms.md +417 -0
- package/dist/docs/versioned/0.23.0/implementationPlans/design-blend-skill.md +188 -0
- package/dist/docs/versioned/0.23.0/implementationPlans/docs-site-and-versioning.md +138 -0
- package/dist/docs/versioned/0.23.0/implementationPlans/feature-flags-openfeature.md +545 -0
- package/dist/docs/versioned/0.23.0/implementationPlans/feature-flags.md +310 -0
- package/dist/docs/versioned/0.23.0/implementationPlans/mcp-boost-parity.md +246 -0
- package/dist/docs/versioned/0.23.0/implementationPlans/model-router-actions.md +639 -0
- package/dist/docs/versioned/0.23.0/implementationPlans/model-router-mcp.md +186 -0
- package/dist/docs/versioned/0.23.0/implementationPlans/offline-mode.md +311 -0
- package/dist/docs/versioned/0.23.0/implementationPlans/syncdb-local-first.md +591 -0
- package/dist/docs/versioned/0.23.0/implementationPlans/terreno-langfuse-integration.md +145 -0
- package/dist/docs/versioned/0.23.0/implementationPlans/upgrade-banner.md +275 -0
- package/dist/docs/versioned/0.23.0/reference/README.md +22 -0
- package/dist/docs/versioned/0.23.0/reference/admin-backend.md +122 -0
- package/dist/docs/versioned/0.23.0/reference/admin-frontend.md +205 -0
- package/dist/docs/versioned/0.23.0/reference/api-health.md +81 -0
- package/dist/docs/versioned/0.23.0/reference/api.md +1205 -0
- package/dist/docs/versioned/0.23.0/reference/components/README.mdx +65 -0
- package/dist/docs/versioned/0.23.0/reference/components/accordion.mdx +37 -0
- package/dist/docs/versioned/0.23.0/reference/components/addressfield.mdx +26 -0
- package/dist/docs/versioned/0.23.0/reference/components/ai-suggestion-box.mdx +26 -0
- package/dist/docs/versioned/0.23.0/reference/components/avatar.mdx +35 -0
- package/dist/docs/versioned/0.23.0/reference/components/badge.mdx +38 -0
- package/dist/docs/versioned/0.23.0/reference/components/banner.mdx +26 -0
- package/dist/docs/versioned/0.23.0/reference/components/boolean-field.mdx +36 -0
- package/dist/docs/versioned/0.23.0/reference/components/box.mdx +26 -0
- package/dist/docs/versioned/0.23.0/reference/components/button.mdx +44 -0
- package/dist/docs/versioned/0.23.0/reference/components/card.mdx +26 -0
- package/dist/docs/versioned/0.23.0/reference/components/checkbox.mdx +30 -0
- package/dist/docs/versioned/0.23.0/reference/components/consentformscreen.mdx +26 -0
- package/dist/docs/versioned/0.23.0/reference/components/custom-select-field.mdx +36 -0
- package/dist/docs/versioned/0.23.0/reference/components/datatable.mdx +44 -0
- package/dist/docs/versioned/0.23.0/reference/components/date-time-field.mdx +49 -0
- package/dist/docs/versioned/0.23.0/reference/components/email-field.mdx +43 -0
- package/dist/docs/versioned/0.23.0/reference/components/emoji-selector.mdx +26 -0
- package/dist/docs/versioned/0.23.0/reference/components/field.mdx +26 -0
- package/dist/docs/versioned/0.23.0/reference/components/height-field.mdx +45 -0
- package/dist/docs/versioned/0.23.0/reference/components/icon.mdx +31 -0
- package/dist/docs/versioned/0.23.0/reference/components/iconbutton.mdx +42 -0
- package/dist/docs/versioned/0.23.0/reference/components/inner-modal-content.mdx +41 -0
- package/dist/docs/versioned/0.23.0/reference/components/markdown-editor-field.mdx +50 -0
- package/dist/docs/versioned/0.23.0/reference/components/markdownview.mdx +37 -0
- package/dist/docs/versioned/0.23.0/reference/components/multiselect-field.mdx +36 -0
- package/dist/docs/versioned/0.23.0/reference/components/number-field.mdx +46 -0
- package/dist/docs/versioned/0.23.0/reference/components/page.mdx +46 -0
- package/dist/docs/versioned/0.23.0/reference/components/pagination.mdx +30 -0
- package/dist/docs/versioned/0.23.0/reference/components/password-field.mdx +26 -0
- package/dist/docs/versioned/0.23.0/reference/components/phone-number-field.mdx +44 -0
- package/dist/docs/versioned/0.23.0/reference/components/radio-field.mdx +31 -0
- package/dist/docs/versioned/0.23.0/reference/components/sectiondivider.mdx +26 -0
- package/dist/docs/versioned/0.23.0/reference/components/segmented-control.mdx +34 -0
- package/dist/docs/versioned/0.23.0/reference/components/select-field.mdx +26 -0
- package/dist/docs/versioned/0.23.0/reference/components/selectbadge.mdx +35 -0
- package/dist/docs/versioned/0.23.0/reference/components/side-drawer.mdx +34 -0
- package/dist/docs/versioned/0.23.0/reference/components/sidebar-navigation-non-expo.mdx +35 -0
- package/dist/docs/versioned/0.23.0/reference/components/signature-field.mdx +35 -0
- package/dist/docs/versioned/0.23.0/reference/components/slider.mdx +43 -0
- package/dist/docs/versioned/0.23.0/reference/components/spinner.mdx +29 -0
- package/dist/docs/versioned/0.23.0/reference/components/table-badge.mdx +32 -0
- package/dist/docs/versioned/0.23.0/reference/components/table-boolean.mdx +29 -0
- package/dist/docs/versioned/0.23.0/reference/components/table-date.mdx +30 -0
- package/dist/docs/versioned/0.23.0/reference/components/table-icon-button.mdx +28 -0
- package/dist/docs/versioned/0.23.0/reference/components/table-number.mdx +30 -0
- package/dist/docs/versioned/0.23.0/reference/components/table-text.mdx +30 -0
- package/dist/docs/versioned/0.23.0/reference/components/table-title.mdx +28 -0
- package/dist/docs/versioned/0.23.0/reference/components/table.mdx +38 -0
- package/dist/docs/versioned/0.23.0/reference/components/tap-to-edit.mdx +26 -0
- package/dist/docs/versioned/0.23.0/reference/components/text-area.mdx +50 -0
- package/dist/docs/versioned/0.23.0/reference/components/text-field.mdx +52 -0
- package/dist/docs/versioned/0.23.0/reference/components/theme.mdx +26 -0
- package/dist/docs/versioned/0.23.0/reference/components/toast.mdx +26 -0
- package/dist/docs/versioned/0.23.0/reference/components/tooltip.mdx +30 -0
- package/dist/docs/versioned/0.23.0/reference/components/userinactivity.mdx +32 -0
- package/dist/docs/versioned/0.23.0/reference/environment-variables.md +382 -0
- package/dist/docs/versioned/0.23.0/reference/feature-flags.md +304 -0
- package/dist/docs/versioned/0.23.0/reference/generated/README.md +17 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/README.md +282 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/classes/APIError.md +96 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/classes/BetterAuthApp.md +84 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/classes/CachingSecretProvider.md +118 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/classes/CompositeSecretProvider.md +79 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/classes/ConfigurationApp.md +94 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/classes/ConsentApp.md +74 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/classes/DateOnly.md +123 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/classes/EnvSecretProvider.md +64 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/classes/GcpSecretProvider.md +76 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/classes/OpenApiMiddlewareBuilder.md +577 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/classes/RealtimeApp.md +112 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/classes/TaskCancelledError.md +23 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/classes/TerrenoApp.md +262 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/classes/VersionCheckPlugin.md +43 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/functions/AdminOwnerTransformer.md +47 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/functions/OwnerQueryFilter.md +11 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/functions/addAuthRoutes.md +19 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/functions/addGitHubAuthRoutes.md +31 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/functions/addMeRoutes.md +19 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/functions/addPopulateToQuery.md +15 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/functions/addQuerySubscription.md +26 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/functions/apiErrorMiddleware.md +23 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/functions/apiFallthroughErrorMiddleware.md +26 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/functions/apiUnauthorizedMiddleware.md +23 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/functions/applyRequestContextToSentry.md +11 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/functions/assertNoActionCollisions.md +21 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/functions/asyncHandler.md +15 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/functions/authenticateMiddleware.md +11 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/functions/baseUserPlugin.md +11 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/functions/buildQuerySchemaFromFields.md +30 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/functions/checkModelsStrict.md +21 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/functions/checkPermissions.md +29 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/functions/clearQueryStore.md +7 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/functions/clearRealtimeRegistry.md +7 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/functions/computeQueryId.md +18 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/functions/configurationPlugin.md +48 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/functions/configureOpenApiValidator.md +28 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/functions/createActionOpenApiMiddleware.md +35 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/functions/createBetterAuth.md +13 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/functions/createBetterAuthSessionMiddleware.md +18 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/functions/createFeatureFlaggedLogger.md +53 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/functions/createModelValidators.md +74 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/functions/createOpenApiBuilder.md +39 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/functions/createRouter.md +19 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/functions/createRouterWithAuth.md +19 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/functions/createScopedLogger.md +53 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/functions/createScriptArgs.md +33 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/functions/createValidator.md +29 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/functions/createdUpdatedPlugin.md +11 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/functions/cronjob.md +19 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/functions/defaultResponseHandler.md +32 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/functions/defineCollectionAction.md +25 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/functions/defineInstanceAction.md +29 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/functions/envConfigurationPlugin.md +11 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/functions/errorMessage.md +13 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/functions/errorStack.md +13 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/functions/errorsPlugin.md +11 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/functions/findExactlyOne.md +25 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/functions/findOneOrNone.md +24 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/functions/findOneOrNoneFor.md +37 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/functions/findRegistryEntryByCollection.md +13 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/functions/findRegistryEntryByRoutePath.md +13 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/functions/firebaseJWTPlugin.md +11 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/functions/fixMixedFields.md +21 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/functions/flattenToDotPaths.md +24 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/functions/formatLogContextSuffix.md +17 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/functions/generateTokens.md +35 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/functions/getAPIErrorBody.md +11 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/functions/getBetterAuthSession.md +13 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/functions/getCurrentLogContext.md +9 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/functions/getCurrentRequestContext.md +8 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/functions/getCurrentRequestContextAttributes.md +15 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/functions/getDisableExternalErrorTracking.md +15 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/functions/getMongoClientFromMongoose.md +7 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/functions/getOpenApiSpecForModel.md +29 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/functions/getOpenApiValidatorConfig.md +7 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/functions/getQuerySubscriptionsForCollection.md +14 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/functions/getRealtimeRegistry.md +7 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/functions/getRequestContextFromAttributes.md +11 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/functions/getSchemaFromModel.md +25 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/functions/getSessionIdFromJwtPayload.md +11 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/functions/githubUserPlugin.md +22 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/functions/hasBetterAuthSession.md +13 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/functions/installRealtimeSocketHandlers.md +27 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/functions/isAPIError.md +11 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/functions/isDeletedPlugin.md +15 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/functions/isDisabledPlugin.md +15 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/functions/isOpenApiValidatorConfigured.md +8 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/functions/isValidObjectId.md +11 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/functions/jsonResponseRequestIdMiddleware.md +24 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/functions/logRequests.md +19 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/functions/matchesQuery.md +23 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/functions/modelRouter.md +83 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/functions/mongooseErrorToAPIError.md +13 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/functions/mountBetterAuthRoutes.md +21 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/functions/openApiCompatMiddleware.md +22 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/functions/openApiEtagMiddleware.md +23 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/functions/parseScriptArgs.md +35 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/functions/patchAppUse.md +17 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/functions/permissionMiddleware.md +21 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/functions/registerActionRoutes.md +25 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/functions/registerRealtime.md +14 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/functions/removeAllSocketQueries.md +13 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/functions/removeQuerySubscription.md +17 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/functions/requestContextMiddleware.md +26 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/functions/resetOpenApiValidatorConfig.md +9 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/functions/runActionPermissions.md +33 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/functions/runWithRequestContext.md +38 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/functions/runWithRequestContextAttributes.md +25 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/functions/sendToGoogleChat.md +25 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/functions/sendToSlack.md +29 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/functions/sendToZoom.md +67 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/functions/sentryAppVersionMiddleware.md +26 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/functions/serialize.md +25 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/functions/setRequestContext.md +11 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/functions/setupAuth.md +15 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/functions/setupBetterAuthUserSync.md +21 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/functions/setupEnvironment.md +5 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/functions/setupGitHubAuth.md +22 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/functions/setupLogging.md +11 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/functions/signupUser.md +23 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/functions/startChangeStreamWatcher.md +21 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/functions/stopChangeStreamWatcher.md +7 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/functions/syncBetterAuthUser.md +19 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/functions/syncConsents.md +45 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/functions/timeout.md +11 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/functions/transform.md +29 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/functions/unpopulate.md +21 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/functions/updateRequestContextFromRequest.md +15 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/functions/upsertPlugin.md +23 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/functions/validateActionRequest.md +35 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/functions/validateModelRequestBody.md +30 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/functions/validateQueryParams.md +23 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/functions/validateRequestBody.md +26 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/functions/validateResponseData.md +32 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/functions/wrapActionResponse.md +19 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/functions/wrapScript.md +15 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/interfaces/APIErrorConstructor.md +93 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/interfaces/ActionContext.md +49 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/interfaces/AsyncHandlerOptions.md +32 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/interfaces/AuthOptions.md +47 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/interfaces/BackgroundTaskDocument.md +141 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/interfaces/BackgroundTaskMethods.md +55 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/interfaces/BackgroundTaskModel.md +51 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/interfaces/BackgroundTaskStatics.md +19 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/interfaces/BaseUser.md +11 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/interfaces/BetterAuthAppOptions.md +11 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/interfaces/BetterAuthConfig.md +74 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/interfaces/BetterAuthOAuthProvider.md +13 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/interfaces/BetterAuthSession.md +43 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/interfaces/BetterAuthSessionData.md +13 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/interfaces/BetterAuthUser.md +43 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/interfaces/CachingSecretProviderOptions.md +9 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/interfaces/ChangeStreamConfig.md +41 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/interfaces/CollectionActionConfig.md +123 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/interfaces/ConfigRegistration.md +23 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/interfaces/ConfigurationAppOptions.md +51 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/interfaces/ConfigurationMetaResponse.md +7 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/interfaces/ConfigurationModel.md +166 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/interfaces/ConfigurationPermissions.md +45 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/interfaces/ConfigurationPluginOptions.md +30 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/interfaces/ConfigurationStatics.md +107 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/interfaces/ConsentAppOptions.md +85 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/interfaces/ConsentFormCheckbox.md +17 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/interfaces/ConsentFormDefinition.md +83 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/interfaces/ConsentFormDocument.md +123 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/interfaces/ConsentFormModel.md +79 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/interfaces/ConsentFormStatics.md +55 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/interfaces/ConsentResponseDocument.md +105 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/interfaces/ConsentResponseMethods.md +1 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/interfaces/ConsentResponseModel.md +79 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/interfaces/ConsentResponseStatics.md +55 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/interfaces/CreateBetterAuthOptions.md +17 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/interfaces/CreateFeatureFlaggedLoggerOptions.md +29 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/interfaces/CreateScopedLoggerOptions.md +18 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/interfaces/CreateValidatorOptions.md +25 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/interfaces/CreatedDeleted.md +27 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/interfaces/DocumentSubscription.md +17 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/interfaces/FindExactlyOnePlugin.md +30 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/interfaces/FindOneOrNonePlugin.md +30 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/interfaces/GcpSecretProviderOptions.md +9 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/interfaces/GenerateTokensOptions.md +5 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/interfaces/GitHubAuthOptions.md +74 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/interfaces/GitHubUserFields.md +33 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/interfaces/HasUpsert.md +27 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/interfaces/InstanceActionConfig.md +127 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/interfaces/IsDeleted.md +7 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/interfaces/JSONArray.md +7 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/interfaces/JSONObject.md +3 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/interfaces/JwtSessionPayload.md +19 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/interfaces/LogContextFields.md +41 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/interfaces/LoggingOptions.md +73 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/interfaces/ModelRouterOptions.md +524 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/interfaces/ModelRouterRegistration.md +33 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/interfaces/ModelRouterValidationOptions.md +89 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/interfaces/MongoClientLike.md +11 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/interfaces/OpenApiBuildResult.md +34 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/interfaces/OpenApiMiddleware.md +98 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/interfaces/OpenApiParameter.md +66 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/interfaces/OpenApiResponse.md +43 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/interfaces/OpenApiSchema.md +62 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/interfaces/OpenApiSchemaProperty.md +89 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/interfaces/OpenApiValidatorConfig.md +94 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/interfaces/PopulatePath.md +17 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/interfaces/QuerySubscription.md +25 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/interfaces/QueryValidatorOptions.md +31 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/interfaces/RESTPermissions.md +35 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/interfaces/RealtimeAppOptions.md +62 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/interfaces/RealtimeConfig.md +44 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/interfaces/RealtimeEvent.md +57 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/interfaces/RealtimeRegistryEntry.md +41 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/interfaces/RealtimeSocketLike.md +94 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/interfaces/RequestBodyValidatorOptions.md +71 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/interfaces/RequestContext.md +59 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/interfaces/ScopedLogger.md +100 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/interfaces/ScriptArgDef.md +60 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/interfaces/ScriptArgs.md +121 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/interfaces/ScriptContext.md +67 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/interfaces/ScriptResult.md +11 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/interfaces/SecretFieldMeta.md +29 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/interfaces/SecretProvider.md +35 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/interfaces/SyncConsentsOptions.md +15 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/interfaces/SyncConsentsResult.md +23 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/interfaces/TerrenoAppOptions.md +112 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/interfaces/TerrenoPlugin.md +78 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/interfaces/TerrenoRequestLogEntry.md +13 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/interfaces/TerrenoTransformer.md +49 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/interfaces/User.md +26 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/interfaces/UserModel.md +113 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/interfaces/VersionCheckResponse.md +37 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/interfaces/VersionConfigDocument.md +65 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/interfaces/VersionConfigModel.md +51 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/interfaces/WrapScriptOptions.md +27 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/type-aliases/AddRoutes.md +15 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/type-aliases/AuthProvider.md +5 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/type-aliases/BetterAuthInstance.md +3 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/type-aliases/ConfigType.md +1 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/type-aliases/ConfigurationPostUpdateHook.md +24 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/type-aliases/ConfigurationPreUpdateHook.md +20 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/type-aliases/ConsentFormMethods.md +1 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/type-aliases/ConsentFormType.md +1 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/type-aliases/DeepPartial.md +9 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/type-aliases/GooseRESTOptions.md +7 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/type-aliases/JSONPrimitive.md +1 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/type-aliases/JSONValue.md +1 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/type-aliases/PathValue.md +19 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/type-aliases/Paths.md +15 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/type-aliases/PermissionMethod.md +25 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/type-aliases/RESTMethod.md +17 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/type-aliases/RequestContextAttributes.md +1 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/type-aliases/ScriptArgValue.md +3 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/type-aliases/ScriptRunner.md +15 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/type-aliases/VersionCheckStatus.md +1 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/variables/ACTION_NAME_PATTERN.md +1 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/variables/BackgroundTask.md +1 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/variables/Config.md +244 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/variables/ConsentForm.md +1 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/variables/ConsentResponse.md +1 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/variables/MAX_DOCUMENT_SUBSCRIPTIONS.md +1 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/variables/MAX_MODEL_SUBSCRIPTIONS.md +4 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/variables/MAX_QUERY_SUBSCRIPTIONS.md +1 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/variables/Permissions.md +109 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/variables/REQUEST_CONTEXT_ATTRIBUTE_NAMES.md +39 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/variables/VersionConfig.md +1 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/variables/consentResponsePopulatePaths.md +3 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/variables/gooseRestRouter.md +85 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/variables/logger.md +109 -0
- package/dist/docs/versioned/0.23.0/reference/generated/api/variables/winstonLogger.md +1 -0
- package/dist/docs/versioned/0.23.0/reference/generated/rtk/README.md +126 -0
- package/dist/docs/versioned/0.23.0/reference/generated/rtk/functions/buildOptimisticCreateItem.md +17 -0
- package/dist/docs/versioned/0.23.0/reference/generated/rtk/functions/configureOfflineMutationEndpoints.md +13 -0
- package/dist/docs/versioned/0.23.0/reference/generated/rtk/functions/createBetterAuthClient.md +30 -0
- package/dist/docs/versioned/0.23.0/reference/generated/rtk/functions/createOfflineMiddleware.md +41 -0
- package/dist/docs/versioned/0.23.0/reference/generated/rtk/functions/createSessionApi.md +21 -0
- package/dist/docs/versioned/0.23.0/reference/generated/rtk/functions/createStorageAdapter.md +17 -0
- package/dist/docs/versioned/0.23.0/reference/generated/rtk/functions/generateAuthSlice.md +35 -0
- package/dist/docs/versioned/0.23.0/reference/generated/rtk/functions/generateBetterAuthSlice.md +87 -0
- package/dist/docs/versioned/0.23.0/reference/generated/rtk/functions/generateProfileEndpoints.md +35 -0
- package/dist/docs/versioned/0.23.0/reference/generated/rtk/functions/generateTags.md +15 -0
- package/dist/docs/versioned/0.23.0/reference/generated/rtk/functions/getAuthToken.md +5 -0
- package/dist/docs/versioned/0.23.0/reference/generated/rtk/functions/getBaseQuery.md +23 -0
- package/dist/docs/versioned/0.23.0/reference/generated/rtk/functions/getFriendlyExpirationInfo.md +5 -0
- package/dist/docs/versioned/0.23.0/reference/generated/rtk/functions/getRealtimeSocket.md +7 -0
- package/dist/docs/versioned/0.23.0/reference/generated/rtk/functions/getTokenExpirationTimes.md +5 -0
- package/dist/docs/versioned/0.23.0/reference/generated/rtk/functions/isNetworkFetchError.md +14 -0
- package/dist/docs/versioned/0.23.0/reference/generated/rtk/functions/isWebsocketsDebugEnabled.md +5 -0
- package/dist/docs/versioned/0.23.0/reference/generated/rtk/functions/logAuth.md +11 -0
- package/dist/docs/versioned/0.23.0/reference/generated/rtk/functions/logSocket.md +15 -0
- package/dist/docs/versioned/0.23.0/reference/generated/rtk/functions/populateId.md +23 -0
- package/dist/docs/versioned/0.23.0/reference/generated/rtk/functions/realtimeDocument.md +37 -0
- package/dist/docs/versioned/0.23.0/reference/generated/rtk/functions/realtimeList.md +43 -0
- package/dist/docs/versioned/0.23.0/reference/generated/rtk/functions/refreshAuthToken.md +5 -0
- package/dist/docs/versioned/0.23.0/reference/generated/rtk/functions/registerTerrenoDevStore.md +14 -0
- package/dist/docs/versioned/0.23.0/reference/generated/rtk/functions/resolveBaseUrls.md +28 -0
- package/dist/docs/versioned/0.23.0/reference/generated/rtk/functions/resolveFeatureFlagsOptions.md +14 -0
- package/dist/docs/versioned/0.23.0/reference/generated/rtk/functions/selectBetterAuthError.md +13 -0
- package/dist/docs/versioned/0.23.0/reference/generated/rtk/functions/selectBetterAuthIsAuthenticated.md +13 -0
- package/dist/docs/versioned/0.23.0/reference/generated/rtk/functions/selectBetterAuthIsLoading.md +13 -0
- package/dist/docs/versioned/0.23.0/reference/generated/rtk/functions/selectBetterAuthState.md +13 -0
- package/dist/docs/versioned/0.23.0/reference/generated/rtk/functions/selectBetterAuthUser.md +13 -0
- package/dist/docs/versioned/0.23.0/reference/generated/rtk/functions/selectBetterAuthUserId.md +13 -0
- package/dist/docs/versioned/0.23.0/reference/generated/rtk/functions/selectConflicts.md +13 -0
- package/dist/docs/versioned/0.23.0/reference/generated/rtk/functions/selectCurrentUserId.md +11 -0
- package/dist/docs/versioned/0.23.0/reference/generated/rtk/functions/selectIsAuthenticating.md +11 -0
- package/dist/docs/versioned/0.23.0/reference/generated/rtk/functions/selectIsOnline.md +13 -0
- package/dist/docs/versioned/0.23.0/reference/generated/rtk/functions/selectIsOnlineSafe.md +15 -0
- package/dist/docs/versioned/0.23.0/reference/generated/rtk/functions/selectIsSyncing.md +13 -0
- package/dist/docs/versioned/0.23.0/reference/generated/rtk/functions/selectLastTokenRefreshTimestamp.md +11 -0
- package/dist/docs/versioned/0.23.0/reference/generated/rtk/functions/selectOfflineQueue.md +13 -0
- package/dist/docs/versioned/0.23.0/reference/generated/rtk/functions/selectQueueLength.md +13 -0
- package/dist/docs/versioned/0.23.0/reference/generated/rtk/functions/setRealtimeDebug.md +13 -0
- package/dist/docs/versioned/0.23.0/reference/generated/rtk/functions/setRealtimeSocket.md +27 -0
- package/dist/docs/versioned/0.23.0/reference/generated/rtk/functions/shouldDeferOfflineMutation.md +18 -0
- package/dist/docs/versioned/0.23.0/reference/generated/rtk/functions/shouldReplayQueuedMutation.md +18 -0
- package/dist/docs/versioned/0.23.0/reference/generated/rtk/functions/shouldShowStillThereModal.md +5 -0
- package/dist/docs/versioned/0.23.0/reference/generated/rtk/functions/useFeatureFlags.md +15 -0
- package/dist/docs/versioned/0.23.0/reference/generated/rtk/functions/useOfflineStatus.md +16 -0
- package/dist/docs/versioned/0.23.0/reference/generated/rtk/functions/useRealtimeDebug.md +18 -0
- package/dist/docs/versioned/0.23.0/reference/generated/rtk/functions/useSelectCurrentUserId.md +5 -0
- package/dist/docs/versioned/0.23.0/reference/generated/rtk/functions/useSelectIsAuthenticating.md +5 -0
- package/dist/docs/versioned/0.23.0/reference/generated/rtk/functions/useServerStatus.md +26 -0
- package/dist/docs/versioned/0.23.0/reference/generated/rtk/functions/useSocketConnection.md +19 -0
- package/dist/docs/versioned/0.23.0/reference/generated/rtk/functions/useSyncConnection.md +32 -0
- package/dist/docs/versioned/0.23.0/reference/generated/rtk/functions/useTerrenoFeatureFlags.md +19 -0
- package/dist/docs/versioned/0.23.0/reference/generated/rtk/functions/useUpgradeCheck.md +30 -0
- package/dist/docs/versioned/0.23.0/reference/generated/rtk/interfaces/BaseUrls.md +17 -0
- package/dist/docs/versioned/0.23.0/reference/generated/rtk/interfaces/BetterAuthClientConfig.md +31 -0
- package/dist/docs/versioned/0.23.0/reference/generated/rtk/interfaces/BetterAuthClientInterface.md +23 -0
- package/dist/docs/versioned/0.23.0/reference/generated/rtk/interfaces/BetterAuthSession.md +43 -0
- package/dist/docs/versioned/0.23.0/reference/generated/rtk/interfaces/BetterAuthSessionData.md +13 -0
- package/dist/docs/versioned/0.23.0/reference/generated/rtk/interfaces/BetterAuthState.md +49 -0
- package/dist/docs/versioned/0.23.0/reference/generated/rtk/interfaces/BetterAuthUser.md +43 -0
- package/dist/docs/versioned/0.23.0/reference/generated/rtk/interfaces/ConflictRecord.md +47 -0
- package/dist/docs/versioned/0.23.0/reference/generated/rtk/interfaces/EmailSignupRequest.md +15 -0
- package/dist/docs/versioned/0.23.0/reference/generated/rtk/interfaces/ExpoConstantsShape.md +29 -0
- package/dist/docs/versioned/0.23.0/reference/generated/rtk/interfaces/GenerateBetterAuthSliceConfig.md +23 -0
- package/dist/docs/versioned/0.23.0/reference/generated/rtk/interfaces/GoogleLoginRequest.md +5 -0
- package/dist/docs/versioned/0.23.0/reference/generated/rtk/interfaces/ListResponse.md +35 -0
- package/dist/docs/versioned/0.23.0/reference/generated/rtk/interfaces/OfflineMiddlewareConfig.md +15 -0
- package/dist/docs/versioned/0.23.0/reference/generated/rtk/interfaces/OfflineState.md +23 -0
- package/dist/docs/versioned/0.23.0/reference/generated/rtk/interfaces/OfflineStatus.md +87 -0
- package/dist/docs/versioned/0.23.0/reference/generated/rtk/interfaces/QueuedMutation.md +55 -0
- package/dist/docs/versioned/0.23.0/reference/generated/rtk/interfaces/RealtimeEvent.md +58 -0
- package/dist/docs/versioned/0.23.0/reference/generated/rtk/interfaces/ResetPasswordRequest.md +15 -0
- package/dist/docs/versioned/0.23.0/reference/generated/rtk/interfaces/ServerStatusOptions.md +31 -0
- package/dist/docs/versioned/0.23.0/reference/generated/rtk/interfaces/SocketConnection.md +11 -0
- package/dist/docs/versioned/0.23.0/reference/generated/rtk/interfaces/StorageAdapter.md +53 -0
- package/dist/docs/versioned/0.23.0/reference/generated/rtk/interfaces/TerrenoFlagDefinition.md +19 -0
- package/dist/docs/versioned/0.23.0/reference/generated/rtk/interfaces/UseFeatureFlagsOptions.md +50 -0
- package/dist/docs/versioned/0.23.0/reference/generated/rtk/interfaces/UseSocketConnectionOptions.md +87 -0
- package/dist/docs/versioned/0.23.0/reference/generated/rtk/interfaces/UseTerrenoFeatureFlagsOptions.md +41 -0
- package/dist/docs/versioned/0.23.0/reference/generated/rtk/interfaces/UseTerrenoFeatureFlagsResult.md +33 -0
- package/dist/docs/versioned/0.23.0/reference/generated/rtk/interfaces/UserResponse.md +17 -0
- package/dist/docs/versioned/0.23.0/reference/generated/rtk/interfaces/VersionCheckResponse.md +39 -0
- package/dist/docs/versioned/0.23.0/reference/generated/rtk/type-aliases/BetterAuthClient.md +3 -0
- package/dist/docs/versioned/0.23.0/reference/generated/rtk/type-aliases/BetterAuthOAuthProvider.md +3 -0
- package/dist/docs/versioned/0.23.0/reference/generated/rtk/type-aliases/BetterAuthSlice.md +3 -0
- package/dist/docs/versioned/0.23.0/reference/generated/rtk/type-aliases/EmailLoginRequest.md +1 -0
- package/dist/docs/versioned/0.23.0/reference/generated/rtk/type-aliases/RootState.md +1 -0
- package/dist/docs/versioned/0.23.0/reference/generated/rtk/type-aliases/ServerStatus.md +1 -0
- package/dist/docs/versioned/0.23.0/reference/generated/rtk/type-aliases/TerrenoFlagConfiguration.md +1 -0
- package/dist/docs/versioned/0.23.0/reference/generated/rtk/variables/AUTH_DEBUG.md +1 -0
- package/dist/docs/versioned/0.23.0/reference/generated/rtk/variables/IsWeb.md +1 -0
- package/dist/docs/versioned/0.23.0/reference/generated/rtk/variables/LOGOUT_ACTION_TYPE.md +1 -0
- package/dist/docs/versioned/0.23.0/reference/generated/rtk/variables/SAME_ORIGIN_SENTINEL.md +5 -0
- package/dist/docs/versioned/0.23.0/reference/generated/rtk/variables/TOKEN_REFRESHED_SUCCESS.md +1 -0
- package/dist/docs/versioned/0.23.0/reference/generated/rtk/variables/addConflict.md +1 -0
- package/dist/docs/versioned/0.23.0/reference/generated/rtk/variables/baseTasksUrl.md +1 -0
- package/dist/docs/versioned/0.23.0/reference/generated/rtk/variables/baseUrl.md +1 -0
- package/dist/docs/versioned/0.23.0/reference/generated/rtk/variables/baseWebsocketsUrl.md +1 -0
- package/dist/docs/versioned/0.23.0/reference/generated/rtk/variables/clearConflicts.md +1 -0
- package/dist/docs/versioned/0.23.0/reference/generated/rtk/variables/clearQueue.md +1 -0
- package/dist/docs/versioned/0.23.0/reference/generated/rtk/variables/dequeue.md +1 -0
- package/dist/docs/versioned/0.23.0/reference/generated/rtk/variables/dismissConflict.md +1 -0
- package/dist/docs/versioned/0.23.0/reference/generated/rtk/variables/emptySplitApi.md +1 -0
- package/dist/docs/versioned/0.23.0/reference/generated/rtk/variables/enqueue.md +1 -0
- package/dist/docs/versioned/0.23.0/reference/generated/rtk/variables/offlineReducer.md +1 -0
- package/dist/docs/versioned/0.23.0/reference/generated/rtk/variables/offlineSlice.md +1 -0
- package/dist/docs/versioned/0.23.0/reference/generated/rtk/variables/selectUndismissedConflicts.md +1 -0
- package/dist/docs/versioned/0.23.0/reference/generated/rtk/variables/setOnlineStatus.md +1 -0
- package/dist/docs/versioned/0.23.0/reference/generated/rtk/variables/setSyncing.md +1 -0
- package/dist/docs/versioned/0.23.0/reference/generated/rtk/variables/staggeredBaseQuery.md +1 -0
- package/dist/docs/versioned/0.23.0/reference/generated/rtk/variables/useGetVersionCheckQuery.md +1 -0
- package/dist/docs/versioned/0.23.0/reference/generated/rtk/variables/useLazyGetVersionCheckQuery.md +1 -0
- package/dist/docs/versioned/0.23.0/reference/mcp-server.md +586 -0
- package/dist/docs/versioned/0.23.0/reference/rtk.md +439 -0
- package/dist/docs/versioned/0.23.0/reference/ui.md +418 -0
- package/dist/docs/versioned/0.23.0/tasks/admin-improvements.md +429 -0
- package/dist/docs/versioned/0.23.0/tasks/admin-only.md +221 -0
- package/dist/docs/versioned/0.23.0/tasks/admin-script-runner.md +50 -0
- package/dist/docs/versioned/0.23.0/tasks/admin-ui-v2-django-parity.md +135 -0
- package/dist/docs/versioned/0.23.0/tasks/consent-forms.md +193 -0
- package/dist/docs/versioned/0.23.0/tasks/design-blend-skill.md +147 -0
- package/dist/docs/versioned/0.23.0/tasks/feature-flags-openfeature.md +77 -0
- package/dist/docs/versioned/0.23.0/tasks/feature-flags.md +23 -0
- package/dist/docs/versioned/0.23.0/tasks/model-router-actions.md +46 -0
- package/dist/docs/versioned/0.23.0/tasks/model-router-mcp.md +105 -0
- package/dist/docs/versioned/0.23.0/tasks/offline-mode.md +139 -0
- package/dist/docs/versioned/0.23.0/tasks/syncdb-local-first.md +117 -0
- package/dist/docs/versioned/0.23.0/tasks/upgrade-banner.md +73 -0
- package/dist/docs/versioned/0.23.0/tutorials/README.md +7 -0
- package/dist/docs/versioned/0.23.0/tutorials/getting-started.md +44 -0
- package/dist/docs/versioned/next/reference/environment-variables.md +7 -3
- package/dist/docs/versioned/next/reference/rtk.md +11 -4
- package/package.json +3 -3
- package/src/docs/versioned/0.23.0/README.md +29 -0
- package/src/docs/versioned/0.23.0/explanation/README.md +13 -0
- package/src/docs/versioned/0.23.0/explanation/ai-workflows.md +270 -0
- package/src/docs/versioned/0.23.0/explanation/authentication.md +438 -0
- package/src/docs/versioned/0.23.0/explanation/configuration-system.md +428 -0
- package/src/docs/versioned/0.23.0/explanation/dependency-management.md +192 -0
- package/src/docs/versioned/0.23.0/explanation/gcp-hosting-architecture.md +319 -0
- package/src/docs/versioned/0.23.0/explanation/model-router-actions.md +156 -0
- package/src/docs/versioned/0.23.0/explanation/modular-api-design.md +228 -0
- package/src/docs/versioned/0.23.0/how-to/README.md +20 -0
- package/src/docs/versioned/0.23.0/how-to/add-feature-flags.md +115 -0
- package/src/docs/versioned/0.23.0/how-to/add-github-oauth.md +316 -0
- package/src/docs/versioned/0.23.0/how-to/configure-better-auth.md +296 -0
- package/src/docs/versioned/0.23.0/how-to/create-a-model.md +165 -0
- package/src/docs/versioned/0.23.0/how-to/deploy-to-gcp.md +244 -0
- package/src/docs/versioned/0.23.0/how-to/upgrade-banner.md +172 -0
- package/src/docs/versioned/0.23.0/how-to/websocket-integration.md +416 -0
- package/src/docs/versioned/0.23.0/implementationPlans/IP_TEMPLATE.md +47 -0
- package/src/docs/versioned/0.23.0/implementationPlans/ModularAPI.md +844 -0
- package/src/docs/versioned/0.23.0/implementationPlans/PLAN_INDEX.md +21 -0
- package/src/docs/versioned/0.23.0/implementationPlans/README.md +42 -0
- package/src/docs/versioned/0.23.0/implementationPlans/admin-improvements.md +577 -0
- package/src/docs/versioned/0.23.0/implementationPlans/admin-only-research.md +258 -0
- package/src/docs/versioned/0.23.0/implementationPlans/admin-only.md +616 -0
- package/src/docs/versioned/0.23.0/implementationPlans/admin-script-runner.md +107 -0
- package/src/docs/versioned/0.23.0/implementationPlans/admin-ui-v2-django-parity.md +204 -0
- package/src/docs/versioned/0.23.0/implementationPlans/consent-forms.md +417 -0
- package/src/docs/versioned/0.23.0/implementationPlans/design-blend-skill.md +188 -0
- package/src/docs/versioned/0.23.0/implementationPlans/docs-site-and-versioning.md +138 -0
- package/src/docs/versioned/0.23.0/implementationPlans/feature-flags-openfeature.md +545 -0
- package/src/docs/versioned/0.23.0/implementationPlans/feature-flags.md +310 -0
- package/src/docs/versioned/0.23.0/implementationPlans/mcp-boost-parity.md +246 -0
- package/src/docs/versioned/0.23.0/implementationPlans/model-router-actions.md +639 -0
- package/src/docs/versioned/0.23.0/implementationPlans/model-router-mcp.md +186 -0
- package/src/docs/versioned/0.23.0/implementationPlans/offline-mode.md +311 -0
- package/src/docs/versioned/0.23.0/implementationPlans/syncdb-local-first.md +591 -0
- package/src/docs/versioned/0.23.0/implementationPlans/terreno-langfuse-integration.md +145 -0
- package/src/docs/versioned/0.23.0/implementationPlans/upgrade-banner.md +275 -0
- package/src/docs/versioned/0.23.0/reference/README.md +22 -0
- package/src/docs/versioned/0.23.0/reference/admin-backend.md +122 -0
- package/src/docs/versioned/0.23.0/reference/admin-frontend.md +205 -0
- package/src/docs/versioned/0.23.0/reference/api-health.md +81 -0
- package/src/docs/versioned/0.23.0/reference/api.md +1205 -0
- package/src/docs/versioned/0.23.0/reference/components/README.mdx +65 -0
- package/src/docs/versioned/0.23.0/reference/components/accordion.mdx +37 -0
- package/src/docs/versioned/0.23.0/reference/components/addressfield.mdx +26 -0
- package/src/docs/versioned/0.23.0/reference/components/ai-suggestion-box.mdx +26 -0
- package/src/docs/versioned/0.23.0/reference/components/avatar.mdx +35 -0
- package/src/docs/versioned/0.23.0/reference/components/badge.mdx +38 -0
- package/src/docs/versioned/0.23.0/reference/components/banner.mdx +26 -0
- package/src/docs/versioned/0.23.0/reference/components/boolean-field.mdx +36 -0
- package/src/docs/versioned/0.23.0/reference/components/box.mdx +26 -0
- package/src/docs/versioned/0.23.0/reference/components/button.mdx +44 -0
- package/src/docs/versioned/0.23.0/reference/components/card.mdx +26 -0
- package/src/docs/versioned/0.23.0/reference/components/checkbox.mdx +30 -0
- package/src/docs/versioned/0.23.0/reference/components/consentformscreen.mdx +26 -0
- package/src/docs/versioned/0.23.0/reference/components/custom-select-field.mdx +36 -0
- package/src/docs/versioned/0.23.0/reference/components/datatable.mdx +44 -0
- package/src/docs/versioned/0.23.0/reference/components/date-time-field.mdx +49 -0
- package/src/docs/versioned/0.23.0/reference/components/email-field.mdx +43 -0
- package/src/docs/versioned/0.23.0/reference/components/emoji-selector.mdx +26 -0
- package/src/docs/versioned/0.23.0/reference/components/field.mdx +26 -0
- package/src/docs/versioned/0.23.0/reference/components/height-field.mdx +45 -0
- package/src/docs/versioned/0.23.0/reference/components/icon.mdx +31 -0
- package/src/docs/versioned/0.23.0/reference/components/iconbutton.mdx +42 -0
- package/src/docs/versioned/0.23.0/reference/components/inner-modal-content.mdx +41 -0
- package/src/docs/versioned/0.23.0/reference/components/markdown-editor-field.mdx +50 -0
- package/src/docs/versioned/0.23.0/reference/components/markdownview.mdx +37 -0
- package/src/docs/versioned/0.23.0/reference/components/multiselect-field.mdx +36 -0
- package/src/docs/versioned/0.23.0/reference/components/number-field.mdx +46 -0
- package/src/docs/versioned/0.23.0/reference/components/page.mdx +46 -0
- package/src/docs/versioned/0.23.0/reference/components/pagination.mdx +30 -0
- package/src/docs/versioned/0.23.0/reference/components/password-field.mdx +26 -0
- package/src/docs/versioned/0.23.0/reference/components/phone-number-field.mdx +44 -0
- package/src/docs/versioned/0.23.0/reference/components/radio-field.mdx +31 -0
- package/src/docs/versioned/0.23.0/reference/components/sectiondivider.mdx +26 -0
- package/src/docs/versioned/0.23.0/reference/components/segmented-control.mdx +34 -0
- package/src/docs/versioned/0.23.0/reference/components/select-field.mdx +26 -0
- package/src/docs/versioned/0.23.0/reference/components/selectbadge.mdx +35 -0
- package/src/docs/versioned/0.23.0/reference/components/side-drawer.mdx +34 -0
- package/src/docs/versioned/0.23.0/reference/components/sidebar-navigation-non-expo.mdx +35 -0
- package/src/docs/versioned/0.23.0/reference/components/signature-field.mdx +35 -0
- package/src/docs/versioned/0.23.0/reference/components/slider.mdx +43 -0
- package/src/docs/versioned/0.23.0/reference/components/spinner.mdx +29 -0
- package/src/docs/versioned/0.23.0/reference/components/table-badge.mdx +32 -0
- package/src/docs/versioned/0.23.0/reference/components/table-boolean.mdx +29 -0
- package/src/docs/versioned/0.23.0/reference/components/table-date.mdx +30 -0
- package/src/docs/versioned/0.23.0/reference/components/table-icon-button.mdx +28 -0
- package/src/docs/versioned/0.23.0/reference/components/table-number.mdx +30 -0
- package/src/docs/versioned/0.23.0/reference/components/table-text.mdx +30 -0
- package/src/docs/versioned/0.23.0/reference/components/table-title.mdx +28 -0
- package/src/docs/versioned/0.23.0/reference/components/table.mdx +38 -0
- package/src/docs/versioned/0.23.0/reference/components/tap-to-edit.mdx +26 -0
- package/src/docs/versioned/0.23.0/reference/components/text-area.mdx +50 -0
- package/src/docs/versioned/0.23.0/reference/components/text-field.mdx +52 -0
- package/src/docs/versioned/0.23.0/reference/components/theme.mdx +26 -0
- package/src/docs/versioned/0.23.0/reference/components/toast.mdx +26 -0
- package/src/docs/versioned/0.23.0/reference/components/tooltip.mdx +30 -0
- package/src/docs/versioned/0.23.0/reference/components/userinactivity.mdx +32 -0
- package/src/docs/versioned/0.23.0/reference/environment-variables.md +382 -0
- package/src/docs/versioned/0.23.0/reference/feature-flags.md +304 -0
- package/src/docs/versioned/0.23.0/reference/generated/README.md +17 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/README.md +282 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/classes/APIError.md +96 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/classes/BetterAuthApp.md +84 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/classes/CachingSecretProvider.md +118 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/classes/CompositeSecretProvider.md +79 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/classes/ConfigurationApp.md +94 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/classes/ConsentApp.md +74 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/classes/DateOnly.md +123 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/classes/EnvSecretProvider.md +64 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/classes/GcpSecretProvider.md +76 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/classes/OpenApiMiddlewareBuilder.md +577 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/classes/RealtimeApp.md +112 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/classes/TaskCancelledError.md +23 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/classes/TerrenoApp.md +262 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/classes/VersionCheckPlugin.md +43 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/functions/AdminOwnerTransformer.md +47 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/functions/OwnerQueryFilter.md +11 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/functions/addAuthRoutes.md +19 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/functions/addGitHubAuthRoutes.md +31 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/functions/addMeRoutes.md +19 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/functions/addPopulateToQuery.md +15 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/functions/addQuerySubscription.md +26 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/functions/apiErrorMiddleware.md +23 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/functions/apiFallthroughErrorMiddleware.md +26 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/functions/apiUnauthorizedMiddleware.md +23 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/functions/applyRequestContextToSentry.md +11 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/functions/assertNoActionCollisions.md +21 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/functions/asyncHandler.md +15 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/functions/authenticateMiddleware.md +11 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/functions/baseUserPlugin.md +11 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/functions/buildQuerySchemaFromFields.md +30 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/functions/checkModelsStrict.md +21 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/functions/checkPermissions.md +29 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/functions/clearQueryStore.md +7 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/functions/clearRealtimeRegistry.md +7 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/functions/computeQueryId.md +18 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/functions/configurationPlugin.md +48 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/functions/configureOpenApiValidator.md +28 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/functions/createActionOpenApiMiddleware.md +35 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/functions/createBetterAuth.md +13 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/functions/createBetterAuthSessionMiddleware.md +18 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/functions/createFeatureFlaggedLogger.md +53 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/functions/createModelValidators.md +74 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/functions/createOpenApiBuilder.md +39 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/functions/createRouter.md +19 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/functions/createRouterWithAuth.md +19 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/functions/createScopedLogger.md +53 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/functions/createScriptArgs.md +33 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/functions/createValidator.md +29 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/functions/createdUpdatedPlugin.md +11 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/functions/cronjob.md +19 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/functions/defaultResponseHandler.md +32 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/functions/defineCollectionAction.md +25 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/functions/defineInstanceAction.md +29 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/functions/envConfigurationPlugin.md +11 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/functions/errorMessage.md +13 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/functions/errorStack.md +13 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/functions/errorsPlugin.md +11 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/functions/findExactlyOne.md +25 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/functions/findOneOrNone.md +24 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/functions/findOneOrNoneFor.md +37 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/functions/findRegistryEntryByCollection.md +13 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/functions/findRegistryEntryByRoutePath.md +13 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/functions/firebaseJWTPlugin.md +11 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/functions/fixMixedFields.md +21 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/functions/flattenToDotPaths.md +24 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/functions/formatLogContextSuffix.md +17 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/functions/generateTokens.md +35 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/functions/getAPIErrorBody.md +11 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/functions/getBetterAuthSession.md +13 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/functions/getCurrentLogContext.md +9 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/functions/getCurrentRequestContext.md +8 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/functions/getCurrentRequestContextAttributes.md +15 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/functions/getDisableExternalErrorTracking.md +15 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/functions/getMongoClientFromMongoose.md +7 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/functions/getOpenApiSpecForModel.md +29 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/functions/getOpenApiValidatorConfig.md +7 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/functions/getQuerySubscriptionsForCollection.md +14 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/functions/getRealtimeRegistry.md +7 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/functions/getRequestContextFromAttributes.md +11 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/functions/getSchemaFromModel.md +25 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/functions/getSessionIdFromJwtPayload.md +11 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/functions/githubUserPlugin.md +22 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/functions/hasBetterAuthSession.md +13 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/functions/installRealtimeSocketHandlers.md +27 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/functions/isAPIError.md +11 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/functions/isDeletedPlugin.md +15 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/functions/isDisabledPlugin.md +15 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/functions/isOpenApiValidatorConfigured.md +8 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/functions/isValidObjectId.md +11 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/functions/jsonResponseRequestIdMiddleware.md +24 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/functions/logRequests.md +19 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/functions/matchesQuery.md +23 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/functions/modelRouter.md +83 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/functions/mongooseErrorToAPIError.md +13 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/functions/mountBetterAuthRoutes.md +21 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/functions/openApiCompatMiddleware.md +22 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/functions/openApiEtagMiddleware.md +23 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/functions/parseScriptArgs.md +35 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/functions/patchAppUse.md +17 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/functions/permissionMiddleware.md +21 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/functions/registerActionRoutes.md +25 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/functions/registerRealtime.md +14 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/functions/removeAllSocketQueries.md +13 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/functions/removeQuerySubscription.md +17 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/functions/requestContextMiddleware.md +26 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/functions/resetOpenApiValidatorConfig.md +9 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/functions/runActionPermissions.md +33 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/functions/runWithRequestContext.md +38 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/functions/runWithRequestContextAttributes.md +25 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/functions/sendToGoogleChat.md +25 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/functions/sendToSlack.md +29 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/functions/sendToZoom.md +67 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/functions/sentryAppVersionMiddleware.md +26 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/functions/serialize.md +25 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/functions/setRequestContext.md +11 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/functions/setupAuth.md +15 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/functions/setupBetterAuthUserSync.md +21 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/functions/setupEnvironment.md +5 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/functions/setupGitHubAuth.md +22 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/functions/setupLogging.md +11 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/functions/signupUser.md +23 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/functions/startChangeStreamWatcher.md +21 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/functions/stopChangeStreamWatcher.md +7 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/functions/syncBetterAuthUser.md +19 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/functions/syncConsents.md +45 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/functions/timeout.md +11 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/functions/transform.md +29 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/functions/unpopulate.md +21 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/functions/updateRequestContextFromRequest.md +15 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/functions/upsertPlugin.md +23 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/functions/validateActionRequest.md +35 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/functions/validateModelRequestBody.md +30 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/functions/validateQueryParams.md +23 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/functions/validateRequestBody.md +26 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/functions/validateResponseData.md +32 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/functions/wrapActionResponse.md +19 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/functions/wrapScript.md +15 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/interfaces/APIErrorConstructor.md +93 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/interfaces/ActionContext.md +49 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/interfaces/AsyncHandlerOptions.md +32 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/interfaces/AuthOptions.md +47 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/interfaces/BackgroundTaskDocument.md +141 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/interfaces/BackgroundTaskMethods.md +55 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/interfaces/BackgroundTaskModel.md +51 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/interfaces/BackgroundTaskStatics.md +19 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/interfaces/BaseUser.md +11 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/interfaces/BetterAuthAppOptions.md +11 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/interfaces/BetterAuthConfig.md +74 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/interfaces/BetterAuthOAuthProvider.md +13 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/interfaces/BetterAuthSession.md +43 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/interfaces/BetterAuthSessionData.md +13 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/interfaces/BetterAuthUser.md +43 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/interfaces/CachingSecretProviderOptions.md +9 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/interfaces/ChangeStreamConfig.md +41 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/interfaces/CollectionActionConfig.md +123 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/interfaces/ConfigRegistration.md +23 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/interfaces/ConfigurationAppOptions.md +51 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/interfaces/ConfigurationMetaResponse.md +7 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/interfaces/ConfigurationModel.md +166 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/interfaces/ConfigurationPermissions.md +45 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/interfaces/ConfigurationPluginOptions.md +30 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/interfaces/ConfigurationStatics.md +107 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/interfaces/ConsentAppOptions.md +85 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/interfaces/ConsentFormCheckbox.md +17 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/interfaces/ConsentFormDefinition.md +83 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/interfaces/ConsentFormDocument.md +123 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/interfaces/ConsentFormModel.md +79 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/interfaces/ConsentFormStatics.md +55 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/interfaces/ConsentResponseDocument.md +105 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/interfaces/ConsentResponseMethods.md +1 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/interfaces/ConsentResponseModel.md +79 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/interfaces/ConsentResponseStatics.md +55 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/interfaces/CreateBetterAuthOptions.md +17 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/interfaces/CreateFeatureFlaggedLoggerOptions.md +29 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/interfaces/CreateScopedLoggerOptions.md +18 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/interfaces/CreateValidatorOptions.md +25 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/interfaces/CreatedDeleted.md +27 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/interfaces/DocumentSubscription.md +17 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/interfaces/FindExactlyOnePlugin.md +30 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/interfaces/FindOneOrNonePlugin.md +30 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/interfaces/GcpSecretProviderOptions.md +9 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/interfaces/GenerateTokensOptions.md +5 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/interfaces/GitHubAuthOptions.md +74 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/interfaces/GitHubUserFields.md +33 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/interfaces/HasUpsert.md +27 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/interfaces/InstanceActionConfig.md +127 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/interfaces/IsDeleted.md +7 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/interfaces/JSONArray.md +7 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/interfaces/JSONObject.md +3 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/interfaces/JwtSessionPayload.md +19 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/interfaces/LogContextFields.md +41 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/interfaces/LoggingOptions.md +73 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/interfaces/ModelRouterOptions.md +524 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/interfaces/ModelRouterRegistration.md +33 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/interfaces/ModelRouterValidationOptions.md +89 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/interfaces/MongoClientLike.md +11 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/interfaces/OpenApiBuildResult.md +34 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/interfaces/OpenApiMiddleware.md +98 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/interfaces/OpenApiParameter.md +66 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/interfaces/OpenApiResponse.md +43 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/interfaces/OpenApiSchema.md +62 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/interfaces/OpenApiSchemaProperty.md +89 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/interfaces/OpenApiValidatorConfig.md +94 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/interfaces/PopulatePath.md +17 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/interfaces/QuerySubscription.md +25 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/interfaces/QueryValidatorOptions.md +31 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/interfaces/RESTPermissions.md +35 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/interfaces/RealtimeAppOptions.md +62 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/interfaces/RealtimeConfig.md +44 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/interfaces/RealtimeEvent.md +57 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/interfaces/RealtimeRegistryEntry.md +41 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/interfaces/RealtimeSocketLike.md +94 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/interfaces/RequestBodyValidatorOptions.md +71 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/interfaces/RequestContext.md +59 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/interfaces/ScopedLogger.md +100 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/interfaces/ScriptArgDef.md +60 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/interfaces/ScriptArgs.md +121 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/interfaces/ScriptContext.md +67 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/interfaces/ScriptResult.md +11 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/interfaces/SecretFieldMeta.md +29 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/interfaces/SecretProvider.md +35 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/interfaces/SyncConsentsOptions.md +15 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/interfaces/SyncConsentsResult.md +23 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/interfaces/TerrenoAppOptions.md +112 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/interfaces/TerrenoPlugin.md +78 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/interfaces/TerrenoRequestLogEntry.md +13 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/interfaces/TerrenoTransformer.md +49 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/interfaces/User.md +26 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/interfaces/UserModel.md +113 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/interfaces/VersionCheckResponse.md +37 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/interfaces/VersionConfigDocument.md +65 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/interfaces/VersionConfigModel.md +51 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/interfaces/WrapScriptOptions.md +27 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/type-aliases/AddRoutes.md +15 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/type-aliases/AuthProvider.md +5 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/type-aliases/BetterAuthInstance.md +3 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/type-aliases/ConfigType.md +1 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/type-aliases/ConfigurationPostUpdateHook.md +24 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/type-aliases/ConfigurationPreUpdateHook.md +20 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/type-aliases/ConsentFormMethods.md +1 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/type-aliases/ConsentFormType.md +1 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/type-aliases/DeepPartial.md +9 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/type-aliases/GooseRESTOptions.md +7 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/type-aliases/JSONPrimitive.md +1 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/type-aliases/JSONValue.md +1 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/type-aliases/PathValue.md +19 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/type-aliases/Paths.md +15 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/type-aliases/PermissionMethod.md +25 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/type-aliases/RESTMethod.md +17 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/type-aliases/RequestContextAttributes.md +1 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/type-aliases/ScriptArgValue.md +3 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/type-aliases/ScriptRunner.md +15 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/type-aliases/VersionCheckStatus.md +1 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/variables/ACTION_NAME_PATTERN.md +1 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/variables/BackgroundTask.md +1 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/variables/Config.md +244 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/variables/ConsentForm.md +1 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/variables/ConsentResponse.md +1 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/variables/MAX_DOCUMENT_SUBSCRIPTIONS.md +1 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/variables/MAX_MODEL_SUBSCRIPTIONS.md +4 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/variables/MAX_QUERY_SUBSCRIPTIONS.md +1 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/variables/Permissions.md +109 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/variables/REQUEST_CONTEXT_ATTRIBUTE_NAMES.md +39 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/variables/VersionConfig.md +1 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/variables/consentResponsePopulatePaths.md +3 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/variables/gooseRestRouter.md +85 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/variables/logger.md +109 -0
- package/src/docs/versioned/0.23.0/reference/generated/api/variables/winstonLogger.md +1 -0
- package/src/docs/versioned/0.23.0/reference/generated/rtk/README.md +126 -0
- package/src/docs/versioned/0.23.0/reference/generated/rtk/functions/buildOptimisticCreateItem.md +17 -0
- package/src/docs/versioned/0.23.0/reference/generated/rtk/functions/configureOfflineMutationEndpoints.md +13 -0
- package/src/docs/versioned/0.23.0/reference/generated/rtk/functions/createBetterAuthClient.md +30 -0
- package/src/docs/versioned/0.23.0/reference/generated/rtk/functions/createOfflineMiddleware.md +41 -0
- package/src/docs/versioned/0.23.0/reference/generated/rtk/functions/createSessionApi.md +21 -0
- package/src/docs/versioned/0.23.0/reference/generated/rtk/functions/createStorageAdapter.md +17 -0
- package/src/docs/versioned/0.23.0/reference/generated/rtk/functions/generateAuthSlice.md +35 -0
- package/src/docs/versioned/0.23.0/reference/generated/rtk/functions/generateBetterAuthSlice.md +87 -0
- package/src/docs/versioned/0.23.0/reference/generated/rtk/functions/generateProfileEndpoints.md +35 -0
- package/src/docs/versioned/0.23.0/reference/generated/rtk/functions/generateTags.md +15 -0
- package/src/docs/versioned/0.23.0/reference/generated/rtk/functions/getAuthToken.md +5 -0
- package/src/docs/versioned/0.23.0/reference/generated/rtk/functions/getBaseQuery.md +23 -0
- package/src/docs/versioned/0.23.0/reference/generated/rtk/functions/getFriendlyExpirationInfo.md +5 -0
- package/src/docs/versioned/0.23.0/reference/generated/rtk/functions/getRealtimeSocket.md +7 -0
- package/src/docs/versioned/0.23.0/reference/generated/rtk/functions/getTokenExpirationTimes.md +5 -0
- package/src/docs/versioned/0.23.0/reference/generated/rtk/functions/isNetworkFetchError.md +14 -0
- package/src/docs/versioned/0.23.0/reference/generated/rtk/functions/isWebsocketsDebugEnabled.md +5 -0
- package/src/docs/versioned/0.23.0/reference/generated/rtk/functions/logAuth.md +11 -0
- package/src/docs/versioned/0.23.0/reference/generated/rtk/functions/logSocket.md +15 -0
- package/src/docs/versioned/0.23.0/reference/generated/rtk/functions/populateId.md +23 -0
- package/src/docs/versioned/0.23.0/reference/generated/rtk/functions/realtimeDocument.md +37 -0
- package/src/docs/versioned/0.23.0/reference/generated/rtk/functions/realtimeList.md +43 -0
- package/src/docs/versioned/0.23.0/reference/generated/rtk/functions/refreshAuthToken.md +5 -0
- package/src/docs/versioned/0.23.0/reference/generated/rtk/functions/registerTerrenoDevStore.md +14 -0
- package/src/docs/versioned/0.23.0/reference/generated/rtk/functions/resolveBaseUrls.md +28 -0
- package/src/docs/versioned/0.23.0/reference/generated/rtk/functions/resolveFeatureFlagsOptions.md +14 -0
- package/src/docs/versioned/0.23.0/reference/generated/rtk/functions/selectBetterAuthError.md +13 -0
- package/src/docs/versioned/0.23.0/reference/generated/rtk/functions/selectBetterAuthIsAuthenticated.md +13 -0
- package/src/docs/versioned/0.23.0/reference/generated/rtk/functions/selectBetterAuthIsLoading.md +13 -0
- package/src/docs/versioned/0.23.0/reference/generated/rtk/functions/selectBetterAuthState.md +13 -0
- package/src/docs/versioned/0.23.0/reference/generated/rtk/functions/selectBetterAuthUser.md +13 -0
- package/src/docs/versioned/0.23.0/reference/generated/rtk/functions/selectBetterAuthUserId.md +13 -0
- package/src/docs/versioned/0.23.0/reference/generated/rtk/functions/selectConflicts.md +13 -0
- package/src/docs/versioned/0.23.0/reference/generated/rtk/functions/selectCurrentUserId.md +11 -0
- package/src/docs/versioned/0.23.0/reference/generated/rtk/functions/selectIsAuthenticating.md +11 -0
- package/src/docs/versioned/0.23.0/reference/generated/rtk/functions/selectIsOnline.md +13 -0
- package/src/docs/versioned/0.23.0/reference/generated/rtk/functions/selectIsOnlineSafe.md +15 -0
- package/src/docs/versioned/0.23.0/reference/generated/rtk/functions/selectIsSyncing.md +13 -0
- package/src/docs/versioned/0.23.0/reference/generated/rtk/functions/selectLastTokenRefreshTimestamp.md +11 -0
- package/src/docs/versioned/0.23.0/reference/generated/rtk/functions/selectOfflineQueue.md +13 -0
- package/src/docs/versioned/0.23.0/reference/generated/rtk/functions/selectQueueLength.md +13 -0
- package/src/docs/versioned/0.23.0/reference/generated/rtk/functions/setRealtimeDebug.md +13 -0
- package/src/docs/versioned/0.23.0/reference/generated/rtk/functions/setRealtimeSocket.md +27 -0
- package/src/docs/versioned/0.23.0/reference/generated/rtk/functions/shouldDeferOfflineMutation.md +18 -0
- package/src/docs/versioned/0.23.0/reference/generated/rtk/functions/shouldReplayQueuedMutation.md +18 -0
- package/src/docs/versioned/0.23.0/reference/generated/rtk/functions/shouldShowStillThereModal.md +5 -0
- package/src/docs/versioned/0.23.0/reference/generated/rtk/functions/useFeatureFlags.md +15 -0
- package/src/docs/versioned/0.23.0/reference/generated/rtk/functions/useOfflineStatus.md +16 -0
- package/src/docs/versioned/0.23.0/reference/generated/rtk/functions/useRealtimeDebug.md +18 -0
- package/src/docs/versioned/0.23.0/reference/generated/rtk/functions/useSelectCurrentUserId.md +5 -0
- package/src/docs/versioned/0.23.0/reference/generated/rtk/functions/useSelectIsAuthenticating.md +5 -0
- package/src/docs/versioned/0.23.0/reference/generated/rtk/functions/useServerStatus.md +26 -0
- package/src/docs/versioned/0.23.0/reference/generated/rtk/functions/useSocketConnection.md +19 -0
- package/src/docs/versioned/0.23.0/reference/generated/rtk/functions/useSyncConnection.md +32 -0
- package/src/docs/versioned/0.23.0/reference/generated/rtk/functions/useTerrenoFeatureFlags.md +19 -0
- package/src/docs/versioned/0.23.0/reference/generated/rtk/functions/useUpgradeCheck.md +30 -0
- package/src/docs/versioned/0.23.0/reference/generated/rtk/interfaces/BaseUrls.md +17 -0
- package/src/docs/versioned/0.23.0/reference/generated/rtk/interfaces/BetterAuthClientConfig.md +31 -0
- package/src/docs/versioned/0.23.0/reference/generated/rtk/interfaces/BetterAuthClientInterface.md +23 -0
- package/src/docs/versioned/0.23.0/reference/generated/rtk/interfaces/BetterAuthSession.md +43 -0
- package/src/docs/versioned/0.23.0/reference/generated/rtk/interfaces/BetterAuthSessionData.md +13 -0
- package/src/docs/versioned/0.23.0/reference/generated/rtk/interfaces/BetterAuthState.md +49 -0
- package/src/docs/versioned/0.23.0/reference/generated/rtk/interfaces/BetterAuthUser.md +43 -0
- package/src/docs/versioned/0.23.0/reference/generated/rtk/interfaces/ConflictRecord.md +47 -0
- package/src/docs/versioned/0.23.0/reference/generated/rtk/interfaces/EmailSignupRequest.md +15 -0
- package/src/docs/versioned/0.23.0/reference/generated/rtk/interfaces/ExpoConstantsShape.md +29 -0
- package/src/docs/versioned/0.23.0/reference/generated/rtk/interfaces/GenerateBetterAuthSliceConfig.md +23 -0
- package/src/docs/versioned/0.23.0/reference/generated/rtk/interfaces/GoogleLoginRequest.md +5 -0
- package/src/docs/versioned/0.23.0/reference/generated/rtk/interfaces/ListResponse.md +35 -0
- package/src/docs/versioned/0.23.0/reference/generated/rtk/interfaces/OfflineMiddlewareConfig.md +15 -0
- package/src/docs/versioned/0.23.0/reference/generated/rtk/interfaces/OfflineState.md +23 -0
- package/src/docs/versioned/0.23.0/reference/generated/rtk/interfaces/OfflineStatus.md +87 -0
- package/src/docs/versioned/0.23.0/reference/generated/rtk/interfaces/QueuedMutation.md +55 -0
- package/src/docs/versioned/0.23.0/reference/generated/rtk/interfaces/RealtimeEvent.md +58 -0
- package/src/docs/versioned/0.23.0/reference/generated/rtk/interfaces/ResetPasswordRequest.md +15 -0
- package/src/docs/versioned/0.23.0/reference/generated/rtk/interfaces/ServerStatusOptions.md +31 -0
- package/src/docs/versioned/0.23.0/reference/generated/rtk/interfaces/SocketConnection.md +11 -0
- package/src/docs/versioned/0.23.0/reference/generated/rtk/interfaces/StorageAdapter.md +53 -0
- package/src/docs/versioned/0.23.0/reference/generated/rtk/interfaces/TerrenoFlagDefinition.md +19 -0
- package/src/docs/versioned/0.23.0/reference/generated/rtk/interfaces/UseFeatureFlagsOptions.md +50 -0
- package/src/docs/versioned/0.23.0/reference/generated/rtk/interfaces/UseSocketConnectionOptions.md +87 -0
- package/src/docs/versioned/0.23.0/reference/generated/rtk/interfaces/UseTerrenoFeatureFlagsOptions.md +41 -0
- package/src/docs/versioned/0.23.0/reference/generated/rtk/interfaces/UseTerrenoFeatureFlagsResult.md +33 -0
- package/src/docs/versioned/0.23.0/reference/generated/rtk/interfaces/UserResponse.md +17 -0
- package/src/docs/versioned/0.23.0/reference/generated/rtk/interfaces/VersionCheckResponse.md +39 -0
- package/src/docs/versioned/0.23.0/reference/generated/rtk/type-aliases/BetterAuthClient.md +3 -0
- package/src/docs/versioned/0.23.0/reference/generated/rtk/type-aliases/BetterAuthOAuthProvider.md +3 -0
- package/src/docs/versioned/0.23.0/reference/generated/rtk/type-aliases/BetterAuthSlice.md +3 -0
- package/src/docs/versioned/0.23.0/reference/generated/rtk/type-aliases/EmailLoginRequest.md +1 -0
- package/src/docs/versioned/0.23.0/reference/generated/rtk/type-aliases/RootState.md +1 -0
- package/src/docs/versioned/0.23.0/reference/generated/rtk/type-aliases/ServerStatus.md +1 -0
- package/src/docs/versioned/0.23.0/reference/generated/rtk/type-aliases/TerrenoFlagConfiguration.md +1 -0
- package/src/docs/versioned/0.23.0/reference/generated/rtk/variables/AUTH_DEBUG.md +1 -0
- package/src/docs/versioned/0.23.0/reference/generated/rtk/variables/IsWeb.md +1 -0
- package/src/docs/versioned/0.23.0/reference/generated/rtk/variables/LOGOUT_ACTION_TYPE.md +1 -0
- package/src/docs/versioned/0.23.0/reference/generated/rtk/variables/SAME_ORIGIN_SENTINEL.md +5 -0
- package/src/docs/versioned/0.23.0/reference/generated/rtk/variables/TOKEN_REFRESHED_SUCCESS.md +1 -0
- package/src/docs/versioned/0.23.0/reference/generated/rtk/variables/addConflict.md +1 -0
- package/src/docs/versioned/0.23.0/reference/generated/rtk/variables/baseTasksUrl.md +1 -0
- package/src/docs/versioned/0.23.0/reference/generated/rtk/variables/baseUrl.md +1 -0
- package/src/docs/versioned/0.23.0/reference/generated/rtk/variables/baseWebsocketsUrl.md +1 -0
- package/src/docs/versioned/0.23.0/reference/generated/rtk/variables/clearConflicts.md +1 -0
- package/src/docs/versioned/0.23.0/reference/generated/rtk/variables/clearQueue.md +1 -0
- package/src/docs/versioned/0.23.0/reference/generated/rtk/variables/dequeue.md +1 -0
- package/src/docs/versioned/0.23.0/reference/generated/rtk/variables/dismissConflict.md +1 -0
- package/src/docs/versioned/0.23.0/reference/generated/rtk/variables/emptySplitApi.md +1 -0
- package/src/docs/versioned/0.23.0/reference/generated/rtk/variables/enqueue.md +1 -0
- package/src/docs/versioned/0.23.0/reference/generated/rtk/variables/offlineReducer.md +1 -0
- package/src/docs/versioned/0.23.0/reference/generated/rtk/variables/offlineSlice.md +1 -0
- package/src/docs/versioned/0.23.0/reference/generated/rtk/variables/selectUndismissedConflicts.md +1 -0
- package/src/docs/versioned/0.23.0/reference/generated/rtk/variables/setOnlineStatus.md +1 -0
- package/src/docs/versioned/0.23.0/reference/generated/rtk/variables/setSyncing.md +1 -0
- package/src/docs/versioned/0.23.0/reference/generated/rtk/variables/staggeredBaseQuery.md +1 -0
- package/src/docs/versioned/0.23.0/reference/generated/rtk/variables/useGetVersionCheckQuery.md +1 -0
- package/src/docs/versioned/0.23.0/reference/generated/rtk/variables/useLazyGetVersionCheckQuery.md +1 -0
- package/src/docs/versioned/0.23.0/reference/mcp-server.md +586 -0
- package/src/docs/versioned/0.23.0/reference/rtk.md +439 -0
- package/src/docs/versioned/0.23.0/reference/ui.md +418 -0
- package/src/docs/versioned/0.23.0/tasks/admin-improvements.md +429 -0
- package/src/docs/versioned/0.23.0/tasks/admin-only.md +221 -0
- package/src/docs/versioned/0.23.0/tasks/admin-script-runner.md +50 -0
- package/src/docs/versioned/0.23.0/tasks/admin-ui-v2-django-parity.md +135 -0
- package/src/docs/versioned/0.23.0/tasks/consent-forms.md +193 -0
- package/src/docs/versioned/0.23.0/tasks/design-blend-skill.md +147 -0
- package/src/docs/versioned/0.23.0/tasks/feature-flags-openfeature.md +77 -0
- package/src/docs/versioned/0.23.0/tasks/feature-flags.md +23 -0
- package/src/docs/versioned/0.23.0/tasks/model-router-actions.md +46 -0
- package/src/docs/versioned/0.23.0/tasks/model-router-mcp.md +105 -0
- package/src/docs/versioned/0.23.0/tasks/offline-mode.md +139 -0
- package/src/docs/versioned/0.23.0/tasks/syncdb-local-first.md +117 -0
- package/src/docs/versioned/0.23.0/tasks/upgrade-banner.md +73 -0
- package/src/docs/versioned/0.23.0/tutorials/README.md +7 -0
- package/src/docs/versioned/0.23.0/tutorials/getting-started.md +44 -0
- package/src/docs/versioned/next/reference/environment-variables.md +7 -3
- package/src/docs/versioned/next/reference/rtk.md +11 -4
|
@@ -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/)
|