@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,545 @@
|
|
|
1
|
+
# Implementation Plan: OpenFeature Adoption for `@terreno/feature-flags`
|
|
2
|
+
|
|
3
|
+
## Goal
|
|
4
|
+
|
|
5
|
+
Migrate `@terreno/feature-flags` (backend) and `@terreno/rtk`'s `useFeatureFlags` (frontend) to be built on top of the OpenFeature SDKs (`@openfeature/server-sdk`, `@openfeature/react-sdk`) while preserving:
|
|
6
|
+
- The Mongoose-backed `FeatureFlag` model as source of truth (no data migration)
|
|
7
|
+
- The current admin UI via `@terreno/admin-backend`
|
|
8
|
+
- Backwards-compatible `useFeatureFlags()` API for downstream consumers
|
|
9
|
+
- The single-bulk-fetch network shape (no per-flag round trips)
|
|
10
|
+
|
|
11
|
+
And add:
|
|
12
|
+
- A swappable, OpenFeature-standard provider abstraction on the backend (`MongoFeatureFlagProvider`)
|
|
13
|
+
- Standard OpenFeature React hooks (`useBooleanFlagValue`, `useStringFlagValue`, `<FeatureFlag>`, etc.) available to consumers
|
|
14
|
+
- Live updates via Mongoose change streams + Socket.io + OpenFeature `PROVIDER_CONFIGURATION_CHANGED` events
|
|
15
|
+
- Type-safe flag keys via OpenFeature's module augmentation pattern
|
|
16
|
+
|
|
17
|
+
## Non-goals
|
|
18
|
+
|
|
19
|
+
- Replacing Mongo storage with flagd or a third-party flag service
|
|
20
|
+
- Dropping the existing admin panel UX
|
|
21
|
+
- Adding analytics or experiment-results tracking (out of scope; the OF tracking hook is available to consumers but not wired up here)
|
|
22
|
+
- Allowing anonymous evaluation (stays `IsAuthenticated`)
|
|
23
|
+
|
|
24
|
+
---
|
|
25
|
+
|
|
26
|
+
## Models
|
|
27
|
+
|
|
28
|
+
### `FeatureFlag` (extended, no migration)
|
|
29
|
+
|
|
30
|
+
**File**: `feature-flags/src/featureFlagModel.ts`
|
|
31
|
+
|
|
32
|
+
One new field on the existing schema:
|
|
33
|
+
|
|
34
|
+
```typescript
|
|
35
|
+
defaultVariant: {
|
|
36
|
+
type: String,
|
|
37
|
+
description:
|
|
38
|
+
"OpenFeature defaultVariant key. Returned when the flag is disabled or " +
|
|
39
|
+
"errors during evaluation. For boolean flags, must be 'on' or 'off'. " +
|
|
40
|
+
"For variant flags, must be one of the keys in `variants`. " +
|
|
41
|
+
"Auto-populated by pre-save hook for legacy docs (boolean → 'off', variant → first variant key).",
|
|
42
|
+
},
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
**No Mongoose getter** — we use a `pre("save")` hook that sets `defaultVariant` when it is `undefined`, plus a normalization step in the `/flagConfiguration` build path that supplies the default at read time without mutating the doc. This avoids getter re-entrancy on `this.type` / `this.variants`.
|
|
46
|
+
|
|
47
|
+
Validation (in the existing `pre("save")` hook):
|
|
48
|
+
- If `defaultVariant` is set: for boolean flags it must be `"on"` or `"off"`; for variant flags it must be one of `variants[].key`. Validation is **only enforced when the field is set** — legacy docs without `defaultVariant` are not rejected; the hook populates the default before the validate step.
|
|
49
|
+
- Tested explicitly in `featureFlagModel.test.ts` with both legacy-doc-update and new-doc-create paths.
|
|
50
|
+
|
|
51
|
+
Also update `featureFlagAdminConfig.listFields` to include `"defaultVariant"` so admins see and can edit it.
|
|
52
|
+
|
|
53
|
+
### `FlagConfiguration` (wire shape, not a Mongoose model)
|
|
54
|
+
|
|
55
|
+
The response shape returned by the new `/feature-flags/flagConfiguration` endpoint. One entry per evaluated flag:
|
|
56
|
+
|
|
57
|
+
```typescript
|
|
58
|
+
interface FlagDefinition {
|
|
59
|
+
variants: Record<string, boolean | string>; // {on: true, off: false} or {compact: "compact", detailed: "detailed"}
|
|
60
|
+
disabled: boolean; // per-user resolved disabled state
|
|
61
|
+
defaultVariant: string;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
interface FlagConfigurationResponse {
|
|
65
|
+
data: Record<string, FlagDefinition>;
|
|
66
|
+
}
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
This exactly matches OpenFeature's `TypedInMemoryProvider` input shape, so the frontend pipes it straight in.
|
|
70
|
+
|
|
71
|
+
---
|
|
72
|
+
|
|
73
|
+
## APIs
|
|
74
|
+
|
|
75
|
+
### Backend: `MongoFeatureFlagProvider`
|
|
76
|
+
|
|
77
|
+
**File**: `feature-flags/src/openFeatureProvider.ts` (new)
|
|
78
|
+
|
|
79
|
+
A custom OpenFeature server-side provider that delegates to the existing `evaluateFlag()` logic.
|
|
80
|
+
|
|
81
|
+
```typescript
|
|
82
|
+
import {
|
|
83
|
+
type EvaluationContext,
|
|
84
|
+
type JsonValue,
|
|
85
|
+
OpenFeatureEventEmitter,
|
|
86
|
+
type Provider,
|
|
87
|
+
type ResolutionDetails,
|
|
88
|
+
} from "@openfeature/server-sdk";
|
|
89
|
+
import type {Model} from "mongoose";
|
|
90
|
+
import {evaluateFlag} from "./evaluate";
|
|
91
|
+
import type {FeatureFlagDocument, SegmentFunction} from "./types";
|
|
92
|
+
|
|
93
|
+
interface MongoFeatureFlagProviderOptions {
|
|
94
|
+
flagModel: Model<FeatureFlagDocument>;
|
|
95
|
+
segments?: Record<string, SegmentFunction>;
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
export class MongoFeatureFlagProvider implements Provider {
|
|
99
|
+
readonly metadata = {name: "MongoFeatureFlagProvider"} as const;
|
|
100
|
+
readonly runsOn = "server" as const;
|
|
101
|
+
readonly events = new OpenFeatureEventEmitter();
|
|
102
|
+
|
|
103
|
+
private flagModel: Model<FeatureFlagDocument>;
|
|
104
|
+
private segments: Record<string, SegmentFunction>;
|
|
105
|
+
|
|
106
|
+
constructor(options: MongoFeatureFlagProviderOptions) {
|
|
107
|
+
this.flagModel = options.flagModel;
|
|
108
|
+
this.segments = options.segments ?? {};
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
async resolveBooleanEvaluation(
|
|
112
|
+
flagKey: string,
|
|
113
|
+
defaultValue: boolean,
|
|
114
|
+
context: EvaluationContext
|
|
115
|
+
): Promise<ResolutionDetails<boolean>> {
|
|
116
|
+
return this.resolve<boolean>(flagKey, defaultValue, context, "boolean");
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
async resolveStringEvaluation(
|
|
120
|
+
flagKey: string,
|
|
121
|
+
defaultValue: string,
|
|
122
|
+
context: EvaluationContext
|
|
123
|
+
): Promise<ResolutionDetails<string>> {
|
|
124
|
+
return this.resolve<string>(flagKey, defaultValue, context, "variant");
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
async resolveNumberEvaluation(
|
|
128
|
+
flagKey: string,
|
|
129
|
+
defaultValue: number
|
|
130
|
+
): Promise<ResolutionDetails<number>> {
|
|
131
|
+
// Not supported in v1 — return default with FLAG_NOT_FOUND
|
|
132
|
+
return {value: defaultValue, reason: "ERROR", errorCode: "FLAG_NOT_FOUND" as const};
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
async resolveObjectEvaluation<T extends JsonValue>(
|
|
136
|
+
flagKey: string,
|
|
137
|
+
defaultValue: T
|
|
138
|
+
): Promise<ResolutionDetails<T>> {
|
|
139
|
+
return {value: defaultValue, reason: "ERROR", errorCode: "FLAG_NOT_FOUND" as const};
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
private async resolve<T extends boolean | string>(
|
|
143
|
+
flagKey: string,
|
|
144
|
+
defaultValue: T,
|
|
145
|
+
context: EvaluationContext,
|
|
146
|
+
expectedType: "boolean" | "variant"
|
|
147
|
+
): Promise<ResolutionDetails<T>> {
|
|
148
|
+
// Use findOneOrNone per repo rule (never Model.findOne); the FeatureFlag schema has the plugin.
|
|
149
|
+
const flag = await this.flagModel.findOneOrNone({key: flagKey, archived: {$ne: true}});
|
|
150
|
+
if (!flag) {
|
|
151
|
+
return {value: defaultValue, reason: "ERROR", errorCode: "FLAG_NOT_FOUND" as const};
|
|
152
|
+
}
|
|
153
|
+
if (flag.type !== expectedType) {
|
|
154
|
+
return {value: defaultValue, reason: "ERROR", errorCode: "TYPE_MISMATCH" as const};
|
|
155
|
+
}
|
|
156
|
+
if (!flag.enabled) {
|
|
157
|
+
return {value: defaultValue, reason: "DISABLED", variant: flag.defaultVariant};
|
|
158
|
+
}
|
|
159
|
+
const targetingKey = context.targetingKey ?? "";
|
|
160
|
+
const user = context.user ?? context; // accept either {targetingKey, user: {...}} or flat
|
|
161
|
+
const result = evaluateFlag(flag, targetingKey, user, this.segments);
|
|
162
|
+
if (expectedType === "boolean") {
|
|
163
|
+
const value = (result as boolean) as T;
|
|
164
|
+
return {value, reason: "TARGETING_MATCH", variant: value ? "on" : "off"};
|
|
165
|
+
}
|
|
166
|
+
if (result === null) {
|
|
167
|
+
return {value: defaultValue, reason: "DISABLED", variant: flag.defaultVariant};
|
|
168
|
+
}
|
|
169
|
+
return {value: result as T, reason: "TARGETING_MATCH", variant: result as string};
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
/** Called by the live-updates hook when a flag doc changes. */
|
|
173
|
+
emitConfigurationChanged(): void {
|
|
174
|
+
this.events.emit("PROVIDER_CONFIGURATION_CHANGED");
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
```
|
|
178
|
+
|
|
179
|
+
The existing `evaluate.ts` is unchanged. The provider is a thin adapter.
|
|
180
|
+
|
|
181
|
+
### Backend: `FeatureFlagsApp` (updated)
|
|
182
|
+
|
|
183
|
+
**File**: `feature-flags/src/featureFlagsApp.ts` (updated)
|
|
184
|
+
|
|
185
|
+
New responsibilities:
|
|
186
|
+
1. Construct `MongoFeatureFlagProvider` and call `OpenFeature.setProvider(provider, "feature-flags")` (using a domain so we don't stomp on consumer providers).
|
|
187
|
+
2. Register a new `GET /feature-flags/flagConfiguration` endpoint that returns the `FlagConfiguration` shape.
|
|
188
|
+
3. Keep the existing `GET /feature-flags/evaluate` endpoint working for one release with a deprecation warning header (`Deprecation: true`, `Sunset: <date>`).
|
|
189
|
+
4. Keep admin CRUD via `modelRouter` (unchanged).
|
|
190
|
+
5. If `liveUpdates.socketIoServer` is provided in options, start a Mongoose change stream on the FeatureFlag collection and emit a `featureFlagsChanged` socket event to all connected clients, plus call `provider.emitConfigurationChanged()`.
|
|
191
|
+
|
|
192
|
+
Updated options:
|
|
193
|
+
|
|
194
|
+
```typescript
|
|
195
|
+
interface FeatureFlagsOptions {
|
|
196
|
+
basePath?: string;
|
|
197
|
+
segments?: Record<string, SegmentFunction>;
|
|
198
|
+
permissions?: ModelRouterOptions<FeatureFlagDocument>["permissions"];
|
|
199
|
+
segmentsPermission?: (user: unknown) => boolean;
|
|
200
|
+
/** Optional Socket.io Server instance for live updates. */
|
|
201
|
+
liveUpdates?: {
|
|
202
|
+
socketIoServer: SocketIOServer;
|
|
203
|
+
/** Custom event name. Default: "featureFlagsChanged". */
|
|
204
|
+
eventName?: string;
|
|
205
|
+
};
|
|
206
|
+
/** Optional. Defaults to a private domain ("feature-flags") so the global default provider is left alone. */
|
|
207
|
+
openFeatureDomain?: string;
|
|
208
|
+
}
|
|
209
|
+
```
|
|
210
|
+
|
|
211
|
+
The `/flagConfiguration` endpoint:
|
|
212
|
+
|
|
213
|
+
```typescript
|
|
214
|
+
app.get(
|
|
215
|
+
`${basePath}/flagConfiguration`,
|
|
216
|
+
authenticateMiddleware(),
|
|
217
|
+
asyncHandler(async (req, res) => {
|
|
218
|
+
const user = req.user as {_id?: unknown; id?: string} | undefined;
|
|
219
|
+
if (!user) throw new APIError({status: 401, title: "Authentication required"});
|
|
220
|
+
const targetingKey = String(user._id ?? user.id);
|
|
221
|
+
// Match existing evaluateAllFlags() filter — only enabled, non-archived flags ship to clients.
|
|
222
|
+
// Disabled or archived flags are omitted, matching current behavior where Object.keys(flags)
|
|
223
|
+
// does NOT include disabled flag keys.
|
|
224
|
+
const flags = await FeatureFlag.find({archived: {$ne: true}, enabled: true});
|
|
225
|
+
const config: Record<string, FlagDefinition> = {};
|
|
226
|
+
for (const flag of flags) {
|
|
227
|
+
config[flag.key] = buildFlagDefinition(flag, targetingKey, user, this.segments);
|
|
228
|
+
}
|
|
229
|
+
return res.json({data: config});
|
|
230
|
+
})
|
|
231
|
+
);
|
|
232
|
+
```
|
|
233
|
+
|
|
234
|
+
`buildFlagDefinition` reuses `evaluateFlag()` to determine the resolved value for *this* user, then builds the OF variant shape. **Because `/flagConfiguration` only ships enabled, non-archived flags**, `disabled: false` for every entry in the response (we never embed disabled flags; consumers see them only via the admin panel). The `disabled` field stays in the type for parity with OF's `FlagConfiguration` shape:
|
|
235
|
+
|
|
236
|
+
- Boolean flag → `variants: {on: true, off: false}`, `defaultVariant: result ? "on" : "off"`, `disabled: false`
|
|
237
|
+
- Variant flag → `variants: {variantKey: variantKey, ...}` (identity map), `defaultVariant: result` (the existing `evaluateFlag()` guarantees a non-null string when `flag.enabled`), `disabled: false`
|
|
238
|
+
|
|
239
|
+
Setting `defaultVariant` to the *resolved* value for this user makes `useBooleanFlagValue` on the frontend Just Work without re-running targeting logic on the client.
|
|
240
|
+
|
|
241
|
+
### Backend: legacy `/evaluate` (deprecated, kept for one release)
|
|
242
|
+
|
|
243
|
+
The legacy endpoint stays. It calls `evaluateAllFlags()` exactly as today and returns the old `Record<string, boolean | string | null>` shape, plus a `Deprecation: true` header and a `Sunset` header set to 90 days out. A `logger.warn` fires once per process when first called.
|
|
244
|
+
|
|
245
|
+
---
|
|
246
|
+
|
|
247
|
+
## Frontend
|
|
248
|
+
|
|
249
|
+
### New hook: `useTerrenoFeatureFlags`
|
|
250
|
+
|
|
251
|
+
**File**: `rtk/src/useTerrenoFeatureFlags.ts` (new)
|
|
252
|
+
|
|
253
|
+
```typescript
|
|
254
|
+
import {OpenFeature, TypedInMemoryProvider} from "@openfeature/web-sdk";
|
|
255
|
+
|
|
256
|
+
interface UseTerrenoFeatureFlagsOptions {
|
|
257
|
+
basePath?: string; // default: "/feature-flags"
|
|
258
|
+
skip?: boolean; // skip fetch until userId is known
|
|
259
|
+
userId?: string | null; // current user id — when this changes, refetch & re-bucket
|
|
260
|
+
socket?: Socket | null; // optional socket for live updates
|
|
261
|
+
socketEventName?: string; // default: "featureFlagsChanged"
|
|
262
|
+
domain?: string; // OF provider domain — default: "feature-flags"
|
|
263
|
+
}
|
|
264
|
+
|
|
265
|
+
interface UseTerrenoFeatureFlagsResult {
|
|
266
|
+
flags: FlagConfiguration;
|
|
267
|
+
isLoading: boolean; // true until BOTH RTK query resolves AND OF PROVIDER_READY
|
|
268
|
+
error: unknown;
|
|
269
|
+
refetch: () => void;
|
|
270
|
+
client: Client; // OpenFeature client bound to this hook's domain
|
|
271
|
+
}
|
|
272
|
+
|
|
273
|
+
export const useTerrenoFeatureFlags = (
|
|
274
|
+
api: Api<any, any, any, any>,
|
|
275
|
+
options?: UseTerrenoFeatureFlagsOptions
|
|
276
|
+
): UseTerrenoFeatureFlagsResult => {
|
|
277
|
+
// 1. RTK Query bulk fetch /feature-flags/flagConfiguration. Cache key INCLUDES userId so a
|
|
278
|
+
// different user gets a fresh fetch (no stale per-user resolved values).
|
|
279
|
+
// 2. On userId change: api.util.invalidateTags(["feature-flags"]) AND OpenFeature.setContext(
|
|
280
|
+
// domain, {targetingKey: userId}) before the refetch lands.
|
|
281
|
+
// 3. On data success: await OpenFeature.setProvider(domain, new TypedInMemoryProvider(flags)).
|
|
282
|
+
// isLoading stays true until the PROVIDER_READY event fires (subscribed via client.addHandler).
|
|
283
|
+
// 4. If options.socket: subscribe to socketEventName → refetch.
|
|
284
|
+
// 5. Cleanup: do NOT clear the provider on unmount of an individual instance — multiple
|
|
285
|
+
// components may use useFeatureFlags simultaneously. Use a small ref-count module-level
|
|
286
|
+
// counter; only clear (OpenFeature.clearProviders) when the count returns to zero.
|
|
287
|
+
// 6. StrictMode safety: setProvider is idempotent for the same data, but track an in-flight
|
|
288
|
+
// promise with a ref to prevent double-setting during the StrictMode double-mount window.
|
|
289
|
+
};
|
|
290
|
+
```
|
|
291
|
+
|
|
292
|
+
Critical behaviors:
|
|
293
|
+
- **User switching**: the cache key for the RTK Query endpoint must include `userId` so different users get different cache entries. On `userId` change, the hook calls `OpenFeature.setContext(domain, {targetingKey: userId})` and `refetch()`. The provider is replaced with the new user's values once the new fetch lands. `isLoading` returns to `true` during the transition.
|
|
294
|
+
- **`isLoading` semantics**: `isLoading: true` until RTK Query has data AND OpenFeature has emitted `PROVIDER_READY` for the new provider. This avoids the race where `useBooleanFlagValue` returns `defaultValue` before the provider is ready.
|
|
295
|
+
- **No provider clearing on individual unmount** (avoids breaking other mounted consumers).
|
|
296
|
+
|
|
297
|
+
### Updated BC wrapper: `useFeatureFlags`
|
|
298
|
+
|
|
299
|
+
**File**: `rtk/src/useFeatureFlags.ts` (rewritten as a thin wrapper)
|
|
300
|
+
|
|
301
|
+
```typescript
|
|
302
|
+
export const useFeatureFlags = (
|
|
303
|
+
api: Api<any, any, any, any>,
|
|
304
|
+
basePathOrOptions?: string | UseFeatureFlagsOptions
|
|
305
|
+
): UseFeatureFlagsResult => {
|
|
306
|
+
const {basePath, skip} = resolveFeatureFlagsOptions(basePathOrOptions);
|
|
307
|
+
const {flags, isLoading, error, refetch, client} = useTerrenoFeatureFlags(api, {basePath, skip});
|
|
308
|
+
|
|
309
|
+
const getFlag = useCallback(
|
|
310
|
+
(key: string): boolean => client.getBooleanValue(key, false),
|
|
311
|
+
[client]
|
|
312
|
+
);
|
|
313
|
+
|
|
314
|
+
const getVariant = useCallback(
|
|
315
|
+
(key: string): string | null => {
|
|
316
|
+
// The InMemoryProvider doesn't natively report reason "DISABLED" — disabled flags are
|
|
317
|
+
// omitted from /flagConfiguration entirely. So absence in `flags` (the raw FlagConfiguration
|
|
318
|
+
// map returned by useTerrenoFeatureFlags) means the flag is disabled/missing and we return null.
|
|
319
|
+
if (!flags[key]) return null;
|
|
320
|
+
const value = client.getStringValue(key, "");
|
|
321
|
+
return value === "" ? null : value;
|
|
322
|
+
},
|
|
323
|
+
[client, flags]
|
|
324
|
+
);
|
|
325
|
+
|
|
326
|
+
// Build a Record<string, boolean | string | null> view from the FlagConfiguration to preserve
|
|
327
|
+
// the existing flags API surface used by example-frontend profile.tsx (which iterates
|
|
328
|
+
// Object.keys(flags) and renders {value: boolean|string|null}).
|
|
329
|
+
//
|
|
330
|
+
// Projection from FlagDefinition → BC value:
|
|
331
|
+
// - boolean flag → variants[defaultVariant] // true or false
|
|
332
|
+
// - variant flag → defaultVariant // string variant key
|
|
333
|
+
// Disabled flags are omitted from /flagConfiguration so they never appear in this map,
|
|
334
|
+
// which matches today's behavior where evaluateAllFlags filters enabled: true.
|
|
335
|
+
const flatFlags = useMemo<Record<string, boolean | string | null>>(() => {
|
|
336
|
+
const out: Record<string, boolean | string | null> = {};
|
|
337
|
+
for (const [key, def] of Object.entries(flags)) {
|
|
338
|
+
const value = def.variants[def.defaultVariant];
|
|
339
|
+
out[key] = value ?? null;
|
|
340
|
+
}
|
|
341
|
+
return out;
|
|
342
|
+
}, [flags]);
|
|
343
|
+
|
|
344
|
+
return {flags: flatFlags, getFlag, getVariant, isLoading, error, refetch};
|
|
345
|
+
};
|
|
346
|
+
```
|
|
347
|
+
|
|
348
|
+
`useFeatureFlags`'s return type is unchanged from today, including `flags: Record<string, boolean | string | null>` whose **keys and values match the prior `/evaluate` payload byte-for-byte for enabled flags**. Existing consumers in `example-frontend/app/(tabs)/index.tsx:105` and `profile.tsx` keep working without edits.
|
|
349
|
+
|
|
350
|
+
A snapshot test in Phase 2 will lock down this projection against the existing `profile.tsx` rendering output.
|
|
351
|
+
|
|
352
|
+
### Direct OpenFeature usage (recommended for new code)
|
|
353
|
+
|
|
354
|
+
Consumers add `@openfeature/react-sdk` as a direct dep and use OF hooks directly:
|
|
355
|
+
|
|
356
|
+
```typescript
|
|
357
|
+
import {useBooleanFlagValue, useStringFlagValue, FeatureFlag} from "@openfeature/react-sdk";
|
|
358
|
+
|
|
359
|
+
const showSummary = useBooleanFlagValue("todo-summary-card", false);
|
|
360
|
+
const layout = useStringFlagValue("profile-layout", "compact");
|
|
361
|
+
|
|
362
|
+
return (
|
|
363
|
+
<FeatureFlag flagKey="ai-features" defaultValue={false}>
|
|
364
|
+
<AiFeaturesTab />
|
|
365
|
+
</FeatureFlag>
|
|
366
|
+
);
|
|
367
|
+
```
|
|
368
|
+
|
|
369
|
+
`@terreno/rtk` does **not** re-export OpenFeature hooks. Consumers add `@openfeature/react-sdk` to their `package.json` and import directly. (Decision per shaping question.)
|
|
370
|
+
|
|
371
|
+
**Note for consumers**: `useNumberFlagValue` and `useObjectFlagValue` always return the `defaultValue` with this provider — `MongoFeatureFlagProvider` supports only boolean and string (variant) flags, so number/object resolution returns `FLAG_NOT_FOUND` `ResolutionDetails`. Documented in `feature-flags.md` reference.
|
|
372
|
+
|
|
373
|
+
### SDK regen and the new endpoint
|
|
374
|
+
|
|
375
|
+
Today's `useFeatureFlags` manually injects the `/evaluate` endpoint via RTK Query (`api.injectEndpoints`) because the hook lives in `@terreno/rtk` and runs without depending on consumer-app SDK codegen. We keep the same pattern for `useTerrenoFeatureFlags` — it manually injects `/flagConfiguration` via `api.injectEndpoints`. **The consumer's SDK regen (`bun run sdk`) will ALSO emit a generated hook for `/flagConfiguration`** — that's fine; the generated hook is unused but harmless. To prevent confusion, document in `feature-flags.md` that consumers should call `useTerrenoFeatureFlags`/`useFeatureFlags`, not the generated `useGetFeatureFlagsFlagConfigurationQuery` hook from `openApiSdk.ts`. No rip-out of manual injection.
|
|
376
|
+
|
|
377
|
+
### Wiring in `example-frontend`
|
|
378
|
+
|
|
379
|
+
**File**: `example-frontend/app/_layout.tsx` (updated)
|
|
380
|
+
|
|
381
|
+
Wrap the app in `<OpenFeatureProvider domain="feature-flags">`. Add `useTerrenoFeatureFlags(api, {socket})` at the top level after auth so the provider is set as soon as the user is known. Both must come *after* the Redux Provider since the hook uses RTK Query.
|
|
382
|
+
|
|
383
|
+
---
|
|
384
|
+
|
|
385
|
+
## Live Updates
|
|
386
|
+
|
|
387
|
+
### Backend
|
|
388
|
+
|
|
389
|
+
Inside `FeatureFlagsApp.register()`, if `liveUpdates.socketIoServer` is provided:
|
|
390
|
+
|
|
391
|
+
1. Start a Mongoose change stream: `FeatureFlag.watch([], {fullDocument: "updateLookup"})`.
|
|
392
|
+
2. On any change event, emit `liveUpdates.socketIoServer.emit("featureFlagsChanged", {key: change.fullDocument?.key})`.
|
|
393
|
+
3. Also call `provider.emitConfigurationChanged()` so any server-side OF clients with cached values invalidate (mostly future-proofing; we don't cache on the server today).
|
|
394
|
+
4. Handle the stream's `error` event by logging and attempting one reconnect; subsequent errors disable the stream and log a warning to the consumer.
|
|
395
|
+
5. On `app.close()` (if `TerrenoApp` exposes a shutdown hook — add one if not), call `stream.close()`.
|
|
396
|
+
|
|
397
|
+
**Requirement to document**: Mongoose change streams require MongoDB to run as a replica set (even a single-node replica set is fine). The `add-feature-flags.md` how-to gets a new "Live updates" section that calls this out.
|
|
398
|
+
|
|
399
|
+
### Frontend
|
|
400
|
+
|
|
401
|
+
Inside `useTerrenoFeatureFlags`, if `options.socket` is provided:
|
|
402
|
+
|
|
403
|
+
1. Subscribe to `socket.on(options.socketEventName ?? "featureFlagsChanged", handler)`.
|
|
404
|
+
2. Handler calls `refetch()` on the RTK Query endpoint.
|
|
405
|
+
3. The fresh data triggers a fresh `OpenFeature.setProvider(domain, new TypedInMemoryProvider(...))`.
|
|
406
|
+
4. OpenFeature React SDK auto-re-renders all `useBooleanFlagValue` / `useStringFlagValue` consumers (this is its built-in behavior on `PROVIDER_CONFIGURATION_CHANGED`).
|
|
407
|
+
5. Cleanup: `socket.off(eventName, handler)` on unmount.
|
|
408
|
+
|
|
409
|
+
If `options.socket` is not provided, the hook falls back to RTK Query's existing refetch-on-mount behavior. Live updates are strictly opt-in.
|
|
410
|
+
|
|
411
|
+
---
|
|
412
|
+
|
|
413
|
+
## Type-Safe Flag Keys
|
|
414
|
+
|
|
415
|
+
Document in `docs/reference/feature-flags.md` how consumers can narrow flag-key types using module augmentation:
|
|
416
|
+
|
|
417
|
+
```typescript
|
|
418
|
+
// example-frontend/types/openfeature.d.ts
|
|
419
|
+
declare module "@openfeature/core" {
|
|
420
|
+
export type BooleanFlagKey = "todo-summary-card" | "dark-mode-toggle" | "ai-features" | "todo-priority";
|
|
421
|
+
export type StringFlagKey = "profile-layout";
|
|
422
|
+
}
|
|
423
|
+
```
|
|
424
|
+
|
|
425
|
+
After this, `useBooleanFlagValue("typo", false)` fails at compile time. Optional per-consumer; not required to use the feature flag package.
|
|
426
|
+
|
|
427
|
+
---
|
|
428
|
+
|
|
429
|
+
## Notifications
|
|
430
|
+
|
|
431
|
+
None needed (live updates use Socket.io directly, not the notifier system).
|
|
432
|
+
|
|
433
|
+
---
|
|
434
|
+
|
|
435
|
+
## UI
|
|
436
|
+
|
|
437
|
+
No new dedicated screens. The admin panel (auto-generated from `FeatureFlag` schema via `@terreno/admin-backend`) continues to work as today and now also exposes the new `defaultVariant` field automatically because `mongoose-to-swagger` picks up its description.
|
|
438
|
+
|
|
439
|
+
`example-frontend/app/(tabs)/profile.tsx` gets a small additional debug view: alongside the existing "all flags" card, display each flag's `reason` (TARGETING_MATCH / DISABLED / ERROR) via `useBooleanFlagDetails` to demonstrate OF metadata is available.
|
|
440
|
+
|
|
441
|
+
---
|
|
442
|
+
|
|
443
|
+
## Phases
|
|
444
|
+
|
|
445
|
+
### Phase 1 — Backend OpenFeature integration
|
|
446
|
+
|
|
447
|
+
Goal: server-side provider is in place and the new endpoint returns OF-shape responses; existing tests still pass; legacy endpoint kept.
|
|
448
|
+
|
|
449
|
+
- Add `@openfeature/server-sdk` to `feature-flags/package.json`.
|
|
450
|
+
- Add `defaultVariant` field + validation + computed-default getter to `FeatureFlag` schema. Update `types.ts` accordingly. Update existing pre-save validation to also check `defaultVariant` shape (boolean → "on"/"off"; variant → must be in variants).
|
|
451
|
+
- Create `feature-flags/src/openFeatureProvider.ts` with `MongoFeatureFlagProvider` as specified above.
|
|
452
|
+
- Update `feature-flags/src/featureFlagsApp.ts`:
|
|
453
|
+
- On `register()`, construct the provider with `{flagModel: FeatureFlag, segments: this.segments}` and call `OpenFeature.setProvider(domain, provider)` (domain = `openFeatureDomain ?? "feature-flags"`).
|
|
454
|
+
- Add the new `/flagConfiguration` route.
|
|
455
|
+
- Keep the existing `/evaluate` route but emit the deprecation headers + one-shot warn log.
|
|
456
|
+
- Add tests:
|
|
457
|
+
- `feature-flags/src/tests/openFeatureProvider.test.ts` — boolean and variant resolution, disabled flags, type mismatch, missing flag, targetingKey hashing, rule + segment paths, missing targetingKey.
|
|
458
|
+
- Extend `featureFlagsApp.test.ts` — `/flagConfiguration` returns the right OF shape for both boolean and variant flags; respects archived/enabled; verifies `defaultVariant` propagation; verifies `/evaluate` still works and includes `Deprecation` header.
|
|
459
|
+
- Update `feature-flags/src/index.ts` to export `MongoFeatureFlagProvider`.
|
|
460
|
+
|
|
461
|
+
**Exit criteria**: `bun run test --filter=@terreno/feature-flags` and `bun run compile` pass. The new endpoint returns a valid `FlagConfiguration` for a logged-in user.
|
|
462
|
+
|
|
463
|
+
### Phase 2 — Frontend OpenFeature integration
|
|
464
|
+
|
|
465
|
+
Goal: `useTerrenoFeatureFlags` exists; legacy `useFeatureFlags` works as a thin BC wrapper; example app renders identically.
|
|
466
|
+
|
|
467
|
+
- Add `@openfeature/web-sdk`, `@openfeature/react-sdk`, and `@openfeature/core` to `rtk/package.json` (peer dep `react`).
|
|
468
|
+
- Create `rtk/src/useTerrenoFeatureFlags.ts` (RTK Query bulk fetch → `TypedInMemoryProvider` → `OpenFeature.setProvider(domain, ...)` + `setContext(domain, {targetingKey})`).
|
|
469
|
+
- Rewrite `rtk/src/useFeatureFlags.ts` as a thin wrapper preserving today's `{flags, getFlag, getVariant, isLoading, error, refetch}` API. Same overload signature (string | options object). `getVariant` returns `null` when `reason === "DISABLED" || "ERROR"`.
|
|
470
|
+
- Update `rtk/src/useFeatureFlags.test.ts` to validate against the new `FlagConfiguration` payload shape. Add `useTerrenoFeatureFlags.test.ts` covering: success path, skip behavior, refetch, domain isolation (doesn't affect the global default provider).
|
|
471
|
+
- Update `rtk/src/index.ts` to export `useTerrenoFeatureFlags`. **Do not** re-export OpenFeature hooks per shaping decision.
|
|
472
|
+
|
|
473
|
+
**Exit criteria**: `bun run test --filter=@terreno/rtk` and `bun run compile` pass. Calling code in `example-frontend` works without code edits.
|
|
474
|
+
|
|
475
|
+
### Phase 3 — Live updates (opt-in)
|
|
476
|
+
|
|
477
|
+
Goal: admin edits propagate to connected clients without a page refresh.
|
|
478
|
+
|
|
479
|
+
- Backend: in `FeatureFlagsApp.register()`, if `liveUpdates.socketIoServer` is provided, start `FeatureFlag.watch()` and emit `featureFlagsChanged` on each change. Wire to `provider.emitConfigurationChanged()` too.
|
|
480
|
+
- Backend tests: `featureFlagsApp.liveUpdates.test.ts` — given a mocked socket.io server, mutating a flag triggers an emission with the expected event payload. Use the in-memory MongoDB test rig and a real replica set if available; otherwise mock the change stream.
|
|
481
|
+
- Frontend: in `useTerrenoFeatureFlags`, if `options.socket` is provided, subscribe to the event name and call `refetch()` on each. Verify the OF re-render is triggered (component snapshot test).
|
|
482
|
+
- Documentation: add a "Live updates" section to `docs/how-to/add-feature-flags.md` (Mongoose replica-set requirement, Socket.io setup).
|
|
483
|
+
|
|
484
|
+
**Exit criteria**: opt-in via constructor options; default off; tests cover both opt-in and opt-out paths.
|
|
485
|
+
|
|
486
|
+
### Phase 4 — Example apps + docs + SDK regen
|
|
487
|
+
|
|
488
|
+
Goal: example apps run, docs reflect the new shape, downstream consumers have a migration path.
|
|
489
|
+
|
|
490
|
+
- `example-backend`: pass `liveUpdates: {socketIoServer: io}` to `FeatureFlagsApp` (the example-backend already constructs a Socket.io server for the existing `useSocketConnection` flow).
|
|
491
|
+
- `example-frontend`: wrap `_layout.tsx` in `<OpenFeatureProvider domain="feature-flags">`. Call `useTerrenoFeatureFlags(terrenoApi, {socket})` once at the top of the layout after auth. Update `profile.tsx` to add the `useBooleanFlagDetails` debug row showing `reason` per flag.
|
|
492
|
+
- Add a `types/openfeature.d.ts` file in `example-frontend` demonstrating the type-safe flag keys augmentation. Update SEED_FLAGS in `example-backend/src/scripts/seed-feature-flags.ts` to include `defaultVariant` on each flag, exercising the new field.
|
|
493
|
+
- Regenerate SDK: `cd example-frontend && bun run sdk`.
|
|
494
|
+
- Update `docs/reference/feature-flags.md` to describe the new endpoint shape, the `MongoFeatureFlagProvider` export, the `defaultVariant` field, and how to use OpenFeature hooks directly. Note `/evaluate` is deprecated.
|
|
495
|
+
- Update `docs/how-to/add-feature-flags.md` to recommend OpenFeature hooks for new code, with `useFeatureFlags` shown as the BC path.
|
|
496
|
+
- Add a new section "Migrating to OpenFeature" describing the breaking wire change for anyone calling `/evaluate` directly (no SDK update required if using `useFeatureFlags` — the BC wrapper handles it).
|
|
497
|
+
- Update `docs/implementationPlans/feature-flags.md` with a note linking to this new IP at the top.
|
|
498
|
+
|
|
499
|
+
**Exit criteria**: `bun run frontend:web` + `bun run backend:dev` runs end-to-end. Flags render with the same values as before. Admin edits propagate live to the open frontend. All workspace tests pass: `bun run lint && bun run compile && bun run test`.
|
|
500
|
+
|
|
501
|
+
---
|
|
502
|
+
|
|
503
|
+
## Feature Flags & Migrations
|
|
504
|
+
|
|
505
|
+
- No data migration: legacy `FeatureFlag` docs without `defaultVariant` get a computed value via Mongoose getter at read time.
|
|
506
|
+
- The wire-protocol change is at the SDK boundary — consumers using `useFeatureFlags(api)` get the new behavior automatically because the hook handles both shapes via the BC wrapper. Direct `/evaluate` callers (none expected internally) hit the deprecated endpoint until they migrate.
|
|
507
|
+
- No new feature flag is needed to gate this change since the package already gates itself.
|
|
508
|
+
|
|
509
|
+
---
|
|
510
|
+
|
|
511
|
+
## Activity Log & User Updates
|
|
512
|
+
|
|
513
|
+
None.
|
|
514
|
+
|
|
515
|
+
---
|
|
516
|
+
|
|
517
|
+
## Risks & Mitigations
|
|
518
|
+
|
|
519
|
+
| Risk | Mitigation |
|
|
520
|
+
|---|---|
|
|
521
|
+
| **User switching pours wrong-user data into globally-shared InMemoryProvider** | RTK Query cache key includes `userId`; on `userId` change the hook re-fetches AND calls `OpenFeature.setContext(domain, {targetingKey})` before swapping the provider. `isLoading` returns to `true` during the transition so consumers don't render stale values. Explicit test required. |
|
|
522
|
+
| **`@openfeature/react-sdk` may not work in React Native** | Phase 2.1 includes a spike: import the package in a `bun test` using `@testing-library/react-native` and assert `useBooleanFlagValue` returns expected value. If it fails on RN, fall back to importing from `@openfeature/web-sdk` directly and writing a tiny React adapter in `@terreno/rtk`. **Blocking before Phase 2 proceeds.** |
|
|
523
|
+
| **`OpenFeature.setProvider` is async; consumers can render with `defaultValue` before `PROVIDER_READY`** | `useTerrenoFeatureFlags` subscribes to `PROVIDER_READY` via `client.addHandler` and only flips `isLoading` to `false` once that event fires. Tested explicitly. |
|
|
524
|
+
| **`OpenFeature` is a global singleton — two copies of `@openfeature/web-sdk` create two singletons** | Declare `@openfeature/web-sdk` and `@openfeature/react-sdk` as **peerDependencies** (not direct deps) in `rtk/package.json`. Consumers install once; bun dedupes automatically. Direct deps remain on `@openfeature/core` for types. |
|
|
525
|
+
| **Mongoose change streams need a replica set; default test mongo is standalone** | The live-updates tests mock `FeatureFlag.watch()` to return a fake EventEmitter. We do NOT spin up a real replica set in tests. Production deployments must use a replica set — documented in `add-feature-flags.md` "Live updates" section as a prerequisite. Startup logs a warning if `watch()` throws. |
|
|
526
|
+
| **Provider's `resolveStringEvaluation` could be called with a key whose stored type is `boolean`** | Provider returns `{value: defaultValue, reason: "ERROR", errorCode: "TYPE_MISMATCH"}`. Tested explicitly. |
|
|
527
|
+
| **`defaultVariant` validation could reject legacy docs on edit** | Pre-save hook auto-populates `defaultVariant` for legacy docs before validation runs; validation only enforces shape constraints, not presence. Tested with both legacy-update and new-create paths. |
|
|
528
|
+
| **Provider's per-flag `findOneOrNone` is N+1 for server-side OF consumers** | Acknowledged as a regression vs. `evaluateAllFlags` (one query). For our frontend bulk fetch this is fine because `/flagConfiguration` does ONE query and loops in-memory. Document that direct backend OF usage is not for hot paths; add LRU caching in a follow-up if needed. |
|
|
529
|
+
| **`OpenFeature.setProvider` cleanup on unmount could break other consumers** | Do not clear on unmount of an individual instance. Use a module-level ref count; only clear when the count returns to zero. Documented in `useTerrenoFeatureFlags.ts`. |
|
|
530
|
+
| **React StrictMode double-mount sets the provider twice** | Use a ref to track the in-flight `setProvider` promise; if a second mount fires while the first is in-flight, skip the second call. Tested with `<StrictMode>` wrapper. |
|
|
531
|
+
| **Socket.io broadcast leaks flag keys to all connected clients** | Documented behavior. Payload contains only `{key}` (no user data). Acceptable since flag keys are not secrets — the same keys ship to every authenticated client via `/flagConfiguration` anyway. |
|
|
532
|
+
| **Socket reconnects miss change events during disconnect** | After socket reconnect, hook automatically `refetch()`s once (already happens via RTK Query refetch-on-focus and via socket connection event). Document the gap is "at most one stale render" in practice. |
|
|
533
|
+
| **Type-safe flag keys union can drift from runtime flag set** | Documented in `feature-flags.md` reference: the type union is a compile-time hint only; admin changes to flags may add/remove runtime keys without the TS types updating. Recommend syncing periodically. |
|
|
534
|
+
|
|
535
|
+
---
|
|
536
|
+
|
|
537
|
+
## Not included / Future work
|
|
538
|
+
|
|
539
|
+
- Server-side flag value caching keyed by `(flagKey, userId)` for very hot paths.
|
|
540
|
+
- Anonymous evaluation (would require deriving a stable `targetingKey` from device id or similar).
|
|
541
|
+
- Object/number flag types (currently return `FLAG_NOT_FOUND` from the provider; can be added by extending the schema and provider).
|
|
542
|
+
- Native flagd or GrowthBook provider — out of scope; vendor-portability is unlocked by the OF abstraction.
|
|
543
|
+
- Experiment-results tracking via `useTrack` and analytics integration.
|
|
544
|
+
- Multi-tenant flag scopes (e.g., per-org overrides).
|
|
545
|
+
- Flag scheduling (enable/disable at a future date) and audit log of who changed what when.
|