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.
- package/CHANGELOG.md +2 -0
- package/auth/package.json +5 -3
- package/auth/src/lib/broadcastService.ts +115 -117
- package/auth/src/lib/insforge.ts +8 -0
- package/auth/src/main.tsx +2 -4
- package/auth/src/pages/SignInPage.tsx +60 -60
- package/auth/src/pages/SignUpPage.tsx +60 -60
- package/auth/src/pages/VerifyEmailPage.tsx +18 -0
- package/auth/tsconfig.json +2 -1
- package/backend/package.json +10 -6
- 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 +85 -32
- package/backend/src/api/routes/auth/oauth.routes.ts +11 -6
- package/backend/src/api/routes/database/index.routes.ts +2 -0
- package/backend/src/api/routes/database/records.routes.ts +39 -175
- package/backend/src/api/routes/database/rpc.routes.ts +69 -0
- package/backend/src/api/routes/deployments/index.routes.ts +192 -0
- package/backend/src/api/routes/docs/index.routes.ts +3 -2
- package/backend/src/api/routes/email/index.routes.ts +35 -35
- package/backend/src/api/routes/functions/index.routes.ts +3 -3
- package/backend/src/api/routes/metadata/index.routes.ts +26 -0
- package/backend/src/api/routes/webhooks/index.routes.ts +109 -0
- package/backend/src/infra/database/database.manager.ts +0 -10
- 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/security/token.manager.ts +1 -4
- package/backend/src/providers/ai/openrouter.provider.ts +12 -3
- 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/server.ts +19 -7
- 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/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 +134 -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 -85
- 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/functions/function.service.ts +61 -41
- package/backend/src/services/logs/audit.service.ts +10 -10
- 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 +5 -1
- package/backend/src/types/database.ts +2 -0
- package/backend/src/types/deployments.ts +33 -0
- package/backend/src/types/storage.ts +1 -1
- package/backend/src/types/webhooks.ts +45 -0
- package/backend/src/utils/cookies.ts +34 -35
- package/backend/src/utils/environment.ts +0 -14
- package/backend/src/utils/s3-config-loader.ts +64 -64
- package/backend/src/utils/seed.ts +334 -301
- package/backend/src/utils/sql-parser.ts +126 -0
- package/backend/src/utils/utils.ts +114 -114
- package/backend/src/utils/validations.ts +10 -10
- package/backend/tests/local/test-rpc.sh +141 -0
- package/backend/tests/local/test-secrets.sh +1 -1
- package/backend/tests/manual/test-ai-model-plugins.sh +258 -0
- package/backend/tests/manual/test-rawsql-modes.sh +24 -24
- package/backend/tests/unit/database-advance.test.ts +326 -0
- package/backend/tests/unit/helpers.test.ts +2 -2
- package/claude-plugin/skills/insforge-schema-patterns/SKILL.md +13 -10
- package/docker-compose.prod.yml +1 -1
- package/docker-compose.yml +1 -1
- package/docs/agent-docs/deployment.md +79 -0
- package/docs/changelog.mdx +165 -72
- package/docs/core-concepts/ai/architecture.mdx +1 -23
- package/docs/core-concepts/ai/sdk.mdx +26 -1
- package/docs/core-concepts/authentication/architecture.mdx +6 -8
- package/docs/core-concepts/authentication/sdk.mdx +387 -91
- package/docs/core-concepts/authentication/ui-components/customization.mdx +460 -256
- package/docs/core-concepts/authentication/ui-components/nextjs.mdx +50 -24
- package/docs/core-concepts/authentication/ui-components/react-router.mdx +18 -19
- package/docs/core-concepts/authentication/ui-components/react.mdx +26 -19
- package/docs/core-concepts/database/architecture.mdx +58 -21
- package/docs/core-concepts/database/pgvector.mdx +138 -0
- package/docs/core-concepts/database/sdk.mdx +17 -17
- package/docs/core-concepts/deployments/architecture.mdx +152 -0
- package/docs/core-concepts/email/architecture.mdx +4 -2
- package/docs/core-concepts/functions/architecture.mdx +1 -1
- package/docs/core-concepts/functions/sdk.mdx +0 -1
- package/docs/core-concepts/realtime/architecture.mdx +1 -1
- package/docs/core-concepts/storage/architecture.mdx +1 -1
- package/docs/core-concepts/storage/sdk.mdx +25 -25
- package/docs/docs.json +14 -6
- package/docs/favicon.png +0 -0
- package/docs/favicon.svg +3 -18
- package/docs/images/changelog/dec-2025/apple-oauth.mp4 +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/realtime2.png +0 -0
- 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 +7 -3
- package/docs/introduction.mdx +9 -8
- package/docs/mcp-setup.mdx +332 -0
- package/docs/oauth-server.mdx +563 -0
- package/docs/partnership.mdx +79 -10
- package/docs/quickstart.mdx +1 -1
- package/docs/vscode-extension.mdx +74 -0
- package/eslint.config.js +1 -0
- package/examples/response-examples.md +1 -1
- package/frontend/package.json +1 -1
- package/frontend/src/App.tsx +8 -3
- package/frontend/src/assets/logos/antigravity.svg +1 -0
- package/frontend/src/assets/logos/copilot.svg +10 -0
- package/frontend/src/assets/logos/deepseek.svg +139 -0
- package/frontend/src/assets/logos/kiro.svg +9 -0
- package/frontend/src/assets/logos/qoder.svg +4 -0
- package/frontend/src/assets/logos/qwen.svg +15 -0
- 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 +4 -27
- 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/pages/AIPage.tsx +166 -166
- package/frontend/src/features/auth/components/AuthPreview.tsx +96 -96
- package/frontend/src/features/auth/components/UsersDataGrid.tsx +55 -31
- package/frontend/src/features/auth/components/index.ts +5 -5
- package/frontend/src/features/auth/pages/AuthMethodsPage.tsx +275 -275
- package/frontend/src/features/dashboard/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/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/useRawSQL.ts +3 -2
- package/frontend/src/features/database/hooks/useTables.ts +5 -7
- package/frontend/src/features/database/pages/FunctionsPage.tsx +0 -5
- package/frontend/src/features/database/pages/IndexesPage.tsx +0 -5
- package/frontend/src/features/database/pages/PoliciesPage.tsx +0 -5
- package/frontend/src/features/database/pages/SQLEditorPage.tsx +2 -2
- package/frontend/src/features/database/pages/TriggersPage.tsx +0 -5
- package/frontend/src/features/database/services/advance.service.ts +1 -15
- package/frontend/src/features/database/services/record.service.ts +4 -20
- package/frontend/src/features/database/services/table.service.ts +1 -4
- 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/pages/SecretsPage.tsx +118 -118
- 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/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/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/settings/pages/SettingsPage.tsx +349 -0
- package/frontend/src/features/visualizer/components/AuthNode.tsx +4 -4
- package/frontend/src/features/visualizer/components/SchemaVisualizer.tsx +21 -8
- package/frontend/src/features/visualizer/pages/VisualizerPage.tsx +10 -1
- package/frontend/src/index.css +249 -249
- package/frontend/src/lib/contexts/ModalContext.tsx +35 -0
- 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 -99
- package/frontend/src/lib/services/metadata.service.ts +20 -3
- package/frontend/src/lib/utils/menuItems.ts +223 -207
- package/frontend/src/lib/utils/utils.ts +196 -196
- package/functions/server.ts +315 -315
- package/functions/worker-template.js +1 -1
- package/openapi/ai.yaml +115 -5
- package/openapi/auth.yaml +97 -17
- package/openapi/logs.yaml +0 -2
- package/openapi/metadata.yaml +0 -2
- package/openapi/records.yaml +21 -21
- package/openapi/tables.yaml +1 -2
- package/package.json +1 -1
- package/shared-schemas/package.json +1 -1
- package/shared-schemas/src/ai-api.schema.ts +251 -143
- package/shared-schemas/src/ai.schema.ts +63 -63
- package/shared-schemas/src/auth-api.schema.ts +34 -6
- package/shared-schemas/src/auth.schema.ts +17 -10
- package/shared-schemas/src/cloud-events.schema.ts +26 -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 +8 -2
- package/shared-schemas/src/email-api.schema.ts +30 -30
- 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 -18
- package/shared-schemas/src/metadata.schema.ts +30 -4
- package/shared-schemas/src/secrets-api.schema.ts +44 -0
- package/shared-schemas/src/secrets.schema.ts +15 -0
- package/zeabur/README.md +13 -0
- package/zeabur/template.yml +20 -51
- package/backend/src/types/profile.ts +0 -55
- package/frontend/src/components/ProjectInfoModal.tsx +0 -128
package/openapi/ai.yaml
CHANGED
|
@@ -405,7 +405,7 @@ components:
|
|
|
405
405
|
example: openai/gpt-4
|
|
406
406
|
messages:
|
|
407
407
|
type: array
|
|
408
|
-
description: Array of messages for conversation
|
|
408
|
+
description: Array of messages for conversation (supports text, images, audio, and files/PDFs)
|
|
409
409
|
items:
|
|
410
410
|
$ref: '#/components/schemas/ChatMessage'
|
|
411
411
|
stream:
|
|
@@ -428,15 +428,25 @@ components:
|
|
|
428
428
|
systemPrompt:
|
|
429
429
|
type: string
|
|
430
430
|
description: System prompt to guide model behavior
|
|
431
|
+
webSearch:
|
|
432
|
+
$ref: '#/components/schemas/WebSearchPlugin'
|
|
433
|
+
fileParser:
|
|
434
|
+
$ref: '#/components/schemas/FileParserPlugin'
|
|
435
|
+
thinking:
|
|
436
|
+
type: boolean
|
|
437
|
+
description: Enable extended reasoning capabilities (appends :thinking to model ID if not already present). Not every model supports this, only works with Anthropic models with the :thinking suffix.
|
|
431
438
|
|
|
432
439
|
ChatCompletionResponse:
|
|
433
440
|
type: object
|
|
434
441
|
properties:
|
|
435
|
-
|
|
436
|
-
type: boolean
|
|
437
|
-
content:
|
|
442
|
+
text:
|
|
438
443
|
type: string
|
|
439
|
-
description: AI model response
|
|
444
|
+
description: AI model response content
|
|
445
|
+
annotations:
|
|
446
|
+
type: array
|
|
447
|
+
description: URL citations from web search results (present when webSearch is enabled)
|
|
448
|
+
items:
|
|
449
|
+
$ref: '#/components/schemas/UrlCitationAnnotation'
|
|
440
450
|
metadata:
|
|
441
451
|
type: object
|
|
442
452
|
properties:
|
|
@@ -455,6 +465,106 @@ components:
|
|
|
455
465
|
totalTokens:
|
|
456
466
|
type: integer
|
|
457
467
|
|
|
468
|
+
WebSearchPlugin:
|
|
469
|
+
type: object
|
|
470
|
+
required:
|
|
471
|
+
- enabled
|
|
472
|
+
properties:
|
|
473
|
+
enabled:
|
|
474
|
+
type: boolean
|
|
475
|
+
description: Enable web search integration
|
|
476
|
+
engine:
|
|
477
|
+
type: string
|
|
478
|
+
enum: [native, exa]
|
|
479
|
+
description: |
|
|
480
|
+
Search engine selection:
|
|
481
|
+
- native: Use provider's built-in web search (OpenAI, Anthropic, Perplexity, xAI)
|
|
482
|
+
- exa: Use Exa's search API
|
|
483
|
+
- undefined: Auto-select (native if available, otherwise Exa)
|
|
484
|
+
maxResults:
|
|
485
|
+
type: integer
|
|
486
|
+
minimum: 1
|
|
487
|
+
maximum: 10
|
|
488
|
+
default: 5
|
|
489
|
+
description: Maximum number of search results to include
|
|
490
|
+
searchPrompt:
|
|
491
|
+
type: string
|
|
492
|
+
description: Custom prompt for attaching search results to the message
|
|
493
|
+
|
|
494
|
+
FileParserPlugin:
|
|
495
|
+
type: object
|
|
496
|
+
required:
|
|
497
|
+
- enabled
|
|
498
|
+
properties:
|
|
499
|
+
enabled:
|
|
500
|
+
type: boolean
|
|
501
|
+
description: Enable file parsing for PDFs in messages
|
|
502
|
+
pdf:
|
|
503
|
+
type: object
|
|
504
|
+
properties:
|
|
505
|
+
engine:
|
|
506
|
+
type: string
|
|
507
|
+
enum: [pdf-text, mistral-ocr, native]
|
|
508
|
+
description: |
|
|
509
|
+
PDF processing engine:
|
|
510
|
+
- pdf-text: Best for well-structured PDFs with clear text content (Free)
|
|
511
|
+
- mistral-ocr: Best for scanned documents or PDFs with images ($2 per 1,000 pages)
|
|
512
|
+
- native: Only for models with native file support (charged as input tokens)
|
|
513
|
+
If not specified, defaults to native if available, otherwise mistral-ocr
|
|
514
|
+
|
|
515
|
+
FileContent:
|
|
516
|
+
type: object
|
|
517
|
+
description: File content for PDFs and other documents
|
|
518
|
+
required:
|
|
519
|
+
- type
|
|
520
|
+
- file
|
|
521
|
+
properties:
|
|
522
|
+
type:
|
|
523
|
+
type: string
|
|
524
|
+
enum: [file]
|
|
525
|
+
file:
|
|
526
|
+
type: object
|
|
527
|
+
required:
|
|
528
|
+
- filename
|
|
529
|
+
- file_data
|
|
530
|
+
properties:
|
|
531
|
+
filename:
|
|
532
|
+
type: string
|
|
533
|
+
description: Filename with extension (e.g., "document.pdf")
|
|
534
|
+
example: document.pdf
|
|
535
|
+
file_data:
|
|
536
|
+
type: string
|
|
537
|
+
description: |
|
|
538
|
+
File data can be:
|
|
539
|
+
- Public URL: "https://example.com/document.pdf"
|
|
540
|
+
- Base64 data URL: "data:application/pdf;base64,..."
|
|
541
|
+
example: "https://example.com/document.pdf"
|
|
542
|
+
|
|
543
|
+
UrlCitationAnnotation:
|
|
544
|
+
type: object
|
|
545
|
+
properties:
|
|
546
|
+
type:
|
|
547
|
+
type: string
|
|
548
|
+
enum: [url_citation]
|
|
549
|
+
urlCitation:
|
|
550
|
+
type: object
|
|
551
|
+
properties:
|
|
552
|
+
url:
|
|
553
|
+
type: string
|
|
554
|
+
description: URL of the cited source
|
|
555
|
+
title:
|
|
556
|
+
type: string
|
|
557
|
+
description: Title of the cited page
|
|
558
|
+
content:
|
|
559
|
+
type: string
|
|
560
|
+
description: Relevant content snippet from the source
|
|
561
|
+
startIndex:
|
|
562
|
+
type: integer
|
|
563
|
+
description: Start character index in response text where citation applies
|
|
564
|
+
endIndex:
|
|
565
|
+
type: integer
|
|
566
|
+
description: End character index in response text where citation applies
|
|
567
|
+
|
|
458
568
|
ImageGenerationOptions:
|
|
459
569
|
type: object
|
|
460
570
|
required:
|
package/openapi/auth.yaml
CHANGED
|
@@ -26,7 +26,7 @@ paths:
|
|
|
26
26
|
properties:
|
|
27
27
|
provider:
|
|
28
28
|
type: string
|
|
29
|
-
enum: [google, github, discord, linkedin, facebook, microsoft]
|
|
29
|
+
enum: [google, github, discord, linkedin, facebook, instagram, tiktok, apple, x, spotify, microsoft]
|
|
30
30
|
useSharedKey:
|
|
31
31
|
type: boolean
|
|
32
32
|
requireEmailVerification:
|
|
@@ -60,6 +60,71 @@ paths:
|
|
|
60
60
|
enum: [code, link]
|
|
61
61
|
description: Method for password reset (code = 6-digit OTP + exchange flow, link = magic link)
|
|
62
62
|
|
|
63
|
+
/api/auth/profiles/current:
|
|
64
|
+
patch:
|
|
65
|
+
summary: Update current user's profile
|
|
66
|
+
description: Update the profile of the currently authenticated user
|
|
67
|
+
tags:
|
|
68
|
+
- Client
|
|
69
|
+
security:
|
|
70
|
+
- bearerAuth: []
|
|
71
|
+
requestBody:
|
|
72
|
+
required: true
|
|
73
|
+
content:
|
|
74
|
+
application/json:
|
|
75
|
+
schema:
|
|
76
|
+
type: object
|
|
77
|
+
required:
|
|
78
|
+
- profile
|
|
79
|
+
properties:
|
|
80
|
+
profile:
|
|
81
|
+
type: object
|
|
82
|
+
additionalProperties: true
|
|
83
|
+
description: Profile data (name, avatar_url, and any custom fields)
|
|
84
|
+
properties:
|
|
85
|
+
name:
|
|
86
|
+
type: string
|
|
87
|
+
avatar_url:
|
|
88
|
+
type: string
|
|
89
|
+
format: uri
|
|
90
|
+
responses:
|
|
91
|
+
'200':
|
|
92
|
+
description: Profile updated successfully
|
|
93
|
+
content:
|
|
94
|
+
application/json:
|
|
95
|
+
schema:
|
|
96
|
+
$ref: '#/components/schemas/ProfileResponse'
|
|
97
|
+
'400':
|
|
98
|
+
description: Invalid request
|
|
99
|
+
'401':
|
|
100
|
+
description: Unauthorized - authentication required
|
|
101
|
+
|
|
102
|
+
/api/auth/profiles/{userId}:
|
|
103
|
+
get:
|
|
104
|
+
summary: Get user profile by ID
|
|
105
|
+
description: Get public profile information for a user by their ID (public endpoint)
|
|
106
|
+
tags:
|
|
107
|
+
- Client
|
|
108
|
+
parameters:
|
|
109
|
+
- name: userId
|
|
110
|
+
in: path
|
|
111
|
+
required: true
|
|
112
|
+
schema:
|
|
113
|
+
type: string
|
|
114
|
+
format: uuid
|
|
115
|
+
description: User ID
|
|
116
|
+
responses:
|
|
117
|
+
'200':
|
|
118
|
+
description: User profile
|
|
119
|
+
content:
|
|
120
|
+
application/json:
|
|
121
|
+
schema:
|
|
122
|
+
$ref: '#/components/schemas/ProfileResponse'
|
|
123
|
+
'400':
|
|
124
|
+
description: Invalid user ID format
|
|
125
|
+
'404':
|
|
126
|
+
description: User not found
|
|
127
|
+
|
|
63
128
|
/api/auth/config:
|
|
64
129
|
get:
|
|
65
130
|
summary: Get authentication configuration
|
|
@@ -847,7 +912,7 @@ paths:
|
|
|
847
912
|
properties:
|
|
848
913
|
provider:
|
|
849
914
|
type: string
|
|
850
|
-
enum: [google, github, discord, linkedin, facebook, microsoft]
|
|
915
|
+
enum: [google, github, discord, linkedin, facebook, instagram, tiktok, apple, x, spotify, microsoft]
|
|
851
916
|
clientId:
|
|
852
917
|
type: string
|
|
853
918
|
clientSecret:
|
|
@@ -888,7 +953,7 @@ paths:
|
|
|
888
953
|
required: true
|
|
889
954
|
schema:
|
|
890
955
|
type: string
|
|
891
|
-
enum: [google, github, discord, linkedin, facebook, microsoft]
|
|
956
|
+
enum: [google, github, discord, linkedin, facebook, instagram, tiktok, apple, x, spotify, microsoft]
|
|
892
957
|
responses:
|
|
893
958
|
'200':
|
|
894
959
|
description: OAuth configuration
|
|
@@ -921,7 +986,7 @@ paths:
|
|
|
921
986
|
required: true
|
|
922
987
|
schema:
|
|
923
988
|
type: string
|
|
924
|
-
enum: [google, github, discord, linkedin, facebook, microsoft]
|
|
989
|
+
enum: [google, github, discord, linkedin, facebook, instagram, tiktok, apple, x, spotify, microsoft]
|
|
925
990
|
requestBody:
|
|
926
991
|
required: true
|
|
927
992
|
content:
|
|
@@ -970,7 +1035,7 @@ paths:
|
|
|
970
1035
|
required: true
|
|
971
1036
|
schema:
|
|
972
1037
|
type: string
|
|
973
|
-
enum: [google, github, discord, linkedin, facebook, microsoft]
|
|
1038
|
+
enum: [google, github, discord, linkedin, facebook, instagram, tiktok, apple, x, spotify, microsoft]
|
|
974
1039
|
responses:
|
|
975
1040
|
'200':
|
|
976
1041
|
description: Configuration deleted
|
|
@@ -1002,7 +1067,7 @@ paths:
|
|
|
1002
1067
|
required: true
|
|
1003
1068
|
schema:
|
|
1004
1069
|
type: string
|
|
1005
|
-
enum: [google, github, discord, linkedin, facebook, microsoft]
|
|
1070
|
+
enum: [google, github, discord, linkedin, facebook, instagram, tiktok, apple, x, spotify, microsoft]
|
|
1006
1071
|
- name: redirect_uri
|
|
1007
1072
|
in: query
|
|
1008
1073
|
required: true
|
|
@@ -1075,7 +1140,7 @@ paths:
|
|
|
1075
1140
|
required: true
|
|
1076
1141
|
schema:
|
|
1077
1142
|
type: string
|
|
1078
|
-
enum: [google, github, discord, linkedin, facebook, microsoft]
|
|
1143
|
+
enum: [google, github, discord, linkedin, facebook, instagram, tiktok, apple, x, spotify, microsoft]
|
|
1079
1144
|
- name: code
|
|
1080
1145
|
in: query
|
|
1081
1146
|
schema:
|
|
@@ -1123,19 +1188,15 @@ components:
|
|
|
1123
1188
|
email:
|
|
1124
1189
|
type: string
|
|
1125
1190
|
format: email
|
|
1126
|
-
|
|
1127
|
-
type:
|
|
1191
|
+
metadata:
|
|
1192
|
+
type: object
|
|
1193
|
+
additionalProperties: true
|
|
1128
1194
|
emailVerified:
|
|
1129
1195
|
type: boolean
|
|
1130
|
-
|
|
1196
|
+
providers:
|
|
1131
1197
|
type: array
|
|
1132
1198
|
items:
|
|
1133
|
-
type:
|
|
1134
|
-
properties:
|
|
1135
|
-
provider:
|
|
1136
|
-
type: string
|
|
1137
|
-
providerType:
|
|
1138
|
-
type: string
|
|
1199
|
+
type: string
|
|
1139
1200
|
createdAt:
|
|
1140
1201
|
type: string
|
|
1141
1202
|
format: date-time
|
|
@@ -1143,6 +1204,25 @@ components:
|
|
|
1143
1204
|
type: string
|
|
1144
1205
|
format: date-time
|
|
1145
1206
|
|
|
1207
|
+
ProfileResponse:
|
|
1208
|
+
type: object
|
|
1209
|
+
properties:
|
|
1210
|
+
id:
|
|
1211
|
+
type: string
|
|
1212
|
+
format: uuid
|
|
1213
|
+
description: User ID
|
|
1214
|
+
profile:
|
|
1215
|
+
type: object
|
|
1216
|
+
nullable: true
|
|
1217
|
+
additionalProperties: true
|
|
1218
|
+
description: User profile data (can contain custom fields)
|
|
1219
|
+
properties:
|
|
1220
|
+
name:
|
|
1221
|
+
type: string
|
|
1222
|
+
avatar_url:
|
|
1223
|
+
type: string
|
|
1224
|
+
format: uri
|
|
1225
|
+
|
|
1146
1226
|
OAuthConfig:
|
|
1147
1227
|
type: object
|
|
1148
1228
|
properties:
|
|
@@ -1151,7 +1231,7 @@ components:
|
|
|
1151
1231
|
format: uuid
|
|
1152
1232
|
provider:
|
|
1153
1233
|
type: string
|
|
1154
|
-
enum: [google, github, discord, linkedin, facebook, microsoft]
|
|
1234
|
+
enum: [google, github, discord, linkedin, facebook, instagram, tiktok, apple, x, spotify, microsoft]
|
|
1155
1235
|
clientId:
|
|
1156
1236
|
type: string
|
|
1157
1237
|
nullable: true
|
package/openapi/logs.yaml
CHANGED
package/openapi/metadata.yaml
CHANGED
package/openapi/records.yaml
CHANGED
|
@@ -21,7 +21,7 @@ paths:
|
|
|
21
21
|
schema:
|
|
22
22
|
type: string
|
|
23
23
|
description: Name of the table to query
|
|
24
|
-
example:
|
|
24
|
+
example: posts
|
|
25
25
|
- name: limit
|
|
26
26
|
in: query
|
|
27
27
|
schema:
|
|
@@ -48,7 +48,7 @@ paths:
|
|
|
48
48
|
schema:
|
|
49
49
|
type: string
|
|
50
50
|
description: Comma-separated list of columns to return
|
|
51
|
-
example: id,
|
|
51
|
+
example: id,title,content
|
|
52
52
|
# PostgREST-style filters
|
|
53
53
|
- name: field
|
|
54
54
|
in: query
|
|
@@ -77,13 +77,13 @@ paths:
|
|
|
77
77
|
additionalProperties: true
|
|
78
78
|
example:
|
|
79
79
|
- id: "248373e1-0aea-45ce-8844-5ef259203749"
|
|
80
|
-
|
|
81
|
-
|
|
80
|
+
title: "Getting Started with InsForge"
|
|
81
|
+
content: "This is a guide to help you get started..."
|
|
82
82
|
createdAt: "2025-07-18T05:37:24.338Z"
|
|
83
83
|
updatedAt: "2025-07-18T05:37:24.338Z"
|
|
84
84
|
- id: "348373e1-0aea-45ce-8844-5ef259203750"
|
|
85
|
-
|
|
86
|
-
|
|
85
|
+
title: "Advanced Database Queries"
|
|
86
|
+
content: "Learn how to write complex queries..."
|
|
87
87
|
createdAt: "2025-07-19T08:15:10.123Z"
|
|
88
88
|
updatedAt: "2025-07-19T08:15:10.123Z"
|
|
89
89
|
'404':
|
|
@@ -124,7 +124,7 @@ paths:
|
|
|
124
124
|
schema:
|
|
125
125
|
type: string
|
|
126
126
|
description: Name of the table
|
|
127
|
-
example:
|
|
127
|
+
example: posts
|
|
128
128
|
- name: Prefer
|
|
129
129
|
in: header
|
|
130
130
|
schema:
|
|
@@ -142,9 +142,9 @@ paths:
|
|
|
142
142
|
additionalProperties: true
|
|
143
143
|
minItems: 1
|
|
144
144
|
example:
|
|
145
|
-
-
|
|
146
|
-
|
|
147
|
-
|
|
145
|
+
- title: "My First Post"
|
|
146
|
+
content: "Hello world! This is my first post."
|
|
147
|
+
published: true
|
|
148
148
|
responses:
|
|
149
149
|
'201':
|
|
150
150
|
description: Records created
|
|
@@ -163,9 +163,9 @@ paths:
|
|
|
163
163
|
summary: "Response with Prefer: return=representation"
|
|
164
164
|
value:
|
|
165
165
|
- id: "248373e1-0aea-45ce-8844-5ef259203749"
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
166
|
+
title: "My First Post"
|
|
167
|
+
content: "Hello world! This is my first post."
|
|
168
|
+
published: true
|
|
169
169
|
createdAt: "2025-07-18T05:37:24.338Z"
|
|
170
170
|
updatedAt: "2025-07-18T05:37:24.338Z"
|
|
171
171
|
'400':
|
|
@@ -176,7 +176,7 @@ paths:
|
|
|
176
176
|
$ref: '#/components/schemas/ErrorResponse'
|
|
177
177
|
example:
|
|
178
178
|
error: "VALIDATION_ERROR"
|
|
179
|
-
message: "Invalid field type: expected
|
|
179
|
+
message: "Invalid field type: expected boolean for 'published'"
|
|
180
180
|
statusCode: 400
|
|
181
181
|
nextActions: "Ensure field types match the table schema"
|
|
182
182
|
'404':
|
|
@@ -206,7 +206,7 @@ paths:
|
|
|
206
206
|
schema:
|
|
207
207
|
type: string
|
|
208
208
|
description: Name of the table
|
|
209
|
-
example:
|
|
209
|
+
example: posts
|
|
210
210
|
- name: id
|
|
211
211
|
in: query
|
|
212
212
|
schema:
|
|
@@ -227,8 +227,8 @@ paths:
|
|
|
227
227
|
type: object
|
|
228
228
|
additionalProperties: true
|
|
229
229
|
example:
|
|
230
|
-
|
|
231
|
-
|
|
230
|
+
title: "Updated Post Title"
|
|
231
|
+
content: "This content has been updated."
|
|
232
232
|
responses:
|
|
233
233
|
'200':
|
|
234
234
|
description: Records updated
|
|
@@ -247,8 +247,8 @@ paths:
|
|
|
247
247
|
summary: "Response with Prefer: return=representation"
|
|
248
248
|
value:
|
|
249
249
|
- id: "123e4567-e89b-12d3-a456-426614174000"
|
|
250
|
-
|
|
251
|
-
|
|
250
|
+
title: "Updated Post Title"
|
|
251
|
+
content: "This content has been updated."
|
|
252
252
|
createdAt: "2025-01-01T00:00:00Z"
|
|
253
253
|
updatedAt: "2025-01-21T11:00:00Z"
|
|
254
254
|
'404':
|
|
@@ -287,7 +287,7 @@ paths:
|
|
|
287
287
|
schema:
|
|
288
288
|
type: string
|
|
289
289
|
description: Name of the table
|
|
290
|
-
example:
|
|
290
|
+
example: posts
|
|
291
291
|
- name: id
|
|
292
292
|
in: query
|
|
293
293
|
schema:
|
|
@@ -317,7 +317,7 @@ paths:
|
|
|
317
317
|
summary: Records were deleted
|
|
318
318
|
value:
|
|
319
319
|
- id: "123e4567-e89b-12d3-a456-426614174000"
|
|
320
|
-
|
|
320
|
+
title: "Deleted Post"
|
|
321
321
|
createdAt: "2025-01-01T00:00:00Z"
|
|
322
322
|
updatedAt: "2025-01-21T11:00:00Z"
|
|
323
323
|
no_records:
|
package/openapi/tables.yaml
CHANGED
|
@@ -22,7 +22,6 @@ paths:
|
|
|
22
22
|
items:
|
|
23
23
|
type: string
|
|
24
24
|
example:
|
|
25
|
-
- "users"
|
|
26
25
|
- "posts"
|
|
27
26
|
- "comments"
|
|
28
27
|
- "categories"
|
|
@@ -191,7 +190,7 @@ paths:
|
|
|
191
190
|
default: null
|
|
192
191
|
isPrimaryKey: false
|
|
193
192
|
foreignKey:
|
|
194
|
-
table: "users"
|
|
193
|
+
table: "auth.users"
|
|
195
194
|
column: "id"
|
|
196
195
|
on_delete: "CASCADE"
|
|
197
196
|
'404':
|
package/package.json
CHANGED