insforge 0.3.2 → 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 -781
  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
@@ -106,7 +106,7 @@ export const jsonSchema = z
106
106
  }
107
107
  }),
108
108
  z.object({}).passthrough(),
109
- z.array(z.any()),
109
+ z.array(z.unknown()),
110
110
  z.null(),
111
111
  ])
112
112
  .catch(() => {
@@ -115,12 +115,17 @@ export const jsonSchema = z
115
115
 
116
116
  export const stringSchema = z.union([z.string(), z.null()]);
117
117
 
118
- export const emailSchema = z.string().email('Invalid email address');
119
- export const passwordSchema = z.string().min(8, 'Password must be at least 8 characters');
118
+ // Auth validation schemas
119
+ export const emailSchema = z
120
+ .string()
121
+ .min(1, 'Email is required')
122
+ .email('Please enter a valid email address')
123
+ .toLowerCase()
124
+ .trim();
120
125
 
121
126
  export const loginFormSchema = z.object({
122
127
  email: emailSchema,
123
- password: passwordSchema,
128
+ password: z.string(),
124
129
  });
125
130
 
126
- export type LoginFormData = z.infer<typeof loginFormSchema>;
131
+ export type LoginForm = z.infer<typeof loginFormSchema>;
@@ -12,7 +12,7 @@ import {
12
12
  dateTimeSchema,
13
13
  jsonSchema,
14
14
  stringSchema,
15
- } from './validation-schemas';
15
+ } from './schemaValidations';
16
16
  import { v4 as uuidv4 } from 'uuid';
17
17
  import type { ConvertedValue, DisplayValue, ValueConversionResult } from '@/components/datagrid';
18
18
 
@@ -163,3 +163,21 @@ export const getBackendUrl = () => {
163
163
  const isHttp = window.location.protocol === 'http:';
164
164
  return isHttp ? 'http://localhost:7130' : window.location.origin;
165
165
  };
166
+
167
+ export const isIframe = () => {
168
+ return window.self !== window.top;
169
+ };
170
+
171
+ /**
172
+ * Formats a timestamp string to a human-readable format
173
+ * Used consistently across the application for displaying timestamps
174
+ * @param timestamp - ISO timestamp string
175
+ * @returns Formatted date string (e.g., "Jan 15, 2025, 03:30 PM")
176
+ */
177
+ export function formatTime(timestamp: string): string {
178
+ const date = parseISO(timestamp);
179
+ if (!isValid(date)) {
180
+ return timestamp; // Return original if invalid
181
+ }
182
+ return format(date, 'MMM dd, yyyy, hh:mm a');
183
+ }
@@ -4,6 +4,7 @@
4
4
  interface ImportMetaEnv {
5
5
  readonly VITE_DEBUG_MODE?: string;
6
6
  readonly VITE_API_BASE_URL?: string;
7
+ readonly VITE_PUBLIC_POSTHOG_KEY?: string;
7
8
  // add more env variables as needed
8
9
  }
9
10
 
@@ -4,6 +4,8 @@ import svgr from 'vite-plugin-svgr';
4
4
  import tailwindcss from '@tailwindcss/vite';
5
5
  import path from 'path';
6
6
 
7
+ const BACKEND_URL = process.env.VITE_API_BASE_URL || 'http://localhost:7130';
8
+
7
9
  export default defineConfig({
8
10
  plugins: [react(), tailwindcss(), svgr()],
9
11
  resolve: {
@@ -17,15 +19,15 @@ export default defineConfig({
17
19
  port: 7131,
18
20
  proxy: {
19
21
  '/api': {
20
- target: 'http://localhost:7130',
22
+ target: BACKEND_URL,
21
23
  changeOrigin: true,
22
24
  },
23
25
  '/functions': {
24
- target: 'http://localhost:7130',
26
+ target: BACKEND_URL,
25
27
  changeOrigin: true,
26
28
  },
27
29
  '/socket.io': {
28
- target: 'http://localhost:7130',
30
+ target: BACKEND_URL,
29
31
  ws: true,
30
32
  changeOrigin: true,
31
33
  },
@@ -80,7 +80,7 @@ async function getFunctionCode(slug: string): Promise<string | null> {
80
80
  WHERE slug = ${slug} AND status = 'active'
81
81
  `;
82
82
 
83
- if (result.rows.length === 0) {
83
+ if (!result.rows.length) {
84
84
  return null;
85
85
  }
86
86
 
@@ -244,6 +244,7 @@ Deno.serve({ port }, async (req: Request) => {
244
244
  const slugMatch = pathname.match(/^\/([a-zA-Z0-9_-]+)$/);
245
245
  if (slugMatch) {
246
246
  const slug = slugMatch[1];
247
+ const startTime = Date.now();
247
248
 
248
249
  // Get function code from database
249
250
  const code = await getFunctionCode(slug);
@@ -257,9 +258,33 @@ Deno.serve({ port }, async (req: Request) => {
257
258
 
258
259
  // Execute in worker with original request
259
260
  try {
260
- return await executeInWorker(code, req);
261
+ const response = await executeInWorker(code, req);
262
+ const duration = Date.now() - startTime;
263
+
264
+ // Log completed invocations only
265
+ console.log(
266
+ JSON.stringify({
267
+ timestamp: new Date().toISOString(),
268
+ level: 'info',
269
+ slug,
270
+ method: req.method,
271
+ status: response.status,
272
+ duration: `${duration}ms`,
273
+ })
274
+ );
275
+
276
+ return response;
261
277
  } catch (error) {
262
- console.error(`Failed to execute function ${slug}:`, error);
278
+ const duration = Date.now() - startTime;
279
+ console.error(
280
+ JSON.stringify({
281
+ timestamp: new Date().toISOString(),
282
+ level: 'error',
283
+ slug,
284
+ error: error instanceof Error ? error.message : String(error),
285
+ duration: `${duration}ms`,
286
+ })
287
+ );
263
288
  return new Response(JSON.stringify({ error: 'Function execution failed' }), {
264
289
  status: 500,
265
290
  headers: { 'Content-Type': 'application/json' },
@@ -9,6 +9,8 @@
9
9
 
10
10
  // Import SDK at worker level - this will be available to all functions
11
11
  import { createClient } from 'npm:@insforge/sdk';
12
+ // Import base64 utilities for encoding/decoding
13
+ import { encodeBase64, decodeBase64 } from 'https://deno.land/std@0.224.0/encoding/base64.ts';
12
14
 
13
15
  // Handle the single message with code, request data, and secrets
14
16
  self.onmessage = async (e) => {
@@ -48,17 +50,26 @@ self.onmessage = async (e) => {
48
50
  * - module.exports (to export their function)
49
51
  * - createClient (the Insforge SDK)
50
52
  * - Deno (for Deno.env.get() etc.)
53
+ * - encodeBase64, decodeBase64 (base64 encoding utilities)
51
54
  *
52
55
  * We inject our mockDeno as the 'Deno' parameter, so when the user's code
53
56
  * calls Deno.env.get('MY_SECRET'), it's actually calling mockDeno.env.get('MY_SECRET')
54
57
  */
55
- const wrapper = new Function('exports', 'module', 'createClient', 'Deno', code);
58
+ const wrapper = new Function(
59
+ 'exports',
60
+ 'module',
61
+ 'createClient',
62
+ 'Deno',
63
+ 'encodeBase64',
64
+ 'decodeBase64',
65
+ code
66
+ );
56
67
  const exports = {};
57
68
  const module = { exports };
58
69
 
59
- // Execute the wrapper, passing mockDeno as the Deno global
60
- // This makes Deno.env.get() available inside the user's function
61
- wrapper(exports, module, createClient, mockDeno);
70
+ // Execute the wrapper, passing mockDeno as the Deno global and utility functions
71
+ // This makes Deno.env.get(), encodeBase64(), and decodeBase64() available inside the user's function
72
+ wrapper(exports, module, createClient, mockDeno, encodeBase64, decodeBase64);
62
73
 
63
74
  // Get the exported function
64
75
  const functionHandler = module.exports || exports.default || exports;
@@ -0,0 +1,130 @@
1
+ <div align="center">
2
+ <a href="https://insforge.dev">
3
+ <img src="../assets/banner.png" alt="Insforge Logo">
4
+ </a>
5
+
6
+ </div>
7
+ <p align="center">
8
+ <a href="#quickstart-tldr">ابدأ الآن</a> ·
9
+ <a href="https://docs.insforge.dev/introduction">توثيق</a> ·
10
+ <a href="https://discord.gg/MPxwj5xVvW">Discord</a>
11
+ </p>
12
+ <p align="center">
13
+ <a href="https://opensource.org/licenses/Apache-2.0"><img src="https://img.shields.io/badge/License-Apache%202.0-blue.svg" alt="License"></a>
14
+ <a href="https://discord.gg/MPxwj5xVvW"><img src="https://img.shields.io/badge/Discord-Join%20Community-7289DA?logo=discord&logoColor=white" alt="Discord"></a>
15
+ <a href="https://github.com/InsForge/insforge/stargazers"><img src="https://img.shields.io/github/stars/InsForge/insforge?style=social" alt="GitHub Stars"></a>
16
+ </p>
17
+
18
+ # InsForge
19
+
20
+ **InsForge هو البديل الأصلي لـ Supabase.** نعمل على تطوير ميزات Supabase بطريقة تعتمد على الذكاء الاصطناعي، مما يُمكّن وكلاء الذكاء الاصطناعي من بناء وإدارة تطبيقات متكاملة بشكل مستقل.
21
+ ## الميزات الرئيسية وحالات الاستخدام
22
+
23
+ ### الميزات الأساسية:
24
+ - **المصادقة** - نظام إدارة مستخدمين متكامل
25
+ - **قاعدة بيانات** - مرونة في تخزين واسترجاع البيانات
26
+ - **التخزين** - إدارة وتنظيم الملفات
27
+ - **وظائف بدون خادم** - قوة حوسبة قابلة للتطوير
28
+ - **نشر الموقع** *(قريبًا)* - سهولة نشر التطبيقات
29
+
30
+ ### حالات الاستخدام: بناء تطبيقات متكاملة باستخدام اللغة الطبيعية
31
+ - **ربط وكلاء الذكاء الاصطناعي بـ InsForge** - تمكين Claude أو GPT أو وكلاء الذكاء الاصطناعي الآخرين لإدارة الواجهة الخلفية
32
+ - **إضافة واجهة خلفية لمشاريع برمجة Vibe على غرار Lovable أو Bolt** - واجهة خلفية فورية للواجهات الأمامية المُولّدة بالذكاء الاصطناعي
33
+
34
+ ## أمثلة سريعة:
35
+ <td align="center">
36
+ <img src="../assets/userflow.png" alt="userFlow">
37
+ <br>
38
+ </td>
39
+
40
+ <a id="quickstart-tldr"></a>
41
+ ## البدء السريع (TL;DR)
42
+ ### 1. تثبيت وتشغيل InsForge
43
+
44
+ **استخدام Docker (موصى به)**
45
+ المتطلبات الأساسية: [Docker](https://www.docker.com/) + [Node.js](https://nodejs.org/)
46
+
47
+ ```bash
48
+ # Run with Docker
49
+ git clone https://github.com/insforge/insforge.git
50
+ cd insforge
51
+ cp .env.example .env
52
+ docker compose up
53
+ ```
54
+
55
+ ### 2. توصيل وكيل الذكاء الاصطناعي
56
+
57
+ تفضل بزيارة لوحة تحكم InsForge (افتراضيًا: http://localhost:7131)، وسجّل الدخول، واتبع دليل "التوصيل"(Connect)، ثم قم بإعداد خادم MCP الخاص بك.
58
+
59
+ <div align="center">
60
+ <table>
61
+ <tr>
62
+ <td align="center">
63
+ <img src="../assets/signin.png" alt="Sign In">
64
+ <br>
65
+ <em>تسجيل الدخول إلى InsForge</em>
66
+ </td>
67
+ <td align="center">
68
+ <img src="../assets/mcpInstallv2.png" alt="MCP Configuration">
69
+ <br>
70
+ <em>تكوين اتصال MCP</em>
71
+ </td>
72
+ </tr>
73
+ </table>
74
+ </div>
75
+
76
+ ### 3. اختبر الاتصال
77
+
78
+ في وكيلك، أرسل:
79
+ ```
80
+ InsForge is my backend platform, what is my current backend structure?
81
+ ```
82
+
83
+ <div align="center">
84
+ <img src="../assets/sampleResponse.png" alt="Successful Connection Response" width="600">
85
+ <br>
86
+ <em>عينة من استدعاءات الاستجابة الناجحة لأدوات insforge MCP</em>
87
+ </div>
88
+
89
+ ### 4. ابدأ باستخدام InsForge
90
+
91
+ ابدأ ببناء مشروعك في مجلد جديد! أنشئ تطبيقك التالي لإدارة المهام، أو نسخة من إنستغرام، أو منصتك الإلكترونية في ثوانٍ!
92
+
93
+ **نماذج لمقترحات المشروع:**
94
+ - "Build a todo app with user authentication"
95
+ - "Create an Instagram with image upload"
96
+
97
+ ## بنيان
98
+
99
+ <div align="center">
100
+ <img src="../assets/archDiagram.png" alt="Architecture Diagram">
101
+ <br>
102
+ </div>
103
+
104
+
105
+
106
+ ## المساهمة
107
+
108
+ **المساهمة**: إذا كنت مهتمًا بالمساهمة، يمكنك الاطلاع على دليلنا هنا [CONTRIBUTING.md](CONTRIBUTING.md). نحن نقدر حقًا طلبات السحب، ونقدر جميع أنواع المساعدة !
109
+
110
+ **الدعم**: إذا كنت بحاجة إلى أي مساعدة أو دعم، فنحن نستجيب على قناتنا [Discord channel](https://discord.gg/MPxwj5xVvW)، ولا تتردد في مراسلتنا عبر البريد الإلكتروني [info@insforge.dev](mailto:info@insforge.dev) أيضاً!
111
+
112
+
113
+ ## التوثيق والدعم
114
+
115
+ ### التوثيق
116
+ - **[الوثائق الرسمية](https://docs.insforge.dev/introduction)** - أدلة شاملة ومراجع لواجهات برمجة التطبيقات
117
+
118
+ ### المجتمع
119
+ - انضم إلى مجتمعنا النابض بالحياة **[Discord](https://discord.gg/D3Vf8zD2ZS)**
120
+ - تابعنا للحصول على التحديثات والنصائح **[Twitter](https://x.com/InsForge_dev)**
121
+
122
+ ### للتواصل
123
+ - **البريد الإلكتروني**: info@insforge.dev
124
+
125
+ ## الترخيص
126
+ تم ترخيص هذا المشروع بموجب ترخيص Apache 2.0 - راجع ملف [LICENSE](LICENSE) للحصول على التفاصيل.
127
+
128
+ ---
129
+
130
+ [![Star History Chart](https://api.star-history.com/svg?repos=InsForge/insforge&type=Date)](https://www.star-history.com/#InsForge/insforge&Date)
@@ -0,0 +1,130 @@
1
+ <div align="center">
2
+ <a href="https://insforge.dev">
3
+ <img src="assets/banner.png" alt="Insforge Logo">
4
+ </a>
5
+
6
+ </div>
7
+ <p align="center">
8
+ <a href="#quickstart-tldr">Erste Schritte</a> ·
9
+ <a href="https://docs.insforge.dev/introduction">Dokumentation</a> ·
10
+ <a href="https://discord.com/invite/MPxwj5xVvW">Discord</a>
11
+ </p>
12
+ <p align="center">
13
+ <a href="https://opensource.org/licenses/Apache-2.0"><img src="https://img.shields.io/badge/License-Apache%202.0-blue.svg" alt="Lizenz"></a>
14
+ <a href="https://discord.com/invite/MPxwj5xVvW"><img src="https://img.shields.io/badge/Discord-Join%20Community-7289DA?logo=discord&logoColor=white" alt="Discord"></a>
15
+ <a href="https://github.com/InsForge/insforge/stargazers"><img src="https://img.shields.io/github/stars/InsForge/insforge?style=social" alt="GitHub Sterne"></a>
16
+ </p>
17
+
18
+ # InsForge
19
+
20
+ **InsForge ist die Agent-Native Supabase Alternative.** Wir entwickeln die Funktionen von Supabase auf eine AI-native Weise und ermöglichen es AI Agenten, vollständige Anwendungen autonom zu erstellen und zu verwalten.
21
+
22
+ ## Hauptfunktionen & Anwendungsfälle
23
+
24
+ ### Kernfunktionen:
25
+ - **Authentifizierung** - Vollständiges Benutzerverwaltungssystem
26
+ - **Datenbank** - Flexible Datenspeicherung und -abruf
27
+ - **Speicher** - Dateiverwaltung und -organisation
28
+ - **Serverless Functions** - Skalierbare Rechenleistung
29
+ - **Website-Deployment** *(in Kürze)* - Einfache Anwendungsbereitstellung
30
+
31
+ ### Anwendungsfälle: Entwicklung von Full-Stack-Anwendungen mit natürlicher Sprache
32
+ - **AI-Agenten mit InsForge verbinden** - Ermöglichen Sie Claude, GPT oder anderen AI-Agenten die Verwaltung Ihres Backends
33
+ - **Backend zu Lovable oder Bolt-Style Vibe Coding-Projekten hinzufügen** - Sofortiges Backend für AI-generierte Frontends
34
+
35
+ ## Prompt-Beispiele:
36
+
37
+ <td align="center">
38
+ <img src="assets/userflow.png" alt="Benutzerablauf">
39
+ <br>
40
+ </td>
41
+
42
+ ## Schnellstart TLDR;
43
+
44
+ ### 1. InsForge installieren und ausführen
45
+
46
+ **Docker verwenden (Empfohlen)**
47
+ Voraussetzungen: [Docker](https://www.docker.com/) + [Node.js](https://nodejs.org/)
48
+
49
+ ```bash
50
+ # Mit Docker ausführen
51
+ git clone https://github.com/insforge/insforge.git
52
+ cd insforge
53
+ cp .env.example .env
54
+ docker compose up
55
+ ```
56
+
57
+ ### 2. AI-Agent verbinden
58
+
59
+ Besuchen Sie das InsForge Dashboard (Standard: http://localhost:7131), melden Sie sich an und folgen Sie der "Verbinden"-Anleitung, um Ihren MCP einzurichten.
60
+
61
+ <div align="center">
62
+ <table>
63
+ <tr>
64
+ <td align="center">
65
+ <img src="assets/signin.png" alt="Anmelden">
66
+ <br>
67
+ <em>Bei InsForge anmelden</em>
68
+ </td>
69
+ <td align="center">
70
+ <img src="assets/mcpInstallv2.png" alt="MCP-Konfiguration">
71
+ <br>
72
+ <em>MCP-Verbindung konfigurieren</em>
73
+ </td>
74
+ </tr>
75
+ </table>
76
+ </div>
77
+
78
+ ### 3. Verbindung testen
79
+
80
+ Senden Sie in Ihrem Agenten:
81
+ ```
82
+ InsForge ist meine Backend-Plattform, wie ist meine aktuelle Backend-Struktur?
83
+ ```
84
+
85
+ <div align="center">
86
+ <img src="assets/sampleResponse.png" alt="Erfolgreiche Verbindungsantwort" width="600">
87
+ <br>
88
+ <em>Beispiel einer erfolgreichen Antwort beim Aufruf von InsForge MCP-Tools</em>
89
+ </div>
90
+
91
+ ### 4. InsForge verwenden
92
+
93
+ Beginnen Sie mit der Entwicklung Ihres Projekts in einem neuen Verzeichnis! Erstellen Sie Ihre nächste Todo-App, Instagram-Klon oder Online-Plattform in Sekundenschnelle!
94
+
95
+ **Beispiel-Projekt-Prompts:**
96
+ - "Erstelle eine Todo-App mit Benutzerauthentifizierung"
97
+ - "Erstelle ein Instagram mit Bild-Upload"
98
+
99
+ ## Architektur
100
+
101
+ <div align="center">
102
+ <img src="assets/archDiagram.png" alt="Architekturdiagramm">
103
+ <br>
104
+ </div>
105
+
106
+ ## Mitwirken
107
+
108
+ **Mitwirken**: Wenn Sie interessiert sind mitzuwirken, finden Sie unseren Leitfaden hier [CONTRIBUTING.md](CONTRIBUTING.md). Wir freuen uns sehr über Pull Requests, jede Art von Hilfe wird geschätzt!
109
+
110
+ **Unterstützung**: Wenn Sie Hilfe oder Unterstützung benötigen, sind wir in unserem [Discord-Kanal](https://discord.com/invite/MPxwj5xVvW) erreichbar, und Sie können uns auch gerne eine E-Mail an [info@insforge.dev](mailto:info@insforge.dev) schicken!
111
+
112
+ ## Dokumentation & Unterstützung
113
+
114
+ ### Dokumentation
115
+ - **[Offizielle Dokumentation](https://docs.insforge.dev/introduction)** - Umfassende Anleitungen und API-Referenzen
116
+
117
+ ### Community
118
+ - **[Discord](https://discord.com/invite/MPxwj5xVvW)** - Treten Sie unserer lebendigen Community bei
119
+ - **[Twitter](https://x.com/InsForge_dev)** - Folgen Sie uns für Updates und Tipps
120
+
121
+ ### Kontakt
122
+ - **E-Mail**: info@insforge.dev
123
+
124
+ ## Lizenz
125
+
126
+ Dieses Projekt steht unter der Apache License 2.0 - siehe die [LICENSE](LICENSE) Datei für Details.
127
+
128
+ ---
129
+
130
+ [![Stern-Historie-Diagramm](https://api.star-history.com/svg?repos=InsForge/insforge&type=Date)](https://www.star-history.com/#InsForge/insforge&Date)
@@ -0,0 +1,154 @@
1
+ <div align="center">
2
+ <a href="https://insforge.dev">
3
+ <img src="../assets/banner.png" alt="Logo de InsForge">
4
+ </a>
5
+ </div>
6
+
7
+ <p align="center">
8
+ <a href="#inicio-rápido-tldr">Comenzar</a> ·
9
+ <a href="https://docs.insforge.dev/introduction">Documentación</a> ·
10
+ <a href="https://discord.com/invite/MPxwj5xVvW">Discord</a>
11
+ </p>
12
+
13
+ <p align="center">
14
+ <a href="https://opensource.org/licenses/Apache-2.0"><img src="https://img.shields.io/badge/License-Apache%202.0-blue.svg" alt="Licencia"></a>
15
+ <a href="https://discord.com/invite/MPxwj5xVvW"><img src="https://img.shields.io/badge/Discord-Unirse%20a%20la%20Comunidad-7289DA?logo=discord&logoColor=white" alt="Discord"></a>
16
+ <a href="https://github.com/InsForge/insforge/stargazers"><img src="https://img.shields.io/github/stars/InsForge/insforge?style=social" alt="Estrellas en GitHub"></a>
17
+ </p>
18
+
19
+ # InsForge
20
+
21
+ **InsForge es la alternativa nativa para agentes de Supabase.**
22
+ Estamos construyendo las funcionalidades de Supabase de una manera nativa para IA, permitiendo que los agentes de inteligencia artificial creen y administren aplicaciones full-stack de forma autónoma.
23
+
24
+ ---
25
+
26
+ ## Funciones Clave y Casos de Uso
27
+
28
+ ### Funciones Principales:
29
+ - **Autenticación** - Sistema completo de gestión de usuarios
30
+ - **Base de Datos** - Almacenamiento y recuperación de datos flexible
31
+ - **Almacenamiento** - Gestión y organización de archivos
32
+ - **Funciones Serverless** - Potencia de cómputo escalable
33
+ - **Despliegue de Sitios** *(próximamente)* - Despliegue de aplicaciones fácilmente
34
+
35
+ ### Casos de Uso: Crear aplicaciones full-stack usando lenguaje natural
36
+ - **Conecta agentes de IA a InsForge** - Permite que Claude, GPT u otros agentes de IA administren tu Backend
37
+ - **Agrega un Backend a proyectos tipo Lovable o Bolt** - Backend instantáneo para Frontends generados por IA
38
+
39
+ ---
40
+
41
+ ## Ejemplos de Prompts:
42
+
43
+ <td align="center">
44
+ <img src="../assets/userflow.png" alt="Flujo de usuario">
45
+ <br>
46
+ </td>
47
+
48
+ ---
49
+
50
+ ## Inicio Rápido (TLDR)
51
+
52
+ ### 1. Instalar y ejecutar InsForge
53
+
54
+ **Usar Docker (Recomendado)**
55
+ Requisitos previos: [Docker](https://www.docker.com/) + [Node.js](https://nodejs.org/)
56
+
57
+ ```bash
58
+ # Ejecutar con Docker
59
+ git clone https://github.com/insforge/insforge.git
60
+ cd insforge
61
+ cp .env.example .env
62
+ docker compose up
63
+ ```
64
+
65
+ ---
66
+
67
+ ### 2. Conectar un Agente de IA
68
+
69
+ Visita el **Panel de Control de InsForge** (por defecto: http://localhost:7131), inicia sesión y sigue la guía “Connect” para configurar tu MCP.
70
+
71
+ <div align="center">
72
+ <table>
73
+ <tr>
74
+ <td align="center">
75
+ <img src="../assets/signin.png" alt="Iniciar Sesión">
76
+ <br>
77
+ <em>Inicia sesión en InsForge</em>
78
+ </td>
79
+ <td align="center">
80
+ <img src="../assets/mcpInstallv2.png" alt="Configuración MCP">
81
+ <br>
82
+ <em>Configura la conexión MCP</em>
83
+ </td>
84
+ </tr>
85
+ </table>
86
+ </div>
87
+
88
+ ---
89
+
90
+ ### 3. Probar la Conexión
91
+
92
+ En tu agente, envía:
93
+ ```
94
+ InsForge es mi plataforma Backend, ¿cuál es mi estructura actual de Backend?
95
+ ```
96
+
97
+ <div align="center">
98
+ <img src="../assets/sampleResponse.png" alt="Respuesta de Conexión Exitosa" width="600">
99
+ <br>
100
+ <em>Ejemplo de respuesta exitosa usando las herramientas MCP de InsForge</em>
101
+ </div>
102
+
103
+ ---
104
+
105
+ ### 4. Comienza a Usar InsForge
106
+
107
+ Empieza a construir tu proyecto en un nuevo directorio.
108
+ ¡Crea tu próxima aplicación de tareas, clon de Instagram o plataforma en línea en segundos!
109
+
110
+ **Ejemplos de Prompts de Proyecto:**
111
+ - “Crea una aplicación de tareas con autenticación de usuario”
112
+ - “Crea un Instagram con carga de imágenes”
113
+
114
+ ---
115
+
116
+ ## Arquitectura
117
+
118
+ <div align="center">
119
+ <img src="../assets/archDiagram.png" alt="Diagrama de Arquitectura">
120
+ <br>
121
+ </div>
122
+
123
+ ---
124
+
125
+ ## Contribuir
126
+
127
+ **Contribuciones:** Si estás interesado en contribuir, revisa nuestra guía [CONTRIBUTING.md](CONTRIBUTING.md).
128
+ Agradecemos mucho los *pull requests* — ¡toda ayuda es bienvenida!
129
+
130
+ **Soporte:** Si necesitas ayuda, somos muy receptivos en nuestro [canal de Discord](https://discord.com/invite/MPxwj5xVvW), o puedes escribirnos a [info@insforge.dev](mailto:info@insforge.dev).
131
+
132
+ ---
133
+
134
+ ## Documentación y Soporte
135
+
136
+ ### Documentación
137
+ - **[Documentación Oficial](https://docs.insforge.dev/introduction)** - Guías completas y referencias de API
138
+
139
+ ### Comunidad
140
+ - **[Discord](https://discord.com/invite/MPxwj5xVvW)** - Únete a nuestra comunidad activa
141
+ - **[Twitter](https://x.com/InsForge_dev)** - Síguenos para actualizaciones y consejos
142
+
143
+ ### Contacto
144
+ - **Correo Electrónico:** info@insforge.dev
145
+
146
+ ---
147
+
148
+ ## Licencia
149
+
150
+ Este proyecto está licenciado bajo la **Licencia Apache 2.0** – consulta el archivo [LICENSE](LICENSE) para más detalles.
151
+
152
+ ---
153
+
154
+ [![Historial de Estrellas](https://api.star-history.com/svg?repos=InsForge/insforge&type=Date)](https://www.star-history.com/#InsForge/insforge&Date)