@cdmbase/wiki-browser 12.0.18-alpha.10
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/LICENSE +21 -0
- package/lib/components/Logo.d.ts +4 -0
- package/lib/components/Logo.d.ts.map +1 -0
- package/lib/components/Logo.js +16 -0
- package/lib/components/Logo.js.map +1 -0
- package/lib/components/help/SidebarSearch.d.ts +8 -0
- package/lib/components/help/SidebarSearch.d.ts.map +1 -0
- package/lib/components/help/SidebarSearch.js +111 -0
- package/lib/components/help/SidebarSearch.js.map +1 -0
- package/lib/components/help/index.d.ts +2 -0
- package/lib/components/help/index.d.ts.map +1 -0
- package/lib/components/landing/FeatureCard.d.ts +13 -0
- package/lib/components/landing/FeatureCard.d.ts.map +1 -0
- package/lib/components/landing/FeatureCard.js +85 -0
- package/lib/components/landing/FeatureCard.js.map +1 -0
- package/lib/components/landing/QuickLinkCard.d.ts +8 -0
- package/lib/components/landing/QuickLinkCard.d.ts.map +1 -0
- package/lib/components/landing/QuickLinkCard.js +26 -0
- package/lib/components/landing/QuickLinkCard.js.map +1 -0
- package/lib/components/landing/SearchInput.d.ts +10 -0
- package/lib/components/landing/SearchInput.d.ts.map +1 -0
- package/lib/components/landing/SearchInput.js +223 -0
- package/lib/components/landing/SearchInput.js.map +1 -0
- package/lib/components/landing/index.d.ts +4 -0
- package/lib/components/landing/index.d.ts.map +1 -0
- package/lib/components/welcome.d.ts +3 -0
- package/lib/components/welcome.d.ts.map +1 -0
- package/lib/compute.d.ts +4 -0
- package/lib/compute.d.ts.map +1 -0
- package/lib/compute.js +96 -0
- package/lib/compute.js.map +1 -0
- package/lib/config/env-config.d.ts +4 -0
- package/lib/config/env-config.d.ts.map +1 -0
- package/lib/config/env-config.js +7 -0
- package/lib/config/env-config.js.map +1 -0
- package/lib/docs.config.d.ts +48 -0
- package/lib/docs.config.d.ts.map +1 -0
- package/lib/index.d.ts +4 -0
- package/lib/index.d.ts.map +1 -0
- package/lib/index.js +2 -0
- package/lib/index.js.map +1 -0
- package/lib/loaders/search.d.ts +1 -0
- package/lib/loaders/search.d.ts.map +1 -0
- package/lib/module.d.ts +4 -0
- package/lib/module.d.ts.map +1 -0
- package/lib/module.js +11 -0
- package/lib/module.js.map +1 -0
- package/lib/pages/ArticlePage/ArticlePage.d.ts +4 -0
- package/lib/pages/ArticlePage/ArticlePage.d.ts.map +1 -0
- package/lib/pages/ArticlePage/ArticlePage.js +222 -0
- package/lib/pages/ArticlePage/ArticlePage.js.map +1 -0
- package/lib/pages/ArticlePage/index.d.ts +3 -0
- package/lib/pages/ArticlePage/index.d.ts.map +1 -0
- package/lib/pages/ArticlePage/index.js +3 -0
- package/lib/pages/ArticlePage/index.js.map +1 -0
- package/lib/pages/CategoryCollection/CategoryCollection.d.ts +4 -0
- package/lib/pages/CategoryCollection/CategoryCollection.d.ts.map +1 -0
- package/lib/pages/CategoryCollection/CategoryCollection.js +103 -0
- package/lib/pages/CategoryCollection/CategoryCollection.js.map +1 -0
- package/lib/pages/CategoryCollection/index.d.ts +3 -0
- package/lib/pages/CategoryCollection/index.d.ts.map +1 -0
- package/lib/pages/CategoryCollection/index.js +3 -0
- package/lib/pages/CategoryCollection/index.js.map +1 -0
- package/lib/pages/Help/HelpIndex.d.ts +4 -0
- package/lib/pages/Help/HelpIndex.d.ts.map +1 -0
- package/lib/pages/Help/HelpIndex.js +44 -0
- package/lib/pages/Help/HelpIndex.js.map +1 -0
- package/lib/pages/Help/index.d.ts +4 -0
- package/lib/pages/Help/index.d.ts.map +1 -0
- package/lib/pages/Help/index.js +226 -0
- package/lib/pages/Help/index.js.map +1 -0
- package/lib/pages/Landing/index.d.ts +3 -0
- package/lib/pages/Landing/index.d.ts.map +1 -0
- package/lib/pages/Landing/index.js +281 -0
- package/lib/pages/Landing/index.js.map +1 -0
- package/lib/routes.json +2533 -0
- package/lib/seo.d.ts +22 -0
- package/lib/seo.d.ts.map +1 -0
- package/lib/slot-fill/FooterFill.d.ts +3 -0
- package/lib/slot-fill/FooterFill.d.ts.map +1 -0
- package/lib/slot-fill/FooterFill.js +18 -0
- package/lib/slot-fill/FooterFill.js.map +1 -0
- package/lib/slot-fill/LogoFill.d.ts +5 -0
- package/lib/slot-fill/LogoFill.d.ts.map +1 -0
- package/lib/slot-fill/LogoFill.js +74 -0
- package/lib/slot-fill/LogoFill.js.map +1 -0
- package/lib/slot-fill/consts.d.ts +5 -0
- package/lib/slot-fill/consts.d.ts.map +1 -0
- package/lib/slot-fill/consts.js +1 -0
- package/lib/slot-fill/consts.js.map +1 -0
- package/lib/slot-fill/index.d.ts +4 -0
- package/lib/slot-fill/index.d.ts.map +1 -0
- package/lib/templates/assets/images/add-link-frontend.png +0 -0
- package/lib/templates/assets/images/add-package-backend.png +0 -0
- package/lib/templates/assets/images/add-to-backend-module.png +0 -0
- package/lib/templates/assets/images/add-upload-client-frontend.png +0 -0
- package/lib/templates/assets/images/additional-parameters.png +0 -0
- package/lib/templates/assets/images/aeh-implementation.png +0 -0
- package/lib/templates/assets/images/aeh-usage.png +0 -0
- package/lib/templates/assets/images/apollo-client/recommendation_cache_mgmt.png +0 -0
- package/lib/templates/assets/images/app-deploy-new-version/jenkins1.PNG +0 -0
- package/lib/templates/assets/images/app-deploy-new-version/jenkins2.PNG +0 -0
- package/lib/templates/assets/images/auth-wrapper-code.png +0 -0
- package/lib/templates/assets/images/cdebase.png +0 -0
- package/lib/templates/assets/images/cdm-locales-directory.png +0 -0
- package/lib/templates/assets/images/client-settings.png +0 -0
- package/lib/templates/assets/images/codegen_file_update.png +0 -0
- package/lib/templates/assets/images/configuration.png +0 -0
- package/lib/templates/assets/images/copy-plugin.png +0 -0
- package/lib/templates/assets/images/docusaurus.png +0 -0
- package/lib/templates/assets/images/error-link.png +0 -0
- package/lib/templates/assets/images/error-sample.png +0 -0
- package/lib/templates/assets/images/extension copy.png +0 -0
- package/lib/templates/assets/images/extension.png +0 -0
- package/lib/templates/assets/images/graphql/graphql-folder-backend.png +0 -0
- package/lib/templates/assets/images/graphql/graphql-folder-with-gql.png +0 -0
- package/lib/templates/assets/images/i18n-config.png +0 -0
- package/lib/templates/assets/images/image.png +0 -0
- package/lib/templates/assets/images/logo.svg +10 -0
- package/lib/templates/assets/images/logo1.svg +1 -0
- package/lib/templates/assets/images/modify-upload-false-server.png +0 -0
- package/lib/templates/assets/images/navigation-auth-enabled.png +0 -0
- package/lib/templates/assets/images/org-dashboard-navigation.png +0 -0
- package/lib/templates/assets/images/org-navigation.png +0 -0
- package/lib/templates/assets/images/preferences_graphql_type.png +0 -0
- package/lib/templates/assets/images/provider.png +0 -0
- package/lib/templates/assets/images/route-config.png +0 -0
- package/lib/templates/assets/images/service-accounts.png +0 -0
- package/lib/templates/assets/images/source-code/source-code-environments.png +0 -0
- package/lib/templates/assets/images/source-code/source-code-organization.png +0 -0
- package/lib/templates/assets/images/spin-clone-develop-deployment/jenkins-changes.png +0 -0
- package/lib/templates/assets/images/spin-clone-develop-deployment/lerna-changes.png +0 -0
- package/lib/templates/assets/images/spin-clone-develop-deployment/root-package-json-changes.png +0 -0
- package/lib/templates/assets/images/spin-clone-develop-deployment/values-dev-changes.png +0 -0
- package/lib/templates/assets/images/sso-mappers.png +0 -0
- package/lib/templates/assets/images/sso-picture-mapper.png +0 -0
- package/lib/templates/assets/images/sso-settings.png +0 -0
- package/lib/templates/assets/images/timesheet_apollo_cache.png +0 -0
- package/lib/templates/assets/images/timesheet_query.png +0 -0
- package/lib/templates/assets/images/tutorial/docsVersionDropdown.png +0 -0
- package/lib/templates/assets/images/tutorial/localeDropdown.png +0 -0
- package/lib/templates/assets/images/unauthenticated.png +0 -0
- package/lib/templates/assets/images/undraw_docusaurus_mountain.svg +170 -0
- package/lib/templates/assets/images/undraw_docusaurus_react.svg +169 -0
- package/lib/templates/assets/images/undraw_docusaurus_tree.svg +1 -0
- package/lib/templates/assets/images/vite-plugin-config.png +0 -0
- package/lib/templates/content/docs/Generators/Project/generate-fullproject.md +12 -0
- package/lib/templates/content/docs/LLM/Logger.llm.md +194 -0
- package/lib/templates/content/docs/LLM/backend-proxies-services-llm.md +2687 -0
- package/lib/templates/content/docs/LLM/backend-service-llm.md +3384 -0
- package/lib/templates/content/docs/LLM/db_migration_llm.md +954 -0
- package/lib/templates/content/docs/LLM/frontend/REMIX-15.3-upgrade-llm.md +1245 -0
- package/lib/templates/content/docs/LLM/inngest/INNGEST_FUNCTION_DEVELOPMENT_GUIDE_LLM.md +1241 -0
- package/lib/templates/content/docs/LLM/inngest/INNGEST_NAMESPACE_LLM.md +384 -0
- package/lib/templates/content/docs/LLM/llm_workflow_namespace.md +384 -0
- package/lib/templates/content/docs/LLM/organization-components-form-llm.md +1395 -0
- package/lib/templates/content/docs/LLM/page-component-llm.md +173 -0
- package/lib/templates/content/docs/LLM/preferences-settings-llm.md +2781 -0
- package/lib/templates/content/docs/LLM/tailwind-css-llm.md +502 -0
- package/lib/templates/content/docs/UI/SchemaBasedUI.md +334 -0
- package/lib/templates/content/docs/UI/SlotFillComponent.md +334 -0
- package/lib/templates/content/docs/adminide-modules/account/auth0-login.md +31 -0
- package/lib/templates/content/docs/adminide-modules/account/index.md +14 -0
- package/lib/templates/content/docs/adminide-modules/account/keycloak-remix-setup.md +86 -0
- package/lib/templates/content/docs/adminide-modules/account/remix-auth-setup.md +79 -0
- package/lib/templates/content/docs/adminide-modules/account/various-auth-qatest.md +157 -0
- package/lib/templates/content/docs/adminide-modules/api-builders/graphql.md +906 -0
- package/lib/templates/content/docs/adminide-modules/billing/payments/index.md +14 -0
- package/lib/templates/content/docs/adminide-modules/billing/payments/stripe/index.md +14 -0
- package/lib/templates/content/docs/adminide-modules/billing/payments/stripe/settingup-stripe-locally.md +25 -0
- package/lib/templates/content/docs/adminide-modules/billing/tier-config.md +293 -0
- package/lib/templates/content/docs/adminide-modules/connectors/Connector.md +207 -0
- package/lib/templates/content/docs/adminide-modules/file-upload/index.md +16 -0
- package/lib/templates/content/docs/adminide-modules/file-upload/setup.md +435 -0
- package/lib/templates/content/docs/adminide-modules/file-upload/upload-file-using-signed-url.md +161 -0
- package/lib/templates/content/docs/adminide-modules/preferences/AddAdditionalPermissions.md +151 -0
- package/lib/templates/content/docs/adminide-modules/preferences/Configuration.md +241 -0
- package/lib/templates/content/docs/adminide-modules/preferences/Policy-Configuration.md +61 -0
- package/lib/templates/content/docs/adminide-modules/preferences/UI-components/ResourceSettingsLoader.md +319 -0
- package/lib/templates/content/docs/adminide-modules/preferences/contribute_scope_target.md +280 -0
- package/lib/templates/content/docs/adminide-modules/preferences/generate-urii.md +94 -0
- package/lib/templates/content/docs/adminide-modules/preferences/index.md +28 -0
- package/lib/templates/content/docs/adminide-modules/preferences/machine-configuration.md +157 -0
- package/lib/templates/content/docs/adminide-modules/preferences/pageSettings/generateCdecodeUri.md +1289 -0
- package/lib/templates/content/docs/adminide-modules/preferences/pageSettings/migratingFromUseSettings.md +215 -0
- package/lib/templates/content/docs/adminide-modules/preferences/permissions/Roles-Permissions.md +72 -0
- package/lib/templates/content/docs/adminide-modules/preferences/permissions/settingUserPermissions.md +139 -0
- package/lib/templates/content/docs/adminide-modules/preferences/preference-dependency.md +138 -0
- package/lib/templates/content/docs/adminide-modules/preferences/route-based-configuration.md +41 -0
- package/lib/templates/content/docs/adminide-modules/preferences/schema-configuration.md +71 -0
- package/lib/templates/content/docs/adminide-modules/preferences/supported.md +24 -0
- package/lib/templates/content/docs/adminide-modules/preferences/useSettingsLoader.md +248 -0
- package/lib/templates/content/docs/adminide-modules/project-tools/auth-providers.md +1317 -0
- package/lib/templates/content/docs/adminide-modules/project-tools/keycloak-guide.md +543 -0
- package/lib/templates/content/docs/adminide-modules/project-tools/tenant-management/tenant-based-authentication.md +846 -0
- package/lib/templates/content/docs/adminide-modules/project-tools/tenant-management/tenant-management.md +708 -0
- package/lib/templates/content/docs/adminide-modules/project-tools/tenant-management/tenants.md +1117 -0
- package/lib/templates/content/docs/chrome-extension/index.md +14 -0
- package/lib/templates/content/docs/chrome-extension/setup.md +30 -0
- package/lib/templates/content/docs/contributing/adding-package.md +23 -0
- package/lib/templates/content/docs/contributing/adding_new_modules.md +99 -0
- package/lib/templates/content/docs/contributing/architecture-updates.md +19 -0
- package/lib/templates/content/docs/contributing/avoid-using-promises-ui.md +116 -0
- package/lib/templates/content/docs/contributing/coding-guidelines.md +111 -0
- package/lib/templates/content/docs/contributing/do-and-dont.md +42 -0
- package/lib/templates/content/docs/contributing/faq.md +22 -0
- package/lib/templates/content/docs/contributing/folder-setup/browser.md +12 -0
- package/lib/templates/content/docs/contributing/folder-setup/config.md +12 -0
- package/lib/templates/content/docs/contributing/folder-setup/containers-server.md +12 -0
- package/lib/templates/content/docs/contributing/folder-setup/core.md +12 -0
- package/lib/templates/content/docs/contributing/folder-setup/graphql.md +12 -0
- package/lib/templates/content/docs/contributing/folder-setup/index.md +30 -0
- package/lib/templates/content/docs/contributing/folder-setup/module.md +12 -0
- package/lib/templates/content/docs/contributing/folder-setup/server.md +12 -0
- package/lib/templates/content/docs/contributing/folder-setup/services.md +12 -0
- package/lib/templates/content/docs/contributing/folder-setup/store.md +12 -0
- package/lib/templates/content/docs/contributing/frontend-coding.md +30 -0
- package/lib/templates/content/docs/contributing/git-subtree-sharing.md +73 -0
- package/lib/templates/content/docs/contributing/graphql-subscriptions.md +69 -0
- package/lib/templates/content/docs/contributing/how-to-contribute.md +30 -0
- package/lib/templates/content/docs/contributing/how_to_check_pure_esm.md +29 -0
- package/lib/templates/content/docs/contributing/index.md +60 -0
- package/lib/templates/content/docs/contributing/installation-issues.md +23 -0
- package/lib/templates/content/docs/contributing/keyboard-shortcut.md +131 -0
- package/lib/templates/content/docs/contributing/language/locale-support.md +12 -0
- package/lib/templates/content/docs/contributing/lerna-build-tools.md +516 -0
- package/lib/templates/content/docs/contributing/lerna-yarn-workspaces.md +95 -0
- package/lib/templates/content/docs/contributing/lint-and-formatter.md +20 -0
- package/lib/templates/content/docs/contributing/mobile-setup.md +16 -0
- package/lib/templates/content/docs/contributing/project-setup.md +233 -0
- package/lib/templates/content/docs/contributing/react/index.md +14 -0
- package/lib/templates/content/docs/contributing/react/lazy-component.md +70 -0
- package/lib/templates/content/docs/contributing/run-various-options.md +124 -0
- package/lib/templates/content/docs/contributing/schema-first-graphql-types.md +37 -0
- package/lib/templates/content/docs/contributing/source-code-organization.md +57 -0
- package/lib/templates/content/docs/contributing/staging-docker.md +88 -0
- package/lib/templates/content/docs/contributing/third-party/apollo-client-v3-tutorials.md +28 -0
- package/lib/templates/content/docs/contributing/third-party/index.md +18 -0
- package/lib/templates/content/docs/contributing/typescript-contribution.md +16 -0
- package/lib/templates/content/docs/devops/app-deploy-new-version.md +30 -0
- package/lib/templates/content/docs/devops/index.md +14 -0
- package/lib/templates/content/docs/devops/mobile-jenkins-build.md +40 -0
- package/lib/templates/content/docs/devops/versioning-the-project.md +128 -0
- package/lib/templates/content/docs/error-handler/application-error-handler.md +40 -0
- package/lib/templates/content/docs/error-handler/error-handling.md +26 -0
- package/lib/templates/content/docs/error-handler/index.md +16 -0
- package/lib/templates/content/docs/error-handler/logging-errors.md +14 -0
- package/lib/templates/content/docs/feature-api/copy-operation.md +427 -0
- package/lib/templates/content/docs/feature-api/feature-browser/assets.md +46 -0
- package/lib/templates/content/docs/feature-api/feature-browser/auth-permissions.md +12 -0
- package/lib/templates/content/docs/feature-api/feature-browser/feature.md +131 -0
- package/lib/templates/content/docs/feature-api/feature-browser/index.md +22 -0
- package/lib/templates/content/docs/feature-api/feature-browser/routes-menu.md +110 -0
- package/lib/templates/content/docs/feature-api/feature-browser/routing-convention.md +124 -0
- package/lib/templates/content/docs/feature-api/feature-browser/routing.md +338 -0
- package/lib/templates/content/docs/feature-api/feature-mobile/auth-permissions.md +20 -0
- package/lib/templates/content/docs/feature-api/feature-mobile/feature.md +130 -0
- package/lib/templates/content/docs/feature-api/feature-mobile/index.md +18 -0
- package/lib/templates/content/docs/feature-api/feature-mobile/navigation.md +187 -0
- package/lib/templates/content/docs/feature-api/feature-server/Scheduling.md +44 -0
- package/lib/templates/content/docs/feature-api/feature-server/dataloader.md +320 -0
- package/lib/templates/content/docs/feature-api/feature-server/dependency-injection.md +81 -0
- package/lib/templates/content/docs/feature-api/feature-server/feature.md +65 -0
- package/lib/templates/content/docs/feature-api/feature-server/generic-dataloader.md +135 -0
- package/lib/templates/content/docs/feature-api/feature-server/index.md +40 -0
- package/lib/templates/content/docs/feature-api/feature-server/migration.md +127 -0
- package/lib/templates/content/docs/feature-api/feature-server/mongo-model.md +72 -0
- package/lib/templates/content/docs/feature-api/feature-server/permissions.md +12 -0
- package/lib/templates/content/docs/feature-api/feature-server/policies.md +57 -0
- package/lib/templates/content/docs/feature-api/feature-server/preferences.md +57 -0
- package/lib/templates/content/docs/feature-api/feature-server/repositories.md +114 -0
- package/lib/templates/content/docs/feature-api/feature-server/resolvers.md +126 -0
- package/lib/templates/content/docs/feature-api/feature-server/rules.md +132 -0
- package/lib/templates/content/docs/feature-api/feature-server/schema.md +12 -0
- package/lib/templates/content/docs/feature-api/feature-server/services.md +102 -0
- package/lib/templates/content/docs/feature-api/feature-server/setup-resource-crud.md +359 -0
- package/lib/templates/content/docs/feature-api/index.md +18 -0
- package/lib/templates/content/docs/graphql/apolloClient-mutation.md +94 -0
- package/lib/templates/content/docs/graphql/index.md +14 -0
- package/lib/templates/content/docs/graphql/scalars.md +15 -0
- package/lib/templates/content/docs/help/index.md +14 -0
- package/lib/templates/content/docs/help/intro.md +16 -0
- package/lib/templates/content/docs/intl/ant-design-menu-translation.md +74 -0
- package/lib/templates/content/docs/intl/intl-namespace.md +129 -0
- package/lib/templates/content/docs/intl/vite-plugin-intl.md +87 -0
- package/lib/templates/content/docs/intl/webpack-plugin-intl.md +12 -0
- package/lib/templates/content/docs/intro.md +18 -0
- package/lib/templates/content/docs/knowledge/basic-fullstack.md +238 -0
- package/lib/templates/content/docs/mailing/index.md +14 -0
- package/lib/templates/content/docs/mailing/mailing-template.md +148 -0
- package/lib/templates/content/docs/mobile/App-navigation-generator.md +410 -0
- package/lib/templates/content/docs/mobile/MobileTestCases.md +264 -0
- package/lib/templates/content/docs/mobile/eas-profile-build.md +107 -0
- package/lib/templates/content/docs/mobile/expo-push-notification-setup.md +216 -0
- package/lib/templates/content/docs/mobile/index.md +14 -0
- package/lib/templates/content/docs/mobile/routes.md +83 -0
- package/lib/templates/content/docs/organization/adding-account-context.md +116 -0
- package/lib/templates/content/docs/organization/adding-org-mobile-navigation.md +22 -0
- package/lib/templates/content/docs/organization/adding-org-web-navigation.md +12 -0
- package/lib/templates/content/docs/organization/index.md +20 -0
- package/lib/templates/content/docs/organization/initialization.md +20 -0
- package/lib/templates/content/docs/organization/organization-resource-vs-resource.md +112 -0
- package/lib/templates/content/docs/remix/configuration/component-structure-best-practices.md +152 -0
- package/lib/templates/content/docs/remix/configuration/configurations.md +218 -0
- package/lib/templates/content/docs/remix/configuration/css-import-and-stylesheets.md +142 -0
- package/lib/templates/content/docs/remix/configuration/dont-subcomponent-network.md +166 -0
- package/lib/templates/content/docs/remix/configuration/generated-data-loaders.md +122 -0
- package/lib/templates/content/docs/remix/configuration/generated-resource-loaders.md +257 -0
- package/lib/templates/content/docs/remix/configuration/query-params-generator.md +216 -0
- package/lib/templates/content/docs/remix/configuration/routes-extra-icons.md +103 -0
- package/lib/templates/content/docs/remix/configuration/routes-json-advanced.md +86 -0
- package/lib/templates/content/docs/remix/configuration/routes-json-auth.md +113 -0
- package/lib/templates/content/docs/remix/configuration/routes-json-best-practices.md +55 -0
- package/lib/templates/content/docs/remix/configuration/routes-json-fields.md +79 -0
- package/lib/templates/content/docs/remix/configuration/routes-json-graphql.md +79 -0
- package/lib/templates/content/docs/remix/configuration/routes-json-index.md +112 -0
- package/lib/templates/content/docs/remix/configuration/routes-json-loaders.md +165 -0
- package/lib/templates/content/docs/remix/configuration/routes-json-middleware.md +196 -0
- package/lib/templates/content/docs/remix/configuration/routes-json-overview.md +53 -0
- package/lib/templates/content/docs/remix/data-loaders.md +43 -0
- package/lib/templates/content/docs/remix/devtools/remix-devtools.md +58 -0
- package/lib/templates/content/docs/remix/examples/changes-using-servercode.md +79 -0
- package/lib/templates/content/docs/remix/extra-icons.md +62 -0
- package/lib/templates/content/docs/remix/extra-links.md +65 -0
- package/lib/templates/content/docs/remix/generated-data-loaders.md +114 -0
- package/lib/templates/content/docs/remix/queryParamsGenerator.md +89 -0
- package/lib/templates/content/docs/remix/resources.md +16 -0
- package/lib/templates/content/docs/remix/styles.md +132 -0
- package/lib/templates/content/docs/remix/wiki.md +12 -0
- package/lib/templates/content/docs/security/auth-wrapper/auth-wrapper.md +24 -0
- package/lib/templates/content/docs/security/index.md +18 -0
- package/lib/templates/content/docs/security/secure-button-mobilenative.md +88 -0
- package/lib/templates/content/docs/security/secure-button-web.md +89 -0
- package/lib/templates/content/docs/server-side/account-customization.md +82 -0
- package/lib/templates/content/docs/server-side/apollo/caching.md +164 -0
- package/lib/templates/content/docs/server-side/backend-architecture/FINAL-DECISION.md +209 -0
- package/lib/templates/content/docs/server-side/backend-architecture/TRUE-FINAL-ARCHITECTURE.md +603 -0
- package/lib/templates/content/docs/server-side/backend-architecture/index1.md +0 -0
- package/lib/templates/content/docs/server-side/backend-coding.md +839 -0
- package/lib/templates/content/docs/server-side/e2b/manageing-template.md +197 -0
- package/lib/templates/content/docs/server-side/index.md +14 -0
- package/lib/templates/content/docs/server-side/inngest-functions-module.md +309 -0
- package/lib/templates/content/docs/server-side/listen-stripe-events.md +43 -0
- package/lib/templates/content/docs/server-side/slug-service.md +323 -0
- package/lib/templates/content/docs/tests/index.md +18 -0
- package/lib/templates/content/docs/tests/jest-test-debug-vscode.md +40 -0
- package/lib/templates/content/docs/tests/known-errors.md +116 -0
- package/lib/templates/content/docs/tests/service-test-template.md +118 -0
- package/lib/templates/content/docs/tests/test-setup.md +93 -0
- package/lib/templates/content/docs/xstate.md +23 -0
- package/lib/types.d.ts +37 -0
- package/lib/types.d.ts.map +1 -0
- package/lib/utils/docsNavigation.d.ts +9 -0
- package/lib/utils/docsNavigation.d.ts.map +1 -0
- package/lib/utils/docsNavigation.js +37 -0
- package/lib/utils/docsNavigation.js.map +1 -0
- package/lib/utils/helpCenterUtils.d.ts +26 -0
- package/lib/utils/helpCenterUtils.d.ts.map +1 -0
- package/lib/utils/index.d.ts +3 -0
- package/lib/utils/index.d.ts.map +1 -0
- package/lib/utils/index.js +3 -0
- package/lib/utils/index.js.map +1 -0
- package/lib/utils/markdownLoader.d.ts +36 -0
- package/lib/utils/markdownLoader.d.ts.map +1 -0
- package/lib/utils/markdownLoader.js +2242 -0
- package/lib/utils/markdownLoader.js.map +1 -0
- package/package.json +71 -0
|
@@ -0,0 +1,197 @@
|
|
|
1
|
+
# E2B Sandbox Template Building Guide (v1)
|
|
2
|
+
|
|
3
|
+
## Overview
|
|
4
|
+
|
|
5
|
+
Sandbox templates in E2B v1 allow you to customize sandbox environments for your specific needs. Templates define the base image, dependencies, startup commands, and resource allocations for sandboxes. Once built and published, templates can be referenced by ID when creating new sandboxes via the SDK.
|
|
6
|
+
|
|
7
|
+
## Version
|
|
8
|
+
|
|
9
|
+
This guide covers **E2B v1** template management. We are currently using v1 for Yantra AI production work.
|
|
10
|
+
|
|
11
|
+
## Prerequisites
|
|
12
|
+
|
|
13
|
+
### Install E2B CLI v1.9.2
|
|
14
|
+
|
|
15
|
+
Before building templates, install the E2B CLI:
|
|
16
|
+
|
|
17
|
+
```bash
|
|
18
|
+
npm install -g @e2b/cli@1.9.2
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
Verify installation:
|
|
22
|
+
|
|
23
|
+
```bash
|
|
24
|
+
e2b --version
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
## Building and Publishing Templates
|
|
28
|
+
|
|
29
|
+
### Command Structure
|
|
30
|
+
|
|
31
|
+
```bash
|
|
32
|
+
export E2B_API_URL="https://e2bdashboard.cdebase.dev" && \
|
|
33
|
+
export E2B_ACCESS_TOKEN=xxxx && \
|
|
34
|
+
export E2B_DOMAIN=yarntra.ai && \
|
|
35
|
+
e2b template build -c "/start-services.sh" \
|
|
36
|
+
--name next-keycloak-new-latest-test \
|
|
37
|
+
--cpu-count 4 \
|
|
38
|
+
--memory-mb 4096
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
### Parameter Explanation
|
|
42
|
+
|
|
43
|
+
| Parameter | Purpose |
|
|
44
|
+
| ------------------ | ----------------------------------------------------------------------------------------------------------------------------- |
|
|
45
|
+
| `E2B_API_URL` | Custom E2B dashboard endpoint for your infrastructure |
|
|
46
|
+
| `E2B_ACCESS_TOKEN` | Authentication token for E2B API access |
|
|
47
|
+
| `E2B_DOMAIN` | Your domain (yantra.ai) |
|
|
48
|
+
| `-c, --cmd` | Start command executed when sandbox launches (e.g., `/start-services.sh`) |
|
|
49
|
+
| `--name` | Template name used to identify and reference the template in code (must be lowercase, alphanumeric, dashes, underscores only) |
|
|
50
|
+
| `--cpu-count` | Number of CPU cores allocated to the sandbox (e.g., 4) |
|
|
51
|
+
| `--memory-mb` | Memory allocation in megabytes (e.g., 4096 = 4GB, must be even number) |
|
|
52
|
+
|
|
53
|
+
### Template Configuration File
|
|
54
|
+
|
|
55
|
+
When you run `e2b template build`, E2B automatically creates an `e2b.toml` configuration file in your project root. This file stores metadata about your template, including its ID and name.
|
|
56
|
+
|
|
57
|
+
## ⚠️ CRITICAL: Template Management Instructions
|
|
58
|
+
|
|
59
|
+
### When Building a NEW Template
|
|
60
|
+
|
|
61
|
+
If you are creating a **brand new template** for a different project or use case:
|
|
62
|
+
|
|
63
|
+
1. **DELETE the existing `e2b.toml` file** before running the build command
|
|
64
|
+
```bash
|
|
65
|
+
rm e2b.toml
|
|
66
|
+
```
|
|
67
|
+
2. **ALWAYS change the `--name` parameter** to a unique, descriptive name
|
|
68
|
+
- Example: `next-keycloak-new-latest-test` (existing)
|
|
69
|
+
- For a new auth project: `--name auth-service-custom-template`
|
|
70
|
+
- For a data processing sandbox: `--name data-processor-v1`
|
|
71
|
+
- For a code execution environment: `--name code-interpreter-advanced`
|
|
72
|
+
|
|
73
|
+
3. **Rationale**: Without deleting `e2b.toml` and changing the name, the CLI will UPDATE the existing template instead of creating a new one. Since our current templates are actively used in production migration work, updating them accidentally would break running sandboxes.
|
|
74
|
+
|
|
75
|
+
### When Updating an Existing Template
|
|
76
|
+
|
|
77
|
+
If you are **deliberately updating** a template already in use:
|
|
78
|
+
|
|
79
|
+
1. **Keep the `e2b.toml` file** as-is
|
|
80
|
+
2. **Use the same `--name`** as the existing template
|
|
81
|
+
3. **Coordinate with the team** before updating to avoid disrupting active workflows
|
|
82
|
+
4. **Test thoroughly** before deploying updates
|
|
83
|
+
|
|
84
|
+
## Typical Workflow
|
|
85
|
+
|
|
86
|
+
### Step 1: Set Environment Variables
|
|
87
|
+
|
|
88
|
+
```bash
|
|
89
|
+
export E2B_API_URL="https://e2bdashboard.cdebase.dev"
|
|
90
|
+
export E2B_ACCESS_TOKEN="your_token_here"
|
|
91
|
+
export E2B_DOMAIN="yarntra.ai"
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
### Step 2: Prepare Your Dockerfile
|
|
95
|
+
|
|
96
|
+
Create an `e2b.Dockerfile` or `Dockerfile` in your project root with the dependencies and configuration your sandbox needs.
|
|
97
|
+
|
|
98
|
+
Example structure:
|
|
99
|
+
|
|
100
|
+
```dockerfile
|
|
101
|
+
FROM ubuntu:22.04
|
|
102
|
+
|
|
103
|
+
# Install base dependencies
|
|
104
|
+
RUN apt-get update && apt-get install -y \
|
|
105
|
+
curl \
|
|
106
|
+
git \
|
|
107
|
+
nodejs \
|
|
108
|
+
npm
|
|
109
|
+
|
|
110
|
+
# Copy your application
|
|
111
|
+
COPY . /app
|
|
112
|
+
WORKDIR /app
|
|
113
|
+
|
|
114
|
+
# Install application dependencies
|
|
115
|
+
RUN npm install
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
### Step 3: Build and Publish
|
|
119
|
+
|
|
120
|
+
For a new template:
|
|
121
|
+
|
|
122
|
+
```bash
|
|
123
|
+
rm e2b.toml # Delete existing config if present
|
|
124
|
+
|
|
125
|
+
export E2B_API_URL="https://e2bdashboard.cdebase.dev" && \
|
|
126
|
+
export E2B_ACCESS_TOKEN=xxxx && \
|
|
127
|
+
export E2B_DOMAIN=yarntra.ai && \
|
|
128
|
+
e2b template build \
|
|
129
|
+
-c "/start-services.sh" \
|
|
130
|
+
--name my-custom-template-unique-name \
|
|
131
|
+
--cpu-count 4 \
|
|
132
|
+
--memory-mb 4096
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
### Step 4: Use the Template
|
|
136
|
+
|
|
137
|
+
Once built, you can create sandboxes using the template ID or name:
|
|
138
|
+
|
|
139
|
+
**JavaScript/TypeScript:**
|
|
140
|
+
|
|
141
|
+
```javascript
|
|
142
|
+
import { Sandbox } from 'e2b';
|
|
143
|
+
const sandbox = await Sandbox.create('my-custom-template-unique-name');
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
**Python:**
|
|
147
|
+
|
|
148
|
+
```python
|
|
149
|
+
from e2b import Sandbox
|
|
150
|
+
sandbox = Sandbox.create('my-custom-template-unique-name')
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
## Key Considerations
|
|
154
|
+
|
|
155
|
+
### Resource Allocation
|
|
156
|
+
|
|
157
|
+
- **CPU Count**: Allocate based on expected workload. Min 1, typical production values 2-4
|
|
158
|
+
- **Memory**: Must be an even number. Common values: 512 (minimal), 1024 (standard), 2048-4096 (resource-intensive)
|
|
159
|
+
|
|
160
|
+
### Naming Conventions
|
|
161
|
+
|
|
162
|
+
- Use lowercase letters, numbers, dashes, and underscores only
|
|
163
|
+
- Be descriptive: `next-keycloak-new-latest-test`, `python-data-processor`, `node-api-server`
|
|
164
|
+
- Avoid generic names like `template-1` or `test-v2`
|
|
165
|
+
|
|
166
|
+
### Start Commands
|
|
167
|
+
|
|
168
|
+
- The command specified with `-c` runs when the sandbox starts
|
|
169
|
+
- Common patterns: service startup scripts, shell initialization, environment setup
|
|
170
|
+
- Example: `-c "/start-services.sh"` executes your startup script
|
|
171
|
+
|
|
172
|
+
## Troubleshooting
|
|
173
|
+
|
|
174
|
+
### Template Already Exists Error
|
|
175
|
+
|
|
176
|
+
If you get an error that the template name already exists, either:
|
|
177
|
+
|
|
178
|
+
1. Use a different `--name` value for a new template
|
|
179
|
+
2. Or deliberately update the existing template (confirm with team first)
|
|
180
|
+
|
|
181
|
+
### Build Failures
|
|
182
|
+
|
|
183
|
+
- Check that your Dockerfile is valid
|
|
184
|
+
- Verify all required dependencies are installed
|
|
185
|
+
- Ensure start commands are executable in the container
|
|
186
|
+
|
|
187
|
+
### Performance Issues
|
|
188
|
+
|
|
189
|
+
- Monitor sandbox startup time
|
|
190
|
+
- If slow, optimize your Dockerfile (reduce layer count, cache dependencies)
|
|
191
|
+
- Consider reducing CPU/memory if over-allocated
|
|
192
|
+
|
|
193
|
+
## References
|
|
194
|
+
|
|
195
|
+
- [E2B v1 Sandbox Template Docs](https://e2b.dev/docs/sandbox-template)
|
|
196
|
+
- [E2B v1 CLI Reference](https://e2b.dev/docs/sdk-reference/cli)
|
|
197
|
+
- [E2B Dashboard](https://e2bdashboard.cdebase.dev)
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
---
|
|
2
|
+
meta:
|
|
3
|
+
title: Server Side
|
|
4
|
+
description: Server Side
|
|
5
|
+
date: '2023-06-02T00:00:00'
|
|
6
|
+
updated: '2024-06-02T00:00:00'
|
|
7
|
+
excerpt: Server Side...
|
|
8
|
+
headers:
|
|
9
|
+
Cache-Control: no-cache
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
## Server Side
|
|
13
|
+
|
|
14
|
+
**[Account Customization](/docs/server-side/account-customization)**
|
|
@@ -0,0 +1,309 @@
|
|
|
1
|
+
# Inngest Functions Integration Guide
|
|
2
|
+
|
|
3
|
+
This guide shows how to integrate Inngest functions with the common-stack Feature system, providing automatic dependency injection and modular organization.
|
|
4
|
+
|
|
5
|
+
## Quick Start
|
|
6
|
+
|
|
7
|
+
The system automatically provides the `/api/inngest` endpoint when you register Inngest functions through the Feature system.
|
|
8
|
+
|
|
9
|
+
## Basic Usage
|
|
10
|
+
|
|
11
|
+
### 1. Create Your Function Factory
|
|
12
|
+
|
|
13
|
+
Create a function factory that receives the DI container and returns your Inngest functions:
|
|
14
|
+
|
|
15
|
+
```typescript
|
|
16
|
+
import { Container } from 'inversify';
|
|
17
|
+
import { inngest } from './client'; // Your Inngest client
|
|
18
|
+
|
|
19
|
+
export const myInngestFunctions = ({ container, inngest, settings }) => {
|
|
20
|
+
// Access any service from the container
|
|
21
|
+
const userService = container.get('UserService');
|
|
22
|
+
const logger = container.get('Logger');
|
|
23
|
+
const mongoConnection = container.get('MongoDBConnection');
|
|
24
|
+
const pubsub = container.get('PubSub');
|
|
25
|
+
|
|
26
|
+
return {
|
|
27
|
+
myFunction: inngest.createFunction({ id: 'my-function' }, { event: 'my.event' }, async ({ event, step }) => {
|
|
28
|
+
// Use services in your function
|
|
29
|
+
const user = await userService.getUser(event.data.userId);
|
|
30
|
+
logger.info('Processing event for user:', user.id);
|
|
31
|
+
|
|
32
|
+
await pubsub.publish('USER_PROCESSED', { userId: user.id });
|
|
33
|
+
|
|
34
|
+
return { success: true };
|
|
35
|
+
}),
|
|
36
|
+
};
|
|
37
|
+
};
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
### 2. Register with Feature System
|
|
41
|
+
|
|
42
|
+
```typescript
|
|
43
|
+
import { Feature } from '@common-stack/server-core';
|
|
44
|
+
import { myInngestFunctions } from './my-functions';
|
|
45
|
+
|
|
46
|
+
export const MyFeature = new Feature({
|
|
47
|
+
inngestFunctions: [myInngestFunctions], // Array of function factories
|
|
48
|
+
|
|
49
|
+
// Other feature properties...
|
|
50
|
+
schema: [],
|
|
51
|
+
createResolversFunc: [],
|
|
52
|
+
createContainerFunc: [],
|
|
53
|
+
});
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
### 3. Automatic Registration
|
|
57
|
+
|
|
58
|
+
That's it! The system automatically:
|
|
59
|
+
|
|
60
|
+
- ✅ Loads your functions with full DI container access
|
|
61
|
+
- ✅ Registers the `/api/inngest` endpoint
|
|
62
|
+
- ✅ Preserves all Inngest function properties and behaviors
|
|
63
|
+
|
|
64
|
+
## Advanced Examples
|
|
65
|
+
|
|
66
|
+
### Multiple Function Factories per Feature
|
|
67
|
+
|
|
68
|
+
```typescript
|
|
69
|
+
import { Feature } from '@common-stack/server-core';
|
|
70
|
+
import { userInngestFunctions, emailCampaignInngestFunctions, analyticsInngestFunctions } from './functions';
|
|
71
|
+
|
|
72
|
+
export const MultiModuleFeature = new Feature({
|
|
73
|
+
// Use array of function factories - each gets container access
|
|
74
|
+
inngestFunctions: [userInngestFunctions, emailCampaignInngestFunctions, analyticsInngestFunctions],
|
|
75
|
+
});
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
### Individual Function Factories
|
|
79
|
+
|
|
80
|
+
#### User Management Functions
|
|
81
|
+
|
|
82
|
+
```typescript
|
|
83
|
+
// user-functions.ts
|
|
84
|
+
export const userInngestFunctions = ({ container, inngest, settings }) => {
|
|
85
|
+
const userService = container.get('UserService');
|
|
86
|
+
const emailService = container.get('EmailService');
|
|
87
|
+
|
|
88
|
+
return {
|
|
89
|
+
createUser: inngest.createFunction({ id: 'create-user' }, { event: 'user.create' }, async ({ event }) => {
|
|
90
|
+
const user = await userService.createUser(event.data);
|
|
91
|
+
await emailService.sendWelcomeEmail(user.email);
|
|
92
|
+
return { success: true, userId: user.id };
|
|
93
|
+
}),
|
|
94
|
+
updateProfile: inngest.createFunction(
|
|
95
|
+
{ id: 'update-profile' },
|
|
96
|
+
{ event: 'user.profile.update' },
|
|
97
|
+
async ({ event }) => {
|
|
98
|
+
const updatedUser = await userService.updateProfile(event.data);
|
|
99
|
+
return { success: true, user: updatedUser };
|
|
100
|
+
},
|
|
101
|
+
),
|
|
102
|
+
};
|
|
103
|
+
};
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
#### Email Campaign Functions
|
|
107
|
+
|
|
108
|
+
```typescript
|
|
109
|
+
// email-functions.ts
|
|
110
|
+
export const emailInngestFunctions = ({ container, inngest, settings }) => {
|
|
111
|
+
const emailService = container.get('EmailService');
|
|
112
|
+
const campaignService = container.get('CampaignService');
|
|
113
|
+
|
|
114
|
+
return {
|
|
115
|
+
sendCampaign: inngest.createFunction(
|
|
116
|
+
{ id: 'send-campaign' },
|
|
117
|
+
{ event: 'email.campaign.send' },
|
|
118
|
+
async ({ event }) => {
|
|
119
|
+
const result = await campaignService.sendCampaign(event.data.campaignId);
|
|
120
|
+
return { success: true, emailsSent: result.count };
|
|
121
|
+
},
|
|
122
|
+
),
|
|
123
|
+
trackEmailOpen: inngest.createFunction(
|
|
124
|
+
{ id: 'track-email-open' },
|
|
125
|
+
{ event: 'email.opened' },
|
|
126
|
+
async ({ event }) => {
|
|
127
|
+
await campaignService.trackOpen(event.data);
|
|
128
|
+
return { success: true };
|
|
129
|
+
},
|
|
130
|
+
),
|
|
131
|
+
};
|
|
132
|
+
};
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
### Using Pre-defined Function Collections
|
|
136
|
+
|
|
137
|
+
```typescript
|
|
138
|
+
import { Feature } from '@common-stack/server-core';
|
|
139
|
+
import { allInngestFunctionFactories } from '../inngest/multi-module-functions';
|
|
140
|
+
|
|
141
|
+
export const MultiModuleFeature = new Feature({
|
|
142
|
+
// Use pre-defined collection of function factories
|
|
143
|
+
inngestFunctions: allInngestFunctionFactories,
|
|
144
|
+
});
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
## Function Factory Signature
|
|
148
|
+
|
|
149
|
+
Your function factories must follow this signature:
|
|
150
|
+
|
|
151
|
+
```typescript
|
|
152
|
+
type InngestFunctionFactory = ({
|
|
153
|
+
container,
|
|
154
|
+
inngest,
|
|
155
|
+
settings,
|
|
156
|
+
}: {
|
|
157
|
+
container: Container;
|
|
158
|
+
inngest: any;
|
|
159
|
+
settings?: any;
|
|
160
|
+
}) => Record<string, any>;
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
### Parameters:
|
|
164
|
+
|
|
165
|
+
- **`container`**: Inversify DI container with all your services
|
|
166
|
+
- **`inngest`**: Inngest client instance
|
|
167
|
+
- **`settings`**: Optional additional settings
|
|
168
|
+
|
|
169
|
+
## Available Services
|
|
170
|
+
|
|
171
|
+
Common services available in the container:
|
|
172
|
+
|
|
173
|
+
```typescript
|
|
174
|
+
// Core Services
|
|
175
|
+
const logger = container.get('Logger');
|
|
176
|
+
const mongoConnection = container.get('MongoDBConnection');
|
|
177
|
+
const pubsub = container.get('PubSub');
|
|
178
|
+
const redisClient = container.get(CommonType.REDIS_CLIENT);
|
|
179
|
+
const moleculerBroker = container.get(CommonType.MOLECULER_BROKER);
|
|
180
|
+
|
|
181
|
+
// Your Custom Services
|
|
182
|
+
const userService = container.get('UserService');
|
|
183
|
+
const emailService = container.get('EmailService');
|
|
184
|
+
const analyticsService = container.get('AnalyticsService');
|
|
185
|
+
```
|
|
186
|
+
|
|
187
|
+
## Best Practices
|
|
188
|
+
|
|
189
|
+
### 1. Organize by Domain
|
|
190
|
+
|
|
191
|
+
```typescript
|
|
192
|
+
// user-functions.ts - All user-related functions
|
|
193
|
+
// email-functions.ts - All email-related functions
|
|
194
|
+
// analytics-functions.ts - All analytics functions
|
|
195
|
+
```
|
|
196
|
+
|
|
197
|
+
### 2. Use Descriptive Function IDs
|
|
198
|
+
|
|
199
|
+
```typescript
|
|
200
|
+
inngest.createFunction(
|
|
201
|
+
{ id: 'user-onboarding-send-welcome-email' }, // Clear, descriptive ID
|
|
202
|
+
{ event: 'user.created' },
|
|
203
|
+
async ({ event }) => {
|
|
204
|
+
/* ... */
|
|
205
|
+
},
|
|
206
|
+
);
|
|
207
|
+
```
|
|
208
|
+
|
|
209
|
+
### 3. Error Handling
|
|
210
|
+
|
|
211
|
+
```typescript
|
|
212
|
+
export const myInngestFunctions = ({ container, inngest, settings }) => {
|
|
213
|
+
const logger = container.get('Logger');
|
|
214
|
+
|
|
215
|
+
return {
|
|
216
|
+
myFunction: inngest.createFunction({ id: 'my-function' }, { event: 'my.event' }, async ({ event, step }) => {
|
|
217
|
+
try {
|
|
218
|
+
// Your function logic
|
|
219
|
+
return { success: true };
|
|
220
|
+
} catch (error) {
|
|
221
|
+
logger.error('Function failed:', error);
|
|
222
|
+
throw error; // Let Inngest handle retries
|
|
223
|
+
}
|
|
224
|
+
}),
|
|
225
|
+
};
|
|
226
|
+
};
|
|
227
|
+
```
|
|
228
|
+
|
|
229
|
+
### 4. Use Step Functions for Complex Workflows
|
|
230
|
+
|
|
231
|
+
```typescript
|
|
232
|
+
export const complexWorkflowFunctions = ({ container, inngest, settings }) => {
|
|
233
|
+
const userService = container.get('UserService');
|
|
234
|
+
const emailService = container.get('EmailService');
|
|
235
|
+
const paymentService = container.get('PaymentService');
|
|
236
|
+
|
|
237
|
+
return {
|
|
238
|
+
processOrder: inngest.createFunction(
|
|
239
|
+
{ id: 'process-order' },
|
|
240
|
+
{ event: 'order.created' },
|
|
241
|
+
async ({ event, step }) => {
|
|
242
|
+
const user = await step.run('get-user', async () => {
|
|
243
|
+
return userService.getUser(event.data.userId);
|
|
244
|
+
});
|
|
245
|
+
|
|
246
|
+
const payment = await step.run('process-payment', async () => {
|
|
247
|
+
return paymentService.processPayment(event.data.payment);
|
|
248
|
+
});
|
|
249
|
+
|
|
250
|
+
await step.run('send-confirmation', async () => {
|
|
251
|
+
return emailService.sendOrderConfirmation(user.email, event.data);
|
|
252
|
+
});
|
|
253
|
+
|
|
254
|
+
return { success: true, orderId: event.data.orderId };
|
|
255
|
+
},
|
|
256
|
+
),
|
|
257
|
+
};
|
|
258
|
+
};
|
|
259
|
+
```
|
|
260
|
+
|
|
261
|
+
## Automatic Features
|
|
262
|
+
|
|
263
|
+
The system automatically provides:
|
|
264
|
+
|
|
265
|
+
- ✅ **Endpoint Registration**: `/api/inngest` endpoint is automatically available
|
|
266
|
+
- ✅ **Dependency Injection**: Full container access in all functions
|
|
267
|
+
- ✅ **Function Discovery**: Automatically finds and loads all registered functions
|
|
268
|
+
- ✅ **Error Handling**: Proper error logging and handling
|
|
269
|
+
- ✅ **Development Support**: Works in both development and production environments
|
|
270
|
+
|
|
271
|
+
## Troubleshooting
|
|
272
|
+
|
|
273
|
+
### No Functions Loaded
|
|
274
|
+
|
|
275
|
+
- Check that your function factory is properly exported
|
|
276
|
+
- Ensure the factory is included in the Feature's `inngestFunctions` array
|
|
277
|
+
- Verify the function factory signature matches the expected interface
|
|
278
|
+
|
|
279
|
+
### Container Services Not Available
|
|
280
|
+
|
|
281
|
+
- Ensure your services are properly bound in the container modules
|
|
282
|
+
- Check service binding keys match what you're trying to get
|
|
283
|
+
- Verify the container is properly initialized before Inngest setup
|
|
284
|
+
|
|
285
|
+
### Functions Not Appearing at `/api/inngest`
|
|
286
|
+
|
|
287
|
+
- Check server logs for any registration errors
|
|
288
|
+
- Verify Inngest configuration (event key, signing key, etc.)
|
|
289
|
+
- Ensure the Feature is properly included in your main server setup
|
|
290
|
+
|
|
291
|
+
## Configuration
|
|
292
|
+
|
|
293
|
+
Environment variables for Inngest:
|
|
294
|
+
|
|
295
|
+
```env
|
|
296
|
+
INNJEST_EVENT_KEY=your_event_key
|
|
297
|
+
INNJEST_SIGNING_KEY=your_signing_key
|
|
298
|
+
INNJEST_IS_DEV=true
|
|
299
|
+
INNJEST_ENVIRONMENT=development
|
|
300
|
+
```
|
|
301
|
+
|
|
302
|
+
## Next Steps
|
|
303
|
+
|
|
304
|
+
1. Create your function factories following the examples above
|
|
305
|
+
2. Register them with the Feature system
|
|
306
|
+
3. Your functions will be automatically available at `/api/inngest`
|
|
307
|
+
4. Use Inngest's dashboard to monitor and manage your functions
|
|
308
|
+
|
|
309
|
+
For more advanced Inngest features, refer to the [official Inngest documentation](https://www.inngest.com/docs).
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
---
|
|
2
|
+
meta:
|
|
3
|
+
title: Listen Stripe Events
|
|
4
|
+
description: Listen Stripe Events
|
|
5
|
+
date: '2023-06-02T00:00:00'
|
|
6
|
+
updated: '2024-06-02T00:00:00'
|
|
7
|
+
excerpt: Listen Stripe Events...
|
|
8
|
+
headers:
|
|
9
|
+
Cache-Control: no-cache
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
## Use Stripe CLI to simulate Stripe events in your local environment or learn more about Webhooks.
|
|
13
|
+
|
|
14
|
+
### step 1
|
|
15
|
+
|
|
16
|
+
[Download the CLI](https://stripe.com/docs/stripe-cli) and log in with your Stripe account
|
|
17
|
+
|
|
18
|
+
```
|
|
19
|
+
stripe login
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
In the browser make sure you are in the correct tenent of the project.
|
|
23
|
+
|
|
24
|
+
note down the webhook token and save it in your env as `STRIPE_ENDPOINT_SECRET`
|
|
25
|
+
|
|
26
|
+
restart the backend
|
|
27
|
+
|
|
28
|
+
### step 2
|
|
29
|
+
|
|
30
|
+
Forward events to your webhook
|
|
31
|
+
|
|
32
|
+
```
|
|
33
|
+
stripe listen --forward-to localhost:8080/webhook/stripe
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
### Trigger events with the CLI
|
|
37
|
+
|
|
38
|
+
```
|
|
39
|
+
stripe trigger payment_intent.succeeded
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
Check source:
|
|
43
|
+
https://dashboard.stripe.com/webhooks/create?endpoint_location=local
|