insforge 1.3.0 → 1.4.8

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 (269) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/auth/package.json +5 -3
  3. package/auth/src/lib/broadcastService.ts +115 -117
  4. package/auth/src/lib/insforge.ts +8 -0
  5. package/auth/src/main.tsx +2 -4
  6. package/auth/src/pages/SignInPage.tsx +60 -60
  7. package/auth/src/pages/SignUpPage.tsx +60 -60
  8. package/auth/src/pages/VerifyEmailPage.tsx +18 -0
  9. package/auth/tsconfig.json +2 -1
  10. package/backend/package.json +10 -6
  11. package/backend/src/api/middlewares/rate-limiters.ts +127 -127
  12. package/backend/src/api/routes/ai/index.routes.ts +475 -468
  13. package/backend/src/api/routes/auth/index.routes.ts +85 -32
  14. package/backend/src/api/routes/auth/oauth.routes.ts +11 -6
  15. package/backend/src/api/routes/database/index.routes.ts +2 -0
  16. package/backend/src/api/routes/database/records.routes.ts +39 -175
  17. package/backend/src/api/routes/database/rpc.routes.ts +69 -0
  18. package/backend/src/api/routes/deployments/index.routes.ts +192 -0
  19. package/backend/src/api/routes/docs/index.routes.ts +3 -2
  20. package/backend/src/api/routes/email/index.routes.ts +35 -35
  21. package/backend/src/api/routes/functions/index.routes.ts +3 -3
  22. package/backend/src/api/routes/metadata/index.routes.ts +26 -0
  23. package/backend/src/api/routes/webhooks/index.routes.ts +109 -0
  24. package/backend/src/infra/database/database.manager.ts +0 -10
  25. package/backend/src/infra/database/migrations/018_schema-rework.sql +441 -0
  26. package/backend/src/infra/database/migrations/019_create-deployments-table.sql +36 -0
  27. package/backend/src/infra/database/migrations/020_add-audio-modality.sql +11 -0
  28. package/backend/src/infra/database/migrations/bootstrap/bootstrap-migrations.js +103 -0
  29. package/backend/src/infra/security/token.manager.ts +1 -4
  30. package/backend/src/providers/ai/openrouter.provider.ts +12 -3
  31. package/backend/src/providers/database/base.provider.ts +39 -0
  32. package/backend/src/providers/database/cloud.provider.ts +159 -0
  33. package/backend/src/providers/deployments/vercel.provider.ts +516 -0
  34. package/backend/src/server.ts +19 -7
  35. package/backend/src/services/ai/ai-config.service.ts +6 -6
  36. package/backend/src/services/ai/ai-model.service.ts +60 -60
  37. package/backend/src/services/ai/ai-usage.service.ts +7 -7
  38. package/backend/src/services/ai/chat-completion.service.ts +415 -220
  39. package/backend/src/services/ai/helpers.ts +64 -64
  40. package/backend/src/services/ai/index.ts +13 -13
  41. package/backend/src/services/auth/auth-config.service.ts +4 -4
  42. package/backend/src/services/auth/auth-otp.service.ts +6 -6
  43. package/backend/src/services/auth/auth.service.ts +134 -74
  44. package/backend/src/services/auth/index.ts +4 -4
  45. package/backend/src/services/auth/oauth-config.service.ts +12 -12
  46. package/backend/src/services/database/database-advance.service.ts +19 -55
  47. package/backend/src/services/database/database-table.service.ts +38 -85
  48. package/backend/src/services/database/postgrest-proxy.service.ts +165 -0
  49. package/backend/src/services/deployments/deployment.service.ts +693 -0
  50. package/backend/src/services/functions/function.service.ts +61 -41
  51. package/backend/src/services/logs/audit.service.ts +10 -10
  52. package/backend/src/services/secrets/secret.service.ts +101 -27
  53. package/backend/src/services/storage/storage.service.ts +30 -30
  54. package/backend/src/services/usage/usage.service.ts +6 -6
  55. package/backend/src/types/ai.ts +8 -0
  56. package/backend/src/types/auth.ts +5 -1
  57. package/backend/src/types/database.ts +2 -0
  58. package/backend/src/types/deployments.ts +33 -0
  59. package/backend/src/types/storage.ts +1 -1
  60. package/backend/src/types/webhooks.ts +45 -0
  61. package/backend/src/utils/cookies.ts +34 -35
  62. package/backend/src/utils/environment.ts +0 -14
  63. package/backend/src/utils/s3-config-loader.ts +64 -64
  64. package/backend/src/utils/seed.ts +334 -301
  65. package/backend/src/utils/sql-parser.ts +126 -0
  66. package/backend/src/utils/utils.ts +114 -114
  67. package/backend/src/utils/validations.ts +10 -10
  68. package/backend/tests/local/test-rpc.sh +141 -0
  69. package/backend/tests/local/test-secrets.sh +1 -1
  70. package/backend/tests/manual/test-ai-model-plugins.sh +258 -0
  71. package/backend/tests/manual/test-rawsql-modes.sh +24 -24
  72. package/backend/tests/unit/database-advance.test.ts +326 -0
  73. package/backend/tests/unit/helpers.test.ts +2 -2
  74. package/claude-plugin/skills/insforge-schema-patterns/SKILL.md +13 -10
  75. package/docker-compose.prod.yml +1 -1
  76. package/docker-compose.yml +1 -1
  77. package/docs/agent-docs/deployment.md +79 -0
  78. package/docs/changelog.mdx +165 -72
  79. package/docs/core-concepts/ai/architecture.mdx +1 -23
  80. package/docs/core-concepts/ai/sdk.mdx +26 -1
  81. package/docs/core-concepts/authentication/architecture.mdx +6 -8
  82. package/docs/core-concepts/authentication/sdk.mdx +387 -91
  83. package/docs/core-concepts/authentication/ui-components/customization.mdx +460 -256
  84. package/docs/core-concepts/authentication/ui-components/nextjs.mdx +50 -24
  85. package/docs/core-concepts/authentication/ui-components/react-router.mdx +18 -19
  86. package/docs/core-concepts/authentication/ui-components/react.mdx +26 -19
  87. package/docs/core-concepts/database/architecture.mdx +58 -21
  88. package/docs/core-concepts/database/pgvector.mdx +138 -0
  89. package/docs/core-concepts/database/sdk.mdx +17 -17
  90. package/docs/core-concepts/deployments/architecture.mdx +152 -0
  91. package/docs/core-concepts/email/architecture.mdx +4 -2
  92. package/docs/core-concepts/functions/architecture.mdx +1 -1
  93. package/docs/core-concepts/functions/sdk.mdx +0 -1
  94. package/docs/core-concepts/realtime/architecture.mdx +1 -1
  95. package/docs/core-concepts/storage/architecture.mdx +1 -1
  96. package/docs/core-concepts/storage/sdk.mdx +25 -25
  97. package/docs/docs.json +14 -6
  98. package/docs/favicon.png +0 -0
  99. package/docs/favicon.svg +3 -18
  100. package/docs/images/changelog/dec-2025/apple-oauth.mp4 +0 -0
  101. package/docs/images/changelog/dec-2025/moreModels.png +0 -0
  102. package/docs/images/changelog/dec-2025/multi-region.webp +0 -0
  103. package/docs/images/changelog/dec-2025/postgres-connection.webp +0 -0
  104. package/docs/images/changelog/dec-2025/realtime2.png +0 -0
  105. package/docs/images/mcp-setup/CC-MCP-1.mp4 +0 -0
  106. package/docs/images/mcp-setup/CC-MCP-2.mp4 +0 -0
  107. package/docs/images/mcp-setup/Cursor-MCP-1.mp4 +0 -0
  108. package/docs/images/mcp-setup/Cursor-MCP-2.mp4 +0 -0
  109. package/docs/images/mcp-setup/Cursor-MCP-3.mp4 +0 -0
  110. package/docs/images/mcp-setup/claude-code-connect.png +0 -0
  111. package/docs/images/mcp-setup/cline-1.png +0 -0
  112. package/docs/images/mcp-setup/cline-2.png +0 -0
  113. package/docs/images/mcp-setup/cline-3.png +0 -0
  114. package/docs/images/mcp-setup/connect-project.png +0 -0
  115. package/docs/images/mcp-setup/copilot-1.png +0 -0
  116. package/docs/images/mcp-setup/copilot-2.png +0 -0
  117. package/docs/images/mcp-setup/copilot-3.png +0 -0
  118. package/docs/images/mcp-setup/mcp-json-1.png +0 -0
  119. package/docs/images/mcp-setup/mcp-json-2.png +0 -0
  120. package/docs/images/mcp-setup/qoder-1.png +0 -0
  121. package/docs/images/mcp-setup/qoder-2.png +0 -0
  122. package/docs/images/mcp-setup/roocode-1.png +0 -0
  123. package/docs/images/mcp-setup/roocode-2.png +0 -0
  124. package/docs/images/mcp-setup/trae-1.png +0 -0
  125. package/docs/images/mcp-setup/trae-2.png +0 -0
  126. package/docs/images/mcp-setup/trae-3.png +0 -0
  127. package/docs/images/mcp-setup/trae-4.png +0 -0
  128. package/docs/images/mcp-setup/trae-5.png +0 -0
  129. package/docs/images/mcp-setup/windsurf-1.png +0 -0
  130. package/docs/images/mcp-setup/windsurf-2.png +0 -0
  131. package/docs/insforge-instructions-sdk.md +7 -3
  132. package/docs/introduction.mdx +9 -8
  133. package/docs/mcp-setup.mdx +332 -0
  134. package/docs/oauth-server.mdx +563 -0
  135. package/docs/partnership.mdx +79 -10
  136. package/docs/quickstart.mdx +1 -1
  137. package/docs/vscode-extension.mdx +74 -0
  138. package/eslint.config.js +1 -0
  139. package/examples/response-examples.md +1 -1
  140. package/frontend/package.json +1 -1
  141. package/frontend/src/App.tsx +8 -3
  142. package/frontend/src/assets/logos/antigravity.svg +1 -0
  143. package/frontend/src/assets/logos/copilot.svg +10 -0
  144. package/frontend/src/assets/logos/deepseek.svg +139 -0
  145. package/frontend/src/assets/logos/kiro.svg +9 -0
  146. package/frontend/src/assets/logos/qoder.svg +4 -0
  147. package/frontend/src/assets/logos/qwen.svg +15 -0
  148. package/frontend/src/components/CodeBlock.tsx +2 -2
  149. package/frontend/src/components/ConnectCTA.tsx +3 -2
  150. package/frontend/src/components/datagrid/DataGrid.tsx +90 -62
  151. package/frontend/src/components/datagrid/datagridTypes.tsx +2 -1
  152. package/frontend/src/components/datagrid/index.ts +1 -1
  153. package/frontend/src/components/index.ts +0 -1
  154. package/frontend/src/components/layout/AppHeader.tsx +4 -27
  155. package/frontend/src/components/layout/AppSidebar.tsx +85 -100
  156. package/frontend/src/components/layout/Layout.tsx +34 -32
  157. package/frontend/src/components/layout/PrimaryMenu.tsx +12 -4
  158. package/frontend/src/components/radix/Select.tsx +151 -151
  159. package/frontend/src/features/ai/components/AIConfigCard.tsx +200 -200
  160. package/frontend/src/features/ai/components/AIEmptyState.tsx +23 -23
  161. package/frontend/src/features/ai/components/ModalityFilterSidebar.tsx +102 -101
  162. package/frontend/src/features/ai/components/ModelSelectionDialog.tsx +135 -135
  163. package/frontend/src/features/ai/components/ModelSelectionGrid.tsx +51 -51
  164. package/frontend/src/features/ai/components/SystemPromptDialog.tsx +118 -118
  165. package/frontend/src/features/ai/components/index.ts +6 -6
  166. package/frontend/src/features/ai/helpers.ts +147 -141
  167. package/frontend/src/features/ai/pages/AIPage.tsx +166 -166
  168. package/frontend/src/features/auth/components/AuthPreview.tsx +96 -96
  169. package/frontend/src/features/auth/components/UsersDataGrid.tsx +55 -31
  170. package/frontend/src/features/auth/components/index.ts +5 -5
  171. package/frontend/src/features/auth/pages/AuthMethodsPage.tsx +275 -275
  172. package/frontend/src/features/dashboard/pages/DashboardPage.tsx +1 -1
  173. package/frontend/src/features/database/components/DatabaseDataGrid.tsx +0 -2
  174. package/frontend/src/features/database/components/ForeignKeyCell.tsx +38 -11
  175. package/frontend/src/features/database/components/ForeignKeyPopover.tsx +18 -8
  176. package/frontend/src/features/database/components/LinkRecordModal.tsx +61 -13
  177. package/frontend/src/features/database/components/RecordFormField.tsx +1 -1
  178. package/frontend/src/features/database/components/TableSidebar.tsx +0 -3
  179. package/frontend/src/features/database/components/TablesEmptyState.tsx +1 -1
  180. package/frontend/src/features/database/components/TemplatePreview.tsx +1 -2
  181. package/frontend/src/features/database/constants.ts +16 -28
  182. package/frontend/src/features/database/hooks/useCSVImport.ts +3 -2
  183. package/frontend/src/features/database/hooks/useRawSQL.ts +3 -2
  184. package/frontend/src/features/database/hooks/useTables.ts +5 -7
  185. package/frontend/src/features/database/pages/FunctionsPage.tsx +0 -5
  186. package/frontend/src/features/database/pages/IndexesPage.tsx +0 -5
  187. package/frontend/src/features/database/pages/PoliciesPage.tsx +0 -5
  188. package/frontend/src/features/database/pages/SQLEditorPage.tsx +2 -2
  189. package/frontend/src/features/database/pages/TriggersPage.tsx +0 -5
  190. package/frontend/src/features/database/services/advance.service.ts +1 -15
  191. package/frontend/src/features/database/services/record.service.ts +4 -20
  192. package/frontend/src/features/database/services/table.service.ts +1 -4
  193. package/frontend/src/features/database/templates/ai-chatbot.ts +6 -6
  194. package/frontend/src/features/database/templates/ecommerce-platform.ts +2 -2
  195. package/frontend/src/features/database/templates/instagram-clone.ts +10 -10
  196. package/frontend/src/features/database/templates/notion-clone.ts +8 -8
  197. package/frontend/src/features/database/templates/reddit-clone.ts +10 -10
  198. package/frontend/src/features/deployments/components/DeploymentRow.tsx +93 -0
  199. package/frontend/src/features/deployments/components/DeploymentsEmptyState.tsx +15 -0
  200. package/frontend/src/features/deployments/hooks/useDeployments.ts +157 -0
  201. package/frontend/src/features/deployments/pages/DeploymentsPage.tsx +318 -0
  202. package/frontend/src/features/deployments/services/deployments.service.ts +63 -0
  203. package/frontend/src/features/functions/components/FunctionRow.tsx +72 -72
  204. package/frontend/src/features/functions/components/FunctionsSidebar.tsx +56 -56
  205. package/frontend/src/features/functions/components/SecretRow.tsx +3 -3
  206. package/frontend/src/features/functions/components/index.ts +5 -5
  207. package/frontend/src/features/functions/hooks/useFunctions.ts +5 -4
  208. package/frontend/src/features/functions/hooks/useSecrets.ts +6 -9
  209. package/frontend/src/features/functions/pages/SecretsPage.tsx +118 -118
  210. package/frontend/src/features/functions/services/function.service.ts +8 -25
  211. package/frontend/src/features/functions/services/secret.service.ts +23 -41
  212. package/frontend/src/features/login/pages/CloudLoginPage.tsx +125 -118
  213. package/frontend/src/features/logs/components/LogDetailPanel.tsx +41 -0
  214. package/frontend/src/features/logs/components/LogsDataGrid.tsx +32 -1
  215. package/frontend/src/features/logs/components/index.ts +1 -0
  216. package/frontend/src/features/logs/pages/LogsPage.tsx +36 -6
  217. package/frontend/src/features/onboard/components/ApiCredentialsSection.tsx +59 -0
  218. package/frontend/src/features/onboard/components/ConnectionStringSection.tsx +180 -0
  219. package/frontend/src/features/onboard/components/McpConnectionSection.tsx +159 -0
  220. package/frontend/src/features/onboard/components/OnboardingController.tsx +68 -0
  221. package/frontend/src/features/onboard/components/OnboardingModal.tsx +121 -267
  222. package/frontend/src/features/onboard/components/ShowPasswordButton.tsx +21 -0
  223. package/frontend/src/features/onboard/components/index.ts +9 -4
  224. package/frontend/src/features/onboard/components/mcp/CursorDeeplinkGenerator.tsx +1 -1
  225. package/frontend/src/features/onboard/components/mcp/QoderDeeplinkGenerator.tsx +36 -0
  226. package/frontend/src/features/onboard/components/mcp/helpers.tsx +123 -98
  227. package/frontend/src/features/onboard/components/mcp/index.ts +4 -3
  228. package/frontend/src/features/onboard/index.ts +17 -13
  229. package/frontend/src/features/settings/pages/SettingsPage.tsx +349 -0
  230. package/frontend/src/features/visualizer/components/AuthNode.tsx +4 -4
  231. package/frontend/src/features/visualizer/components/SchemaVisualizer.tsx +21 -8
  232. package/frontend/src/features/visualizer/pages/VisualizerPage.tsx +10 -1
  233. package/frontend/src/index.css +249 -249
  234. package/frontend/src/lib/contexts/ModalContext.tsx +35 -0
  235. package/frontend/src/lib/hooks/useMetadata.ts +45 -1
  236. package/frontend/src/lib/hooks/useModal.tsx +2 -0
  237. package/frontend/src/lib/routing/AppRoutes.tsx +103 -99
  238. package/frontend/src/lib/services/metadata.service.ts +20 -3
  239. package/frontend/src/lib/utils/menuItems.ts +223 -207
  240. package/frontend/src/lib/utils/utils.ts +196 -196
  241. package/functions/server.ts +315 -315
  242. package/functions/worker-template.js +1 -1
  243. package/openapi/ai.yaml +115 -5
  244. package/openapi/auth.yaml +97 -17
  245. package/openapi/logs.yaml +0 -2
  246. package/openapi/metadata.yaml +0 -2
  247. package/openapi/records.yaml +21 -21
  248. package/openapi/tables.yaml +1 -2
  249. package/package.json +1 -1
  250. package/shared-schemas/package.json +1 -1
  251. package/shared-schemas/src/ai-api.schema.ts +251 -143
  252. package/shared-schemas/src/ai.schema.ts +63 -63
  253. package/shared-schemas/src/auth-api.schema.ts +34 -6
  254. package/shared-schemas/src/auth.schema.ts +17 -10
  255. package/shared-schemas/src/cloud-events.schema.ts +26 -0
  256. package/shared-schemas/src/deployments-api.schema.ts +55 -0
  257. package/shared-schemas/src/deployments.schema.ts +30 -0
  258. package/shared-schemas/src/docs.schema.ts +8 -2
  259. package/shared-schemas/src/email-api.schema.ts +30 -30
  260. package/shared-schemas/src/functions-api.schema.ts +13 -4
  261. package/shared-schemas/src/functions.schema.ts +1 -1
  262. package/shared-schemas/src/index.ts +22 -18
  263. package/shared-schemas/src/metadata.schema.ts +30 -4
  264. package/shared-schemas/src/secrets-api.schema.ts +44 -0
  265. package/shared-schemas/src/secrets.schema.ts +15 -0
  266. package/zeabur/README.md +13 -0
  267. package/zeabur/template.yml +20 -51
  268. package/backend/src/types/profile.ts +0 -55
  269. package/frontend/src/components/ProjectInfoModal.tsx +0 -128
@@ -0,0 +1,152 @@
1
+ ---
2
+ title: Deployment Architecture
3
+ description: Zero-config web app deployments powered by Vercel
4
+ ---
5
+
6
+ <Warning>
7
+ Deployments is an experimental feature. APIs and behavior may change.
8
+ </Warning>
9
+
10
+ ## Overview
11
+
12
+ InsForge Deployments enable developers to deploy web applications with a single prompt. By integrating with coding agents via InsForge MCP, developers can simply say "Deploy my app" and have their application live within a minute—no configuration required.
13
+
14
+ ## Technology Stack
15
+
16
+ ```mermaid
17
+ graph TB
18
+ Agent[Coding Agent] --> MCP[InsForge MCP]
19
+ MCP --> API[InsForge Server]
20
+
21
+ API --> S3[AWS S3]
22
+ S3 --> Vercel[Vercel Edge Network]
23
+
24
+ API --> DB[(PostgreSQL)]
25
+ DB --> Metadata[Deployment Metadata]
26
+ DB --> Status[Status Tracking]
27
+
28
+ Vercel --> Live[Live Application]
29
+
30
+ style Agent fill:#1e293b,stroke:#475569,color:#e2e8f0
31
+ style MCP fill:#1e40af,stroke:#3b82f6,color:#dbeafe
32
+ style API fill:#166534,stroke:#22c55e,color:#dcfce7
33
+ style S3 fill:#ea580c,stroke:#f97316,color:#fed7aa
34
+ style Vercel fill:#000000,stroke:#ffffff,color:#ffffff
35
+ style DB fill:#0e7490,stroke:#06b6d4,color:#cffafe
36
+ style Metadata fill:#0e7490,stroke:#22d3ee,color:#cffafe
37
+ style Status fill:#0e7490,stroke:#22d3ee,color:#cffafe
38
+ style Live fill:#166534,stroke:#22c55e,color:#dcfce7
39
+ ```
40
+
41
+ ## Core Components
42
+
43
+ | Component | Technology | Purpose |
44
+ |-----------|------------|---------|
45
+ | **Edge Storage** | AWS S3 | Temporary source file staging |
46
+ | **Build Platform** | Vercel | Production builds and hosting |
47
+ | **Status Tracking** | PostgreSQL | Deployment state and metadata |
48
+ | **Webhook Handler** | HMAC-SHA1 | Real-time build status updates |
49
+
50
+ ## How It Works
51
+
52
+ ### Deployment Flow
53
+
54
+ ```mermaid
55
+ sequenceDiagram
56
+ participant Agent as Coding Agent
57
+ participant API as InsForge Server
58
+ participant S3 as AWS S3
59
+ participant Vercel as Vercel
60
+
61
+ Agent->>API: Create deployment
62
+ API-->>Agent: Upload URL + deployment ID
63
+
64
+ Agent->>S3: Upload source.zip
65
+ S3-->>Agent: Upload complete
66
+
67
+ Agent->>API: Start deployment
68
+ API->>S3: Download source
69
+ API->>Vercel: Upload files
70
+ API->>Vercel: Create deployment
71
+ API-->>Agent: Deployment started
72
+
73
+ Vercel->>Vercel: Build application
74
+ Vercel->>API: Webhook: Build complete
75
+
76
+ Agent->>API: Check status
77
+ API-->>Agent: READY + live URL
78
+ ```
79
+
80
+ ### Step-by-Step Process
81
+
82
+ 1. **Create Deployment**: Agent requests a new deployment, receiving a presigned S3 upload URL
83
+ 2. **Upload Source**: Source files are zipped and uploaded directly to S3 via edge network
84
+ 3. **Start Build**: InsForge downloads the source, extracts files, and uploads to Vercel
85
+ 4. **Build & Deploy**: Vercel builds the application and deploys to its edge network
86
+ 5. **Go Live**: Application becomes available at `https://{app-key}.insforge.site`
87
+
88
+ The entire process typically completes in about one minute.
89
+
90
+ ## Deployment Status
91
+
92
+ | Status | Description |
93
+ |--------|-------------|
94
+ | `WAITING` | Deployment created, awaiting source upload |
95
+ | `UPLOADING` | Source files being processed |
96
+ | `QUEUED` | Build queued on Vercel |
97
+ | `BUILDING` | Application being built |
98
+ | `READY` | Live and accessible |
99
+ | `ERROR` | Build failed |
100
+ | `CANCELED` | Deployment canceled |
101
+
102
+ ## Environment Variables
103
+
104
+ Environment variables can be passed during deployment for build-time configuration. They are encrypted at rest and in transit, and are only accessible during the build process. For auditing purposes, only variable names are logged, never values.
105
+
106
+ <Warning>
107
+ While environment variables are encrypted, avoid storing sensitive credentials in frontend applications. Variables prefixed with `NEXT_PUBLIC_` or similar are embedded in client bundles.
108
+ </Warning>
109
+
110
+ ## Current Limitations
111
+
112
+ <Note>
113
+ This is an experimental feature with the following constraints:
114
+ </Note>
115
+
116
+ | Limitation | Details |
117
+ |------------|---------|
118
+ | **Environment** | Production deployments only |
119
+ | **Custom Domains** | Coming soon |
120
+ | **Preview Deployments** | Coming soon |
121
+ | **Build Logs** | Limited visibility |
122
+
123
+ ## Performance
124
+
125
+ ### Edge Network Optimization
126
+
127
+ Both AWS S3 and Vercel utilize global edge networks, enabling:
128
+
129
+ - **Fast Uploads**: Source files uploaded to nearest S3 edge location
130
+ - **Rapid Builds**: Vercel's distributed build infrastructure
131
+ - **Global Distribution**: Deployed applications served from edge locations worldwide
132
+ - **Low Latency**: Sub-100ms response times for static assets
133
+
134
+ ## Best Practices
135
+
136
+ <CardGroup cols={2}>
137
+ <Card title="Keep Builds Small" icon="minimize">
138
+ Avoid uploading large assets. Use InsForge Storage and access via URLs.
139
+ </Card>
140
+
141
+ <Card title="Use Environment Variables" icon="key">
142
+ Configure builds via env vars, not hardcoded values
143
+ </Card>
144
+
145
+ <Card title="Test Locally First" icon="flask">
146
+ Verify builds work locally before deploying
147
+ </Card>
148
+
149
+ <Card title="Monitor Status" icon="chart-line">
150
+ Check deployment status for build errors
151
+ </Card>
152
+ </CardGroup>
@@ -1,9 +1,11 @@
1
1
  ---
2
- title: Architecture
2
+ title: Email Architecture
3
3
  description: Transactional email delivery powered by AWS SES
4
4
  ---
5
5
 
6
- <Note>**Private Preview** - This feature is currently in private preview.</Note>
6
+ <Warning>
7
+ Email is an experimental feature. APIs and behavior may change.
8
+ </Warning>
7
9
 
8
10
  ## Overview
9
11
 
@@ -1,5 +1,5 @@
1
1
  ---
2
- title: Architecture
2
+ title: Functions Architecture
3
3
  description: Serverless JavaScript functions running in isolated Deno runtime
4
4
  ---
5
5
 
@@ -68,7 +68,6 @@ console.log(data)
68
68
  ```json
69
69
  {
70
70
  "data": {
71
- "users": 100,
72
71
  "posts": 500,
73
72
  "comments": 1200
74
73
  },
@@ -1,5 +1,5 @@
1
1
  ---
2
- title: Architecture
2
+ title: Realtime Architecture
3
3
  description: Real-time messaging with PostgreSQL triggers, WebSockets, and webhooks
4
4
  ---
5
5
 
@@ -1,5 +1,5 @@
1
1
  ---
2
- title: Architecture
2
+ title: Storage Architecture
3
3
  description: Enterprise-grade storage system powered by AWS S3
4
4
  ---
5
5
 
@@ -24,7 +24,7 @@ StorageBucket // Instance with upload, uploadAuto, download, remove methods
24
24
  ### Example
25
25
 
26
26
  ```javascript
27
- const bucket = insforge.storage.from('avatars')
27
+ const bucket = insforge.storage.from('images')
28
28
  ```
29
29
 
30
30
  ---
@@ -62,17 +62,17 @@ If a file with the same key exists, backend auto-renames it. Always use the retu
62
62
 
63
63
  ```javascript
64
64
  const { data, error } = await insforge.storage
65
- .from('avatars')
66
- .upload('user-123/avatar.jpg', fileObject)
65
+ .from('images')
66
+ .upload('posts/post-123/cover.jpg', fileObject)
67
67
 
68
68
  // Save BOTH url and key to database
69
69
  await insforge.database
70
- .from('users')
70
+ .from('posts')
71
71
  .update({
72
- avatar_url: data.url,
73
- avatar_key: data.key // Save key for download/delete operations
72
+ image_url: data.url,
73
+ image_key: data.key // Save key for download/delete operations
74
74
  })
75
- .eq('id', 'user-123')
75
+ .eq('id', 'post-123')
76
76
  ```
77
77
 
78
78
  ### Output
@@ -80,12 +80,12 @@ await insforge.database
80
80
  ```json
81
81
  {
82
82
  "data": {
83
- "bucket": "avatars",
84
- "key": "user-123/avatar.jpg",
83
+ "bucket": "images",
84
+ "key": "posts/post-123/cover.jpg",
85
85
  "size": 45678,
86
86
  "mimeType": "image/jpeg",
87
87
  "uploadedAt": "2024-01-15T10:30:00Z",
88
- "url": "https://your-app.region.insforge.app/api/storage/buckets/avatars/objects/user-123%2Favatar.jpg"
88
+ "url": "https://your-app.region.insforge.app/api/storage/buckets/images/objects/posts%2Fpost-123%2Fcover.jpg"
89
89
  },
90
90
  "error": null
91
91
  }
@@ -173,16 +173,16 @@ Download a file as Blob.
173
173
 
174
174
  ```javascript
175
175
  // 1. Get the file key from your database
176
- const { data: user, error: dbError } = await insforge.database
177
- .from('users')
178
- .select('avatar_key')
179
- .eq('id', 'user-123')
176
+ const { data: post, error: dbError } = await insforge.database
177
+ .from('posts')
178
+ .select('image_key')
179
+ .eq('id', 'post-123')
180
180
  .single()
181
181
 
182
182
  // 2. Download the file using the key
183
183
  const { data: blob, error } = await insforge.storage
184
- .from('avatars')
185
- .download(user.avatar_key)
184
+ .from('images')
185
+ .download(post.image_key)
186
186
 
187
187
  // 3. Create download link or display image
188
188
  const url = URL.createObjectURL(blob)
@@ -222,22 +222,22 @@ Delete a file from storage.
222
222
 
223
223
  ```javascript
224
224
  // 1. Get the file key from your database
225
- const { data: user, error: dbError } = await insforge.database
226
- .from('users')
227
- .select('avatar_key')
228
- .eq('id', 'user-123')
225
+ const { data: post, error: dbError } = await insforge.database
226
+ .from('posts')
227
+ .select('image_key')
228
+ .eq('id', 'post-123')
229
229
  .single()
230
230
 
231
231
  // 2. Delete the file from storage
232
232
  const { data, error } = await insforge.storage
233
- .from('avatars')
234
- .remove(user.avatar_key)
233
+ .from('images')
234
+ .remove(post.image_key)
235
235
 
236
236
  // 3. Clear the database reference
237
237
  await insforge.database
238
- .from('users')
239
- .update({ avatar_url: null, avatar_key: null })
240
- .eq('id', 'user-123')
238
+ .from('posts')
239
+ .update({ image_url: null, image_key: null })
240
+ .eq('id', 'post-123')
241
241
  ```
242
242
 
243
243
  ### Output
package/docs/docs.json CHANGED
@@ -15,14 +15,15 @@
15
15
  },
16
16
  "seo": {
17
17
  "metatags": {
18
- "og:site_name": "InsForge Docs"
18
+ "og:site_name": "InsForge Docs",
19
+ "google-site-verification": "2dSsr0kxw61j9-qSOR0a1dq1PT6U1-2o3kiZMdsIf9g"
19
20
  },
20
21
  "indexing": "navigable"
21
22
  },
22
23
  "search": {
23
24
  "prompt": "Search InsForge docs..."
24
25
  },
25
- "favicon": "/favicon.svg",
26
+ "favicon": "/favicon.png",
26
27
  "navigation": {
27
28
  "tabs": [
28
29
  {
@@ -30,7 +31,7 @@
30
31
  "groups": [
31
32
  {
32
33
  "group": "Getting Started",
33
- "pages": ["introduction", "quickstart", "partnership"]
34
+ "pages": ["introduction", "quickstart", "mcp-setup", "vscode-extension", "partnership", "oauth-server"]
34
35
  },
35
36
  {
36
37
  "group": "Core Concepts",
@@ -39,7 +40,8 @@
39
40
  "group": "Database",
40
41
  "pages": [
41
42
  "core-concepts/database/architecture",
42
- "core-concepts/database/sdk"
43
+ "core-concepts/database/sdk",
44
+ "core-concepts/database/pgvector"
43
45
  ]
44
46
  },
45
47
  {
@@ -50,8 +52,8 @@
50
52
  {
51
53
  "group": "UI Components",
52
54
  "pages": [
53
- "core-concepts/authentication/ui-components/nextjs",
54
55
  "core-concepts/authentication/ui-components/react",
56
+ "core-concepts/authentication/ui-components/nextjs",
55
57
  "core-concepts/authentication/ui-components/react-router",
56
58
  "core-concepts/authentication/ui-components/customization"
57
59
  ]
@@ -87,11 +89,17 @@
87
89
  ]
88
90
  },
89
91
  {
90
- "group": "Email (Private Preview)",
92
+ "group": "Email (Experimental)",
91
93
  "pages": [
92
94
  "core-concepts/email/architecture",
93
95
  "core-concepts/email/sdk"
94
96
  ]
97
+ },
98
+ {
99
+ "group": "Deployments (Experimental)",
100
+ "pages": [
101
+ "core-concepts/deployments/architecture"
102
+ ]
95
103
  }
96
104
  ]
97
105
  },
Binary file
package/docs/favicon.svg CHANGED
@@ -1,19 +1,4 @@
1
- <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
2
- <path d="M9.06145 23.1079C5.26816 22.3769 -3.39077 20.6274 1.4173 5.06384C9.6344 6.09939 16.9728 14.0644 9.06145 23.1079Z" fill="url(#paint0_linear_17557_2021)"/>
3
- <path d="M8.91928 23.0939C5.27642 21.2223 0.78371 4.20891 17.0071 0C20.7569 7.19341 19.6212 16.5452 8.91928 23.0939Z" fill="url(#paint1_linear_17557_2021)"/>
4
- <path d="M8.91388 23.0788C8.73534 19.8817 10.1585 9.08525 23.5699 13.1107C23.1812 20.1229 18.984 26.4182 8.91388 23.0788Z" fill="url(#paint2_linear_17557_2021)"/>
5
- <defs>
6
- <linearGradient id="paint0_linear_17557_2021" x1="3.77557" y1="5.91571" x2="5.23185" y2="21.5589" gradientUnits="userSpaceOnUse">
7
- <stop stop-color="#18E299"/>
8
- <stop offset="1" stop-color="#15803D"/>
9
- </linearGradient>
10
- <linearGradient id="paint1_linear_17557_2021" x1="12.1711" y1="-0.718425" x2="10.1897" y2="22.9832" gradientUnits="userSpaceOnUse">
11
- <stop stop-color="#16A34A"/>
12
- <stop offset="1" stop-color="#4ADE80"/>
13
- </linearGradient>
14
- <linearGradient id="paint2_linear_17557_2021" x1="23.1327" y1="15.353" x2="9.33841" y2="18.5196" gradientUnits="userSpaceOnUse">
15
- <stop stop-color="#4ADE80"/>
16
- <stop offset="1" stop-color="#0D9373"/>
17
- </linearGradient>
18
- </defs>
1
+ <svg width="32" height="32" viewBox="0 0 100 100" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M11.56 41.33C10.29 40.06 10.29 38.01 11.56 36.74L43.83 4.61H89.92L34.61 59.69C33.34 60.96 31.27 60.96 30 59.69L11.56 41.33Z" fill="#1a1a1a"/>
3
+ <path d="M69.76 30.43L89.92 50.51V96.42L46.71 53.38L69.76 30.43Z" fill="#4a4a4a"/>
19
4
  </svg>
Binary file
Binary file
Binary file
Binary file
Binary file
@@ -53,12 +53,15 @@ Available documentation types:
53
53
  - `"instructions"` - Essential backend setup (START HERE)
54
54
  - `"db-sdk"` - Database operations with SDK
55
55
  - **Authentication** - Choose based on implementation:
56
- - `"auth-components-react"` - Frontend auth for React+Vite (singlepage App)
57
- - `"auth-components-react-router"` - Frontend auth for React(Vite+React Router) (Multipage App)
56
+ - `"auth-sdk"` - Direct SDK methods for custom auth flows
57
+ - `"auth-components-react"` - Pre-built auth UI for React+Vite (singlepage App)
58
+ - `"auth-components-react-router"` - Pre-built auth UI for React(Vite+React Router) (Multipage App)
59
+ - `"auth-components-nextjs"` - Pre-built auth UI for Nextjs (SSR App)
58
60
  - `"storage-sdk"` - File storage operations
59
61
  - `"functions-sdk"` - Serverless functions invocation
60
62
  - `"ai-integration-sdk"` - AI chat and image generation
61
63
  - `"real-time"` - Real-time pub/sub (database + client events) via WebSockets
64
+ - `"deployment"` - Deploy frontend applications via MCP tool
62
65
 
63
66
  ## When to Use SDK vs MCP Tools
64
67
 
@@ -77,10 +80,11 @@ Available documentation types:
77
80
  - Database schema management (`run-raw-sql`, `get-table-schema`)
78
81
  - Storage bucket creation (`create-bucket`, `list-buckets`, `delete-bucket`)
79
82
  - Serverless function deployment (`create-function`, `update-function`, `delete-function`)
83
+ - Frontend deployment (`create-deployment`) - Deploy frontend apps to InsForge hosting
80
84
 
81
85
  ## Important Notes
82
86
 
83
- - Use the right framework-specific component package for production-ready auth
87
+ - For auth: use `auth-sdk` for custom UI, or framework-specific components for pre-built UI
84
88
  - SDK returns `{data, error}` structure for all operations
85
89
  - Database inserts require array format: `[{...}]`
86
90
  - Serverless functions have single endpoint (no subpaths)
@@ -1,5 +1,6 @@
1
1
  ---
2
- title: Introduction
2
+ title: "Introduction"
3
+ description: "Backend built for AI-assisted development."
3
4
  ---
4
5
 
5
6
  InsForge is an AI-optimized Backend-as-a-Service platform for modern applications. It provides a comprehensive backend out of the box with PostgreSQL, JWT-based authentication, and S3-compatible storage. Every endpoint, from initial configuration to database operations to file uploads, is designed to be agent-friendly with consistent patterns and predictable responses.
@@ -19,27 +20,27 @@ Ready to start building? Check out our [framework examples](/examples/overview)
19
20
  Everything you need to build real applications, designed for AI agents:
20
21
 
21
22
  <CardGroup cols={2}>
22
- <Card title="PostgreSQL Database" icon="database">
23
+ <Card title="PostgreSQL Database" icon="database" href="/core-concepts/database/architecture">
23
24
  Tables become APIs instantly. No code. Just schema.
24
25
  </Card>
25
26
 
26
- <Card title="Authentication" icon="shield">
27
+ <Card title="Authentication" icon="shield" href="/core-concepts/authentication/architecture">
27
28
  User signup, login, sessions, OAuth. Zero configuration.
28
29
  </Card>
29
30
 
30
- <Card title="File Storage" icon="folder">
31
+ <Card title="File Storage" icon="folder" href="/core-concepts/storage/architecture">
31
32
  Upload, download, serve files. Works like any other API.
32
33
  </Card>
33
34
 
34
- <Card title="Edge Functions" icon="bolt">
35
+ <Card title="Edge Functions" icon="bolt" href="/core-concepts/functions/architecture">
35
36
  Deploy serverless functions that run on the edge. Zero infrastructure.
36
37
  </Card>
37
38
 
38
- <Card title="AI Integration" icon="sparkles">
39
+ <Card title="AI Integration" icon="sparkles" href="/core-concepts/ai/architecture">
39
40
  Built-in AI capabilities with streaming support. Ready to use.
40
41
  </Card>
41
42
 
42
- <Card title="No Backend Knowledge Needed" icon="brain">
43
- AI agents handle the backend. You don't need to understand infrastructure.
43
+ <Card title="Realtime" icon="bolt" href="/core-concepts/realtime/architecture">
44
+ Pub/sub messaging with WebSockets. Build collaborative apps.
44
45
  </Card>
45
46
  </CardGroup>