insforge 1.2.10 → 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.
- package/.claude-plugin/marketplace.json +20 -20
- package/.dockerignore +60 -60
- package/.env.example +83 -77
- package/.github/ISSUE_TEMPLATE/bug_report.yml +36 -36
- package/.github/ISSUE_TEMPLATE/config.yml +11 -11
- package/.github/ISSUE_TEMPLATE/feature_request.yml +26 -26
- package/.github/PULL_REQUEST_TEMPLATE.md +7 -7
- package/.github/copilot-instructions.md +146 -146
- package/.github/workflows/build-image.yml +65 -65
- package/.github/workflows/ci-premerge-check.yml +23 -23
- package/.github/workflows/e2e.yml +63 -63
- package/.github/workflows/lint-and-format.yml +32 -32
- package/.prettierignore +64 -64
- package/CHANGELOG.md +46 -44
- package/CLAUDE_PLUGIN.md +104 -104
- package/CODE_OF_CONDUCT.md +128 -128
- package/CONTRIBUTING.md +125 -125
- package/Dockerfile +30 -30
- package/GITHUB_OAUTH_SETUP.md +49 -49
- package/GOOGLE_OAUTH_SETUP.md +148 -148
- package/LICENSE +201 -201
- package/README.md +182 -182
- package/assets/Dark.svg +23 -23
- package/auth/package.json +30 -28
- package/auth/src/lib/broadcastService.ts +4 -4
- package/auth/src/lib/insforge.ts +8 -0
- package/auth/src/main.tsx +2 -4
- package/auth/src/pages/SignInPage.tsx +5 -2
- package/auth/src/pages/SignUpPage.tsx +5 -2
- package/auth/src/pages/VerifyEmailPage.tsx +18 -0
- package/auth/tsconfig.json +33 -32
- package/auth/tsconfig.node.json +11 -11
- package/backend/package.json +82 -75
- package/backend/src/api/middlewares/rate-limiters.ts +127 -127
- package/backend/src/api/routes/ai/index.routes.ts +475 -468
- package/backend/src/api/routes/auth/index.routes.ts +720 -570
- package/backend/src/api/routes/auth/oauth.routes.ts +478 -448
- package/backend/src/api/routes/database/advance.routes.ts +37 -16
- package/backend/src/api/routes/database/index.routes.ts +80 -1
- package/backend/src/api/routes/database/records.routes.ts +48 -184
- package/backend/src/api/routes/database/rpc.routes.ts +69 -0
- package/backend/src/api/routes/database/tables.routes.ts +0 -14
- package/backend/src/api/routes/deployments/index.routes.ts +192 -0
- package/backend/src/api/routes/docs/index.routes.ts +76 -76
- package/backend/src/api/routes/email/index.routes.ts +35 -0
- package/backend/src/api/routes/functions/index.routes.ts +21 -15
- package/backend/src/api/routes/metadata/index.routes.ts +38 -0
- package/backend/src/api/routes/realtime/channels.routes.ts +81 -0
- package/backend/src/api/routes/realtime/index.routes.ts +12 -0
- package/backend/src/api/routes/realtime/messages.routes.ts +48 -0
- package/backend/src/api/routes/realtime/permissions.routes.ts +19 -0
- package/backend/src/api/routes/storage/index.routes.ts +18 -12
- package/backend/src/api/routes/usage/index.routes.ts +6 -4
- package/backend/src/api/routes/webhooks/index.routes.ts +109 -0
- package/backend/src/infra/database/database.manager.ts +14 -11
- package/backend/src/infra/database/migrations/000_create-base-tables.sql +141 -141
- package/backend/src/infra/database/migrations/001_create-helper-functions.sql +40 -40
- package/backend/src/infra/database/migrations/002_rename-auth-tables.sql +29 -29
- package/backend/src/infra/database/migrations/003_create-users-table.sql +55 -55
- package/backend/src/infra/database/migrations/004_add-reload-postgrest-func.sql +23 -23
- package/backend/src/infra/database/migrations/005_enable-project-admin-modify-users.sql +29 -29
- package/backend/src/infra/database/migrations/006_modify-ai-usage-table.sql +24 -24
- package/backend/src/infra/database/migrations/007_drop-metadata-table.sql +1 -1
- package/backend/src/infra/database/migrations/008_add-system-tables.sql +76 -76
- package/backend/src/infra/database/migrations/009_add-function-secrets.sql +23 -23
- package/backend/src/infra/database/migrations/010_modify-ai-config-modalities.sql +93 -93
- package/backend/src/infra/database/migrations/011_refactor-secrets-table.sql +15 -15
- package/backend/src/infra/database/migrations/012_add-storage-uploaded-by.sql +7 -7
- package/backend/src/infra/database/migrations/013_create-auth-schema-functions.sql +44 -44
- package/backend/src/infra/database/migrations/014_add-updated-at-trigger-user-table.sql +7 -7
- package/backend/src/infra/database/migrations/015_create-auth-config-and-email-otp-tables.sql +59 -59
- package/backend/src/infra/database/migrations/016_update-auth-config-and-email-otp.sql +24 -24
- package/backend/src/infra/database/migrations/017_create-realtime-schema.sql +233 -0
- package/backend/src/infra/database/migrations/018_schema-rework.sql +441 -0
- package/backend/src/infra/database/migrations/019_create-deployments-table.sql +36 -0
- package/backend/src/infra/database/migrations/020_add-audio-modality.sql +11 -0
- package/backend/src/infra/database/migrations/bootstrap/bootstrap-migrations.js +103 -0
- package/backend/src/infra/realtime/realtime.manager.ts +246 -0
- package/backend/src/infra/realtime/webhook-sender.ts +82 -0
- package/backend/src/infra/security/token.manager.ts +216 -125
- package/backend/src/infra/socket/socket.manager.ts +198 -64
- package/backend/src/providers/ai/openrouter.provider.ts +24 -12
- package/backend/src/providers/database/base.provider.ts +39 -0
- package/backend/src/providers/database/cloud.provider.ts +159 -0
- package/backend/src/providers/deployments/vercel.provider.ts +516 -0
- package/backend/src/providers/email/base.provider.ts +4 -7
- package/backend/src/providers/email/cloud.provider.ts +84 -0
- package/backend/src/providers/oauth/apple.provider.ts +266 -0
- package/backend/src/providers/oauth/index.ts +1 -0
- package/backend/src/server.ts +329 -284
- package/backend/src/services/ai/ai-config.service.ts +6 -6
- package/backend/src/services/ai/ai-model.service.ts +60 -60
- package/backend/src/services/ai/ai-usage.service.ts +7 -7
- package/backend/src/services/ai/chat-completion.service.ts +415 -220
- package/backend/src/services/ai/helpers.ts +64 -64
- package/backend/src/services/ai/image-generation.service.ts +3 -3
- package/backend/src/services/ai/index.ts +13 -13
- package/backend/src/services/auth/auth-config.service.ts +4 -4
- package/backend/src/services/auth/auth-otp.service.ts +6 -6
- package/backend/src/services/auth/auth.service.ts +148 -74
- package/backend/src/services/auth/index.ts +4 -4
- package/backend/src/services/auth/oauth-config.service.ts +12 -12
- package/backend/src/services/database/database-advance.service.ts +19 -55
- package/backend/src/services/database/database-table.service.ts +38 -94
- package/backend/src/services/database/database.service.ts +127 -0
- package/backend/src/services/database/postgrest-proxy.service.ts +165 -0
- package/backend/src/services/deployments/deployment.service.ts +693 -0
- package/backend/src/services/email/email.service.ts +5 -7
- package/backend/src/services/functions/function.service.ts +61 -41
- package/backend/src/services/logs/audit.service.ts +10 -10
- package/backend/src/services/realtime/index.ts +3 -0
- package/backend/src/services/realtime/realtime-auth.service.ts +104 -0
- package/backend/src/services/realtime/realtime-channel.service.ts +237 -0
- package/backend/src/services/realtime/realtime-message.service.ts +260 -0
- package/backend/src/services/secrets/secret.service.ts +101 -27
- package/backend/src/services/storage/storage.service.ts +30 -30
- package/backend/src/services/usage/usage.service.ts +6 -6
- package/backend/src/types/ai.ts +8 -0
- package/backend/src/types/auth.ts +16 -1
- package/backend/src/types/database.ts +2 -0
- package/backend/src/types/deployments.ts +33 -0
- package/backend/src/types/realtime.ts +18 -0
- package/backend/src/types/socket.ts +7 -31
- package/backend/src/types/storage.ts +1 -1
- package/backend/src/types/webhooks.ts +45 -0
- package/backend/src/utils/cookies.ts +34 -0
- package/backend/src/utils/environment.ts +0 -14
- package/backend/src/utils/s3-config-loader.ts +64 -0
- package/backend/src/utils/seed.ts +79 -43
- package/backend/src/utils/sql-parser.ts +216 -0
- package/backend/src/utils/utils.ts +114 -114
- package/backend/src/utils/validations.ts +10 -10
- package/backend/tests/README.md +133 -133
- package/backend/tests/cleanup-all-test-data.sh +230 -230
- package/backend/tests/cloud/test-s3-multitenant.sh +131 -131
- package/backend/tests/local/comprehensive-curl-tests.sh +155 -155
- package/backend/tests/local/test-ai-config.sh +129 -129
- package/backend/tests/local/test-ai-usage.sh +80 -80
- package/backend/tests/local/test-auth-router.sh +143 -143
- package/backend/tests/local/test-database-router.sh +222 -222
- package/backend/tests/local/test-e2e.sh +240 -240
- package/backend/tests/local/test-fk-errors.sh +96 -96
- package/backend/tests/local/test-functions.sh +123 -123
- package/backend/tests/local/test-id-field.sh +200 -200
- package/backend/tests/local/test-logs.sh +132 -132
- package/backend/tests/local/test-public-bucket.sh +264 -264
- package/backend/tests/local/test-rpc.sh +141 -0
- package/backend/tests/local/test-secrets.sh +249 -249
- package/backend/tests/local/test-serverless-functions.sh.disabled +325 -325
- package/backend/tests/local/test-traditional-rest.sh +208 -208
- package/backend/tests/manual/README.md +50 -50
- package/backend/tests/manual/create-large-table-simple.sql +10 -10
- package/backend/tests/manual/seed-large-table.sql +100 -100
- package/backend/tests/manual/setup-large-table-extras.sql +33 -33
- package/backend/tests/manual/test-ai-model-plugins.sh +258 -0
- package/backend/tests/manual/test-bulk-upsert.sh +409 -409
- package/backend/tests/manual/test-database-advance.sh +296 -296
- package/backend/tests/manual/test-postgrest-stability.sh +191 -191
- package/backend/tests/manual/test-rawsql-export-import.sh +411 -411
- package/backend/tests/manual/test-rawsql-modes.sh +244 -244
- package/backend/tests/manual/test-universal-storage.sh +263 -263
- package/backend/tests/manual/test-users.sql +17 -17
- package/backend/tests/run-all-tests.sh +139 -139
- package/backend/tests/setup.ts +0 -0
- package/backend/tests/test-config.sh +338 -338
- package/backend/tests/unit/analyze-query.test.ts +697 -0
- package/backend/tests/unit/database-advance.test.ts +326 -0
- package/backend/tests/unit/helpers.test.ts +2 -2
- package/backend/tsconfig.json +22 -22
- package/claude-plugin/.claude-plugin/plugin.json +24 -24
- package/claude-plugin/README.md +133 -133
- package/claude-plugin/skills/insforge-schema-patterns/SKILL.md +273 -270
- package/docker-compose.prod.yml +204 -200
- package/docker-compose.yml +232 -228
- package/docker-init/db/db-init.sql +97 -97
- package/docker-init/db/jwt.sql +5 -5
- package/docker-init/db/postgresql.conf +16 -16
- package/docker-init/logs/vector.yml +236 -236
- package/docs/README.md +44 -44
- package/docs/agent-docs/deployment.md +79 -0
- package/docs/agent-docs/real-time.md +269 -0
- package/docs/changelog.mdx +212 -67
- package/docs/core-concepts/ai/architecture.mdx +350 -372
- package/docs/core-concepts/ai/sdk.mdx +238 -213
- package/docs/core-concepts/authentication/architecture.mdx +276 -278
- package/docs/core-concepts/authentication/sdk.mdx +710 -414
- package/docs/core-concepts/authentication/ui-components/customization.mdx +733 -529
- package/docs/core-concepts/authentication/ui-components/nextjs.mdx +247 -221
- package/docs/core-concepts/authentication/ui-components/react-router.mdx +183 -184
- package/docs/core-concepts/authentication/ui-components/react.mdx +136 -129
- package/docs/core-concepts/database/architecture.mdx +292 -255
- package/docs/core-concepts/database/pgvector.mdx +138 -0
- package/docs/core-concepts/database/sdk.mdx +382 -382
- package/docs/core-concepts/deployments/architecture.mdx +152 -0
- package/docs/core-concepts/email/architecture.mdx +103 -0
- package/docs/core-concepts/email/sdk.mdx +53 -0
- package/docs/core-concepts/functions/architecture.mdx +105 -105
- package/docs/core-concepts/functions/sdk.mdx +183 -184
- package/docs/core-concepts/realtime/architecture.mdx +446 -0
- package/docs/core-concepts/realtime/sdk.mdx +409 -0
- package/docs/core-concepts/storage/architecture.mdx +243 -243
- package/docs/core-concepts/storage/sdk.mdx +253 -253
- package/docs/deployment/README.md +94 -94
- package/docs/deployment/deploy-to-aws-ec2.md +564 -564
- package/docs/deployment/deploy-to-azure-virtual-machines.md +312 -312
- package/docs/deployment/deploy-to-google-cloud-compute-engine.md +613 -613
- package/docs/deployment/deploy-to-render.md +441 -441
- package/docs/deprecated/insforge-auth-api.md +214 -214
- package/docs/deprecated/insforge-auth-sdk.md +99 -99
- package/docs/deprecated/insforge-db-api.md +358 -358
- package/docs/deprecated/insforge-db-sdk.md +139 -139
- package/docs/deprecated/insforge-debug-sdk.md +156 -156
- package/docs/deprecated/insforge-debug.md +64 -64
- package/docs/deprecated/insforge-instructions.md +123 -123
- package/docs/deprecated/insforge-project.md +117 -117
- package/docs/deprecated/insforge-storage-api.md +278 -278
- package/docs/deprecated/insforge-storage-sdk.md +158 -158
- package/docs/docs.json +240 -210
- package/docs/examples/framework-guides/nextjs.mdx +131 -131
- package/docs/examples/framework-guides/nuxt.mdx +165 -165
- package/docs/examples/framework-guides/react.mdx +165 -165
- package/docs/examples/framework-guides/svelte.mdx +153 -153
- package/docs/examples/framework-guides/vue.mdx +159 -159
- package/docs/examples/overview.mdx +67 -67
- package/docs/favicon.png +0 -0
- package/docs/favicon.svg +4 -19
- package/docs/images/changelog/dec-2025/ai-integration.png +0 -0
- package/docs/images/changelog/dec-2025/ai-models.webp +0 -0
- package/docs/images/changelog/dec-2025/alipay-payment.webp +0 -0
- package/docs/images/changelog/dec-2025/apple-login.jpg +0 -0
- package/docs/images/changelog/dec-2025/apple-oauth.mp4 +0 -0
- package/docs/images/changelog/dec-2025/mcp-installer.png +0 -0
- package/docs/images/changelog/dec-2025/moreModels.png +0 -0
- package/docs/images/changelog/dec-2025/multi-region.webp +0 -0
- package/docs/images/changelog/dec-2025/postgres-connection.webp +0 -0
- package/docs/images/changelog/dec-2025/realtime-module.jpg +0 -0
- package/docs/images/changelog/dec-2025/realtime2.png +0 -0
- package/docs/images/icons/ai.svg +4 -4
- package/docs/images/logos/nextjs.svg +4 -4
- package/docs/images/logos/nuxt.svg +4 -4
- package/docs/images/logos/react.svg +5 -5
- package/docs/images/logos/svelte.svg +4 -4
- package/docs/images/logos/vue.svg +5 -5
- package/docs/images/mcp-setup/CC-MCP-1.mp4 +0 -0
- package/docs/images/mcp-setup/CC-MCP-2.mp4 +0 -0
- package/docs/images/mcp-setup/Cursor-MCP-1.mp4 +0 -0
- package/docs/images/mcp-setup/Cursor-MCP-2.mp4 +0 -0
- package/docs/images/mcp-setup/Cursor-MCP-3.mp4 +0 -0
- package/docs/images/mcp-setup/claude-code-connect.png +0 -0
- package/docs/images/mcp-setup/cline-1.png +0 -0
- package/docs/images/mcp-setup/cline-2.png +0 -0
- package/docs/images/mcp-setup/cline-3.png +0 -0
- package/docs/images/mcp-setup/connect-project.png +0 -0
- package/docs/images/mcp-setup/copilot-1.png +0 -0
- package/docs/images/mcp-setup/copilot-2.png +0 -0
- package/docs/images/mcp-setup/copilot-3.png +0 -0
- package/docs/images/mcp-setup/mcp-json-1.png +0 -0
- package/docs/images/mcp-setup/mcp-json-2.png +0 -0
- package/docs/images/mcp-setup/qoder-1.png +0 -0
- package/docs/images/mcp-setup/qoder-2.png +0 -0
- package/docs/images/mcp-setup/roocode-1.png +0 -0
- package/docs/images/mcp-setup/roocode-2.png +0 -0
- package/docs/images/mcp-setup/trae-1.png +0 -0
- package/docs/images/mcp-setup/trae-2.png +0 -0
- package/docs/images/mcp-setup/trae-3.png +0 -0
- package/docs/images/mcp-setup/trae-4.png +0 -0
- package/docs/images/mcp-setup/trae-5.png +0 -0
- package/docs/images/mcp-setup/windsurf-1.png +0 -0
- package/docs/images/mcp-setup/windsurf-2.png +0 -0
- package/docs/insforge-instructions-sdk.md +93 -88
- package/docs/introduction.mdx +46 -45
- package/docs/logo/dark.svg +22 -22
- package/docs/logo/light.svg +20 -20
- package/docs/mcp-setup.mdx +332 -0
- package/docs/oauth-server.mdx +563 -0
- package/docs/partnership.mdx +720 -646
- package/docs/quickstart.mdx +82 -82
- package/docs/showcase.mdx +52 -52
- package/docs/snippets/sdk-installation.mdx +21 -21
- package/docs/snippets/service-icons.mdx +27 -27
- package/docs/vscode-extension.mdx +74 -0
- package/eslint.config.js +1 -0
- package/examples/oauth/frontend-oauth-example.html +250 -250
- package/examples/response-examples.md +443 -443
- package/frontend/components.json +17 -17
- package/frontend/package.json +69 -69
- package/frontend/src/App.tsx +8 -3
- package/frontend/src/assets/icons/checkbox_checked.svg +6 -6
- package/frontend/src/assets/icons/checkbox_undetermined.svg +6 -6
- package/frontend/src/assets/icons/checked.svg +3 -3
- package/frontend/src/assets/icons/connected.svg +3 -3
- package/frontend/src/assets/icons/error.svg +3 -3
- package/frontend/src/assets/icons/loader.svg +9 -9
- package/frontend/src/assets/icons/pencil.svg +4 -4
- package/frontend/src/assets/icons/refresh.svg +4 -4
- package/frontend/src/assets/icons/step_active.svg +3 -3
- package/frontend/src/assets/icons/step_inactive.svg +11 -11
- package/frontend/src/assets/icons/warning.svg +3 -3
- package/frontend/src/assets/logos/antigravity.svg +1 -0
- package/frontend/src/assets/logos/apple.svg +3 -3
- package/frontend/src/assets/logos/claude_code.svg +3 -3
- package/frontend/src/assets/logos/cline.svg +6 -6
- package/frontend/src/assets/logos/copilot.svg +10 -0
- package/frontend/src/assets/logos/cursor.svg +20 -20
- package/frontend/src/assets/logos/deepseek.svg +139 -0
- package/frontend/src/assets/logos/discord.svg +8 -8
- package/frontend/src/assets/logos/facebook.svg +3 -3
- package/frontend/src/assets/logos/gemini.svg +19 -19
- package/frontend/src/assets/logos/github.svg +5 -5
- package/frontend/src/assets/logos/google.svg +13 -13
- package/frontend/src/assets/logos/grok.svg +10 -10
- package/frontend/src/assets/logos/insforge_dark.svg +15 -15
- package/frontend/src/assets/logos/insforge_light.svg +15 -15
- package/frontend/src/assets/logos/instagram.svg +1 -1
- package/frontend/src/assets/logos/kiro.svg +9 -0
- package/frontend/src/assets/logos/linkedin.svg +3 -3
- package/frontend/src/assets/logos/openai.svg +10 -10
- package/frontend/src/assets/logos/qoder.svg +4 -0
- package/frontend/src/assets/logos/qwen.svg +15 -0
- package/frontend/src/assets/logos/roo_code.svg +9 -9
- package/frontend/src/assets/logos/spotify.svg +16 -16
- package/frontend/src/assets/logos/tiktok.svg +5 -5
- package/frontend/src/assets/logos/trae.svg +3 -3
- package/frontend/src/assets/logos/windsurf.svg +10 -10
- package/frontend/src/assets/logos/x.svg +3 -3
- package/frontend/src/components/CodeBlock.tsx +2 -2
- package/frontend/src/components/ConnectCTA.tsx +3 -2
- package/frontend/src/components/datagrid/DataGrid.tsx +90 -62
- package/frontend/src/components/datagrid/datagridTypes.tsx +2 -1
- package/frontend/src/components/datagrid/index.ts +1 -1
- package/frontend/src/components/index.ts +0 -1
- package/frontend/src/components/layout/AppHeader.tsx +13 -37
- package/frontend/src/components/layout/AppSidebar.tsx +85 -100
- package/frontend/src/components/layout/Layout.tsx +34 -32
- package/frontend/src/components/layout/PrimaryMenu.tsx +12 -4
- package/frontend/src/components/radix/Select.tsx +151 -151
- package/frontend/src/features/ai/components/AIConfigCard.tsx +200 -200
- package/frontend/src/features/ai/components/AIEmptyState.tsx +23 -23
- package/frontend/src/features/ai/components/ModalityFilterSidebar.tsx +102 -101
- package/frontend/src/features/ai/components/ModelSelectionDialog.tsx +135 -135
- package/frontend/src/features/ai/components/ModelSelectionGrid.tsx +51 -51
- package/frontend/src/features/ai/components/SystemPromptDialog.tsx +118 -118
- package/frontend/src/features/ai/components/index.ts +6 -6
- package/frontend/src/features/ai/helpers.ts +147 -141
- package/frontend/src/features/ai/{page → pages}/AIPage.tsx +166 -166
- package/frontend/src/features/auth/components/AuthPreview.tsx +96 -96
- package/frontend/src/features/auth/components/OAuthConfigDialog.tsx +1 -0
- package/frontend/src/features/auth/components/UsersDataGrid.tsx +61 -31
- package/frontend/src/features/auth/components/index.ts +5 -5
- package/frontend/src/features/auth/helpers.tsx +8 -0
- package/frontend/src/features/auth/{page → pages}/AuthMethodsPage.tsx +275 -275
- package/frontend/src/features/auth/{page → pages}/UsersPage.tsx +0 -28
- package/frontend/src/features/dashboard/{page → pages}/DashboardPage.tsx +1 -1
- package/frontend/src/features/database/components/DatabaseDataGrid.tsx +0 -2
- package/frontend/src/features/database/components/ForeignKeyCell.tsx +38 -11
- package/frontend/src/features/database/components/ForeignKeyPopover.tsx +18 -8
- package/frontend/src/features/database/components/LinkRecordModal.tsx +61 -13
- package/frontend/src/features/database/components/RecordFormField.tsx +1 -1
- package/frontend/src/features/database/components/SQLModal.tsx +75 -0
- package/frontend/src/features/database/components/TableForm.tsx +0 -4
- package/frontend/src/features/database/components/TableSidebar.tsx +0 -3
- package/frontend/src/features/database/components/TablesEmptyState.tsx +1 -1
- package/frontend/src/features/database/components/TemplatePreview.tsx +1 -2
- package/frontend/src/features/database/constants.ts +16 -28
- package/frontend/src/features/database/hooks/useCSVImport.ts +3 -2
- package/frontend/src/features/database/hooks/useDatabase.ts +66 -0
- package/frontend/src/features/database/hooks/useRawSQL.ts +3 -2
- package/frontend/src/features/database/hooks/useTables.ts +30 -28
- package/frontend/src/features/database/index.ts +1 -0
- package/frontend/src/features/database/{page → pages}/FunctionsPage.tsx +29 -42
- package/frontend/src/features/database/{page → pages}/IndexesPage.tsx +34 -51
- package/frontend/src/features/database/{page → pages}/PoliciesPage.tsx +42 -58
- package/frontend/src/features/database/{page → pages}/SQLEditorPage.tsx +2 -2
- package/frontend/src/features/database/{page → pages}/TablesPage.tsx +0 -42
- package/frontend/src/features/database/{page → pages}/TriggersPage.tsx +34 -51
- package/frontend/src/features/database/services/advance.service.ts +1 -41
- package/frontend/src/features/database/services/database.service.ts +55 -0
- package/frontend/src/features/database/services/record.service.ts +4 -20
- package/frontend/src/features/database/services/table.service.ts +1 -10
- package/frontend/src/features/database/templates/ai-chatbot.ts +6 -6
- package/frontend/src/features/database/templates/ecommerce-platform.ts +2 -2
- package/frontend/src/features/database/templates/instagram-clone.ts +10 -10
- package/frontend/src/features/database/templates/notion-clone.ts +8 -8
- package/frontend/src/features/database/templates/reddit-clone.ts +10 -10
- package/frontend/src/features/deployments/components/DeploymentRow.tsx +93 -0
- package/frontend/src/features/deployments/components/DeploymentsEmptyState.tsx +15 -0
- package/frontend/src/features/deployments/hooks/useDeployments.ts +157 -0
- package/frontend/src/features/deployments/pages/DeploymentsPage.tsx +318 -0
- package/frontend/src/features/deployments/services/deployments.service.ts +63 -0
- package/frontend/src/features/functions/components/FunctionRow.tsx +72 -72
- package/frontend/src/features/functions/components/FunctionsSidebar.tsx +56 -56
- package/frontend/src/features/functions/components/SecretRow.tsx +3 -3
- package/frontend/src/features/functions/components/index.ts +5 -5
- package/frontend/src/features/functions/hooks/useFunctions.ts +5 -4
- package/frontend/src/features/functions/hooks/useSecrets.ts +6 -9
- package/frontend/src/features/functions/{page → pages}/FunctionsPage.tsx +21 -44
- package/frontend/src/features/functions/{page → pages}/SecretsPage.tsx +118 -116
- package/frontend/src/features/functions/services/function.service.ts +8 -25
- package/frontend/src/features/functions/services/secret.service.ts +23 -41
- package/frontend/src/features/login/{page → pages}/CloudLoginPage.tsx +125 -118
- package/frontend/src/features/logs/components/LogDetailPanel.tsx +41 -0
- package/frontend/src/features/logs/components/LogsDataGrid.tsx +32 -1
- package/frontend/src/features/logs/components/index.ts +1 -0
- package/frontend/src/features/logs/hooks/useMcpUsage.ts +13 -66
- package/frontend/src/features/logs/{page → pages}/LogsPage.tsx +36 -6
- package/frontend/src/features/onboard/components/ApiCredentialsSection.tsx +59 -0
- package/frontend/src/features/onboard/components/ConnectionStringSection.tsx +180 -0
- package/frontend/src/features/onboard/components/McpConnectionSection.tsx +159 -0
- package/frontend/src/features/onboard/components/OnboardingController.tsx +68 -0
- package/frontend/src/features/onboard/components/OnboardingModal.tsx +121 -267
- package/frontend/src/features/onboard/components/ShowPasswordButton.tsx +21 -0
- package/frontend/src/features/onboard/components/index.ts +9 -4
- package/frontend/src/features/onboard/components/mcp/CursorDeeplinkGenerator.tsx +1 -1
- package/frontend/src/features/onboard/components/mcp/QoderDeeplinkGenerator.tsx +36 -0
- package/frontend/src/features/onboard/components/mcp/helpers.tsx +123 -98
- package/frontend/src/features/onboard/components/mcp/index.ts +4 -3
- package/frontend/src/features/onboard/index.ts +17 -13
- package/frontend/src/features/realtime/components/ChannelRow.tsx +83 -0
- package/frontend/src/features/realtime/components/EditChannelModal.tsx +246 -0
- package/frontend/src/features/realtime/components/MessageRow.tsx +85 -0
- package/frontend/src/features/realtime/components/RealtimeEmptyState.tsx +30 -0
- package/frontend/src/features/realtime/hooks/useRealtime.ts +218 -0
- package/frontend/src/features/realtime/index.ts +11 -0
- package/frontend/src/features/realtime/pages/RealtimeChannelsPage.tsx +172 -0
- package/frontend/src/features/realtime/pages/RealtimeMessagesPage.tsx +211 -0
- package/frontend/src/features/realtime/pages/RealtimePermissionsPage.tsx +191 -0
- package/frontend/src/features/realtime/services/realtime.service.ts +107 -0
- package/frontend/src/features/settings/pages/SettingsPage.tsx +349 -0
- package/frontend/src/features/storage/{page → pages}/StoragePage.tsx +1 -29
- package/frontend/src/features/visualizer/components/AuthNode.tsx +4 -4
- package/frontend/src/features/visualizer/components/SchemaVisualizer.tsx +24 -11
- package/frontend/src/features/visualizer/{page → pages}/VisualizerPage.tsx +11 -36
- package/frontend/src/index.css +249 -249
- package/frontend/src/lib/contexts/ModalContext.tsx +35 -0
- package/frontend/src/lib/contexts/SocketContext.tsx +119 -75
- package/frontend/src/lib/hooks/useMetadata.ts +45 -1
- package/frontend/src/lib/hooks/useModal.tsx +2 -0
- package/frontend/src/lib/routing/AppRoutes.tsx +103 -84
- package/frontend/src/lib/services/metadata.service.ts +20 -3
- package/frontend/src/lib/utils/cloudMessaging.ts +1 -1
- package/frontend/src/lib/utils/menuItems.ts +223 -183
- package/frontend/src/lib/utils/utils.ts +196 -183
- package/frontend/tsconfig.json +25 -25
- package/frontend/tsconfig.node.json +9 -9
- package/functions/deno.json +24 -24
- package/functions/server.ts +6 -6
- package/functions/worker-template.js +1 -1
- package/i18n/README.ar.md +130 -130
- package/i18n/README.de.md +130 -130
- package/i18n/README.es.md +154 -154
- package/i18n/README.fr.md +134 -134
- package/i18n/README.hi.md +129 -129
- package/i18n/README.ja.md +174 -174
- package/i18n/README.ko.md +136 -136
- package/i18n/README.pt-BR.md +131 -131
- package/i18n/README.ru.md +129 -129
- package/i18n/README.zh-CN.md +133 -133
- package/openapi/ai.yaml +825 -715
- package/openapi/auth.yaml +1324 -1244
- package/openapi/email.yaml +158 -0
- package/openapi/functions.yaml +475 -475
- package/openapi/health.yaml +29 -29
- package/openapi/logs.yaml +221 -223
- package/openapi/metadata.yaml +175 -177
- package/openapi/realtime.yaml +699 -0
- package/openapi/records.yaml +381 -381
- package/openapi/secrets.yaml +370 -370
- package/openapi/storage.yaml +875 -875
- package/openapi/tables.yaml +462 -463
- package/package.json +97 -97
- package/shared-schemas/package.json +31 -31
- package/shared-schemas/src/ai-api.schema.ts +251 -143
- package/shared-schemas/src/ai.schema.ts +8 -4
- package/shared-schemas/src/auth-api.schema.ts +380 -339
- package/shared-schemas/src/auth.schema.ts +18 -11
- package/shared-schemas/src/cloud-events.schema.ts +26 -0
- package/shared-schemas/src/database-api.schema.ts +32 -1
- package/shared-schemas/src/database.schema.ts +39 -0
- package/shared-schemas/src/deployments-api.schema.ts +55 -0
- package/shared-schemas/src/deployments.schema.ts +30 -0
- package/shared-schemas/src/docs.schema.ts +32 -0
- package/shared-schemas/src/email-api.schema.ts +30 -0
- package/shared-schemas/src/functions-api.schema.ts +13 -4
- package/shared-schemas/src/functions.schema.ts +1 -1
- package/shared-schemas/src/index.ts +22 -14
- package/shared-schemas/src/metadata.schema.ts +39 -4
- package/shared-schemas/src/realtime-api.schema.ts +111 -0
- package/shared-schemas/src/realtime.schema.ts +143 -0
- package/shared-schemas/src/secrets-api.schema.ts +44 -0
- package/shared-schemas/src/secrets.schema.ts +15 -0
- package/shared-schemas/tsconfig.json +21 -21
- package/tsconfig.json +7 -7
- package/zeabur/README.md +26 -13
- package/zeabur/template.yml +1001 -1032
- package/.cursor/rules/cursor-rules.mdc +0 -94
- package/backend/src/types/profile.ts +0 -55
- package/frontend/src/components/ProjectInfoModal.tsx +0 -128
- package/frontend/src/features/database/hooks/useFullMetadata.ts +0 -18
- package/test-gemini.sh +0 -35
- package/test-usage-admin.sh +0 -57
- package/test-usage.sh +0 -50
- /package/frontend/src/features/auth/{page → pages}/ConfigurationPage.tsx +0 -0
- /package/frontend/src/features/database/{page → pages}/TemplatesPage.tsx +0 -0
- /package/frontend/src/features/login/{page → pages}/LoginPage.tsx +0 -0
- /package/frontend/src/features/logs/{page → pages}/AuditsPage.tsx +0 -0
- /package/frontend/src/features/logs/{page → pages}/MCPLogsPage.tsx +0 -0
package/docs/quickstart.mdx
CHANGED
|
@@ -1,83 +1,83 @@
|
|
|
1
|
-
---
|
|
2
|
-
title: "Quickstart"
|
|
3
|
-
description: "Get
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
Choose your deployment method:
|
|
7
|
-
|
|
8
|
-
<Tabs>
|
|
9
|
-
<Tab title="Cloud Platform">
|
|
10
|
-
## Get started in three steps (Cloud)
|
|
11
|
-
|
|
12
|
-
### Step 1: Create your project
|
|
13
|
-
|
|
14
|
-
<Card title="Go to Insforge Cloud" icon="cloud" href="https://insforge.dev">
|
|
15
|
-
Visit [insforge.dev](https://insforge.dev) and create a free account
|
|
16
|
-
</Card>
|
|
17
|
-
|
|
18
|
-
Once logged in:
|
|
19
|
-
1. Click **"Create New Project"**
|
|
20
|
-
2. Your backend will be ready in ~3 seconds
|
|
21
|
-
|
|
22
|
-
### Step 2: Connect to InsForge MCP Server
|
|
23
|
-
|
|
24
|
-
<img src="/images/onboarding-mcp.png" alt="InsForge MCP Installation" />
|
|
25
|
-
|
|
26
|
-
In your project dashboard:
|
|
27
|
-
1. Choose your IDE (Cursor, Claude Code, Windsurf, Cline, etc.)
|
|
28
|
-
2. Copy the installation command - it includes your API key and URL automatically
|
|
29
|
-
3. Run the command in your terminal
|
|
30
|
-
|
|
31
|
-
Example command (yours will have your actual API key and URL):
|
|
32
|
-
```bash
|
|
33
|
-
npx @insforge/install --client cursor \
|
|
34
|
-
--env API_KEY=ik_your_actual_api_key_here \
|
|
35
|
-
--env API_BASE_URL=https://your-app.us-east.insforge.app
|
|
36
|
-
```
|
|
37
|
-
|
|
38
|
-
4. Test in your coding IDE by asking: "InsForge is my backend platform, what is my current backend structure?"
|
|
39
|
-
|
|
40
|
-
### Step 3: Build your first app
|
|
41
|
-
|
|
42
|
-
Check out our [framework examples](/examples/overview) for step-by-step guides on building with:
|
|
43
|
-
- Next.js
|
|
44
|
-
- React
|
|
45
|
-
- Vue
|
|
46
|
-
- Nuxt
|
|
47
|
-
- Svelte
|
|
48
|
-
|
|
49
|
-
Or tell your AI assistant to build something:
|
|
50
|
-
|
|
51
|
-
```
|
|
52
|
-
"Build a todo app with user authentication using Insforge as the backend"
|
|
53
|
-
```
|
|
54
|
-
|
|
55
|
-
Your AI will automatically:
|
|
56
|
-
- Create database tables
|
|
57
|
-
- Set up authentication
|
|
58
|
-
- Handle file uploads
|
|
59
|
-
- Generate a complete frontend
|
|
60
|
-
</Tab>
|
|
61
|
-
|
|
62
|
-
<Tab title="Local Development">
|
|
63
|
-
## Run Insforge locally
|
|
64
|
-
|
|
65
|
-
For local development and self-hosting instructions, please visit the official OSS repository:
|
|
66
|
-
|
|
67
|
-
<Card title="Insforge OSS Repository" icon="github" href="https://github.com/insforge/insforge">
|
|
68
|
-
**Complete local setup guide available at:**
|
|
69
|
-
|
|
70
|
-
https://github.com/insforge/insforge
|
|
71
|
-
|
|
72
|
-
The repository includes:
|
|
73
|
-
- Docker setup instructions
|
|
74
|
-
- Environment configuration
|
|
75
|
-
- AI agent integration guides
|
|
76
|
-
- Troubleshooting tips
|
|
77
|
-
</Card>
|
|
78
|
-
|
|
79
|
-
<Note>
|
|
80
|
-
Local development requires Docker and provides the same features as the cloud platform.
|
|
81
|
-
</Note>
|
|
82
|
-
</Tab>
|
|
1
|
+
---
|
|
2
|
+
title: "Quickstart"
|
|
3
|
+
description: "Get InsForge running in 5 minutes"
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
Choose your deployment method:
|
|
7
|
+
|
|
8
|
+
<Tabs>
|
|
9
|
+
<Tab title="Cloud Platform">
|
|
10
|
+
## Get started in three steps (Cloud)
|
|
11
|
+
|
|
12
|
+
### Step 1: Create your project
|
|
13
|
+
|
|
14
|
+
<Card title="Go to Insforge Cloud" icon="cloud" href="https://insforge.dev">
|
|
15
|
+
Visit [insforge.dev](https://insforge.dev) and create a free account
|
|
16
|
+
</Card>
|
|
17
|
+
|
|
18
|
+
Once logged in:
|
|
19
|
+
1. Click **"Create New Project"**
|
|
20
|
+
2. Your backend will be ready in ~3 seconds
|
|
21
|
+
|
|
22
|
+
### Step 2: Connect to InsForge MCP Server
|
|
23
|
+
|
|
24
|
+
<img src="/images/onboarding-mcp.png" alt="InsForge MCP Installation" />
|
|
25
|
+
|
|
26
|
+
In your project dashboard:
|
|
27
|
+
1. Choose your IDE (Cursor, Claude Code, Windsurf, Cline, etc.)
|
|
28
|
+
2. Copy the installation command - it includes your API key and URL automatically
|
|
29
|
+
3. Run the command in your terminal
|
|
30
|
+
|
|
31
|
+
Example command (yours will have your actual API key and URL):
|
|
32
|
+
```bash
|
|
33
|
+
npx @insforge/install --client cursor \
|
|
34
|
+
--env API_KEY=ik_your_actual_api_key_here \
|
|
35
|
+
--env API_BASE_URL=https://your-app.us-east.insforge.app
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
4. Test in your coding IDE by asking: "InsForge is my backend platform, what is my current backend structure?"
|
|
39
|
+
|
|
40
|
+
### Step 3: Build your first app
|
|
41
|
+
|
|
42
|
+
Check out our [framework examples](/examples/overview) for step-by-step guides on building with:
|
|
43
|
+
- Next.js
|
|
44
|
+
- React
|
|
45
|
+
- Vue
|
|
46
|
+
- Nuxt
|
|
47
|
+
- Svelte
|
|
48
|
+
|
|
49
|
+
Or tell your AI assistant to build something:
|
|
50
|
+
|
|
51
|
+
```
|
|
52
|
+
"Build a todo app with user authentication using Insforge as the backend"
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
Your AI will automatically:
|
|
56
|
+
- Create database tables
|
|
57
|
+
- Set up authentication
|
|
58
|
+
- Handle file uploads
|
|
59
|
+
- Generate a complete frontend
|
|
60
|
+
</Tab>
|
|
61
|
+
|
|
62
|
+
<Tab title="Local Development">
|
|
63
|
+
## Run Insforge locally
|
|
64
|
+
|
|
65
|
+
For local development and self-hosting instructions, please visit the official OSS repository:
|
|
66
|
+
|
|
67
|
+
<Card title="Insforge OSS Repository" icon="github" href="https://github.com/insforge/insforge">
|
|
68
|
+
**Complete local setup guide available at:**
|
|
69
|
+
|
|
70
|
+
https://github.com/insforge/insforge
|
|
71
|
+
|
|
72
|
+
The repository includes:
|
|
73
|
+
- Docker setup instructions
|
|
74
|
+
- Environment configuration
|
|
75
|
+
- AI agent integration guides
|
|
76
|
+
- Troubleshooting tips
|
|
77
|
+
</Card>
|
|
78
|
+
|
|
79
|
+
<Note>
|
|
80
|
+
Local development requires Docker and provides the same features as the cloud platform.
|
|
81
|
+
</Note>
|
|
82
|
+
</Tab>
|
|
83
83
|
</Tabs>
|
package/docs/showcase.mdx
CHANGED
|
@@ -1,52 +1,52 @@
|
|
|
1
|
-
---
|
|
2
|
-
title: Showcase
|
|
3
|
-
description: Production applications built with InsForge
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
import { ServiceIcons } from '/snippets/service-icons.mdx';
|
|
7
|
-
|
|
8
|
-
See what developers are building with InsForge - from AI-powered SaaS to social platforms and beyond.
|
|
9
|
-
|
|
10
|
-
## Community Projects
|
|
11
|
-
|
|
12
|
-
<CardGroup cols={2}>
|
|
13
|
-
<Card title="National Flags Leaderboard" icon="flag" href="https://national-flags-phi.vercel.app/">
|
|
14
|
-
<div style={{maxHeight: '192px', height: '192px', overflow: 'hidden', borderRadius: '0.5rem', pointerEvents: 'none'}}>
|
|
15
|
-
<img src="/showcase/national-flags.png" style={{width: '100%', height: '192px', objectFit: 'cover', pointerEvents: 'none'}} alt="National Flags Leaderboard showcase" />
|
|
16
|
-
</div>
|
|
17
|
-
|
|
18
|
-
Learn national flags through an interactive database and take on challenges with real-time leaderboard rankings.
|
|
19
|
-
|
|
20
|
-
<ServiceIcons services={['database', 'auth', 'storage', 'ai', 'functions']} />
|
|
21
|
-
</Card>
|
|
22
|
-
|
|
23
|
-
<Card title="Pokemon Vibe" icon="wand-magic-sparkles" href="https://pokemon-vibe.vercel.app/">
|
|
24
|
-
<div style={{maxHeight: '192px', height: '192px', overflow: 'hidden', borderRadius: '0.5rem', pointerEvents: 'none'}}>
|
|
25
|
-
<img src="/showcase/pokemon-vibe.png" style={{width: '100%', height: '192px', objectFit: 'cover', pointerEvents: 'none'}} alt="Pokemon Vibe showcase" />
|
|
26
|
-
</div>
|
|
27
|
-
|
|
28
|
-
Form your own Pokemon teams and compete against others. AI-powered battles let two teams fight on top of AI-generated drawings.
|
|
29
|
-
|
|
30
|
-
<ServiceIcons services={['database', 'auth', 'storage', 'ai', 'functions']} />
|
|
31
|
-
</Card>
|
|
32
|
-
|
|
33
|
-
<Card title="2048 Arena" icon="gamepad" href="https://insforge-2048-arena.netlify.app/">
|
|
34
|
-
<div style={{maxHeight: '192px', height: '192px', overflow: 'hidden', borderRadius: '0.5rem', pointerEvents: 'none'}}>
|
|
35
|
-
<img src="/showcase/2048-arena.png" style={{width: '100%', height: '192px', objectFit: 'cover', pointerEvents: 'none'}} alt="2048 Arena showcase" />
|
|
36
|
-
</div>
|
|
37
|
-
|
|
38
|
-
Classic 2048 puzzle game with multiplayer arena and competitive leaderboards.
|
|
39
|
-
|
|
40
|
-
<ServiceIcons services={['database', 'auth']} />
|
|
41
|
-
</Card>
|
|
42
|
-
|
|
43
|
-
<Card title="Line Connect Race" icon="route" href="https://line-connect-race.vercel.app/">
|
|
44
|
-
<div style={{maxHeight: '192px', height: '192px', overflow: 'hidden', borderRadius: '0.5rem', pointerEvents: 'none'}}>
|
|
45
|
-
<img src="/showcase/line-connect-race.png" style={{width: '100%', height: '192px', objectFit: 'cover', pointerEvents: 'none'}} alt="Line Connect Race showcase" />
|
|
46
|
-
</div>
|
|
47
|
-
|
|
48
|
-
Interactive line-drawing racing game with real-time multiplayer and competitive gameplay.
|
|
49
|
-
|
|
50
|
-
<ServiceIcons services={['database', 'auth', 'functions']} />
|
|
51
|
-
</Card>
|
|
52
|
-
</CardGroup>
|
|
1
|
+
---
|
|
2
|
+
title: Showcase
|
|
3
|
+
description: Production applications built with InsForge
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
import { ServiceIcons } from '/snippets/service-icons.mdx';
|
|
7
|
+
|
|
8
|
+
See what developers are building with InsForge - from AI-powered SaaS to social platforms and beyond.
|
|
9
|
+
|
|
10
|
+
## Community Projects
|
|
11
|
+
|
|
12
|
+
<CardGroup cols={2}>
|
|
13
|
+
<Card title="National Flags Leaderboard" icon="flag" href="https://national-flags-phi.vercel.app/">
|
|
14
|
+
<div style={{maxHeight: '192px', height: '192px', overflow: 'hidden', borderRadius: '0.5rem', pointerEvents: 'none'}}>
|
|
15
|
+
<img src="/showcase/national-flags.png" style={{width: '100%', height: '192px', objectFit: 'cover', pointerEvents: 'none'}} alt="National Flags Leaderboard showcase" />
|
|
16
|
+
</div>
|
|
17
|
+
|
|
18
|
+
Learn national flags through an interactive database and take on challenges with real-time leaderboard rankings.
|
|
19
|
+
|
|
20
|
+
<ServiceIcons services={['database', 'auth', 'storage', 'ai', 'functions']} />
|
|
21
|
+
</Card>
|
|
22
|
+
|
|
23
|
+
<Card title="Pokemon Vibe" icon="wand-magic-sparkles" href="https://pokemon-vibe.vercel.app/">
|
|
24
|
+
<div style={{maxHeight: '192px', height: '192px', overflow: 'hidden', borderRadius: '0.5rem', pointerEvents: 'none'}}>
|
|
25
|
+
<img src="/showcase/pokemon-vibe.png" style={{width: '100%', height: '192px', objectFit: 'cover', pointerEvents: 'none'}} alt="Pokemon Vibe showcase" />
|
|
26
|
+
</div>
|
|
27
|
+
|
|
28
|
+
Form your own Pokemon teams and compete against others. AI-powered battles let two teams fight on top of AI-generated drawings.
|
|
29
|
+
|
|
30
|
+
<ServiceIcons services={['database', 'auth', 'storage', 'ai', 'functions']} />
|
|
31
|
+
</Card>
|
|
32
|
+
|
|
33
|
+
<Card title="2048 Arena" icon="gamepad" href="https://insforge-2048-arena.netlify.app/">
|
|
34
|
+
<div style={{maxHeight: '192px', height: '192px', overflow: 'hidden', borderRadius: '0.5rem', pointerEvents: 'none'}}>
|
|
35
|
+
<img src="/showcase/2048-arena.png" style={{width: '100%', height: '192px', objectFit: 'cover', pointerEvents: 'none'}} alt="2048 Arena showcase" />
|
|
36
|
+
</div>
|
|
37
|
+
|
|
38
|
+
Classic 2048 puzzle game with multiplayer arena and competitive leaderboards.
|
|
39
|
+
|
|
40
|
+
<ServiceIcons services={['database', 'auth']} />
|
|
41
|
+
</Card>
|
|
42
|
+
|
|
43
|
+
<Card title="Line Connect Race" icon="route" href="https://line-connect-race.vercel.app/">
|
|
44
|
+
<div style={{maxHeight: '192px', height: '192px', overflow: 'hidden', borderRadius: '0.5rem', pointerEvents: 'none'}}>
|
|
45
|
+
<img src="/showcase/line-connect-race.png" style={{width: '100%', height: '192px', objectFit: 'cover', pointerEvents: 'none'}} alt="Line Connect Race showcase" />
|
|
46
|
+
</div>
|
|
47
|
+
|
|
48
|
+
Interactive line-drawing racing game with real-time multiplayer and competitive gameplay.
|
|
49
|
+
|
|
50
|
+
<ServiceIcons services={['database', 'auth', 'functions']} />
|
|
51
|
+
</Card>
|
|
52
|
+
</CardGroup>
|
|
@@ -1,22 +1,22 @@
|
|
|
1
|
-
<CodeGroup>
|
|
2
|
-
```bash npm
|
|
3
|
-
npm install @insforge/sdk@latest
|
|
4
|
-
```
|
|
5
|
-
|
|
6
|
-
```bash yarn
|
|
7
|
-
yarn add @insforge/sdk@latest
|
|
8
|
-
```
|
|
9
|
-
|
|
10
|
-
```bash pnpm
|
|
11
|
-
pnpm add @insforge/sdk@latest
|
|
12
|
-
```
|
|
13
|
-
</CodeGroup>
|
|
14
|
-
|
|
15
|
-
```javascript
|
|
16
|
-
import { createClient } from '@insforge/sdk';
|
|
17
|
-
|
|
18
|
-
const insforge = createClient({
|
|
19
|
-
baseUrl: 'https://your-app.us-east.insforge.app',
|
|
20
|
-
anonKey: 'your-anon-key' // Optional: for public/unauthenticated requests
|
|
21
|
-
});
|
|
1
|
+
<CodeGroup>
|
|
2
|
+
```bash npm
|
|
3
|
+
npm install @insforge/sdk@latest
|
|
4
|
+
```
|
|
5
|
+
|
|
6
|
+
```bash yarn
|
|
7
|
+
yarn add @insforge/sdk@latest
|
|
8
|
+
```
|
|
9
|
+
|
|
10
|
+
```bash pnpm
|
|
11
|
+
pnpm add @insforge/sdk@latest
|
|
12
|
+
```
|
|
13
|
+
</CodeGroup>
|
|
14
|
+
|
|
15
|
+
```javascript
|
|
16
|
+
import { createClient } from '@insforge/sdk';
|
|
17
|
+
|
|
18
|
+
const insforge = createClient({
|
|
19
|
+
baseUrl: 'https://your-app.us-east.insforge.app',
|
|
20
|
+
anonKey: 'your-anon-key' // Optional: for public/unauthenticated requests
|
|
21
|
+
});
|
|
22
22
|
```
|
|
@@ -1,27 +1,27 @@
|
|
|
1
|
-
export const ServiceIcons = ({ services }) => {
|
|
2
|
-
const iconMap = {
|
|
3
|
-
database: { src: '/images/icons/database.svg', title: 'Database' },
|
|
4
|
-
auth: { src: '/images/icons/auth.svg', title: 'Authentication' },
|
|
5
|
-
storage: { src: '/images/icons/storage.svg', title: 'Storage' },
|
|
6
|
-
ai: { src: '/images/icons/ai.svg', title: 'AI Services' },
|
|
7
|
-
functions: { src: '/images/icons/function.svg', title: 'Edge Functions' }
|
|
8
|
-
};
|
|
9
|
-
|
|
10
|
-
return (
|
|
11
|
-
<div className="flex gap-2 mt-3" style={{pointerEvents: 'none'}}>
|
|
12
|
-
{services.map((service) => {
|
|
13
|
-
const icon = iconMap[service.toLowerCase()];
|
|
14
|
-
return icon ? (
|
|
15
|
-
<img
|
|
16
|
-
key={service}
|
|
17
|
-
src={icon.src}
|
|
18
|
-
alt={icon.title}
|
|
19
|
-
title={icon.title}
|
|
20
|
-
className="w-5 h-5 opacity-70"
|
|
21
|
-
style={{pointerEvents: 'none'}}
|
|
22
|
-
/>
|
|
23
|
-
) : null;
|
|
24
|
-
})}
|
|
25
|
-
</div>
|
|
26
|
-
);
|
|
27
|
-
};
|
|
1
|
+
export const ServiceIcons = ({ services }) => {
|
|
2
|
+
const iconMap = {
|
|
3
|
+
database: { src: '/images/icons/database.svg', title: 'Database' },
|
|
4
|
+
auth: { src: '/images/icons/auth.svg', title: 'Authentication' },
|
|
5
|
+
storage: { src: '/images/icons/storage.svg', title: 'Storage' },
|
|
6
|
+
ai: { src: '/images/icons/ai.svg', title: 'AI Services' },
|
|
7
|
+
functions: { src: '/images/icons/function.svg', title: 'Edge Functions' }
|
|
8
|
+
};
|
|
9
|
+
|
|
10
|
+
return (
|
|
11
|
+
<div className="flex gap-2 mt-3" style={{pointerEvents: 'none'}}>
|
|
12
|
+
{services.map((service) => {
|
|
13
|
+
const icon = iconMap[service.toLowerCase()];
|
|
14
|
+
return icon ? (
|
|
15
|
+
<img
|
|
16
|
+
key={service}
|
|
17
|
+
src={icon.src}
|
|
18
|
+
alt={icon.title}
|
|
19
|
+
title={icon.title}
|
|
20
|
+
className="w-5 h-5 opacity-70"
|
|
21
|
+
style={{pointerEvents: 'none'}}
|
|
22
|
+
/>
|
|
23
|
+
) : null;
|
|
24
|
+
})}
|
|
25
|
+
</div>
|
|
26
|
+
);
|
|
27
|
+
};
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "VS Code Extension"
|
|
3
|
+
description: "Connect your InsForge projects to AI coding assistants and install MCP with one click."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
## Overview
|
|
7
|
+
|
|
8
|
+
The InsForge VS Code extension:
|
|
9
|
+
|
|
10
|
+
- Logs you in to InsForge (OAuth + PKCE)
|
|
11
|
+
- Lets you pick an org/project
|
|
12
|
+
- Installs InsForge MCP for your AI client
|
|
13
|
+
|
|
14
|
+
It launches the MCP installer (`npx @insforge/install`) with your project’s API key and API base URL.
|
|
15
|
+
|
|
16
|
+
## Links
|
|
17
|
+
|
|
18
|
+
- [VS Code Marketplace](https://marketplace.visualstudio.com/items?itemName=InsForge.insforge)
|
|
19
|
+
- [Open VSX](https://open-vsx.org/extension/InsForge/insforge)
|
|
20
|
+
|
|
21
|
+
## Install
|
|
22
|
+
|
|
23
|
+
1. Open VS Code
|
|
24
|
+
2. Go to **Extensions**
|
|
25
|
+
3. Search for **InsForge**
|
|
26
|
+
4. Install the extension published by **insforge**
|
|
27
|
+
|
|
28
|
+
## Use the extension
|
|
29
|
+
|
|
30
|
+
<Steps>
|
|
31
|
+
<Step title="Open the InsForge panel">
|
|
32
|
+
Click the **InsForge** icon in the Activity Bar (left sidebar).
|
|
33
|
+
</Step>
|
|
34
|
+
|
|
35
|
+
<Step title="Login">
|
|
36
|
+
Click **Login with InsForge** and complete the login flow in your browser.
|
|
37
|
+
|
|
38
|
+
<Note>The callback is <code>http://127.0.0.1:54321/callback</code>.</Note>
|
|
39
|
+
</Step>
|
|
40
|
+
|
|
41
|
+
<Step title="Select a project">
|
|
42
|
+
Pick an organization and project from the InsForge tree view, or run <code>InsForge: Select Project</code> from the Command Palette.
|
|
43
|
+
</Step>
|
|
44
|
+
|
|
45
|
+
<Step title="Install MCP">
|
|
46
|
+
Run <code>InsForge: Install MCP</code> (or right-click a project and choose **Install MCP**), then pick the AI client you want to configure.
|
|
47
|
+
|
|
48
|
+
The installer runs in a VS Code terminal.
|
|
49
|
+
</Step>
|
|
50
|
+
</Steps>
|
|
51
|
+
|
|
52
|
+
## Supported AI clients
|
|
53
|
+
|
|
54
|
+
The extension supports the following MCP “clients” (the value passed to `@insforge/install`):
|
|
55
|
+
|
|
56
|
+
| Client | Typical config location |
|
|
57
|
+
|---|---|
|
|
58
|
+
| `cursor` | `~/.cursor/mcp.json` |
|
|
59
|
+
| `claude-code` | `.mcp.json` in your workspace (project-local) |
|
|
60
|
+
| `copilot` | `.vscode/mcp.json` in your workspace (project-local) |
|
|
61
|
+
| `windsurf` | `~/.codeium/windsurf/` |
|
|
62
|
+
| `cline` | Cline VS Code extension config |
|
|
63
|
+
| `roocode` | Roo Code VS Code extension config |
|
|
64
|
+
| `codex` | OpenAI Codex CLI config |
|
|
65
|
+
| `trae` | Trae IDE config |
|
|
66
|
+
| `qoder` | Qoder IDE config |
|
|
67
|
+
|
|
68
|
+
If your client isn’t listed, run the installer manually (see <a href="/quickstart">Quickstart</a>).
|
|
69
|
+
|
|
70
|
+
## Notes
|
|
71
|
+
|
|
72
|
+
- **Project-local installs**: `claude-code` and `copilot` require an open workspace folder.
|
|
73
|
+
- **Port in use**: free up `54321` and retry login.
|
|
74
|
+
|