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,441 @@
1
+ # Deploy InsForge to Render
2
+
3
+ This guide walks you through deploying InsForge on Render, a modern cloud platform with managed services and automatic scaling.
4
+
5
+ ## 📋 Prerequisites
6
+
7
+ - Render account (free tier available at [render.com](https://render.com))
8
+ - GitHub account (for repository connection)
9
+ - Basic knowledge of environment variables
10
+ - Domain name (optional, for custom domain)
11
+
12
+ ## 🎯 Why Render?
13
+
14
+ - **Managed PostgreSQL**: Fully managed database with automatic backups
15
+ - **Auto-deploy**: Automatic deployments from Git commits
16
+ - **Free SSL**: Automatic HTTPS certificates
17
+ - **Simple Scaling**: Easy horizontal and vertical scaling
18
+ - **Free Tier**: Suitable for testing and small projects
19
+
20
+ ## 🚀 Deployment Steps
21
+
22
+ ### 1. Fork InsForge Repository
23
+
24
+ 1. Visit [https://github.com/insforge/insforge](https://github.com/insforge/insforge)
25
+ 2. Click **Fork** to create your copy
26
+ 3. This allows Render to connect to your repository
27
+
28
+ ### 2. Set Up Render Account
29
+
30
+ 1. Visit [https://render.com](https://render.com) and sign up
31
+ 2. Connect GitHub account
32
+ 3. Authorize Render to access repositories
33
+ 4. Select your forked InsForge repository
34
+
35
+ ### 3. Create PostgreSQL Database
36
+
37
+ #### 3.1 Create Database
38
+
39
+ 1. From Render Dashboard: **New** → **PostgreSQL**
40
+ 2. Configure:
41
+ - **Name**: `insforge-db`
42
+ - **Database**: `insforge`
43
+ - **User**: `insforge_user`
44
+ - **Region**: Select closest to users
45
+ - **Version**: PostgreSQL 15+
46
+ - **Plan**:
47
+ - Free: Testing (90 days)
48
+ - Starter ($7/month): Small production
49
+ - Standard ($20/month): Production
50
+
51
+ 3. Click **Create Database**
52
+ 4. Save connection details (internal & external URLs)
53
+
54
+ #### 3.2 Initialize Database
55
+
56
+ Connect and run initialization scripts:
57
+
58
+ ```bash
59
+ # Download init scripts
60
+ curl -O https://raw.githubusercontent.com/insforge/insforge/main/docker-init/db/db-init.sql
61
+ curl -O https://raw.githubusercontent.com/insforge/insforge/main/docker-init/db/jwt.sql
62
+
63
+ # Connect to database
64
+ psql <your-external-database-url>
65
+
66
+ # Run initialization
67
+ \i db-init.sql
68
+ \i jwt.sql
69
+ \q
70
+ ```
71
+
72
+ ### 4. Deploy Backend Service
73
+
74
+ #### 4.1 Create Web Service
75
+
76
+ 1. **New** → **Web Service**
77
+ 2. Connect repository
78
+ 3. Configure:
79
+ - **Name**: `insforge-backend`
80
+ - **Region**: Same as database
81
+ - **Branch**: `main`
82
+ - **Runtime**: `Docker`
83
+ - **Dockerfile Path**: `Dockerfile`
84
+ - **Instance Type**: Starter ($7/month) minimum
85
+
86
+ **Start Command:**
87
+ ```bash
88
+ sh -c "cd backend && npm run migrate:up && cd .. && npm run start"
89
+ ```
90
+
91
+ #### 4.2 Environment Variables
92
+
93
+ Add these critical variables:
94
+
95
+ ```env
96
+ # Server
97
+ PORT=7130
98
+
99
+ # Database (use internal URL)
100
+ DATABASE_URL=${{insforge-db.DATABASE_URL}}
101
+ POSTGRES_HOST=<from-database>
102
+ POSTGRES_PORT=5432
103
+ POSTGRES_DB=insforge
104
+ POSTGRES_USER=insforge_user
105
+ POSTGRES_PASSWORD=<from-database>
106
+
107
+ # Security (Generate with openssl rand -base64 32)
108
+ JWT_SECRET=<strong-secret-32+chars>
109
+ ENCRYPTION_KEY=<strong-secret-24-chars>
110
+
111
+ # Admin
112
+ ADMIN_EMAIL=admin@example.com
113
+ ADMIN_PASSWORD=<strong-password>
114
+
115
+ # APIs (update after deployment)
116
+ API_BASE_URL=https://insforge-backend.onrender.com
117
+ VITE_API_BASE_URL=https://insforge-backend.onrender.com
118
+
119
+ # Services
120
+ POSTGREST_BASE_URL=http://insforge-postgrest:3000
121
+ DENO_RUNTIME_URL=http://insforge-deno:7133
122
+
123
+ # Storage
124
+ STORAGE_DIR=/var/data/storage
125
+ LOGS_DIR=/var/data/logs
126
+
127
+ # Optional: OAuth, S3, etc.
128
+ ```
129
+
130
+ **Generate Secrets:**
131
+ ```bash
132
+ openssl rand -base64 32 # JWT_SECRET
133
+ openssl rand -base64 24 # ENCRYPTION_KEY
134
+ ```
135
+
136
+ ### 5. Deploy PostgREST
137
+
138
+ 1. **New** → **Web Service**
139
+ 2. **Deploy from existing image**
140
+ 3. Configure:
141
+ - **Name**: `insforge-postgrest`
142
+ - **Image**: `postgrest/postgrest:v12.2.12`
143
+ - **Plan**: Starter ($7/month)
144
+
145
+ **Environment Variables:**
146
+ ```env
147
+ PGRST_DB_URI=${{insforge-db.DATABASE_URL}}
148
+ PGRST_OPENAPI_SERVER_PROXY_URI=https://insforge-backend.onrender.com
149
+ PGRST_DB_SCHEMA=public
150
+ PGRST_DB_ANON_ROLE=anon
151
+ PGRST_JWT_SECRET=<same-as-backend>
152
+ PGRST_DB_CHANNEL_ENABLED=true
153
+ PGRST_DB_CHANNEL=pgrst
154
+ ```
155
+
156
+ ### 6. Deploy Deno Runtime
157
+
158
+ #### 6.1 Create Deno Dockerfile
159
+
160
+ Create `Dockerfile.deno` in repository root:
161
+
162
+ ```dockerfile
163
+ FROM denoland/deno:alpine-2.0.6
164
+ WORKDIR /app
165
+ COPY functions /app/functions
166
+ RUN deno cache functions/server.ts
167
+ EXPOSE 7133
168
+ ENV PORT=7133
169
+ CMD ["deno", "run", "--allow-net", "--allow-env", "--allow-read=./functions/worker-template.js", "functions/server.ts"]
170
+ ```
171
+
172
+ #### 6.2 Create Service
173
+
174
+ 1. **New** → **Web Service**
175
+ 2. Configure:
176
+ - **Name**: `insforge-deno`
177
+ - **Runtime**: `Docker`
178
+ - **Dockerfile Path**: `Dockerfile.deno`
179
+ - **Plan**: Starter ($7/month)
180
+
181
+ **Environment Variables:**
182
+ ```env
183
+ PORT=7133
184
+ DENO_ENV=production
185
+ POSTGRES_HOST=<from-database>
186
+ POSTGRES_PORT=5432
187
+ POSTGRES_DB=insforge
188
+ POSTGRES_USER=insforge_user
189
+ POSTGRES_PASSWORD=<from-database>
190
+ POSTGREST_BASE_URL=http://insforge-postgrest:3000
191
+ ENCRYPTION_KEY=<same-as-backend>
192
+ JWT_SECRET=<same-as-backend>
193
+ WORKER_TIMEOUT_MS=30000
194
+ ```
195
+
196
+ ### 7. Deploy Frontend
197
+
198
+ #### Option A: Static Site (Recommended - Free)
199
+
200
+ 1. **New** → **Static Site**
201
+ 2. Configure:
202
+ - **Name**: `insforge-frontend`
203
+ - **Root Directory**: `frontend`
204
+ - **Build Command**: `npm install && npm run build`
205
+ - **Publish Directory**: `dist`
206
+
207
+ **Environment:**
208
+ ```env
209
+ VITE_API_BASE_URL=https://insforge-backend.onrender.com
210
+ ```
211
+
212
+ #### Option B: Web Service
213
+
214
+ 1. **New** → **Web Service**
215
+ 2. Configure:
216
+ - **Root Directory**: `frontend`
217
+ - **Build Command**: `npm install && npm run build`
218
+ - **Start Command**: `npm run preview -- --host 0.0.0.0 --port $PORT`
219
+
220
+ ### 8. Update Service URLs
221
+
222
+ After all services deploy, update backend environment:
223
+
224
+ ```env
225
+ API_BASE_URL=https://insforge-backend.onrender.com
226
+ POSTGREST_BASE_URL=https://insforge-postgrest.onrender.com
227
+ DENO_RUNTIME_URL=https://insforge-deno.onrender.com
228
+ ```
229
+
230
+ Save to trigger redeploy.
231
+
232
+ ### 9. Access Your Instance
233
+
234
+ **Service URLs:**
235
+ - Backend: `https://insforge-backend.onrender.com`
236
+ - Frontend: `https://insforge-frontend.onrender.com`
237
+ - PostgREST: `https://insforge-postgrest.onrender.com`
238
+ - Deno: `https://insforge-deno.onrender.com`
239
+
240
+ **Test Backend:**
241
+ ```bash
242
+ curl https://insforge-backend.onrender.com/api/health
243
+ ```
244
+
245
+ **Access Dashboard:**
246
+ ```
247
+ https://insforge-frontend.onrender.com
248
+ ```
249
+
250
+ ### 10. Custom Domain (Optional)
251
+
252
+ 1. In each service: **Settings** → **Custom Domains**
253
+ 2. Add domains:
254
+ - Backend: `api.yourdomain.com`
255
+ - Frontend: `app.yourdomain.com`
256
+
257
+ 3. Add CNAME records in DNS:
258
+ ```
259
+ api.yourdomain.com → insforge-backend.onrender.com
260
+ app.yourdomain.com → insforge-frontend.onrender.com
261
+ ```
262
+
263
+ 4. Update environment variables with custom URLs
264
+ 5. SSL certificates provisioned automatically
265
+
266
+ ## 🔧 Management
267
+
268
+ ### View Logs
269
+ 1. Service dashboard → **Logs** tab
270
+ 2. Real-time logs with search/filter
271
+
272
+ ### Manual Deploy
273
+ Service dashboard → **Manual Deploy** → **Deploy latest commit**
274
+
275
+ ### Auto-Deploy
276
+ Push to GitHub → Automatic deployment
277
+
278
+ ### Update InsForge
279
+ ```bash
280
+ git pull upstream main
281
+ git push origin main # Triggers auto-deploy
282
+ ```
283
+
284
+ ### Restart Services
285
+ **Manual Deploy** → **Clear build cache & deploy**
286
+
287
+ ### Scale Services
288
+ - **Vertical**: Settings → Instance Type
289
+ - **Horizontal**: Adjust instances slider (Standard+ plans)
290
+
291
+ ### Backup Database
292
+ ```bash
293
+ # Manual backup
294
+ pg_dump <external-url> > backup_$(date +%Y%m%d).sql
295
+
296
+ # Automatic backups on paid plans
297
+ ```
298
+
299
+ ## 🐛 Troubleshooting
300
+
301
+ ### Build Failures
302
+ - Check build logs in failed deploy
303
+ - Clear build cache and retry
304
+ - Verify Dockerfile paths
305
+
306
+ ### Service Won't Start
307
+ - Check logs for errors
308
+ - Verify PORT environment variable
309
+ - Test database connection
310
+ - Confirm all environment variables set
311
+
312
+ ### Database Connection Errors
313
+ - Use internal URL for same-region services
314
+ - Verify credentials
315
+ - Check database status (Available)
316
+
317
+ ### Free Tier Spin Down
318
+ - Services sleep after 15 min inactivity
319
+ - Expect 30s+ cold starts
320
+ - Upgrade to paid for always-on
321
+
322
+ ### Environment Variable Issues
323
+ ```javascript
324
+ // Add debugging
325
+ console.log('Env check:', {
326
+ DATABASE_URL: !!process.env.DATABASE_URL,
327
+ JWT_SECRET: !!process.env.JWT_SECRET
328
+ });
329
+ ```
330
+
331
+ ## 📊 Cost Estimation
332
+
333
+ **Starter Setup ($28/month):**
334
+ - PostgreSQL: $7
335
+ - Backend: $7
336
+ - PostgREST: $7
337
+ - Deno: $7
338
+ - Frontend: Free (static)
339
+
340
+ **Free Tier (Testing):**
341
+ - All services: Free
342
+ - Limitations: Spin down, 90-day DB limit
343
+
344
+ **Production ($69/month):**
345
+ - PostgreSQL Standard: $20
346
+ - Backend Standard: $25
347
+ - PostgREST Starter: $7
348
+ - Deno Starter: $7
349
+ - Redis: $10
350
+ - Frontend: Free
351
+
352
+ ## 🔒 Security Best Practices
353
+
354
+ 1. **Strong Secrets**: Use `openssl rand -base64 32`
355
+ 2. **Environment Variables**: Never commit secrets
356
+ 3. **Database**: Use managed PostgreSQL, enable backups
357
+ 4. **HTTPS**: Automatic SSL everywhere
358
+ 5. **Updates**: Keep dependencies current
359
+ 6. **Access Control**: Implement proper authentication
360
+ 7. **Monitoring**: Set up alerts for failures
361
+ 8. **Rate Limiting**: Implement in application
362
+
363
+ ## 📋 Blueprint Deployment (Advanced)
364
+
365
+ Create `render.yaml` for infrastructure-as-code:
366
+
367
+ ```yaml
368
+ services:
369
+ - type: pserv
370
+ name: insforge-db
371
+ plan: starter
372
+ databaseName: insforge
373
+
374
+ - type: web
375
+ name: insforge-backend
376
+ env: docker
377
+ dockerfilePath: ./Dockerfile
378
+ plan: starter
379
+ healthCheckPath: /api/health
380
+ envVars:
381
+ - key: DATABASE_URL
382
+ fromDatabase:
383
+ name: insforge-db
384
+ property: connectionString
385
+
386
+ - type: web
387
+ name: insforge-postgrest
388
+ env: docker
389
+ image:
390
+ url: postgrest/postgrest:v12.2.12
391
+
392
+ - type: web
393
+ name: insforge-frontend
394
+ env: static
395
+ buildCommand: cd frontend && npm install && npm run build
396
+ staticPublishPath: ./frontend/dist
397
+ ```
398
+
399
+ Deploy: **New** → **Blueprint** → Connect repository
400
+
401
+ ## ✅ Post-Deployment Checklist
402
+
403
+ - [ ] All services running
404
+ - [ ] Database connections working
405
+ - [ ] Backend `/api/health` responds
406
+ - [ ] Frontend loads correctly
407
+ - [ ] Admin login works
408
+ - [ ] SSL certificates active
409
+ - [ ] Health checks passing
410
+ - [ ] Logs accessible
411
+ - [ ] Backups configured (paid)
412
+ - [ ] Monitoring set up
413
+ - [ ] Custom domains configured (if applicable)
414
+
415
+ ## 🆘 Support
416
+
417
+ **Render Resources:**
418
+ - [Render Docs](https://render.com/docs)
419
+ - [Render Community](https://community.render.com)
420
+ - [Render Status](https://status.render.com)
421
+
422
+ **InsForge Resources:**
423
+ - [Documentation](https://docs.insforge.dev)
424
+ - [GitHub](https://github.com/insforge/insforge)
425
+ - [Discord](https://discord.com/invite/MPxwj5xVvW)
426
+ - Email: info@insforge.dev
427
+
428
+ ## 🎉 Next Steps
429
+
430
+ **Congratulations!** Your InsForge instance is running on Render.
431
+
432
+ 1. **Connect AI Agent**: Follow dashboard "Connect" guide
433
+ 2. **Configure OAuth**: Set up Google/GitHub/Discord
434
+ 3. **Add S3 Storage**: Configure AWS S3 for file uploads
435
+ 4. **Set Up Monitoring**: Configure alerts and notifications
436
+ 5. **Test Functions**: Deploy serverless functions via Deno
437
+ 6. **Build Your App**: Start using InsForge with AI agents!
438
+
439
+ ---
440
+
441
+ For other deployment options, see [deployment guides](./README.md).
package/docs/docs.json ADDED
@@ -0,0 +1,210 @@
1
+ {
2
+ "$schema": "https://mintlify.com/docs.json",
3
+ "theme": "mint",
4
+ "name": "InsForge Docs",
5
+ "colors": {
6
+ "primary": "#16A34A",
7
+ "light": "#07C983",
8
+ "dark": "#15803D"
9
+ },
10
+ "appearance": {
11
+ "default": "dark"
12
+ },
13
+ "styling": {
14
+ "eyebrows": "section"
15
+ },
16
+ "seo": {
17
+ "metatags": {
18
+ "og:site_name": "InsForge Docs"
19
+ },
20
+ "indexing": "navigable"
21
+ },
22
+ "search": {
23
+ "prompt": "Search InsForge docs..."
24
+ },
25
+ "favicon": "/favicon.svg",
26
+ "navigation": {
27
+ "tabs": [
28
+ {
29
+ "tab": "Docs",
30
+ "groups": [
31
+ {
32
+ "group": "Getting Started",
33
+ "pages": ["introduction", "quickstart", "partnership"]
34
+ },
35
+ {
36
+ "group": "Core Concepts",
37
+ "pages": [
38
+ {
39
+ "group": "Database",
40
+ "pages": [
41
+ "core-concepts/database/architecture",
42
+ "core-concepts/database/sdk"
43
+ ]
44
+ },
45
+ {
46
+ "group": "Authentication",
47
+ "pages": [
48
+ "core-concepts/authentication/architecture",
49
+ "core-concepts/authentication/sdk",
50
+ {
51
+ "group": "UI Components",
52
+ "pages": [
53
+ "core-concepts/authentication/ui-components/nextjs",
54
+ "core-concepts/authentication/ui-components/react",
55
+ "core-concepts/authentication/ui-components/react-router",
56
+ "core-concepts/authentication/ui-components/customization"
57
+ ]
58
+ }
59
+ ]
60
+ },
61
+ {
62
+ "group": "Storage",
63
+ "pages": [
64
+ "core-concepts/storage/architecture",
65
+ "core-concepts/storage/sdk"
66
+ ]
67
+ },
68
+ {
69
+ "group": "AI Integration",
70
+ "pages": [
71
+ "core-concepts/ai/architecture",
72
+ "core-concepts/ai/sdk"
73
+ ]
74
+ },
75
+ {
76
+ "group": "Functions",
77
+ "pages": [
78
+ "core-concepts/functions/architecture",
79
+ "core-concepts/functions/sdk"
80
+ ]
81
+ }
82
+ ]
83
+ },
84
+ {
85
+ "group": "Changelog",
86
+ "pages": ["changelog"]
87
+ }
88
+ ]
89
+ },
90
+ {
91
+ "tab": "Examples",
92
+ "groups": [
93
+ {
94
+ "group": "Getting Started",
95
+ "pages": ["examples/overview"]
96
+ },
97
+ {
98
+ "group": "Framework Guides",
99
+ "pages": [
100
+ "examples/framework-guides/nextjs",
101
+ "examples/framework-guides/react",
102
+ "examples/framework-guides/vue",
103
+ "examples/framework-guides/nuxt",
104
+ "examples/framework-guides/svelte"
105
+ ]
106
+ },
107
+ {
108
+ "group": "Community Showcase",
109
+ "pages": ["showcase"]
110
+ }
111
+ ]
112
+ },
113
+ {
114
+ "tab": "API Reference",
115
+ "groups": [
116
+ {
117
+ "group": "Tables",
118
+ "openapi": "https://raw.githubusercontent.com/InsForge/InsForge/main/openapi/tables.yaml"
119
+ },
120
+ {
121
+ "group": "Authentication",
122
+ "openapi": "https://raw.githubusercontent.com/InsForge/InsForge/main/openapi/auth.yaml"
123
+ },
124
+ {
125
+ "group": "Records",
126
+ "openapi": "https://raw.githubusercontent.com/InsForge/InsForge/main/openapi/records.yaml"
127
+ },
128
+ {
129
+ "group": "Storage",
130
+ "openapi": "https://raw.githubusercontent.com/InsForge/InsForge/main/openapi/storage.yaml"
131
+ },
132
+ {
133
+ "group": "AI Integration",
134
+ "openapi": "https://raw.githubusercontent.com/InsForge/InsForge/main/openapi/ai.yaml"
135
+ },
136
+ {
137
+ "group": "Functions",
138
+ "openapi": "https://raw.githubusercontent.com/InsForge/InsForge/main/openapi/functions.yaml"
139
+ },
140
+ {
141
+ "group": "Secrets",
142
+ "openapi": "https://raw.githubusercontent.com/InsForge/InsForge/main/openapi/secrets.yaml"
143
+ },
144
+ {
145
+ "group": "Logs",
146
+ "openapi": "https://raw.githubusercontent.com/InsForge/InsForge/main/openapi/logs.yaml"
147
+ },
148
+ {
149
+ "group": "Metadata",
150
+ "openapi": "https://raw.githubusercontent.com/InsForge/InsForge/main/openapi/metadata.yaml"
151
+ },
152
+ {
153
+ "group": "Health",
154
+ "openapi": "https://raw.githubusercontent.com/InsForge/InsForge/main/openapi/health.yaml"
155
+ }
156
+ ]
157
+ }
158
+ ],
159
+ "global": {
160
+ "anchors": [
161
+ {
162
+ "anchor": "Community",
163
+ "href": "https://discord.gg/MPxwj5xVvW",
164
+ "icon": "discord"
165
+ },
166
+ {
167
+ "anchor": "Blog",
168
+ "href": "https://insforge.dev/blog",
169
+ "icon": "newspaper"
170
+ },
171
+ {
172
+ "anchor": "Roadmap",
173
+ "href": "https://feedback.insforge.dev/roadmap",
174
+ "icon": "route"
175
+ }
176
+ ]
177
+ }
178
+ },
179
+ "logo": {
180
+ "light": "/logo/light.svg",
181
+ "dark": "/logo/dark.svg",
182
+ "href": "https://insforge.dev"
183
+ },
184
+ "navbar": {
185
+ "primary": {
186
+ "type": "button",
187
+ "label": "Get Started",
188
+ "href": "https://insforge.dev/auth/sign-up"
189
+ }
190
+ },
191
+ "contextual": {
192
+ "options": [
193
+ "copy",
194
+ "view",
195
+ "chatgpt",
196
+ "claude",
197
+ "perplexity",
198
+ "mcp",
199
+ "cursor",
200
+ "vscode"
201
+ ]
202
+ },
203
+ "footer": {
204
+ "socials": {
205
+ "x": "https://x.com/InsForge_dev",
206
+ "github": "https://github.com/insforge",
207
+ "linkedin": "https://linkedin.com/company/insforge"
208
+ }
209
+ }
210
+ }