insforge 1.2.10 → 1.3.0
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 +44 -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 +28 -28
- package/auth/src/lib/broadcastService.ts +117 -115
- package/auth/src/pages/SignInPage.tsx +60 -57
- package/auth/src/pages/SignUpPage.tsx +60 -57
- package/auth/tsconfig.json +32 -32
- package/auth/tsconfig.node.json +11 -11
- package/backend/package.json +78 -75
- package/backend/src/api/routes/ai/index.routes.ts +3 -3
- package/backend/src/api/routes/auth/index.routes.ts +667 -570
- package/backend/src/api/routes/auth/oauth.routes.ts +473 -448
- package/backend/src/api/routes/database/advance.routes.ts +37 -16
- package/backend/src/api/routes/database/index.routes.ts +78 -1
- package/backend/src/api/routes/database/records.routes.ts +10 -10
- package/backend/src/api/routes/database/tables.routes.ts +0 -14
- package/backend/src/api/routes/docs/index.routes.ts +75 -76
- package/backend/src/api/routes/email/index.routes.ts +35 -0
- package/backend/src/api/routes/functions/index.routes.ts +18 -12
- package/backend/src/api/routes/metadata/index.routes.ts +12 -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/infra/database/database.manager.ts +14 -1
- 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/realtime/realtime.manager.ts +246 -0
- package/backend/src/infra/realtime/webhook-sender.ts +82 -0
- package/backend/src/infra/security/token.manager.ts +219 -125
- package/backend/src/infra/socket/socket.manager.ts +198 -64
- package/backend/src/providers/ai/openrouter.provider.ts +12 -9
- 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 +317 -284
- package/backend/src/services/ai/ai-model.service.ts +5 -5
- package/backend/src/services/ai/chat-completion.service.ts +4 -4
- package/backend/src/services/ai/image-generation.service.ts +3 -3
- package/backend/src/services/auth/auth.service.ts +14 -0
- package/backend/src/services/database/database-table.service.ts +0 -9
- package/backend/src/services/database/database.service.ts +127 -0
- package/backend/src/services/email/email.service.ts +5 -7
- 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/types/auth.ts +11 -0
- package/backend/src/types/realtime.ts +18 -0
- package/backend/src/types/socket.ts +7 -31
- package/backend/src/utils/cookies.ts +35 -0
- package/backend/src/utils/s3-config-loader.ts +64 -0
- package/backend/src/utils/seed.ts +301 -298
- package/backend/src/utils/sql-parser.ts +90 -0
- 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-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-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/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 +270 -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/real-time.md +269 -0
- package/docs/changelog.mdx +119 -67
- package/docs/core-concepts/ai/architecture.mdx +372 -372
- package/docs/core-concepts/ai/sdk.mdx +213 -213
- package/docs/core-concepts/authentication/architecture.mdx +278 -278
- package/docs/core-concepts/authentication/sdk.mdx +414 -414
- package/docs/core-concepts/authentication/ui-components/customization.mdx +529 -529
- package/docs/core-concepts/authentication/ui-components/nextjs.mdx +221 -221
- package/docs/core-concepts/authentication/ui-components/react-router.mdx +184 -184
- package/docs/core-concepts/authentication/ui-components/react.mdx +129 -129
- package/docs/core-concepts/database/architecture.mdx +255 -255
- package/docs/core-concepts/database/sdk.mdx +382 -382
- package/docs/core-concepts/email/architecture.mdx +101 -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 +184 -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 +232 -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.svg +19 -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/mcp-installer.png +0 -0
- package/docs/images/changelog/dec-2025/realtime-module.jpg +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/insforge-instructions-sdk.md +89 -88
- package/docs/introduction.mdx +45 -45
- package/docs/logo/dark.svg +22 -22
- package/docs/logo/light.svg +20 -20
- package/docs/partnership.mdx +651 -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/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/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/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/cursor.svg +20 -20
- 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/linkedin.svg +3 -3
- package/frontend/src/assets/logos/openai.svg +10 -10
- 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/layout/AppHeader.tsx +9 -10
- package/frontend/src/features/auth/components/OAuthConfigDialog.tsx +1 -0
- package/frontend/src/features/auth/components/UsersDataGrid.tsx +6 -0
- package/frontend/src/features/auth/helpers.tsx +8 -0
- package/frontend/src/features/auth/{page → pages}/UsersPage.tsx +0 -28
- 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/hooks/useDatabase.ts +66 -0
- package/frontend/src/features/database/hooks/useTables.ts +32 -28
- package/frontend/src/features/database/index.ts +1 -0
- package/frontend/src/features/database/{page → pages}/FunctionsPage.tsx +29 -37
- package/frontend/src/features/database/{page → pages}/IndexesPage.tsx +35 -47
- package/frontend/src/features/database/{page → pages}/PoliciesPage.tsx +43 -54
- package/frontend/src/features/database/{page → pages}/TablesPage.tsx +0 -42
- package/frontend/src/features/database/{page → pages}/TriggersPage.tsx +35 -47
- package/frontend/src/features/database/services/advance.service.ts +0 -26
- package/frontend/src/features/database/services/database.service.ts +55 -0
- package/frontend/src/features/database/services/table.service.ts +0 -6
- package/frontend/src/features/functions/{page → pages}/FunctionsPage.tsx +21 -44
- package/frontend/src/features/functions/{page → pages}/SecretsPage.tsx +11 -9
- package/frontend/src/features/logs/hooks/useMcpUsage.ts +13 -66
- 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/storage/{page → pages}/StoragePage.tsx +1 -29
- package/frontend/src/features/visualizer/components/SchemaVisualizer.tsx +3 -3
- package/frontend/src/features/visualizer/{page → pages}/VisualizerPage.tsx +1 -35
- package/frontend/src/lib/contexts/SocketContext.tsx +119 -75
- package/frontend/src/lib/routing/AppRoutes.tsx +35 -20
- package/frontend/src/lib/utils/cloudMessaging.ts +1 -1
- package/frontend/src/lib/utils/menuItems.ts +24 -0
- package/frontend/src/lib/utils/utils.ts +14 -1
- package/frontend/tsconfig.json +25 -25
- package/frontend/tsconfig.node.json +9 -9
- package/functions/deno.json +24 -24
- package/functions/server.ts +315 -315
- 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 +715 -715
- package/openapi/auth.yaml +1244 -1244
- package/openapi/email.yaml +158 -0
- package/openapi/functions.yaml +475 -475
- package/openapi/health.yaml +29 -29
- package/openapi/logs.yaml +223 -223
- package/openapi/metadata.yaml +177 -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 +463 -463
- package/package.json +97 -97
- package/shared-schemas/package.json +31 -31
- package/shared-schemas/src/ai.schema.ts +63 -59
- package/shared-schemas/src/auth-api.schema.ts +352 -339
- package/shared-schemas/src/auth.schema.ts +1 -1
- package/shared-schemas/src/database-api.schema.ts +32 -1
- package/shared-schemas/src/database.schema.ts +39 -0
- package/shared-schemas/src/docs.schema.ts +26 -0
- package/shared-schemas/src/email-api.schema.ts +30 -0
- package/shared-schemas/src/index.ts +4 -0
- package/shared-schemas/src/metadata.schema.ts +9 -0
- package/shared-schemas/src/realtime-api.schema.ts +111 -0
- package/shared-schemas/src/realtime.schema.ts +143 -0
- package/shared-schemas/tsconfig.json +21 -21
- package/tsconfig.json +7 -7
- package/zeabur/README.md +13 -13
- package/zeabur/template.yml +1032 -1032
- package/.cursor/rules/cursor-rules.mdc +0 -94
- 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/ai/{page → pages}/AIPage.tsx +0 -0
- /package/frontend/src/features/auth/{page → pages}/AuthMethodsPage.tsx +0 -0
- /package/frontend/src/features/auth/{page → pages}/ConfigurationPage.tsx +0 -0
- /package/frontend/src/features/dashboard/{page → pages}/DashboardPage.tsx +0 -0
- /package/frontend/src/features/database/{page → pages}/SQLEditorPage.tsx +0 -0
- /package/frontend/src/features/database/{page → pages}/TemplatesPage.tsx +0 -0
- /package/frontend/src/features/login/{page → pages}/CloudLoginPage.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}/LogsPage.tsx +0 -0
- /package/frontend/src/features/logs/{page → pages}/MCPLogsPage.tsx +0 -0
|
@@ -1,94 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
description: Instructions building apps with MCP
|
|
3
|
-
globs: *
|
|
4
|
-
alwaysApply: true
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
# InsForge SDK Documentation - Overview
|
|
8
|
-
|
|
9
|
-
## What is InsForge?
|
|
10
|
-
|
|
11
|
-
Backend-as-a-service (BaaS) platform providing:
|
|
12
|
-
|
|
13
|
-
- **Database**: PostgreSQL with PostgREST API
|
|
14
|
-
- **Authentication**: Email/password + OAuth (Google, GitHub)
|
|
15
|
-
- **Storage**: File upload/download
|
|
16
|
-
- **AI**: Chat completions and image generation (OpenAI-compatible)
|
|
17
|
-
- **Functions**: Serverless function deployment
|
|
18
|
-
|
|
19
|
-
## Installation
|
|
20
|
-
|
|
21
|
-
### 🚨 CRITICAL: Follow these steps in order
|
|
22
|
-
|
|
23
|
-
### Step 1: Download Template
|
|
24
|
-
|
|
25
|
-
Use the `download-template` MCP tool to create a new project with your backend URL and anon key pre-configured.
|
|
26
|
-
|
|
27
|
-
### Step 2: Install SDK
|
|
28
|
-
|
|
29
|
-
```bash
|
|
30
|
-
npm install @insforge/sdk@latest
|
|
31
|
-
```
|
|
32
|
-
|
|
33
|
-
### Step 3: Create SDK Client
|
|
34
|
-
|
|
35
|
-
You must create a client instance using `createClient()` with your base URL and anon key:
|
|
36
|
-
|
|
37
|
-
```javascript
|
|
38
|
-
import { createClient } from '@insforge/sdk';
|
|
39
|
-
|
|
40
|
-
const client = createClient({
|
|
41
|
-
baseUrl: 'https://your-app.region.insforge.app', // Your InsForge backend URL
|
|
42
|
-
anonKey: 'your-anon-key-here' // Get this from backend metadata
|
|
43
|
-
});
|
|
44
|
-
|
|
45
|
-
```
|
|
46
|
-
|
|
47
|
-
**API BASE URL**: Your API base URL is `https://your-app.region.insforge.app`.
|
|
48
|
-
|
|
49
|
-
## Getting Detailed Documentation
|
|
50
|
-
|
|
51
|
-
### 🚨 CRITICAL: Always Fetch Documentation Before Writing Code
|
|
52
|
-
|
|
53
|
-
Before writing or editing any InsForge integration code, you **MUST** call the `fetch-docs` MCP tool to get the latest SDK documentation. This ensures you have accurate, up-to-date implementation patterns.
|
|
54
|
-
|
|
55
|
-
### Use the InsForge `fetch-docs` MCP tool to get specific SDK documentation:
|
|
56
|
-
|
|
57
|
-
Available documentation types:
|
|
58
|
-
|
|
59
|
-
- `"instructions"` - Essential backend setup (START HERE)
|
|
60
|
-
- `"db-sdk"` - Database operations with SDK
|
|
61
|
-
- **Authentication** - Choose based on implementation:
|
|
62
|
-
- `"auth-components-react"` - Frontend auth for React+Vite (singlepage App)
|
|
63
|
-
- `"auth-components-react-router"` - Frontend auth for React(Vite+React Router) (Multipage App)
|
|
64
|
-
- `"storage-sdk"` - File storage operations
|
|
65
|
-
- `"functions-sdk"` - Serverless functions invocation
|
|
66
|
-
- `"ai-integration-sdk"` - AI chat and image generation
|
|
67
|
-
|
|
68
|
-
## When to Use SDK vs MCP Tools
|
|
69
|
-
|
|
70
|
-
### Always SDK for Application Logic:
|
|
71
|
-
|
|
72
|
-
- Authentication (register, login, logout, profiles)
|
|
73
|
-
- Database CRUD (select, insert, update, delete)
|
|
74
|
-
- Storage operations (upload, download files)
|
|
75
|
-
- AI operations (chat, image generation)
|
|
76
|
-
- Serverless function invocation
|
|
77
|
-
|
|
78
|
-
### Use MCP Tools for Infrastructure:
|
|
79
|
-
|
|
80
|
-
- Project scaffolding (`download-template`) - Download starter templates with InsForge integration
|
|
81
|
-
- Backend setup and metadata (`get-backend-metadata`)
|
|
82
|
-
- Database schema management (`run-raw-sql`, `get-table-schema`)
|
|
83
|
-
- Storage bucket creation (`create-bucket`, `list-buckets`, `delete-bucket`)
|
|
84
|
-
- Serverless function deployment (`create-function`, `update-function`, `delete-function`)
|
|
85
|
-
|
|
86
|
-
## Important Notes
|
|
87
|
-
|
|
88
|
-
- Use the right framework-specific component package for production-ready auth
|
|
89
|
-
- SDK returns `{data, error}` structure for all operations
|
|
90
|
-
- Database inserts require array format: `[{...}]`
|
|
91
|
-
- Serverless functions have single endpoint (no subpaths)
|
|
92
|
-
- Storage: Upload files to buckets, store URLs in database
|
|
93
|
-
- AI operations are OpenAI-compatible
|
|
94
|
-
- **EXTRA IMPORTANT**: Use Tailwind CSS 3.4 (do not upgrade to v4). Lock these dependencies in `package.json`
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import { useQuery } from '@tanstack/react-query';
|
|
2
|
-
import { advanceService } from '../services/advance.service';
|
|
3
|
-
|
|
4
|
-
export function useFullMetadata(enabled = false) {
|
|
5
|
-
const { data, isLoading, error, refetch } = useQuery({
|
|
6
|
-
queryKey: ['database', 'metadata', 'full'],
|
|
7
|
-
queryFn: () => advanceService.getDatabaseFullMetadata(),
|
|
8
|
-
staleTime: 5 * 60 * 1000, // Cache for 5 minutes
|
|
9
|
-
enabled,
|
|
10
|
-
});
|
|
11
|
-
|
|
12
|
-
return {
|
|
13
|
-
data,
|
|
14
|
-
isLoading,
|
|
15
|
-
error,
|
|
16
|
-
refetch,
|
|
17
|
-
};
|
|
18
|
-
}
|
package/test-gemini.sh
DELETED
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
#!/bin/bash
|
|
2
|
-
|
|
3
|
-
API_KEY="ik_fff113df777823a0518b8067e4f4f49bb11661904af26b9fda2ac80892b0558c"
|
|
4
|
-
BASE_URL="http://localhost:7130/api"
|
|
5
|
-
|
|
6
|
-
echo "🧪 Testing Gemini 2.5 Flash Image Model"
|
|
7
|
-
echo "========================================"
|
|
8
|
-
echo ""
|
|
9
|
-
|
|
10
|
-
# Test 1: Make an AI request
|
|
11
|
-
echo "1️⃣ Sending chat request to Gemini 2.5 Flash..."
|
|
12
|
-
curl -X POST "$BASE_URL/ai/chat/completion" \
|
|
13
|
-
-H "Content-Type: application/json" \
|
|
14
|
-
-H "x-api-key: $API_KEY" \
|
|
15
|
-
-d '{
|
|
16
|
-
"model": "google/gemini-2.5-flash",
|
|
17
|
-
"messages": [
|
|
18
|
-
{
|
|
19
|
-
"role": "user",
|
|
20
|
-
"content": "Hello! Just testing the AI integration with a short message."
|
|
21
|
-
}
|
|
22
|
-
]
|
|
23
|
-
}' \
|
|
24
|
-
-s | jq '{text: .text, usage: .metadata.usage}'
|
|
25
|
-
|
|
26
|
-
echo ""
|
|
27
|
-
sleep 2
|
|
28
|
-
|
|
29
|
-
# Test 2: Check usage stats
|
|
30
|
-
echo "2️⃣ Checking usage stats after AI request..."
|
|
31
|
-
curl -X GET "$BASE_URL/usage/stats?start_date=2025-11-19T00:00:00Z&end_date=2025-11-20T23:59:59Z" \
|
|
32
|
-
-s | jq '.ai_usage_by_model'
|
|
33
|
-
|
|
34
|
-
echo ""
|
|
35
|
-
echo "✅ Test completed!"
|
package/test-usage-admin.sh
DELETED
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
#!/bin/bash
|
|
2
|
-
|
|
3
|
-
# Test InsForge Usage API with admin authentication
|
|
4
|
-
BASE_URL="http://localhost:7130/api"
|
|
5
|
-
|
|
6
|
-
echo "🧪 Testing InsForge Usage API (Admin Auth)"
|
|
7
|
-
echo "==========================================="
|
|
8
|
-
echo ""
|
|
9
|
-
|
|
10
|
-
# Step 1: Login as admin to get token
|
|
11
|
-
echo "1️⃣ Logging in as admin..."
|
|
12
|
-
LOGIN_RESPONSE=$(curl -X POST "$BASE_URL/auth/login" \
|
|
13
|
-
-H "Content-Type: application/json" \
|
|
14
|
-
-d '{
|
|
15
|
-
"email": "admin@insforge.local",
|
|
16
|
-
"password": "admin123"
|
|
17
|
-
}' \
|
|
18
|
-
-s)
|
|
19
|
-
|
|
20
|
-
TOKEN=$(echo $LOGIN_RESPONSE | jq -r '.access_token // empty')
|
|
21
|
-
|
|
22
|
-
if [ -z "$TOKEN" ]; then
|
|
23
|
-
echo "❌ Login failed. Response:"
|
|
24
|
-
echo $LOGIN_RESPONSE | jq '.'
|
|
25
|
-
exit 1
|
|
26
|
-
fi
|
|
27
|
-
|
|
28
|
-
echo "✅ Logged in successfully"
|
|
29
|
-
echo ""
|
|
30
|
-
|
|
31
|
-
# Step 2: Test AI usage summary
|
|
32
|
-
echo "2️⃣ Fetching AI usage summary..."
|
|
33
|
-
curl -X GET "$BASE_URL/ai/usage/summary" \
|
|
34
|
-
-H "Authorization: Bearer $TOKEN" \
|
|
35
|
-
-s | jq '.'
|
|
36
|
-
|
|
37
|
-
echo ""
|
|
38
|
-
|
|
39
|
-
# Step 3: Test AI usage records
|
|
40
|
-
echo "3️⃣ Fetching AI usage records..."
|
|
41
|
-
curl -X GET "$BASE_URL/ai/usage?limit=5&offset=0" \
|
|
42
|
-
-H "Authorization: Bearer $TOKEN" \
|
|
43
|
-
-s | jq '.'
|
|
44
|
-
|
|
45
|
-
echo ""
|
|
46
|
-
|
|
47
|
-
# Step 4: Test MCP usage
|
|
48
|
-
echo "4️⃣ Fetching MCP usage..."
|
|
49
|
-
curl -X GET "$BASE_URL/usage/mcp?limit=5" \
|
|
50
|
-
-H "Authorization: Bearer $TOKEN" \
|
|
51
|
-
-s | jq '.'
|
|
52
|
-
|
|
53
|
-
echo ""
|
|
54
|
-
|
|
55
|
-
echo "✅ All admin tests completed!"
|
|
56
|
-
echo ""
|
|
57
|
-
echo "Note: /api/usage/stats requires cloud backend auth (not admin)"
|
package/test-usage.sh
DELETED
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
#!/bin/bash
|
|
2
|
-
|
|
3
|
-
# Test InsForge Usage API
|
|
4
|
-
# This script tests the usage tracking endpoints
|
|
5
|
-
|
|
6
|
-
BASE_URL="http://localhost:7130/api"
|
|
7
|
-
API_KEY="ik_fff113df777823a0518b8067e4f4f49bb11661904af26b9fda2ac80892b0558c"
|
|
8
|
-
|
|
9
|
-
echo "🧪 Testing InsForge Usage API"
|
|
10
|
-
echo "================================"
|
|
11
|
-
echo ""
|
|
12
|
-
|
|
13
|
-
# Test 1: Record MCP Usage
|
|
14
|
-
echo "1️⃣ Recording MCP usage..."
|
|
15
|
-
curl -X POST "$BASE_URL/usage/mcp" \
|
|
16
|
-
-H "Content-Type: application/json" \
|
|
17
|
-
-H "x-api-key: $API_KEY" \
|
|
18
|
-
-d '{
|
|
19
|
-
"tool_name": "create-table",
|
|
20
|
-
"success": true
|
|
21
|
-
}' \
|
|
22
|
-
-s | jq '.'
|
|
23
|
-
|
|
24
|
-
echo ""
|
|
25
|
-
sleep 1
|
|
26
|
-
|
|
27
|
-
# Test 2: Get MCP Usage Records
|
|
28
|
-
echo "2️⃣ Fetching recent MCP usage..."
|
|
29
|
-
curl -X GET "$BASE_URL/usage/mcp?limit=5" \
|
|
30
|
-
-H "x-api-key: $API_KEY" \
|
|
31
|
-
-s | jq '.'
|
|
32
|
-
|
|
33
|
-
echo ""
|
|
34
|
-
sleep 1
|
|
35
|
-
|
|
36
|
-
# Test 3: Get Usage Stats (requires cloud backend auth - will fail for local)
|
|
37
|
-
echo "3️⃣ Fetching usage stats (requires cloud backend auth)..."
|
|
38
|
-
START_DATE=$(date -u -v-7d +"%Y-%m-%dT%H:%M:%SZ" 2>/dev/null || date -u -d "7 days ago" +"%Y-%m-%dT%H:%M:%SZ")
|
|
39
|
-
END_DATE=$(date -u +"%Y-%m-%dT%H:%M:%SZ")
|
|
40
|
-
|
|
41
|
-
echo " Date range: $START_DATE to $END_DATE"
|
|
42
|
-
echo " Note: This endpoint requires cloud backend authentication"
|
|
43
|
-
echo ""
|
|
44
|
-
|
|
45
|
-
curl -X GET "$BASE_URL/usage/stats?start_date=$START_DATE&end_date=$END_DATE" \
|
|
46
|
-
-H "x-api-key: $API_KEY" \
|
|
47
|
-
-s | jq '.'
|
|
48
|
-
|
|
49
|
-
echo ""
|
|
50
|
-
echo "✅ Tests completed!"
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|