@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.
Files changed (367) hide show
  1. package/LICENSE +21 -0
  2. package/lib/components/Logo.d.ts +4 -0
  3. package/lib/components/Logo.d.ts.map +1 -0
  4. package/lib/components/Logo.js +16 -0
  5. package/lib/components/Logo.js.map +1 -0
  6. package/lib/components/help/SidebarSearch.d.ts +8 -0
  7. package/lib/components/help/SidebarSearch.d.ts.map +1 -0
  8. package/lib/components/help/SidebarSearch.js +111 -0
  9. package/lib/components/help/SidebarSearch.js.map +1 -0
  10. package/lib/components/help/index.d.ts +2 -0
  11. package/lib/components/help/index.d.ts.map +1 -0
  12. package/lib/components/landing/FeatureCard.d.ts +13 -0
  13. package/lib/components/landing/FeatureCard.d.ts.map +1 -0
  14. package/lib/components/landing/FeatureCard.js +85 -0
  15. package/lib/components/landing/FeatureCard.js.map +1 -0
  16. package/lib/components/landing/QuickLinkCard.d.ts +8 -0
  17. package/lib/components/landing/QuickLinkCard.d.ts.map +1 -0
  18. package/lib/components/landing/QuickLinkCard.js +26 -0
  19. package/lib/components/landing/QuickLinkCard.js.map +1 -0
  20. package/lib/components/landing/SearchInput.d.ts +10 -0
  21. package/lib/components/landing/SearchInput.d.ts.map +1 -0
  22. package/lib/components/landing/SearchInput.js +223 -0
  23. package/lib/components/landing/SearchInput.js.map +1 -0
  24. package/lib/components/landing/index.d.ts +4 -0
  25. package/lib/components/landing/index.d.ts.map +1 -0
  26. package/lib/components/welcome.d.ts +3 -0
  27. package/lib/components/welcome.d.ts.map +1 -0
  28. package/lib/compute.d.ts +4 -0
  29. package/lib/compute.d.ts.map +1 -0
  30. package/lib/compute.js +96 -0
  31. package/lib/compute.js.map +1 -0
  32. package/lib/config/env-config.d.ts +4 -0
  33. package/lib/config/env-config.d.ts.map +1 -0
  34. package/lib/config/env-config.js +7 -0
  35. package/lib/config/env-config.js.map +1 -0
  36. package/lib/docs.config.d.ts +48 -0
  37. package/lib/docs.config.d.ts.map +1 -0
  38. package/lib/index.d.ts +4 -0
  39. package/lib/index.d.ts.map +1 -0
  40. package/lib/index.js +2 -0
  41. package/lib/index.js.map +1 -0
  42. package/lib/loaders/search.d.ts +1 -0
  43. package/lib/loaders/search.d.ts.map +1 -0
  44. package/lib/module.d.ts +4 -0
  45. package/lib/module.d.ts.map +1 -0
  46. package/lib/module.js +11 -0
  47. package/lib/module.js.map +1 -0
  48. package/lib/pages/ArticlePage/ArticlePage.d.ts +4 -0
  49. package/lib/pages/ArticlePage/ArticlePage.d.ts.map +1 -0
  50. package/lib/pages/ArticlePage/ArticlePage.js +222 -0
  51. package/lib/pages/ArticlePage/ArticlePage.js.map +1 -0
  52. package/lib/pages/ArticlePage/index.d.ts +3 -0
  53. package/lib/pages/ArticlePage/index.d.ts.map +1 -0
  54. package/lib/pages/ArticlePage/index.js +3 -0
  55. package/lib/pages/ArticlePage/index.js.map +1 -0
  56. package/lib/pages/CategoryCollection/CategoryCollection.d.ts +4 -0
  57. package/lib/pages/CategoryCollection/CategoryCollection.d.ts.map +1 -0
  58. package/lib/pages/CategoryCollection/CategoryCollection.js +103 -0
  59. package/lib/pages/CategoryCollection/CategoryCollection.js.map +1 -0
  60. package/lib/pages/CategoryCollection/index.d.ts +3 -0
  61. package/lib/pages/CategoryCollection/index.d.ts.map +1 -0
  62. package/lib/pages/CategoryCollection/index.js +3 -0
  63. package/lib/pages/CategoryCollection/index.js.map +1 -0
  64. package/lib/pages/Help/HelpIndex.d.ts +4 -0
  65. package/lib/pages/Help/HelpIndex.d.ts.map +1 -0
  66. package/lib/pages/Help/HelpIndex.js +44 -0
  67. package/lib/pages/Help/HelpIndex.js.map +1 -0
  68. package/lib/pages/Help/index.d.ts +4 -0
  69. package/lib/pages/Help/index.d.ts.map +1 -0
  70. package/lib/pages/Help/index.js +226 -0
  71. package/lib/pages/Help/index.js.map +1 -0
  72. package/lib/pages/Landing/index.d.ts +3 -0
  73. package/lib/pages/Landing/index.d.ts.map +1 -0
  74. package/lib/pages/Landing/index.js +281 -0
  75. package/lib/pages/Landing/index.js.map +1 -0
  76. package/lib/routes.json +2533 -0
  77. package/lib/seo.d.ts +22 -0
  78. package/lib/seo.d.ts.map +1 -0
  79. package/lib/slot-fill/FooterFill.d.ts +3 -0
  80. package/lib/slot-fill/FooterFill.d.ts.map +1 -0
  81. package/lib/slot-fill/FooterFill.js +18 -0
  82. package/lib/slot-fill/FooterFill.js.map +1 -0
  83. package/lib/slot-fill/LogoFill.d.ts +5 -0
  84. package/lib/slot-fill/LogoFill.d.ts.map +1 -0
  85. package/lib/slot-fill/LogoFill.js +74 -0
  86. package/lib/slot-fill/LogoFill.js.map +1 -0
  87. package/lib/slot-fill/consts.d.ts +5 -0
  88. package/lib/slot-fill/consts.d.ts.map +1 -0
  89. package/lib/slot-fill/consts.js +1 -0
  90. package/lib/slot-fill/consts.js.map +1 -0
  91. package/lib/slot-fill/index.d.ts +4 -0
  92. package/lib/slot-fill/index.d.ts.map +1 -0
  93. package/lib/templates/assets/images/add-link-frontend.png +0 -0
  94. package/lib/templates/assets/images/add-package-backend.png +0 -0
  95. package/lib/templates/assets/images/add-to-backend-module.png +0 -0
  96. package/lib/templates/assets/images/add-upload-client-frontend.png +0 -0
  97. package/lib/templates/assets/images/additional-parameters.png +0 -0
  98. package/lib/templates/assets/images/aeh-implementation.png +0 -0
  99. package/lib/templates/assets/images/aeh-usage.png +0 -0
  100. package/lib/templates/assets/images/apollo-client/recommendation_cache_mgmt.png +0 -0
  101. package/lib/templates/assets/images/app-deploy-new-version/jenkins1.PNG +0 -0
  102. package/lib/templates/assets/images/app-deploy-new-version/jenkins2.PNG +0 -0
  103. package/lib/templates/assets/images/auth-wrapper-code.png +0 -0
  104. package/lib/templates/assets/images/cdebase.png +0 -0
  105. package/lib/templates/assets/images/cdm-locales-directory.png +0 -0
  106. package/lib/templates/assets/images/client-settings.png +0 -0
  107. package/lib/templates/assets/images/codegen_file_update.png +0 -0
  108. package/lib/templates/assets/images/configuration.png +0 -0
  109. package/lib/templates/assets/images/copy-plugin.png +0 -0
  110. package/lib/templates/assets/images/docusaurus.png +0 -0
  111. package/lib/templates/assets/images/error-link.png +0 -0
  112. package/lib/templates/assets/images/error-sample.png +0 -0
  113. package/lib/templates/assets/images/extension copy.png +0 -0
  114. package/lib/templates/assets/images/extension.png +0 -0
  115. package/lib/templates/assets/images/graphql/graphql-folder-backend.png +0 -0
  116. package/lib/templates/assets/images/graphql/graphql-folder-with-gql.png +0 -0
  117. package/lib/templates/assets/images/i18n-config.png +0 -0
  118. package/lib/templates/assets/images/image.png +0 -0
  119. package/lib/templates/assets/images/logo.svg +10 -0
  120. package/lib/templates/assets/images/logo1.svg +1 -0
  121. package/lib/templates/assets/images/modify-upload-false-server.png +0 -0
  122. package/lib/templates/assets/images/navigation-auth-enabled.png +0 -0
  123. package/lib/templates/assets/images/org-dashboard-navigation.png +0 -0
  124. package/lib/templates/assets/images/org-navigation.png +0 -0
  125. package/lib/templates/assets/images/preferences_graphql_type.png +0 -0
  126. package/lib/templates/assets/images/provider.png +0 -0
  127. package/lib/templates/assets/images/route-config.png +0 -0
  128. package/lib/templates/assets/images/service-accounts.png +0 -0
  129. package/lib/templates/assets/images/source-code/source-code-environments.png +0 -0
  130. package/lib/templates/assets/images/source-code/source-code-organization.png +0 -0
  131. package/lib/templates/assets/images/spin-clone-develop-deployment/jenkins-changes.png +0 -0
  132. package/lib/templates/assets/images/spin-clone-develop-deployment/lerna-changes.png +0 -0
  133. package/lib/templates/assets/images/spin-clone-develop-deployment/root-package-json-changes.png +0 -0
  134. package/lib/templates/assets/images/spin-clone-develop-deployment/values-dev-changes.png +0 -0
  135. package/lib/templates/assets/images/sso-mappers.png +0 -0
  136. package/lib/templates/assets/images/sso-picture-mapper.png +0 -0
  137. package/lib/templates/assets/images/sso-settings.png +0 -0
  138. package/lib/templates/assets/images/timesheet_apollo_cache.png +0 -0
  139. package/lib/templates/assets/images/timesheet_query.png +0 -0
  140. package/lib/templates/assets/images/tutorial/docsVersionDropdown.png +0 -0
  141. package/lib/templates/assets/images/tutorial/localeDropdown.png +0 -0
  142. package/lib/templates/assets/images/unauthenticated.png +0 -0
  143. package/lib/templates/assets/images/undraw_docusaurus_mountain.svg +170 -0
  144. package/lib/templates/assets/images/undraw_docusaurus_react.svg +169 -0
  145. package/lib/templates/assets/images/undraw_docusaurus_tree.svg +1 -0
  146. package/lib/templates/assets/images/vite-plugin-config.png +0 -0
  147. package/lib/templates/content/docs/Generators/Project/generate-fullproject.md +12 -0
  148. package/lib/templates/content/docs/LLM/Logger.llm.md +194 -0
  149. package/lib/templates/content/docs/LLM/backend-proxies-services-llm.md +2687 -0
  150. package/lib/templates/content/docs/LLM/backend-service-llm.md +3384 -0
  151. package/lib/templates/content/docs/LLM/db_migration_llm.md +954 -0
  152. package/lib/templates/content/docs/LLM/frontend/REMIX-15.3-upgrade-llm.md +1245 -0
  153. package/lib/templates/content/docs/LLM/inngest/INNGEST_FUNCTION_DEVELOPMENT_GUIDE_LLM.md +1241 -0
  154. package/lib/templates/content/docs/LLM/inngest/INNGEST_NAMESPACE_LLM.md +384 -0
  155. package/lib/templates/content/docs/LLM/llm_workflow_namespace.md +384 -0
  156. package/lib/templates/content/docs/LLM/organization-components-form-llm.md +1395 -0
  157. package/lib/templates/content/docs/LLM/page-component-llm.md +173 -0
  158. package/lib/templates/content/docs/LLM/preferences-settings-llm.md +2781 -0
  159. package/lib/templates/content/docs/LLM/tailwind-css-llm.md +502 -0
  160. package/lib/templates/content/docs/UI/SchemaBasedUI.md +334 -0
  161. package/lib/templates/content/docs/UI/SlotFillComponent.md +334 -0
  162. package/lib/templates/content/docs/adminide-modules/account/auth0-login.md +31 -0
  163. package/lib/templates/content/docs/adminide-modules/account/index.md +14 -0
  164. package/lib/templates/content/docs/adminide-modules/account/keycloak-remix-setup.md +86 -0
  165. package/lib/templates/content/docs/adminide-modules/account/remix-auth-setup.md +79 -0
  166. package/lib/templates/content/docs/adminide-modules/account/various-auth-qatest.md +157 -0
  167. package/lib/templates/content/docs/adminide-modules/api-builders/graphql.md +906 -0
  168. package/lib/templates/content/docs/adminide-modules/billing/payments/index.md +14 -0
  169. package/lib/templates/content/docs/adminide-modules/billing/payments/stripe/index.md +14 -0
  170. package/lib/templates/content/docs/adminide-modules/billing/payments/stripe/settingup-stripe-locally.md +25 -0
  171. package/lib/templates/content/docs/adminide-modules/billing/tier-config.md +293 -0
  172. package/lib/templates/content/docs/adminide-modules/connectors/Connector.md +207 -0
  173. package/lib/templates/content/docs/adminide-modules/file-upload/index.md +16 -0
  174. package/lib/templates/content/docs/adminide-modules/file-upload/setup.md +435 -0
  175. package/lib/templates/content/docs/adminide-modules/file-upload/upload-file-using-signed-url.md +161 -0
  176. package/lib/templates/content/docs/adminide-modules/preferences/AddAdditionalPermissions.md +151 -0
  177. package/lib/templates/content/docs/adminide-modules/preferences/Configuration.md +241 -0
  178. package/lib/templates/content/docs/adminide-modules/preferences/Policy-Configuration.md +61 -0
  179. package/lib/templates/content/docs/adminide-modules/preferences/UI-components/ResourceSettingsLoader.md +319 -0
  180. package/lib/templates/content/docs/adminide-modules/preferences/contribute_scope_target.md +280 -0
  181. package/lib/templates/content/docs/adminide-modules/preferences/generate-urii.md +94 -0
  182. package/lib/templates/content/docs/adminide-modules/preferences/index.md +28 -0
  183. package/lib/templates/content/docs/adminide-modules/preferences/machine-configuration.md +157 -0
  184. package/lib/templates/content/docs/adminide-modules/preferences/pageSettings/generateCdecodeUri.md +1289 -0
  185. package/lib/templates/content/docs/adminide-modules/preferences/pageSettings/migratingFromUseSettings.md +215 -0
  186. package/lib/templates/content/docs/adminide-modules/preferences/permissions/Roles-Permissions.md +72 -0
  187. package/lib/templates/content/docs/adminide-modules/preferences/permissions/settingUserPermissions.md +139 -0
  188. package/lib/templates/content/docs/adminide-modules/preferences/preference-dependency.md +138 -0
  189. package/lib/templates/content/docs/adminide-modules/preferences/route-based-configuration.md +41 -0
  190. package/lib/templates/content/docs/adminide-modules/preferences/schema-configuration.md +71 -0
  191. package/lib/templates/content/docs/adminide-modules/preferences/supported.md +24 -0
  192. package/lib/templates/content/docs/adminide-modules/preferences/useSettingsLoader.md +248 -0
  193. package/lib/templates/content/docs/adminide-modules/project-tools/auth-providers.md +1317 -0
  194. package/lib/templates/content/docs/adminide-modules/project-tools/keycloak-guide.md +543 -0
  195. package/lib/templates/content/docs/adminide-modules/project-tools/tenant-management/tenant-based-authentication.md +846 -0
  196. package/lib/templates/content/docs/adminide-modules/project-tools/tenant-management/tenant-management.md +708 -0
  197. package/lib/templates/content/docs/adminide-modules/project-tools/tenant-management/tenants.md +1117 -0
  198. package/lib/templates/content/docs/chrome-extension/index.md +14 -0
  199. package/lib/templates/content/docs/chrome-extension/setup.md +30 -0
  200. package/lib/templates/content/docs/contributing/adding-package.md +23 -0
  201. package/lib/templates/content/docs/contributing/adding_new_modules.md +99 -0
  202. package/lib/templates/content/docs/contributing/architecture-updates.md +19 -0
  203. package/lib/templates/content/docs/contributing/avoid-using-promises-ui.md +116 -0
  204. package/lib/templates/content/docs/contributing/coding-guidelines.md +111 -0
  205. package/lib/templates/content/docs/contributing/do-and-dont.md +42 -0
  206. package/lib/templates/content/docs/contributing/faq.md +22 -0
  207. package/lib/templates/content/docs/contributing/folder-setup/browser.md +12 -0
  208. package/lib/templates/content/docs/contributing/folder-setup/config.md +12 -0
  209. package/lib/templates/content/docs/contributing/folder-setup/containers-server.md +12 -0
  210. package/lib/templates/content/docs/contributing/folder-setup/core.md +12 -0
  211. package/lib/templates/content/docs/contributing/folder-setup/graphql.md +12 -0
  212. package/lib/templates/content/docs/contributing/folder-setup/index.md +30 -0
  213. package/lib/templates/content/docs/contributing/folder-setup/module.md +12 -0
  214. package/lib/templates/content/docs/contributing/folder-setup/server.md +12 -0
  215. package/lib/templates/content/docs/contributing/folder-setup/services.md +12 -0
  216. package/lib/templates/content/docs/contributing/folder-setup/store.md +12 -0
  217. package/lib/templates/content/docs/contributing/frontend-coding.md +30 -0
  218. package/lib/templates/content/docs/contributing/git-subtree-sharing.md +73 -0
  219. package/lib/templates/content/docs/contributing/graphql-subscriptions.md +69 -0
  220. package/lib/templates/content/docs/contributing/how-to-contribute.md +30 -0
  221. package/lib/templates/content/docs/contributing/how_to_check_pure_esm.md +29 -0
  222. package/lib/templates/content/docs/contributing/index.md +60 -0
  223. package/lib/templates/content/docs/contributing/installation-issues.md +23 -0
  224. package/lib/templates/content/docs/contributing/keyboard-shortcut.md +131 -0
  225. package/lib/templates/content/docs/contributing/language/locale-support.md +12 -0
  226. package/lib/templates/content/docs/contributing/lerna-build-tools.md +516 -0
  227. package/lib/templates/content/docs/contributing/lerna-yarn-workspaces.md +95 -0
  228. package/lib/templates/content/docs/contributing/lint-and-formatter.md +20 -0
  229. package/lib/templates/content/docs/contributing/mobile-setup.md +16 -0
  230. package/lib/templates/content/docs/contributing/project-setup.md +233 -0
  231. package/lib/templates/content/docs/contributing/react/index.md +14 -0
  232. package/lib/templates/content/docs/contributing/react/lazy-component.md +70 -0
  233. package/lib/templates/content/docs/contributing/run-various-options.md +124 -0
  234. package/lib/templates/content/docs/contributing/schema-first-graphql-types.md +37 -0
  235. package/lib/templates/content/docs/contributing/source-code-organization.md +57 -0
  236. package/lib/templates/content/docs/contributing/staging-docker.md +88 -0
  237. package/lib/templates/content/docs/contributing/third-party/apollo-client-v3-tutorials.md +28 -0
  238. package/lib/templates/content/docs/contributing/third-party/index.md +18 -0
  239. package/lib/templates/content/docs/contributing/typescript-contribution.md +16 -0
  240. package/lib/templates/content/docs/devops/app-deploy-new-version.md +30 -0
  241. package/lib/templates/content/docs/devops/index.md +14 -0
  242. package/lib/templates/content/docs/devops/mobile-jenkins-build.md +40 -0
  243. package/lib/templates/content/docs/devops/versioning-the-project.md +128 -0
  244. package/lib/templates/content/docs/error-handler/application-error-handler.md +40 -0
  245. package/lib/templates/content/docs/error-handler/error-handling.md +26 -0
  246. package/lib/templates/content/docs/error-handler/index.md +16 -0
  247. package/lib/templates/content/docs/error-handler/logging-errors.md +14 -0
  248. package/lib/templates/content/docs/feature-api/copy-operation.md +427 -0
  249. package/lib/templates/content/docs/feature-api/feature-browser/assets.md +46 -0
  250. package/lib/templates/content/docs/feature-api/feature-browser/auth-permissions.md +12 -0
  251. package/lib/templates/content/docs/feature-api/feature-browser/feature.md +131 -0
  252. package/lib/templates/content/docs/feature-api/feature-browser/index.md +22 -0
  253. package/lib/templates/content/docs/feature-api/feature-browser/routes-menu.md +110 -0
  254. package/lib/templates/content/docs/feature-api/feature-browser/routing-convention.md +124 -0
  255. package/lib/templates/content/docs/feature-api/feature-browser/routing.md +338 -0
  256. package/lib/templates/content/docs/feature-api/feature-mobile/auth-permissions.md +20 -0
  257. package/lib/templates/content/docs/feature-api/feature-mobile/feature.md +130 -0
  258. package/lib/templates/content/docs/feature-api/feature-mobile/index.md +18 -0
  259. package/lib/templates/content/docs/feature-api/feature-mobile/navigation.md +187 -0
  260. package/lib/templates/content/docs/feature-api/feature-server/Scheduling.md +44 -0
  261. package/lib/templates/content/docs/feature-api/feature-server/dataloader.md +320 -0
  262. package/lib/templates/content/docs/feature-api/feature-server/dependency-injection.md +81 -0
  263. package/lib/templates/content/docs/feature-api/feature-server/feature.md +65 -0
  264. package/lib/templates/content/docs/feature-api/feature-server/generic-dataloader.md +135 -0
  265. package/lib/templates/content/docs/feature-api/feature-server/index.md +40 -0
  266. package/lib/templates/content/docs/feature-api/feature-server/migration.md +127 -0
  267. package/lib/templates/content/docs/feature-api/feature-server/mongo-model.md +72 -0
  268. package/lib/templates/content/docs/feature-api/feature-server/permissions.md +12 -0
  269. package/lib/templates/content/docs/feature-api/feature-server/policies.md +57 -0
  270. package/lib/templates/content/docs/feature-api/feature-server/preferences.md +57 -0
  271. package/lib/templates/content/docs/feature-api/feature-server/repositories.md +114 -0
  272. package/lib/templates/content/docs/feature-api/feature-server/resolvers.md +126 -0
  273. package/lib/templates/content/docs/feature-api/feature-server/rules.md +132 -0
  274. package/lib/templates/content/docs/feature-api/feature-server/schema.md +12 -0
  275. package/lib/templates/content/docs/feature-api/feature-server/services.md +102 -0
  276. package/lib/templates/content/docs/feature-api/feature-server/setup-resource-crud.md +359 -0
  277. package/lib/templates/content/docs/feature-api/index.md +18 -0
  278. package/lib/templates/content/docs/graphql/apolloClient-mutation.md +94 -0
  279. package/lib/templates/content/docs/graphql/index.md +14 -0
  280. package/lib/templates/content/docs/graphql/scalars.md +15 -0
  281. package/lib/templates/content/docs/help/index.md +14 -0
  282. package/lib/templates/content/docs/help/intro.md +16 -0
  283. package/lib/templates/content/docs/intl/ant-design-menu-translation.md +74 -0
  284. package/lib/templates/content/docs/intl/intl-namespace.md +129 -0
  285. package/lib/templates/content/docs/intl/vite-plugin-intl.md +87 -0
  286. package/lib/templates/content/docs/intl/webpack-plugin-intl.md +12 -0
  287. package/lib/templates/content/docs/intro.md +18 -0
  288. package/lib/templates/content/docs/knowledge/basic-fullstack.md +238 -0
  289. package/lib/templates/content/docs/mailing/index.md +14 -0
  290. package/lib/templates/content/docs/mailing/mailing-template.md +148 -0
  291. package/lib/templates/content/docs/mobile/App-navigation-generator.md +410 -0
  292. package/lib/templates/content/docs/mobile/MobileTestCases.md +264 -0
  293. package/lib/templates/content/docs/mobile/eas-profile-build.md +107 -0
  294. package/lib/templates/content/docs/mobile/expo-push-notification-setup.md +216 -0
  295. package/lib/templates/content/docs/mobile/index.md +14 -0
  296. package/lib/templates/content/docs/mobile/routes.md +83 -0
  297. package/lib/templates/content/docs/organization/adding-account-context.md +116 -0
  298. package/lib/templates/content/docs/organization/adding-org-mobile-navigation.md +22 -0
  299. package/lib/templates/content/docs/organization/adding-org-web-navigation.md +12 -0
  300. package/lib/templates/content/docs/organization/index.md +20 -0
  301. package/lib/templates/content/docs/organization/initialization.md +20 -0
  302. package/lib/templates/content/docs/organization/organization-resource-vs-resource.md +112 -0
  303. package/lib/templates/content/docs/remix/configuration/component-structure-best-practices.md +152 -0
  304. package/lib/templates/content/docs/remix/configuration/configurations.md +218 -0
  305. package/lib/templates/content/docs/remix/configuration/css-import-and-stylesheets.md +142 -0
  306. package/lib/templates/content/docs/remix/configuration/dont-subcomponent-network.md +166 -0
  307. package/lib/templates/content/docs/remix/configuration/generated-data-loaders.md +122 -0
  308. package/lib/templates/content/docs/remix/configuration/generated-resource-loaders.md +257 -0
  309. package/lib/templates/content/docs/remix/configuration/query-params-generator.md +216 -0
  310. package/lib/templates/content/docs/remix/configuration/routes-extra-icons.md +103 -0
  311. package/lib/templates/content/docs/remix/configuration/routes-json-advanced.md +86 -0
  312. package/lib/templates/content/docs/remix/configuration/routes-json-auth.md +113 -0
  313. package/lib/templates/content/docs/remix/configuration/routes-json-best-practices.md +55 -0
  314. package/lib/templates/content/docs/remix/configuration/routes-json-fields.md +79 -0
  315. package/lib/templates/content/docs/remix/configuration/routes-json-graphql.md +79 -0
  316. package/lib/templates/content/docs/remix/configuration/routes-json-index.md +112 -0
  317. package/lib/templates/content/docs/remix/configuration/routes-json-loaders.md +165 -0
  318. package/lib/templates/content/docs/remix/configuration/routes-json-middleware.md +196 -0
  319. package/lib/templates/content/docs/remix/configuration/routes-json-overview.md +53 -0
  320. package/lib/templates/content/docs/remix/data-loaders.md +43 -0
  321. package/lib/templates/content/docs/remix/devtools/remix-devtools.md +58 -0
  322. package/lib/templates/content/docs/remix/examples/changes-using-servercode.md +79 -0
  323. package/lib/templates/content/docs/remix/extra-icons.md +62 -0
  324. package/lib/templates/content/docs/remix/extra-links.md +65 -0
  325. package/lib/templates/content/docs/remix/generated-data-loaders.md +114 -0
  326. package/lib/templates/content/docs/remix/queryParamsGenerator.md +89 -0
  327. package/lib/templates/content/docs/remix/resources.md +16 -0
  328. package/lib/templates/content/docs/remix/styles.md +132 -0
  329. package/lib/templates/content/docs/remix/wiki.md +12 -0
  330. package/lib/templates/content/docs/security/auth-wrapper/auth-wrapper.md +24 -0
  331. package/lib/templates/content/docs/security/index.md +18 -0
  332. package/lib/templates/content/docs/security/secure-button-mobilenative.md +88 -0
  333. package/lib/templates/content/docs/security/secure-button-web.md +89 -0
  334. package/lib/templates/content/docs/server-side/account-customization.md +82 -0
  335. package/lib/templates/content/docs/server-side/apollo/caching.md +164 -0
  336. package/lib/templates/content/docs/server-side/backend-architecture/FINAL-DECISION.md +209 -0
  337. package/lib/templates/content/docs/server-side/backend-architecture/TRUE-FINAL-ARCHITECTURE.md +603 -0
  338. package/lib/templates/content/docs/server-side/backend-architecture/index1.md +0 -0
  339. package/lib/templates/content/docs/server-side/backend-coding.md +839 -0
  340. package/lib/templates/content/docs/server-side/e2b/manageing-template.md +197 -0
  341. package/lib/templates/content/docs/server-side/index.md +14 -0
  342. package/lib/templates/content/docs/server-side/inngest-functions-module.md +309 -0
  343. package/lib/templates/content/docs/server-side/listen-stripe-events.md +43 -0
  344. package/lib/templates/content/docs/server-side/slug-service.md +323 -0
  345. package/lib/templates/content/docs/tests/index.md +18 -0
  346. package/lib/templates/content/docs/tests/jest-test-debug-vscode.md +40 -0
  347. package/lib/templates/content/docs/tests/known-errors.md +116 -0
  348. package/lib/templates/content/docs/tests/service-test-template.md +118 -0
  349. package/lib/templates/content/docs/tests/test-setup.md +93 -0
  350. package/lib/templates/content/docs/xstate.md +23 -0
  351. package/lib/types.d.ts +37 -0
  352. package/lib/types.d.ts.map +1 -0
  353. package/lib/utils/docsNavigation.d.ts +9 -0
  354. package/lib/utils/docsNavigation.d.ts.map +1 -0
  355. package/lib/utils/docsNavigation.js +37 -0
  356. package/lib/utils/docsNavigation.js.map +1 -0
  357. package/lib/utils/helpCenterUtils.d.ts +26 -0
  358. package/lib/utils/helpCenterUtils.d.ts.map +1 -0
  359. package/lib/utils/index.d.ts +3 -0
  360. package/lib/utils/index.d.ts.map +1 -0
  361. package/lib/utils/index.js +3 -0
  362. package/lib/utils/index.js.map +1 -0
  363. package/lib/utils/markdownLoader.d.ts +36 -0
  364. package/lib/utils/markdownLoader.d.ts.map +1 -0
  365. package/lib/utils/markdownLoader.js +2242 -0
  366. package/lib/utils/markdownLoader.js.map +1 -0
  367. 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