Commit Graph

115 Commits

Author SHA1 Message Date
44e4b45f50 Migrate frontend to shadcn/ui + add Gitea branch panel in endpoint editor
shadcn/ui migration:
- Installed shadcn components: Button, Input, Label, Card, Badge, Checkbox,
  Switch, Tabs, Dialog, Select, Tooltip, Toaster (sonner)
- Migrated all pages: Login, Dashboard, Settings, Endpoints, EndpointEditor,
  Folders, ApiKeys, Logs
- Replaced react-hot-toast with sonner
- Added CSS variables for theming
- Updated tailwind.config.js for shadcn

Gitea branch panel in EndpointEditor:
- GiteaBranchPanel component: branch selector, save to branch, compare
  with main, create PR, merge, commit history
- New backend endpoints: getEndpointFileContent, commitEndpoint,
  getEndpointCommits, getEndpointFromBranch, commitEndpointToBranch
- Frontend giteaApi: extended with endpoint-specific methods

Fixes:
- Fixed sync-all PostgreSQL-compatible UPDATE LIMIT
- .gitignore: added tmp/

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-24 00:16:15 +03:00
59ea0eb9c2 Fix sync-all: use subquery for PostgreSQL-compatible UPDATE LIMIT
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-23 23:35:04 +03:00
36a1f26ca7 Fix Sync All to update gitea_commit_sha in endpoint_versions
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-23 23:20:02 +03:00
8632e651bf Add Gitea integration + ESLint setup
Phase 3: Gitea Integration
- Migration 012: app_settings table + gitea_commit_sha on endpoint_versions
- SettingsService: encrypted token storage (AES-256-GCM from JWT_SECRET)
- GiteaService: full REST API client — repo management, file CRUD,
  branches, commit history, diff/compare, pull requests, sync all
- giteaController + routes: 15 API endpoints for settings, branches,
  commits, PRs, endpoint info, sync
- VersionService hooks: auto-sync to Gitea on publish/draft (non-blocking)
- Frontend: Gitea tab in Settings (connection, sync status, branch mgmt),
  Gitea panel in EndpointEditor (file link, last commit SHA)
- docker-compose.gitea.yml: optional companion Gitea container
- Cache fix: index.html served with no-cache for instant deploys

ESLint Setup
- Backend: eslint 8 + @typescript-eslint configured
- Frontend: eslint 8 + @typescript-eslint + react-hooks + react-refresh
- Fixed 15 lint issues: unused imports, require statements, escapes,
  Function type, empty catch blocks
- Added npm run lint / lint:fix scripts

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-23 22:45:45 +03:00
801d0cce5f Add test/prod environments and endpoint versioning
Phase 1: Test/Prod Database Configurations
- Migration 010: test_* columns on databases table, environment column on request_logs
- DatabasePoolManager: dual-pool strategy (prod + test), getPool(id, env) with fallback
- SqlExecutor, ScriptExecutor, IsolatedScriptExecutor, AqlExecutor: environment param threaded through all execution paths
- dynamicApiController: X-Environment header detection, environment in logging
- databaseManagementController: CRUD for test credentials, testConnection with ?env=test
- Frontend: test env form in DatabaseModal, env toggle in EndpointEditor test panel

Phase 2: Endpoint Versioning
- Migration 011: endpoint_versions table with full snapshots, backfill v1 for existing endpoints
- VersionService: createVersion, saveDraft, publishVersion, rollbackToVersion, getHistory
- endpointController: auto-versioning on update, 6 new version management handlers
- dynamicApiController: draft serving when environment=test and draft exists
- Frontend: Save Draft button, version history panel with publish/rollback actions

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-23 21:04:11 +03:00
c918f34595 modified: cli 2026-03-14 17:44:44 +03:00
c047319afe modified: cli 2026-03-14 17:42:54 +03:00
46396c6fc4 Fix TypeScript errors in syncController — cast Date arguments to String
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-14 17:11:36 +03:00
dcdd6fee6d modified: cli 2026-03-14 17:10:11 +03:00
4ae281209f modified: backend/src/server.ts 2026-03-14 16:33:30 +03:00
f0cbe99cb0 modified: frontend/src/pages/EndpointEditor.tsx
modified:   frontend/src/pages/Folders.tsx
2026-03-13 18:23:21 +03:00
727c6765f8 modified: backend/src/config/dynamicSwagger.ts
modified:   backend/src/controllers/endpointController.ts
	new file:   backend/src/migrations/009_add_response_schema.sql
	modified:   backend/src/types/index.ts
	modified:   frontend/src/pages/EndpointEditor.tsx
	modified:   frontend/src/types/index.ts
2026-03-13 15:22:32 +03:00
b6b7064a41 modified: backend/src/server.ts 2026-03-11 11:11:09 +03:00
49f262d8ae Fix script execution logs being lost
- Add ScriptExecutionError class that preserves captured logs/queries
- IsolatedScriptExecutor: throw ScriptExecutionError with accumulated
  logs instead of plain Error on script failure
- ScriptExecutor (Python): same fix for Python execution errors
- testEndpoint: return captured logs/queries on script errors
- dynamicApiController: correctly extract scriptResult.result instead
  of stuffing entire IsolatedExecutionResult into rows; include logs
  in detailed_response output

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-02 02:52:51 +03:00
3a3c87164d Fix export endpoint error with Cyrillic filenames
Content-Disposition header cannot contain non-ASCII characters.
Use RFC 5987 encoding (filename*=UTF-8'') for proper Cyrillic
filename support, with ASCII-only fallback in the base filename.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-02 02:25:11 +03:00
e8aab43a13 Merge branch 'main' of ssh://gitea.esh-service.ru:2222/public/api_builder 2026-03-01 19:32:37 +03:00
659ebf71ea modified: backend/src/types/index.ts
modified:   frontend/src/App.tsx
	deleted:    frontend/src/components/EndpointModal.tsx
	new file:   frontend/src/pages/EndpointEditor.tsx
	modified:   frontend/src/pages/Endpoints.tsx
	modified:   frontend/src/pages/Folders.tsx
	modified:   frontend/src/types/index.ts
2026-03-01 19:32:23 +03:00
75d4c0b45d Merge pull request 'Переработано окно эндпоинта, добавлены элементы дебага, добавлена возможность сохранять и загружать конфигурацию эндпоинта, добавлено …' (#1) from addDebuggingInEndpointsWindow into main
Reviewed-on: #1
2026-03-01 16:01:57 +03:00
6766cd81a1 Переработано окно эндпоинта, добавлены элементы дебага, добавлена возможность сохранять и загружать конфигурацию эндпоинта, добавлено отображение ошибок при загрузке конфигурации. Исправлены мелкие баги. 2026-03-01 16:00:26 +03:00
7e2e0103fe new file: todo 2026-01-28 01:22:57 +03:00
610bfb24a0 modified: backend/src/server.ts 2026-01-28 01:17:50 +03:00
fd08e2c3e6 modified: frontend/src/components/SqlEditor.tsx 2026-01-28 01:08:53 +03:00
fba8069b13 modified: frontend/src/components/SqlEditor.tsx 2026-01-28 01:04:22 +03:00
a306477d5d modified: frontend/src/pages/DatabaseSchema.tsx 2026-01-28 00:58:12 +03:00
4e1044a808 modified: frontend/src/pages/DatabaseSchema.tsx 2026-01-28 00:55:05 +03:00
47e998fc52 modified: frontend/src/pages/DatabaseSchema.tsx 2026-01-28 00:54:45 +03:00
49938815fe modified: frontend/src/pages/DatabaseSchema.tsx 2026-01-28 00:47:55 +03:00
553202c1b2 modified: frontend/src/pages/DatabaseSchema.tsx 2026-01-28 00:39:58 +03:00
981b958c41 modified: frontend/src/pages/DatabaseSchema.tsx
modified:   frontend/src/pages/DatabaseSchema.tsx
2026-01-28 00:39:49 +03:00
9293199d28 modified: frontend/src/pages/DatabaseSchema.tsx 2026-01-28 00:33:18 +03:00
e9e8081882 modified: frontend/src/pages/DatabaseSchema.tsx 2026-01-28 00:32:28 +03:00
27c5eceaf1 modified: frontend/src/pages/DatabaseSchema.tsx 2026-01-28 00:26:05 +03:00
c438c4fc83 modified: frontend/src/pages/DatabaseSchema.tsx 2026-01-28 00:21:09 +03:00
39b1b0ed5e modified: frontend/src/pages/DatabaseSchema.tsx 2026-01-28 00:17:44 +03:00
5d3515f791 modified: docker-compose.external-db.yml 2026-01-28 00:05:12 +03:00
c5b4799dcb modified: backend/src/controllers/schemaController.ts
modified:   frontend/src/pages/DatabaseSchema.tsx
2026-01-28 00:04:01 +03:00
4fb92470ce modified: backend/src/controllers/databaseManagementController.ts
modified:   backend/src/controllers/schemaController.ts
	modified:   frontend/src/pages/DatabaseSchema.tsx
2026-01-28 00:00:15 +03:00
c780979b57 modified: backend/src/controllers/schemaController.ts
modified:   frontend/package.json
	modified:   frontend/src/pages/DatabaseSchema.tsx
2026-01-27 23:49:47 +03:00
d8dffb5ee1 modified: frontend/src/pages/DatabaseSchema.tsx 2026-01-27 23:44:33 +03:00
21b4d8e22b modified: Dockerfile 2026-01-27 23:43:38 +03:00
89b5a86bda new file: backend/src/controllers/schemaController.ts
new file:   backend/src/migrations/008_add_database_schemas.sql
	modified:   backend/src/routes/sqlInterface.ts
	modified:   frontend/package.json
	modified:   frontend/src/App.tsx
	modified:   frontend/src/components/Sidebar.tsx
	new file:   frontend/src/pages/DatabaseSchema.tsx
	modified:   frontend/src/services/api.ts
2026-01-27 23:42:25 +03:00
a873e18d35 modified: frontend/src/pages/SqlInterface.tsx 2026-01-27 23:33:33 +03:00
971e6d3758 modified: frontend/src/components/SqlEditor.tsx 2026-01-27 23:29:03 +03:00
45f039546b modified: backend/src/server.ts
modified:   frontend/src/App.tsx
	modified:   frontend/src/components/Sidebar.tsx
	modified:   frontend/src/services/api.ts
2026-01-27 23:27:35 +03:00
dae878089d modified: frontend/src/components/SqlEditor.tsx
modified:   frontend/src/pages/SqlInterface.tsx
2026-01-27 23:25:56 +03:00
6b507425aa modified: frontend/src/pages/SqlInterface.tsx 2026-01-27 23:23:44 +03:00
eeebcdac57 modified: frontend/src/pages/SqlInterface.tsx 2026-01-27 23:14:44 +03:00
767307857e modified: backend/.env.example
new file:   backend/src/controllers/sqlInterfaceController.ts
	new file:   backend/src/routes/sqlInterface.ts
	modified:   backend/src/server.ts
	modified:   docker-compose.external-db.yml
	modified:   frontend/src/App.tsx
	modified:   frontend/src/components/Sidebar.tsx
	new file:   frontend/src/pages/SqlInterface.tsx
	modified:   frontend/src/services/api.ts
2026-01-27 23:13:44 +03:00
35f81a1663 modified: backend/src/migrations/003_add_scripting.sql
modified:   backend/src/migrations/005_add_aql_support.sql
2025-12-18 15:03:09 +03:00
c879d9e98c modified: Dockerfile
modified:   backend/src/config/database.ts
2025-12-18 15:00:06 +03:00