insforge 0.3.3 → 1.2.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 (507) hide show
  1. package/.claude-plugin/marketplace.json +20 -0
  2. package/.cursor/rules/cursor-rules.mdc +94 -0
  3. package/.dockerignore +3 -0
  4. package/.env.example +33 -4
  5. package/.github/ISSUE_TEMPLATE/bug_report.yml +13 -60
  6. package/.github/ISSUE_TEMPLATE/config.yml +2 -2
  7. package/.github/ISSUE_TEMPLATE/feature_request.yml +10 -63
  8. package/.github/PULL_REQUEST_TEMPLATE.md +7 -0
  9. package/.github/workflows/build-image.yml +2 -1
  10. package/.github/workflows/e2e.yml +63 -0
  11. package/CHANGELOG.md +41 -0
  12. package/CLAUDE_PLUGIN.md +104 -0
  13. package/CODE_OF_CONDUCT.md +128 -0
  14. package/CONTRIBUTING.md +1 -1
  15. package/Dockerfile +4 -1
  16. package/README.md +66 -18
  17. package/assets/mcpInstallv2.png +0 -0
  18. package/assets/sampleResponse.png +0 -0
  19. package/auth/index.html +13 -0
  20. package/auth/package.json +28 -0
  21. package/auth/public/favicon.ico +0 -0
  22. package/auth/src/App.tsx +33 -0
  23. package/auth/src/components/ErrorCard.tsx +37 -0
  24. package/auth/src/components/Layout.tsx +13 -0
  25. package/auth/src/index.css +19 -0
  26. package/auth/src/lib/broadcastService.ts +115 -0
  27. package/auth/src/lib/utils.ts +11 -0
  28. package/auth/src/main.tsx +22 -0
  29. package/auth/src/pages/ForgotPasswordPage.tsx +11 -0
  30. package/auth/src/pages/ResetPasswordPage.tsx +11 -0
  31. package/auth/src/pages/SignInPage.tsx +57 -0
  32. package/auth/src/pages/SignUpPage.tsx +57 -0
  33. package/auth/src/pages/VerifyEmailPage.tsx +20 -0
  34. package/auth/src/vite-env.d.ts +10 -0
  35. package/auth/tsconfig.json +32 -0
  36. package/auth/tsconfig.node.json +11 -0
  37. package/auth/vite.config.ts +25 -0
  38. package/backend/package.json +9 -9
  39. package/backend/src/api/{middleware → middlewares}/auth.ts +8 -9
  40. package/backend/src/api/middlewares/rate-limiters.ts +127 -0
  41. package/backend/src/api/routes/{ai.ts → ai/index.routes.ts} +20 -24
  42. package/backend/src/api/routes/auth/index.routes.ts +570 -0
  43. package/backend/src/api/routes/auth/oauth.routes.ts +448 -0
  44. package/backend/src/api/routes/{database.advance.ts → database/advance.routes.ts} +107 -65
  45. package/backend/src/api/routes/database/index.routes.ts +13 -0
  46. package/backend/src/api/routes/{database.records.ts → database/records.routes.ts} +22 -8
  47. package/backend/src/api/routes/{database.tables.ts → database/tables.routes.ts} +20 -23
  48. package/backend/src/api/routes/docs/index.routes.ts +76 -0
  49. package/backend/src/api/routes/functions/index.routes.ts +188 -0
  50. package/backend/src/api/routes/{logs.ts → logs/index.routes.ts} +25 -30
  51. package/backend/src/api/routes/{metadata.ts → metadata/index.routes.ts} +21 -31
  52. package/backend/src/api/routes/{secrets.ts → secrets/index.routes.ts} +27 -22
  53. package/backend/src/api/routes/{storage.ts → storage/index.routes.ts} +34 -53
  54. package/backend/src/api/routes/usage/index.routes.ts +89 -0
  55. package/backend/src/infra/config/app.config.ts +51 -0
  56. package/backend/src/{core/database/manager.ts → infra/database/database.manager.ts} +76 -85
  57. package/backend/src/infra/database/migrations/013_create-auth-schema-functions.sql +44 -0
  58. package/backend/src/infra/database/migrations/014_add-updated-at-trigger-user-table.sql +8 -0
  59. package/backend/src/infra/database/migrations/015_create-auth-config-and-email-otp-tables.sql +60 -0
  60. package/backend/src/infra/database/migrations/016_update-auth-config-and-email-otp.sql +24 -0
  61. package/backend/src/{core/secrets/encryption.ts → infra/security/encryption.manager.ts} +3 -2
  62. package/backend/src/infra/security/token.manager.ts +125 -0
  63. package/backend/src/{core/socket/socket.ts → infra/socket/socket.manager.ts} +15 -15
  64. package/backend/src/providers/ai/openrouter.provider.ts +377 -0
  65. package/backend/src/providers/email/base.provider.ts +41 -0
  66. package/backend/src/providers/email/cloud.provider.ts +187 -0
  67. package/backend/src/{core/logs/providers → providers/logs}/base.provider.ts +11 -11
  68. package/backend/src/{core/logs/providers → providers/logs}/cloudwatch.provider.ts +61 -38
  69. package/backend/src/providers/logs/local.provider.ts +185 -0
  70. package/backend/src/providers/oauth/base.provider.ts +29 -0
  71. package/backend/src/providers/oauth/discord.provider.ts +195 -0
  72. package/backend/src/providers/oauth/facebook.provider.ts +194 -0
  73. package/backend/src/providers/oauth/github.provider.ts +208 -0
  74. package/backend/src/providers/oauth/google.provider.ts +249 -0
  75. package/backend/src/providers/oauth/index.ts +7 -0
  76. package/backend/src/providers/oauth/linkedin.provider.ts +240 -0
  77. package/backend/src/providers/oauth/microsoft.provider.ts +169 -0
  78. package/backend/src/providers/oauth/x.provider.ts +202 -0
  79. package/backend/src/providers/storage/base.provider.ts +29 -0
  80. package/backend/src/providers/storage/local.provider.ts +103 -0
  81. package/backend/src/providers/storage/s3.provider.ts +313 -0
  82. package/backend/src/server.ts +70 -74
  83. package/backend/src/{core/ai/config.ts → services/ai/ai-config.service.ts} +19 -24
  84. package/backend/src/services/ai/ai-model.service.ts +60 -0
  85. package/backend/src/{core/ai/usage.ts → services/ai/ai-usage.service.ts} +28 -35
  86. package/backend/src/{core/ai/chat.ts → services/ai/chat-completion.service.ts} +37 -24
  87. package/backend/src/services/ai/helpers.ts +64 -0
  88. package/backend/src/{core/ai/image.ts → services/ai/image-generation.service.ts} +17 -19
  89. package/backend/src/services/ai/index.ts +13 -0
  90. package/backend/src/services/auth/auth-config.service.ts +250 -0
  91. package/backend/src/services/auth/auth-otp.service.ts +424 -0
  92. package/backend/src/services/auth/auth.service.ts +1136 -0
  93. package/backend/src/services/auth/index.ts +4 -0
  94. package/backend/src/{core/auth/oauth.ts → services/auth/oauth-config.service.ts} +106 -52
  95. package/backend/src/{core/database/advance.ts → services/database/database-advance.service.ts} +97 -131
  96. package/backend/src/services/database/database-table.service.ts +811 -0
  97. package/backend/src/services/email/email.service.ts +75 -0
  98. package/backend/src/{core/functions/functions.ts → services/functions/function.service.ts} +95 -88
  99. package/backend/src/{core/logs/audit.ts → services/logs/audit.service.ts} +92 -75
  100. package/backend/src/services/logs/log.service.ts +73 -0
  101. package/backend/src/{core/secrets/secrets.ts → services/secrets/secret.service.ts} +48 -66
  102. package/backend/src/services/storage/storage.service.ts +617 -0
  103. package/backend/src/services/usage/usage.service.ts +149 -0
  104. package/backend/src/types/auth.ts +66 -2
  105. package/backend/src/types/email.ts +8 -0
  106. package/backend/src/types/error-constants.ts +4 -0
  107. package/backend/src/types/logs.ts +0 -29
  108. package/backend/src/{core/socket/types.ts → types/socket.ts} +5 -6
  109. package/backend/src/utils/environment.ts +9 -3
  110. package/backend/src/utils/logger.ts +20 -2
  111. package/backend/src/utils/seed.ts +150 -57
  112. package/backend/src/utils/sql-parser.ts +1 -1
  113. package/backend/src/utils/utils.ts +114 -0
  114. package/backend/src/utils/validations.ts +40 -4
  115. package/backend/tests/local/test-ai-config.sh +129 -0
  116. package/backend/tests/local/test-ai-usage.sh +80 -0
  117. package/backend/tests/local/test-auth-router.sh +1 -1
  118. package/backend/tests/local/test-e2e.sh +1 -1
  119. package/backend/tests/local/test-functions.sh +123 -0
  120. package/backend/tests/local/test-logs.sh +132 -0
  121. package/backend/tests/local/test-public-bucket.sh +3 -3
  122. package/backend/tests/local/test-secrets.sh +14 -12
  123. package/backend/tests/local/test-traditional-rest.sh +2 -2
  124. package/backend/tests/manual/test-rawsql-modes.sh +244 -0
  125. package/backend/tests/test-config.sh +37 -1
  126. package/backend/tests/unit/cloud-token.test.ts +48 -0
  127. package/backend/tests/unit/constant.test.ts +8 -0
  128. package/backend/tests/unit/email.test.ts +372 -0
  129. package/backend/tests/unit/environment.test.ts +59 -0
  130. package/backend/tests/unit/helpers.test.ts +63 -0
  131. package/backend/tests/unit/logger.test.ts +22 -0
  132. package/backend/tests/unit/rate-limit.test.ts +154 -0
  133. package/backend/tests/unit/response.test.ts +58 -0
  134. package/backend/tests/unit/sql-parser.test.ts +74 -0
  135. package/backend/tests/unit/uuid.test.ts +21 -0
  136. package/backend/tests/unit/validations.test.ts +80 -0
  137. package/backend/tsconfig.json +1 -1
  138. package/backend/vitest.config.ts +11 -0
  139. package/claude-plugin/.claude-plugin/plugin.json +24 -0
  140. package/claude-plugin/README.md +133 -0
  141. package/claude-plugin/skills/insforge-schema-patterns/SKILL.md +270 -0
  142. package/docker-compose.prod.yml +60 -4
  143. package/docker-compose.yml +65 -4
  144. package/docker-init/db/db-init.sql +6 -34
  145. package/docker-init/logs/vector.yml +236 -0
  146. package/docs/README.md +44 -0
  147. package/docs/changelog.mdx +67 -0
  148. package/docs/core-concepts/ai/architecture.mdx +373 -0
  149. package/docs/core-concepts/ai/sdk.mdx +213 -0
  150. package/docs/core-concepts/authentication/architecture.mdx +278 -0
  151. package/docs/core-concepts/authentication/sdk.mdx +414 -0
  152. package/docs/core-concepts/authentication/ui-components/customization.mdx +529 -0
  153. package/docs/core-concepts/authentication/ui-components/nextjs.mdx +221 -0
  154. package/docs/core-concepts/authentication/ui-components/react-router.mdx +184 -0
  155. package/docs/core-concepts/authentication/ui-components/react.mdx +129 -0
  156. package/docs/core-concepts/database/architecture.mdx +256 -0
  157. package/docs/core-concepts/database/sdk.mdx +382 -0
  158. package/docs/core-concepts/functions/architecture.mdx +105 -0
  159. package/docs/core-concepts/functions/sdk.mdx +184 -0
  160. package/docs/core-concepts/storage/architecture.mdx +243 -0
  161. package/docs/core-concepts/storage/sdk.mdx +253 -0
  162. package/docs/deployment/README.md +94 -0
  163. package/docs/deployment/deploy-to-aws-ec2.md +565 -0
  164. package/docs/deployment/deploy-to-azure-virtual-machines.md +313 -0
  165. package/docs/deployment/deploy-to-google-cloud-compute-engine.md +613 -0
  166. package/docs/deployment/deploy-to-render.md +441 -0
  167. package/docs/docs.json +210 -0
  168. package/docs/examples/framework-guides/nextjs.mdx +131 -0
  169. package/docs/examples/framework-guides/nuxt.mdx +165 -0
  170. package/docs/examples/framework-guides/react.mdx +165 -0
  171. package/docs/examples/framework-guides/svelte.mdx +153 -0
  172. package/docs/examples/framework-guides/vue.mdx +159 -0
  173. package/docs/examples/overview.mdx +67 -0
  174. package/docs/favicon.svg +19 -0
  175. package/docs/images/changelog/nov-2025/auth-components.webp +0 -0
  176. package/docs/images/changelog/nov-2025/database-metadata.webp +0 -0
  177. package/docs/images/changelog/nov-2025/quickstart-prompts.webp +0 -0
  178. package/docs/images/changelog/nov-2025/sql-editor.webp +0 -0
  179. package/docs/images/changelog/nov-2025/usage-page.webp +0 -0
  180. package/docs/images/changelog/october-2025/csv-upload.webp +0 -0
  181. package/docs/images/changelog/october-2025/logs-feature.webp +0 -0
  182. package/docs/images/changelog/october-2025/oauth-providers.webp +0 -0
  183. package/docs/images/checks-passed.png +0 -0
  184. package/docs/images/dashboard-connect-expanded.png +0 -0
  185. package/docs/images/dashboard-connect.png +0 -0
  186. package/docs/images/hero-dark.png +0 -0
  187. package/docs/images/hero-light.png +0 -0
  188. package/docs/images/icons/ai.svg +4 -0
  189. package/docs/images/icons/auth.svg +1 -0
  190. package/docs/images/icons/database.svg +1 -0
  191. package/docs/images/icons/function.svg +1 -0
  192. package/docs/images/icons/storage.svg +1 -0
  193. package/docs/images/logos/nextjs.svg +4 -0
  194. package/docs/images/logos/nuxt.svg +4 -0
  195. package/docs/images/logos/react.svg +5 -0
  196. package/docs/images/logos/svelte.svg +4 -0
  197. package/docs/images/logos/vue.svg +5 -0
  198. package/docs/images/mcp-install.png +0 -0
  199. package/docs/images/onboarding-mcp.png +0 -0
  200. package/docs/insforge-instructions-sdk.md +55 -374
  201. package/docs/introduction.mdx +45 -0
  202. package/docs/logo/dark.svg +22 -0
  203. package/docs/logo/light.svg +20 -0
  204. package/docs/partnership.mdx +647 -0
  205. package/docs/quickstart.mdx +83 -0
  206. package/docs/showcase/2048-arena.png +0 -0
  207. package/docs/showcase/framegen-cloud.png +0 -0
  208. package/docs/showcase/line-connect-race.png +0 -0
  209. package/docs/showcase/moment-vibe.png +0 -0
  210. package/docs/showcase/national-flags.png +0 -0
  211. package/docs/showcase/pokemon-vibe.png +0 -0
  212. package/docs/showcase/pure-browse-buy.png +0 -0
  213. package/docs/showcase.mdx +52 -0
  214. package/docs/snippets/sdk-installation.mdx +22 -0
  215. package/docs/snippets/service-icons.mdx +27 -0
  216. package/eslint.config.js +10 -3
  217. package/frontend/package.json +10 -4
  218. package/frontend/src/App.tsx +13 -82
  219. package/frontend/src/assets/icons/connected.svg +3 -0
  220. package/frontend/src/assets/icons/loader.svg +9 -0
  221. package/frontend/src/assets/logos/apple.svg +4 -0
  222. package/frontend/src/assets/logos/discord.svg +1 -1
  223. package/frontend/src/assets/logos/facebook.svg +3 -0
  224. package/frontend/src/assets/logos/instagram.svg +2 -0
  225. package/frontend/src/assets/logos/linkedin.svg +3 -0
  226. package/frontend/src/assets/logos/microsoft.svg +1 -0
  227. package/frontend/src/assets/logos/spotify.svg +17 -0
  228. package/frontend/src/assets/logos/tiktok.svg +6 -0
  229. package/frontend/src/assets/logos/x.svg +3 -0
  230. package/frontend/src/components/Checkbox.tsx +27 -29
  231. package/frontend/src/components/CodeBlock.tsx +55 -2
  232. package/frontend/src/components/CodeEditor.tsx +92 -0
  233. package/frontend/src/components/ConfirmDialog.tsx +1 -1
  234. package/frontend/src/components/ConnectCTA.tsx +38 -0
  235. package/frontend/src/components/CopyButton.tsx +52 -15
  236. package/frontend/src/components/ErrorState.tsx +1 -2
  237. package/frontend/src/components/FeatureSidebar.tsx +6 -6
  238. package/frontend/src/components/FeatureSidebarItem.tsx +2 -2
  239. package/frontend/src/components/JsonHighlight.tsx +21 -9
  240. package/frontend/src/components/ProjectInfoModal.tsx +128 -0
  241. package/frontend/src/components/PromptDialog.tsx +1 -4
  242. package/frontend/src/components/SearchInput.tsx +1 -2
  243. package/frontend/src/components/Stepper.tsx +53 -0
  244. package/frontend/src/components/ThemeToggle.tsx +3 -3
  245. package/frontend/src/components/datagrid/DataGrid.tsx +25 -32
  246. package/frontend/src/components/datagrid/cell-editors/DateCellEditor.tsx +1 -2
  247. package/frontend/src/components/datagrid/cell-editors/JsonCellEditor.tsx +2 -4
  248. package/frontend/src/components/datagrid/index.ts +23 -0
  249. package/frontend/src/components/index.ts +23 -30
  250. package/frontend/src/components/layout/AppHeader.tsx +133 -92
  251. package/frontend/src/components/layout/AppSidebar.tsx +80 -170
  252. package/frontend/src/components/layout/Layout.tsx +12 -23
  253. package/frontend/src/components/layout/PrimaryMenu.tsx +187 -0
  254. package/frontend/src/components/layout/SecondaryMenu.tsx +70 -0
  255. package/frontend/src/components/layout/index.ts +5 -0
  256. package/frontend/src/components/radix/Tooltip.tsx +24 -13
  257. package/frontend/src/components/radix/index.ts +22 -0
  258. package/frontend/src/features/ai/components/AIConfigCard.tsx +129 -83
  259. package/frontend/src/features/ai/components/AIEmptyState.tsx +12 -7
  260. package/frontend/src/features/ai/components/ModalityFilterSidebar.tsx +101 -0
  261. package/frontend/src/features/ai/components/ModelSelectionDialog.tsx +135 -0
  262. package/frontend/src/features/ai/components/ModelSelectionGrid.tsx +51 -0
  263. package/frontend/src/features/ai/components/SystemPromptDialog.tsx +118 -0
  264. package/frontend/src/features/ai/components/index.ts +6 -0
  265. package/frontend/src/features/ai/helpers.ts +57 -71
  266. package/frontend/src/features/ai/hooks/useAIConfigs.ts +39 -113
  267. package/frontend/src/features/ai/hooks/useAIUsage.ts +0 -2
  268. package/frontend/src/features/ai/page/AIPage.tsx +67 -79
  269. package/frontend/src/features/ai/services/ai.service.ts +5 -5
  270. package/frontend/src/features/auth/components/AuthPreview.tsx +96 -0
  271. package/frontend/src/features/auth/components/OAuthConfigDialog.tsx +53 -30
  272. package/frontend/src/features/auth/components/UserFormDialog.tsx +13 -6
  273. package/frontend/src/features/auth/components/UsersDataGrid.tsx +44 -14
  274. package/frontend/src/features/auth/components/index.ts +5 -0
  275. package/frontend/src/features/auth/helpers.tsx +200 -0
  276. package/frontend/src/features/auth/hooks/useAnonToken.ts +30 -0
  277. package/frontend/src/features/auth/hooks/useAuthConfig.ts +48 -0
  278. package/frontend/src/features/auth/hooks/useOAuthConfig.ts +14 -10
  279. package/frontend/src/features/auth/hooks/useUsers.ts +43 -5
  280. package/frontend/src/features/auth/index.ts +3 -2
  281. package/frontend/src/features/auth/page/AuthMethodsPage.tsx +275 -0
  282. package/frontend/src/features/auth/page/ConfigurationPage.tsx +395 -0
  283. package/frontend/src/features/auth/page/UsersPage.tsx +285 -0
  284. package/frontend/src/features/auth/services/anonToken.service.ts +11 -0
  285. package/frontend/src/features/auth/services/config.service.ts +19 -0
  286. package/frontend/src/features/auth/services/{oauth.service.ts → oauth-config.service.ts} +4 -4
  287. package/frontend/src/features/auth/services/{auth.service.ts → user.service.ts} +7 -53
  288. package/frontend/src/features/dashboard/components/ConnectionSuccessBanner.tsx +35 -0
  289. package/frontend/src/features/dashboard/components/PromptCard.tsx +21 -0
  290. package/frontend/src/features/dashboard/components/PromptDialog.tsx +103 -0
  291. package/frontend/src/features/dashboard/components/StatsCard.tsx +50 -0
  292. package/frontend/src/features/dashboard/components/index.ts +4 -0
  293. package/frontend/src/features/dashboard/page/DashboardPage.tsx +187 -169
  294. package/frontend/src/features/dashboard/prompts/ai-chatbot.ts +13 -0
  295. package/frontend/src/features/dashboard/prompts/crm-system.ts +13 -0
  296. package/frontend/src/features/dashboard/prompts/ecommerce-platform.ts +12 -0
  297. package/frontend/src/features/dashboard/prompts/index.ts +31 -0
  298. package/frontend/src/features/dashboard/prompts/instagram-clone.ts +11 -0
  299. package/frontend/src/features/dashboard/prompts/notion-clone.ts +14 -0
  300. package/frontend/src/features/dashboard/prompts/reddit-clone.ts +12 -0
  301. package/frontend/src/features/database/components/DatabaseDataGrid.tsx +48 -17
  302. package/frontend/src/features/database/components/ForeignKeyCell.tsx +15 -34
  303. package/frontend/src/features/database/components/ForeignKeyPopover.tsx +19 -20
  304. package/frontend/src/features/database/components/LinkRecordModal.tsx +120 -125
  305. package/frontend/src/features/database/components/RecordFormDialog.tsx +22 -33
  306. package/frontend/src/features/database/components/RecordFormField.tsx +45 -47
  307. package/frontend/src/features/database/components/TableEmptyState.tsx +6 -5
  308. package/frontend/src/features/database/components/TableForm.tsx +28 -15
  309. package/frontend/src/features/database/components/TableFormColumn.tsx +2 -3
  310. package/frontend/src/features/database/components/TableSidebar.tsx +1 -1
  311. package/frontend/src/features/database/components/TablesEmptyState.tsx +48 -0
  312. package/frontend/src/features/database/components/TemplateCard.tsx +37 -0
  313. package/frontend/src/features/database/components/TemplatePreview.tsx +92 -0
  314. package/frontend/src/features/database/components/index.ts +19 -0
  315. package/frontend/src/features/database/constants.ts +28 -2
  316. package/frontend/src/features/database/contexts/SQLEditorContext.tsx +188 -0
  317. package/frontend/src/features/database/helpers.ts +2 -2
  318. package/frontend/src/features/database/hooks/useCSVImport.ts +29 -0
  319. package/frontend/src/features/database/hooks/useFullMetadata.ts +18 -0
  320. package/frontend/src/features/database/hooks/useRawSQL.ts +55 -0
  321. package/frontend/src/features/database/hooks/useRecords.ts +139 -0
  322. package/frontend/src/features/database/hooks/useTables.ts +131 -0
  323. package/frontend/src/features/database/index.ts +6 -1
  324. package/frontend/src/features/database/page/FunctionsPage.tsx +211 -0
  325. package/frontend/src/features/database/page/IndexesPage.tsx +240 -0
  326. package/frontend/src/features/database/page/PoliciesPage.tsx +248 -0
  327. package/frontend/src/features/database/page/SQLEditorPage.tsx +382 -0
  328. package/frontend/src/features/database/page/{DatabasePage.tsx → TablesPage.tsx} +186 -185
  329. package/frontend/src/features/database/page/TemplatesPage.tsx +39 -0
  330. package/frontend/src/features/database/page/TriggersPage.tsx +242 -0
  331. package/frontend/src/features/database/services/advance.service.ts +66 -0
  332. package/frontend/src/features/database/services/{database.service.ts → record.service.ts} +67 -64
  333. package/frontend/src/features/database/services/table.service.ts +64 -0
  334. package/frontend/src/features/database/templates/ai-chatbot.ts +402 -0
  335. package/frontend/src/features/database/templates/crm-system.ts +528 -0
  336. package/frontend/src/features/database/templates/ecommerce-platform.ts +553 -0
  337. package/frontend/src/features/database/templates/index.ts +34 -0
  338. package/frontend/src/features/database/templates/instagram-clone.ts +222 -0
  339. package/frontend/src/features/database/templates/notion-clone.ts +483 -0
  340. package/frontend/src/features/database/templates/reddit-clone.ts +526 -0
  341. package/frontend/src/features/functions/components/FunctionRow.tsx +2 -1
  342. package/frontend/src/features/functions/components/FunctionsSidebar.tsx +1 -1
  343. package/frontend/src/features/functions/components/SecretRow.tsx +1 -1
  344. package/frontend/src/features/functions/components/index.ts +5 -0
  345. package/frontend/src/features/functions/hooks/useFunctions.ts +4 -4
  346. package/frontend/src/features/{secrets → functions}/hooks/useSecrets.ts +5 -5
  347. package/frontend/src/features/functions/page/FunctionsPage.tsx +160 -17
  348. package/frontend/src/features/functions/{components/SecretsContent.tsx → page/SecretsPage.tsx} +8 -12
  349. package/frontend/src/features/functions/services/{functions.service.ts → function.service.ts} +2 -2
  350. package/frontend/src/features/{secrets/services/secrets.service.ts → functions/services/secret.service.ts} +2 -2
  351. package/frontend/src/features/login/hooks/usePartnerOrigin.ts +27 -0
  352. package/frontend/src/features/login/page/CloudLoginPage.tsx +79 -54
  353. package/frontend/src/features/login/page/LoginPage.tsx +16 -23
  354. package/frontend/src/features/login/services/partnership.service.ts +65 -0
  355. package/frontend/src/features/logs/components/LogsDataGrid.tsx +89 -0
  356. package/frontend/src/features/logs/components/SeverityBadge.tsx +18 -0
  357. package/frontend/src/features/logs/components/index.ts +2 -0
  358. package/frontend/src/features/logs/helpers.ts +24 -0
  359. package/frontend/src/features/logs/hooks/useAuditLogs.ts +4 -4
  360. package/frontend/src/features/logs/hooks/useLogSources.ts +137 -0
  361. package/frontend/src/features/logs/hooks/useLogs.ts +163 -0
  362. package/frontend/src/features/logs/hooks/useMcpUsage.ts +181 -0
  363. package/frontend/src/features/logs/index.ts +8 -2
  364. package/frontend/src/features/logs/page/AuditsPage.tsx +91 -38
  365. package/frontend/src/features/logs/page/LogsPage.tsx +152 -0
  366. package/frontend/src/features/logs/page/MCPLogsPage.tsx +84 -0
  367. package/frontend/src/features/logs/services/audit.service.ts +63 -0
  368. package/frontend/src/features/logs/services/log.service.ts +15 -110
  369. package/frontend/src/features/logs/services/usage.service.ts +31 -0
  370. package/frontend/src/features/onboard/components/McpConnectionStatus.tsx +68 -0
  371. package/frontend/src/features/onboard/components/OnboardingModal.tsx +267 -0
  372. package/frontend/src/features/onboard/components/VideoDemoModal.tsx +38 -0
  373. package/frontend/src/features/onboard/components/index.ts +4 -0
  374. package/frontend/src/features/onboard/components/mcp/CursorDeeplinkGenerator.tsx +2 -2
  375. package/frontend/src/features/onboard/components/mcp/{mcp-helper.tsx → helpers.tsx} +8 -8
  376. package/frontend/src/features/onboard/components/mcp/index.ts +2 -3
  377. package/frontend/src/features/onboard/index.ts +13 -3
  378. package/frontend/src/features/storage/components/BucketEmptyState.tsx +9 -6
  379. package/frontend/src/features/storage/components/BucketFormDialog.tsx +25 -41
  380. package/frontend/src/features/storage/components/FilePreviewDialog.tsx +20 -8
  381. package/frontend/src/features/storage/components/StorageDataGrid.tsx +4 -3
  382. package/frontend/src/features/storage/components/StorageManager.tsx +23 -34
  383. package/frontend/src/features/storage/components/index.ts +12 -0
  384. package/frontend/src/features/storage/hooks/useStorage.ts +208 -0
  385. package/frontend/src/features/storage/page/StoragePage.tsx +41 -115
  386. package/frontend/src/features/storage/services/storage.service.ts +22 -1
  387. package/frontend/src/features/visualizer/components/AuthNode.tsx +72 -56
  388. package/frontend/src/features/visualizer/components/BucketNode.tsx +4 -4
  389. package/frontend/src/features/visualizer/components/SchemaVisualizer.tsx +108 -80
  390. package/frontend/src/features/visualizer/components/TableNode.tsx +34 -41
  391. package/frontend/src/features/visualizer/components/VisualizerSkeleton.tsx +12 -4
  392. package/frontend/src/features/visualizer/page/VisualizerPage.tsx +33 -29
  393. package/frontend/src/index.css +1 -0
  394. package/frontend/src/lib/analytics/posthog.tsx +27 -0
  395. package/frontend/src/lib/contexts/AuthContext.tsx +38 -31
  396. package/frontend/src/lib/contexts/SocketContext.tsx +5 -6
  397. package/frontend/src/{features/metadata → lib}/hooks/useMetadata.ts +1 -1
  398. package/frontend/src/lib/hooks/useToast.tsx +6 -2
  399. package/frontend/src/lib/routing/AppRoutes.tsx +84 -0
  400. package/frontend/src/lib/routing/RequireAuth.tsx +27 -0
  401. package/frontend/src/lib/utils/cloudMessaging.ts +20 -0
  402. package/frontend/src/lib/utils/menuItems.ts +183 -0
  403. package/frontend/src/lib/utils/{validation-schemas.ts → schemaValidations.ts} +10 -5
  404. package/frontend/src/lib/utils/utils.ts +19 -1
  405. package/frontend/src/vite-env.d.ts +1 -0
  406. package/frontend/vite.config.ts +5 -3
  407. package/functions/server.ts +28 -3
  408. package/functions/worker-template.js +15 -4
  409. package/i18n/README.ar.md +130 -0
  410. package/i18n/README.de.md +130 -0
  411. package/i18n/README.es.md +154 -0
  412. package/i18n/README.fr.md +134 -0
  413. package/i18n/README.hi.md +129 -0
  414. package/i18n/README.ja.md +174 -0
  415. package/i18n/README.ko.md +137 -0
  416. package/i18n/README.pt-BR.md +131 -0
  417. package/i18n/README.ru.md +129 -0
  418. package/i18n/README.zh-CN.md +133 -0
  419. package/openapi/ai.yaml +31 -4
  420. package/openapi/auth.yaml +827 -146
  421. package/package.json +16 -7
  422. package/shared-schemas/package.json +1 -1
  423. package/shared-schemas/src/ai-api.schema.ts +34 -58
  424. package/shared-schemas/src/ai.schema.ts +5 -0
  425. package/shared-schemas/src/auth-api.schema.ts +154 -8
  426. package/shared-schemas/src/auth.schema.ts +42 -6
  427. package/shared-schemas/src/cloud-events.schema.ts +57 -0
  428. package/shared-schemas/src/database-api.schema.ts +3 -3
  429. package/shared-schemas/src/database.schema.ts +1 -1
  430. package/shared-schemas/src/index.ts +1 -0
  431. package/shared-schemas/src/logs-api.schema.ts +7 -1
  432. package/shared-schemas/src/logs.schema.ts +26 -0
  433. package/shared-schemas/src/metadata.schema.ts +9 -4
  434. package/test-gemini.sh +35 -0
  435. package/test-usage-admin.sh +57 -0
  436. package/test-usage.sh +50 -0
  437. package/zeabur/README.md +13 -0
  438. package/zeabur/template.yml +1032 -0
  439. package/.github/workflows/deploy-aws.yml +0 -130
  440. package/backend/src/api/routes/agent.ts +0 -29
  441. package/backend/src/api/routes/auth.oauth.ts +0 -482
  442. package/backend/src/api/routes/auth.ts +0 -386
  443. package/backend/src/api/routes/docs.ts +0 -66
  444. package/backend/src/api/routes/functions.ts +0 -183
  445. package/backend/src/api/routes/openapi.ts +0 -82
  446. package/backend/src/api/routes/usage.ts +0 -96
  447. package/backend/src/core/ai/client.ts +0 -242
  448. package/backend/src/core/ai/model.ts +0 -117
  449. package/backend/src/core/auth/auth.ts +0 -780
  450. package/backend/src/core/database/table.ts +0 -772
  451. package/backend/src/core/documentation/agent.ts +0 -689
  452. package/backend/src/core/documentation/openapi.ts +0 -856
  453. package/backend/src/core/logs/analytics.ts +0 -76
  454. package/backend/src/core/logs/providers/localdb.provider.ts +0 -246
  455. package/backend/src/core/storage/storage.ts +0 -923
  456. package/backend/src/utils/cloud-token.ts +0 -39
  457. package/backend/src/utils/helpers.ts +0 -49
  458. package/backend/src/utils/uuid.ts +0 -9
  459. package/backend/tests/manual/test-better-auth.sh +0 -303
  460. package/docker-init/db/logs.sql +0 -9
  461. package/frontend/README.md +0 -112
  462. package/frontend/src/components/datagrid/index.tsx +0 -20
  463. package/frontend/src/components/layout/CloudLayout.tsx +0 -95
  464. package/frontend/src/features/ai/components/AIConfigDialog.tsx +0 -76
  465. package/frontend/src/features/ai/components/AIConfigForm.tsx +0 -222
  466. package/frontend/src/features/ai/components/fields/ModalityField.tsx +0 -87
  467. package/frontend/src/features/ai/components/fields/ModelSelectionField.tsx +0 -134
  468. package/frontend/src/features/ai/components/fields/SystemPromptField.tsx +0 -33
  469. package/frontend/src/features/auth/components/AddOAuthDialog.tsx +0 -106
  470. package/frontend/src/features/auth/components/AuthMethodTab.tsx +0 -238
  471. package/frontend/src/features/auth/components/UsersTab.tsx +0 -114
  472. package/frontend/src/features/auth/page/AuthenticationPage.tsx +0 -169
  473. package/frontend/src/features/database/hooks/UseLinkModal.tsx +0 -78
  474. package/frontend/src/features/functions/components/FunctionViewer.tsx +0 -46
  475. package/frontend/src/features/functions/components/FunctionsContent.tsx +0 -88
  476. package/frontend/src/features/login/components/AuthErrorBoundary.tsx +0 -87
  477. package/frontend/src/features/login/components/PrivateRoute.tsx +0 -24
  478. package/frontend/src/features/logs/components/AnalyticsLogsTable.tsx +0 -313
  479. package/frontend/src/features/logs/components/LogsTable.tsx +0 -199
  480. package/frontend/src/features/logs/page/AnalyticsLogsPage.tsx +0 -530
  481. package/frontend/src/features/metadata/index.ts +0 -0
  482. package/frontend/src/features/metadata/page/MetadataPage.tsx +0 -136
  483. package/frontend/src/features/onboard/components/CompletionCard.tsx +0 -41
  484. package/frontend/src/features/onboard/components/OnboardButton.tsx +0 -84
  485. package/frontend/src/features/onboard/components/StepContent.tsx +0 -91
  486. package/frontend/src/features/onboard/components/TestConnectionStep.tsx +0 -53
  487. package/frontend/src/features/onboard/components/mcp/McpInstallation.tsx +0 -144
  488. package/frontend/src/features/onboard/page/OnBoardPage.tsx +0 -104
  489. package/frontend/src/features/onboard/types.ts +0 -8
  490. package/frontend/src/lib/contexts/OnboardStepContext.tsx +0 -68
  491. package/frontend/src/lib/hooks/useOnboardingCompletion.ts +0 -29
  492. /package/backend/src/api/{middleware → middlewares}/error.ts +0 -0
  493. /package/backend/src/api/{middleware → middlewares}/upload.ts +0 -0
  494. /package/backend/{migrations → src/infra/database/migrations}/000_create-base-tables.sql +0 -0
  495. /package/backend/{migrations → src/infra/database/migrations}/001_create-helper-functions.sql +0 -0
  496. /package/backend/{migrations → src/infra/database/migrations}/002_rename-auth-tables.sql +0 -0
  497. /package/backend/{migrations → src/infra/database/migrations}/003_create-users-table.sql +0 -0
  498. /package/backend/{migrations → src/infra/database/migrations}/004_add-reload-postgrest-func.sql +0 -0
  499. /package/backend/{migrations → src/infra/database/migrations}/005_enable-project-admin-modify-users.sql +0 -0
  500. /package/backend/{migrations → src/infra/database/migrations}/006_modify-ai-usage-table.sql +0 -0
  501. /package/backend/{migrations → src/infra/database/migrations}/007_drop-metadata-table.sql +0 -0
  502. /package/backend/{migrations → src/infra/database/migrations}/008_add-system-tables.sql +0 -0
  503. /package/backend/{migrations → src/infra/database/migrations}/009_add-function-secrets.sql +0 -0
  504. /package/backend/{migrations → src/infra/database/migrations}/010_modify-ai-config-modalities.sql +0 -0
  505. /package/backend/{migrations → src/infra/database/migrations}/011_refactor-secrets-table.sql +0 -0
  506. /package/backend/{migrations → src/infra/database/migrations}/012_add-storage-uploaded-by.sql +0 -0
  507. /package/frontend/src/{features/metadata → lib}/services/metadata.service.ts +0 -0
@@ -0,0 +1,20 @@
1
+ {
2
+ "name": "insforge-official-marketplace",
3
+ "owner": {
4
+ "name": "InsForge Team",
5
+ "email": "tony.chang@insforge.dev"
6
+ },
7
+ "plugins": [
8
+ {
9
+ "name": "insforge",
10
+ "source": "./claude-plugin",
11
+ "description": "Official InsForge plugin with schema patterns, best practices for database design, RLS policies, and SDK usage examples. Includes patterns for social graphs, multi-tenancy, and complex relationships.",
12
+ "version": "1.0.0",
13
+ "author": {
14
+ "name": "InsForge Team"
15
+ },
16
+ "category": "database",
17
+ "tags": ["insforge", "postgresql", "postgrest", "database", "baas", "backend", "rls", "schema"]
18
+ }
19
+ ]
20
+ }
@@ -0,0 +1,94 @@
1
+ ---
2
+ description: Instructions building apps with MCP
3
+ globs: *
4
+ alwaysApply: true
5
+ ---
6
+
7
+ # InsForge SDK Documentation - Overview
8
+
9
+ ## What is InsForge?
10
+
11
+ Backend-as-a-service (BaaS) platform providing:
12
+
13
+ - **Database**: PostgreSQL with PostgREST API
14
+ - **Authentication**: Email/password + OAuth (Google, GitHub)
15
+ - **Storage**: File upload/download
16
+ - **AI**: Chat completions and image generation (OpenAI-compatible)
17
+ - **Functions**: Serverless function deployment
18
+
19
+ ## Installation
20
+
21
+ ### 🚨 CRITICAL: Follow these steps in order
22
+
23
+ ### Step 1: Download Template
24
+
25
+ Use the `download-template` MCP tool to create a new project with your backend URL and anon key pre-configured.
26
+
27
+ ### Step 2: Install SDK
28
+
29
+ ```bash
30
+ npm install @insforge/sdk@latest
31
+ ```
32
+
33
+ ### Step 3: Create SDK Client
34
+
35
+ You must create a client instance using `createClient()` with your base URL and anon key:
36
+
37
+ ```javascript
38
+ import { createClient } from '@insforge/sdk';
39
+
40
+ const client = createClient({
41
+ baseUrl: 'https://your-app.region.insforge.app', // Your InsForge backend URL
42
+ anonKey: 'your-anon-key-here' // Get this from backend metadata
43
+ });
44
+
45
+ ```
46
+
47
+ **API BASE URL**: Your API base URL is `https://your-app.region.insforge.app`.
48
+
49
+ ## Getting Detailed Documentation
50
+
51
+ ### 🚨 CRITICAL: Always Fetch Documentation Before Writing Code
52
+
53
+ Before writing or editing any InsForge integration code, you **MUST** call the `fetch-docs` MCP tool to get the latest SDK documentation. This ensures you have accurate, up-to-date implementation patterns.
54
+
55
+ ### Use the InsForge `fetch-docs` MCP tool to get specific SDK documentation:
56
+
57
+ Available documentation types:
58
+
59
+ - `"instructions"` - Essential backend setup (START HERE)
60
+ - `"db-sdk"` - Database operations with SDK
61
+ - **Authentication** - Choose based on implementation:
62
+ - `"auth-components-react"` - Frontend auth for React+Vite (singlepage App)
63
+ - `"auth-components-react-router"` - Frontend auth for React(Vite+React Router) (Multipage App)
64
+ - `"storage-sdk"` - File storage operations
65
+ - `"functions-sdk"` - Serverless functions invocation
66
+ - `"ai-integration-sdk"` - AI chat and image generation
67
+
68
+ ## When to Use SDK vs MCP Tools
69
+
70
+ ### Always SDK for Application Logic:
71
+
72
+ - Authentication (register, login, logout, profiles)
73
+ - Database CRUD (select, insert, update, delete)
74
+ - Storage operations (upload, download files)
75
+ - AI operations (chat, image generation)
76
+ - Serverless function invocation
77
+
78
+ ### Use MCP Tools for Infrastructure:
79
+
80
+ - Project scaffolding (`download-template`) - Download starter templates with InsForge integration
81
+ - Backend setup and metadata (`get-backend-metadata`)
82
+ - Database schema management (`run-raw-sql`, `get-table-schema`)
83
+ - Storage bucket creation (`create-bucket`, `list-buckets`, `delete-bucket`)
84
+ - Serverless function deployment (`create-function`, `update-function`, `delete-function`)
85
+
86
+ ## Important Notes
87
+
88
+ - Use the right framework-specific component package for production-ready auth
89
+ - SDK returns `{data, error}` structure for all operations
90
+ - Database inserts require array format: `[{...}]`
91
+ - Serverless functions have single endpoint (no subpaths)
92
+ - Storage: Upload files to buckets, store URLs in database
93
+ - AI operations are OpenAI-compatible
94
+ - **EXTRA IMPORTANT**: Use Tailwind CSS 3.4 (do not upgrade to v4). Lock these dependencies in `package.json`
package/.dockerignore CHANGED
@@ -1,6 +1,9 @@
1
1
  # Dependencies
2
2
  node_modules/
3
3
  frontend/node_modules/
4
+ auth/node_modules/
5
+ shared-schemas/node_modules/
6
+ backend/node_modules/
4
7
 
5
8
  # Build outputs
6
9
  dist/
package/.env.example CHANGED
@@ -24,15 +24,28 @@ ACCESS_API_KEY=ik_your-api-key-here-32-chars-minimum
24
24
  # Cloud API Host (Optional)
25
25
  CLOUD_API_HOST=https://api.insforge.dev
26
26
 
27
- # Storage Configuration
28
- # For S3 storage (optional - if not set, will use local filesystem)
27
+
28
+
29
+ # Storage + Logs Configuration
30
+ # Storage: Set AWS_S3_BUCKET, AWS_REGION + credentials to use S3 (otherwise uses local filesystem)
31
+ # Logs: Set AWS_REGION + credentials to enable CloudWatch logging (otherwise uses file-based logging)
29
32
  AWS_S3_BUCKET=
30
- AWS_REGION=us-east-2
33
+ AWS_REGION=
34
+ AWS_ACCESS_KEY_ID=
35
+ AWS_SECRET_ACCESS_KEY=
36
+
37
+ # File-based Logs Configuration (used when AWS credentials are not provided)
38
+ # Directory where log files will be stored (defaults to ./logs)
39
+ LOGS_DIR=
40
+
31
41
 
32
42
  # OpenRouter Configuration
33
43
  # Get your API key from https://openrouter.ai/keys
34
44
  OPENROUTER_API_KEY=
35
45
 
46
+ # Posthog Configuration (Only needed if running development mode locally)
47
+ VITE_PUBLIC_POSTHOG_KEY=
48
+
36
49
  # OAuth Configuration (Optional)
37
50
  # Google OAuth - Get credentials from https://console.cloud.google.com/
38
51
  GOOGLE_CLIENT_ID=
@@ -42,8 +55,24 @@ GOOGLE_CLIENT_SECRET=
42
55
  GITHUB_CLIENT_ID=
43
56
  GITHUB_CLIENT_SECRET=
44
57
 
58
+ #Microsoft OAuth - Get credentials from https://portal.azure.com/
59
+ MICROSOFT_CLIENT_ID=
60
+ MICROSOFT_CLIENT_SECRET=
61
+
62
+ # Discord OAuth - Get credentials from https://discord.com/developers/applications
63
+ DISCORD_CLIENT_ID=
64
+ DISCORD_CLIENT_SECRET=
65
+
66
+ # LinkedIn OAuth - Get credentials from https://www.linkedin.com/developers/apps
67
+ LINKEDIN_CLIENT_ID=
68
+ LINKEDIN_CLIENT_SECRET=
69
+
70
+ # X OAuth - Get credentials from https://developer.twitter.com/en/portal/dashboard
71
+ X_CLIENT_ID=
72
+ X_CLIENT_SECRET=
73
+
45
74
  # Multi-tenant Cloud Configuration
46
75
  # Below only used through cloud available solution
47
76
  DEPLOYMENT_ID=
48
77
  PROJECT_ID=
49
- APP_KEY=
78
+ APP_KEY=
@@ -1,5 +1,5 @@
1
1
  name: 🐛 Bug Report
2
- description: Create a bug report to help us improve
2
+ description: Report a bug to help us improve
3
3
  title: "[Bug]: "
4
4
  labels: ["bug", "needs-triage"]
5
5
  assignees: []
@@ -7,77 +7,30 @@ body:
7
7
  - type: markdown
8
8
  attributes:
9
9
  value: |
10
- Thanks for taking the time to fill out this bug report! Please provide as much detail as possible.
11
-
12
- **Note**: This template is for bug reports only. For feature requests, questions, or other issues, please use the appropriate template.
13
-
14
- - type: checkboxes
15
- id: checks
16
- attributes:
17
- label: Pre-submission Checklist
18
- description: Please complete these checks before submitting
19
- options:
20
- - label: I have searched existing issues and confirmed this is not a duplicate
21
- required: true
22
- - label: I have read the contributing guidelines
23
- required: true
24
- - label: This is a legitimate bug report and not spam or promotional content
25
- required: true
10
+ Thanks for reporting a bug! Fill out what you can - we'll figure out the rest together.
26
11
 
27
12
  - type: textarea
28
13
  id: what-happened
29
14
  attributes:
30
- label: What happened?
31
- description: Describe the bug clearly and concisely
32
- placeholder: A clear description of what the bug is
33
- validations:
34
- required: true
35
-
36
- - type: textarea
37
- id: expected-behavior
38
- attributes:
39
- label: Expected Behavior
40
- description: What did you expect to happen?
41
- placeholder: A clear description of what you expected to happen
15
+ label: What's the bug?
16
+ description: Describe what went wrong
17
+ placeholder: Tell us what happened...
42
18
  validations:
43
19
  required: true
44
20
 
45
21
  - type: textarea
46
22
  id: steps-reproduce
47
23
  attributes:
48
- label: Steps to Reproduce
49
- description: Please provide detailed steps to reproduce the issue
24
+ label: How to reproduce
25
+ description: Steps to trigger the bug (if you know them)
50
26
  placeholder: |
51
- 1. Go to '...'
52
- 2. Click on '...'
53
- 3. Scroll down to '...'
54
- 4. See error
55
- validations:
56
- required: true
27
+ 1. Do this...
28
+ 2. Then this...
29
+ 3. Bug happens
57
30
 
58
31
  - type: textarea
59
32
  id: environment
60
33
  attributes:
61
- label: Environment
62
- description: Please provide information about your environment
63
- placeholder: |
64
- - OS: [e.g. Windows 10, macOS 12.0, Ubuntu 20.04]
65
- - Browser: [e.g. Chrome 96, Firefox 95, Safari 15]
66
- - Version: [e.g. v1.2.3]
67
- - Node.js: [e.g. 16.13.0]
68
- validations:
69
- required: true
70
-
71
- - type: textarea
72
- id: screenshots
73
- attributes:
74
- label: Screenshots/Logs
75
- description: If applicable, add screenshots or error logs to help explain your problem
76
- placeholder: Paste screenshots or logs here
77
-
78
- - type: textarea
79
- id: additional-context
80
- attributes:
81
- label: Additional Context
82
- description: Add any other context about the problem here
83
- placeholder: Any additional information that might be helpful
34
+ label: Environment (optional)
35
+ description: What are you running? (OS, browser, version, etc.)
36
+ placeholder: e.g., macOS, Chrome, Docker, Node 20...
@@ -4,8 +4,8 @@ contact_links:
4
4
  url: https://docs.insforge.dev
5
5
  about: Check our documentation for common questions and setup guides
6
6
  - name: 💬 Discussions
7
- url: https://discord.gg/DvBtaEc9Jz
7
+ url: https://discord.com/invite/MPxwj5xVvW
8
8
  about: Ask questions and discuss ideas with the community
9
9
  - name: 🆘 Support
10
- url: https://discord.gg/DvBtaEc9Jz
10
+ url: https://discord.com/invite/MPxwj5xVvW
11
11
  about: Get help with installation, configuration, and usage
@@ -1,5 +1,5 @@
1
1
  name: ✨ Feature Request
2
- description: Suggest an idea or enhancement for this project
2
+ description: Suggest an idea or enhancement
3
3
  title: "[Feature]: "
4
4
  labels: ["enhancement", "needs-triage"]
5
5
  assignees: []
@@ -7,73 +7,20 @@ body:
7
7
  - type: markdown
8
8
  attributes:
9
9
  value: |
10
- Thank you for suggesting a new feature! Please provide as much detail as possible.
11
-
12
- **Note**: This template is for feature requests only. For bug reports, please use the Bug Report template.
13
-
14
- - type: checkboxes
15
- id: checks
16
- attributes:
17
- label: Pre-submission Checklist
18
- description: Please complete these checks before submitting
19
- options:
20
- - label: I have searched existing issues and confirmed this feature hasn't been requested
21
- required: true
22
- - label: I have read the contributing guidelines
23
- required: true
24
- - label: This is a legitimate feature request and not spam or promotional content
25
- required: true
10
+ Have an idea? Share it! We'd love to hear what you're thinking.
26
11
 
27
12
  - type: textarea
28
- id: problem-description
13
+ id: feature-description
29
14
  attributes:
30
- label: Problem Description
31
- description: Is your feature request related to a problem? Please describe.
32
- placeholder: A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
15
+ label: What feature do you want?
16
+ description: Describe your idea
17
+ placeholder: I'd like to be able to...
33
18
  validations:
34
19
  required: true
35
20
 
36
21
  - type: textarea
37
- id: proposed-solution
38
- attributes:
39
- label: Proposed Solution
40
- description: Describe the solution you'd like
41
- placeholder: A clear and concise description of what you want to happen
42
- validations:
43
- required: true
44
-
45
- - type: textarea
46
- id: alternatives
47
- attributes:
48
- label: Alternatives Considered
49
- description: Describe alternatives you've considered
50
- placeholder: A clear and concise description of any alternative solutions or features you've considered
51
-
52
- - type: dropdown
53
- id: priority
54
- attributes:
55
- label: Priority
56
- description: How important is this feature to you?
57
- options:
58
- - Low - Nice to have
59
- - Medium - Would be helpful
60
- - High - Important for my use case
61
- - Critical - Blocking my usage
62
- validations:
63
- required: true
64
-
65
- - type: textarea
66
- id: use-cases
67
- attributes:
68
- label: Use Cases
69
- description: Describe specific use cases for this feature
70
- placeholder: |
71
- 1. As a [user type], I want [goal] so that [benefit]
72
- 2. When [situation], I need [functionality] because [reason]
73
-
74
- - type: textarea
75
- id: additional-context
22
+ id: why
76
23
  attributes:
77
- label: Additional Context
78
- description: Add any other context, mockups, or examples about the feature request here
79
- placeholder: Any additional information, screenshots, mockups, or examples that would help
24
+ label: Why do you need this?
25
+ description: What problem does it solve?
26
+ placeholder: This would help me...
@@ -0,0 +1,7 @@
1
+ ## Summary
2
+
3
+ <!-- Briefly describe what this PR does -->
4
+
5
+ ## How did you test this change?
6
+
7
+ <!-- Describe how you tested this PR -->
@@ -62,4 +62,5 @@ jobs:
62
62
  build-args: |
63
63
  VERSION=${{ github.ref_name }}
64
64
  BUILD_DATE=${{ github.event.head_commit.timestamp }}
65
- COMMIT_SHA=${{ github.sha }}
65
+ COMMIT_SHA=${{ github.sha }}
66
+ VITE_PUBLIC_POSTHOG_KEY=${{ secrets.POSTHOG_KEY }}
@@ -0,0 +1,63 @@
1
+ name: E2E Tests
2
+
3
+ on:
4
+ pull_request:
5
+ branches: [main, master, develop]
6
+ workflow_dispatch:
7
+
8
+ jobs:
9
+ e2e:
10
+ name: E2E Tests
11
+ runs-on: ubuntu-latest
12
+
13
+ steps:
14
+ - name: Checkout code
15
+ uses: actions/checkout@v4
16
+
17
+ - name: Create .env file
18
+ run: |
19
+ cat > .env << EOF
20
+ POSTGRES_USER=postgres
21
+ POSTGRES_PASSWORD=postgres
22
+ POSTGRES_DB=insforge
23
+ JWT_SECRET=test-secret-key-for-ci-cd-pipeline
24
+ ADMIN_EMAIL=admin@example.com
25
+ ADMIN_PASSWORD=test-admin-password-for-ci
26
+ TEST_API_BASE=http://localhost:7130/api
27
+ EOF
28
+
29
+ - name: Start Docker Compose services
30
+ run: docker compose up -d
31
+
32
+ - name: Wait for PostgreSQL to be ready
33
+ run: |
34
+ echo "Waiting for PostgreSQL..."
35
+ timeout 60 bash -c 'until docker compose exec -T postgres pg_isready -U postgres; do sleep 2; done'
36
+
37
+ - name: Wait for InsForge backend to be ready
38
+ run: |
39
+ echo "Waiting for InsForge backend..."
40
+ timeout 120 bash -c 'until curl -f http://localhost:7130/api/health 2>/dev/null; do echo "Waiting..."; sleep 5; done'
41
+ echo "Backend is ready!"
42
+
43
+ - name: Install test dependencies in container
44
+ run: docker compose exec -T insforge apk add --no-cache bash curl jq
45
+
46
+ - name: Run E2E tests
47
+ run: docker compose exec -T insforge npm run test:e2e
48
+
49
+ - name: Show container logs on failure
50
+ if: failure()
51
+ run: |
52
+ echo "=== PostgreSQL logs ==="
53
+ docker compose logs postgres
54
+ echo ""
55
+ echo "=== InsForge backend logs ==="
56
+ docker compose logs insforge
57
+ echo ""
58
+ echo "=== PostgREST logs ==="
59
+ docker compose logs postgrest
60
+
61
+ - name: Cleanup
62
+ if: always()
63
+ run: docker compose down -v
package/CHANGELOG.md CHANGED
@@ -1,3 +1,44 @@
1
1
  # Changelog
2
2
 
3
+ ## [1.2.8](https://github.com/InsForge/InsForge/compare/v1.2.6...v1.2.8) (2025-12-05)
4
+
5
+ ## [1.2.6](https://github.com/InsForge/InsForge/compare/v1.2.4...v1.2.6) (2025-11-22)
6
+
7
+ ## [1.2.4](https://github.com/InsForge/InsForge/compare/v1.2.3...v1.2.4) (2025-11-22)
8
+
9
+ ## [1.2.2](https://github.com/InsForge/InsForge/compare/v1.2.1-e2e...v1.2.2) (2025-11-18)
10
+
11
+ # [1.2.0](https://github.com/InsForge/InsForge/compare/v1.1.7-Nov13...v1.2.0) (2025-11-15)
12
+
13
+ ## [1.1.2](https://github.com/InsForge/InsForge/compare/v1.1.0-posthog-9...v1.1.2) (2025-10-28)
14
+
15
+
16
+ ### Bug Fixes
17
+
18
+ * addressing coderabbit comments ([97dd933](https://github.com/InsForge/InsForge/commit/97dd9339269991955d8c644f88e77efa6c3f6da2))
19
+ * macOS compatibility and AI config cleanup for e2e tests ([2e04d79](https://github.com/InsForge/InsForge/commit/2e04d7920b00a2b19eed1f0aa3072a6ea937f41a))
20
+ * removing package-lock ([9df772d](https://github.com/InsForge/InsForge/commit/9df772dcadd3a91e2fa70507d8f2779f6910d484))
21
+ * removing package-lock ([222dfc1](https://github.com/InsForge/InsForge/commit/222dfc1231504ce8e7d14d5ab79e57c1b00785c7))
22
+ * update the frontend to use the bulk-upsert exising API ([2b9b3b2](https://github.com/InsForge/InsForge/commit/2b9b3b23c4cc2d401781ba5504c54db07bb84af0))
23
+
24
+
25
+ ### Features
26
+
27
+ * added tests for ai configs ([2a4e93a](https://github.com/InsForge/InsForge/commit/2a4e93acf145699511bd0ea49e29926f2d585b36))
28
+ * added tests for functions and secrets ([a985f03](https://github.com/InsForge/InsForge/commit/a985f035ffc1c1152999b317cf4e03e0f45ba34e))
29
+ * added tests for logs ([81f7734](https://github.com/InsForge/InsForge/commit/81f7734f3586e03ae2be5694b63d2a3417ae7339))
30
+ * fixed all the tests with correct format ([1242d13](https://github.com/InsForge/InsForge/commit/1242d133efd4398ae672e1e6c71ae1431aa9ba62))
31
+ * fixed secret tests ([5703836](https://github.com/InsForge/InsForge/commit/5703836ecee0ffeb27bfca9b0d785b95e68f1688))
32
+ * updated the backend and the service to update the csv parsing and validating ([e7ffd29](https://github.com/InsForge/InsForge/commit/e7ffd292fd93381ae2eebde17c16e3996241f15c))
33
+ * updated the frontend to display the button and the respective functions ([50613d8](https://github.com/InsForge/InsForge/commit/50613d8d972b88cf28b147bb7a44901c23d77e79))
34
+
35
+ # [1.1.0](https://github.com/InsForge/InsForge/compare/v1.0.1-ai-2...v1.1.0) (2025-10-11)
36
+
37
+
38
+ ### Bug Fixes
39
+
40
+ * typo in docs ([d2a0efc](https://github.com/InsForge/InsForge/commit/d2a0efc56ab77560597dc2ee46c5f8a669fbd71d))
41
+
42
+ # [1.0.0](https://github.com/InsForge/InsForge/compare/v0.3.3...v1.0.0) (2025-09-29)
43
+
3
44
  # [0.3.0](https://github.com/InsForge/InsForge/compare/v0.2.9-fix...v0.3.0) (2025-09-26)
@@ -0,0 +1,104 @@
1
+ # InsForge Claude Code Plugin
2
+
3
+ Official plugin for building with InsForge in Claude Code.
4
+
5
+ ## Installation
6
+
7
+ ### Option 1: Install from InsForge Marketplace (Recommended)
8
+
9
+ In Claude Code, run:
10
+
11
+ ```
12
+ /plugin marketplace add InsForge/InsForge
13
+ ```
14
+
15
+ Then install the plugin:
16
+
17
+ ```
18
+ /plugin install insforge
19
+ ```
20
+
21
+ ### Option 2: Install Directly from Repository
22
+
23
+ ```
24
+ /plugin install https://github.com/InsForge/InsForge/claude-plugin
25
+ ```
26
+
27
+ ### Option 3: Local Installation (Development)
28
+
29
+ ```bash
30
+ cd ~/.claude-plugins
31
+ git clone https://github.com/InsForge/InsForge.git
32
+ ln -s InsForge/claude-plugin insforge
33
+ ```
34
+
35
+ ## What's Included
36
+
37
+ ### Skill: `insforge-schema-patterns`
38
+
39
+ Automatically activates when designing database schemas. Includes:
40
+
41
+ - **Social Graph Patterns** - Follows, likes, and social relationships
42
+ - **Junction Tables** - Many-to-many relationships with proper indexes
43
+ - **Nested Comments** - Self-referential hierarchical data
44
+ - **Multi-Tenant Patterns** - Organization-scoped data with RLS
45
+ - **Best Practices** - Foreign keys, indexes, Row Level Security
46
+
47
+ ## Usage
48
+
49
+ Once installed, the skill automatically loads when relevant:
50
+
51
+ **Example:**
52
+ ```
53
+ You: "I need to build a social media app with follows and likes"
54
+
55
+ Claude: [Automatically loads insforge-schema-patterns]
56
+ "I'll use the Social Graph pattern from InsForge best practices:
57
+
58
+ CREATE TABLE follows (
59
+ id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
60
+ follower_id UUID REFERENCES users(id) ON DELETE CASCADE,
61
+ following_id UUID REFERENCES users(id) ON DELETE CASCADE,
62
+ created_at TIMESTAMPTZ DEFAULT NOW(),
63
+ UNIQUE(follower_id, following_id)
64
+ );
65
+ ..."
66
+ ```
67
+
68
+ No special commands needed - Claude knows when to use it based on your conversation!
69
+
70
+ ## What Are Skills?
71
+
72
+ Skills are folders containing instructions and examples that Claude automatically loads when they're relevant to the task. Think of them as giving Claude domain expertise in specific areas.
73
+
74
+ The `insforge-schema-patterns` skill teaches Claude:
75
+ - Proven database design patterns for common use cases
76
+ - How to write efficient PostgREST queries with the InsForge SDK
77
+ - Best practices for security (RLS policies)
78
+ - Performance optimization (indexes, query patterns)
79
+
80
+ ## Future Skills (Coming Soon)
81
+
82
+ We're planning to add:
83
+ - `insforge-fullstack-templates` - Complete app templates (Instagram, Todo, Blog)
84
+ - `insforge-edge-functions` - Serverless function recipes
85
+ - `insforge-realtime` - WebSocket and live collaboration patterns
86
+
87
+ ## Contributing
88
+
89
+ Want to improve the skills or add new ones?
90
+
91
+ 1. Fork the repository
92
+ 2. Edit or add skills in `claude-plugin/skills/`
93
+ 3. Test locally by installing from your fork
94
+ 4. Submit a PR
95
+
96
+ Skills are just Markdown files with YAML frontmatter - easy to contribute!
97
+
98
+ ## Feedback
99
+
100
+ Found an issue or have a suggestion? [Open an issue](https://github.com/InsForge/InsForge/issues) or join our [Discord](https://discord.com/invite/MPxwj5xVvW).
101
+
102
+ ## License
103
+
104
+ MIT - Same as InsForge