diff --git a/.claude-plugin/marketplace.json b/.claude-plugin/marketplace.json index d52437f..d4c857d 100644 --- a/.claude-plugin/marketplace.json +++ b/.claude-plugin/marketplace.json @@ -13,7 +13,7 @@ "name": "gcore-fastedge", "source": "./plugins/gcore-fastedge", "description": "Build, deploy, and manage serverless edge applications on Gcore FastEdge", - "version": "0.2.7" + "version": "0.2.8" } ] } diff --git a/plugins/gcore-fastedge-codex/.codex-plugin/plugin.json b/plugins/gcore-fastedge-codex/.codex-plugin/plugin.json index fd0f10b..0a39ab6 100644 --- a/plugins/gcore-fastedge-codex/.codex-plugin/plugin.json +++ b/plugins/gcore-fastedge-codex/.codex-plugin/plugin.json @@ -1,6 +1,6 @@ { "name": "gcore-fastedge", - "version": "0.2.7", + "version": "0.2.8", "description": "Codex plugin for Gcore FastEdge with local indexed docs and MCP-backed build/deploy workflows.", "author": { "name": "Gcore", diff --git a/plugins/gcore-fastedge-codex/docs-index.json b/plugins/gcore-fastedge-codex/docs-index.json index 023dde4..2d1bf15 100644 --- a/plugins/gcore-fastedge-codex/docs-index.json +++ b/plugins/gcore-fastedge-codex/docs-index.json @@ -1,9 +1,9 @@ { "schema_version": "1.0.0", - "generated_at": "2026-08-20T15:14:07.293Z", + "generated_at": "2026-08-26T10:20:38.772Z", "source": { "repo": "fastedge-plugin", - "commit": "deaf77e", + "commit": "0ec6d97", "pipeline": "sync-reference-docs" }, "topics": [ @@ -43628,7 +43628,7 @@ { "id": "test-framework", "title": "FastEdge Test Framework API", - "description": "auto-updated: true sources: - id: fastedge-test ref: main commit: 61497eca6ead033ac810165bc1e20e1d6dd4678f updated: 2026-08-17 -->", + "description": "auto-updated: true sources: - id: fastedge-test ref: main commit: 9c4ab58dddbffed3e446ab10e9249f07edc6165f updated: 2026-08-25 -->", "path": "plugins/gcore-fastedge-codex/skills/test/reference/test-framework.md", "skill": "test", "category": "testing", @@ -43647,9 +43647,9 @@ "ref", "main", "commit", - "61497eca6ead033ac810165bc1e20e1d6dd4678f", + "9c4ab58dddbffed3e446ab10e9249f07edc6165f", "updated", - "2026-08-17", + "2026-08-25", "fastedge", "framework", "api", @@ -43660,7 +43660,7 @@ "runner", "apps." ], - "content_sha256": "e125a779b09525ed8048d05e09b9979c2ceea4c1c90bbc4a988c1ce98a9fcda1", + "content_sha256": "d77a91d86abcea723b0f5729a8460588983d33123a8d247523b1e5cf5a7fecbc", "sections": [ { "id": "test-framework#introduction", @@ -43677,9 +43677,9 @@ "ref", "main", "commit", - "61497eca6ead033ac810165bc1e20e1d6dd4678f", + "9c4ab58dddbffed3e446ab10e9249f07edc6165f", "updated", - "2026-08-17", + "2026-08-25", "fastedge", "test", "framework", @@ -43820,7 +43820,10 @@ "runnerconfig", "dotenv", "enabled", - "boolean" + "boolean", + "load", + ".env", + "bef" ] }, { @@ -44044,7 +44047,7 @@ { "id": "vscode-debugger", "title": "FastEdge Visual Debugger", - "description": "auto-updated: true sources: - id: fastedge-test ref: main commit: 61497eca6ead033ac810165bc1e20e1d6dd4678f updated: 2026-08-17 -->", + "description": "auto-updated: true sources: - id: fastedge-test ref: main commit: 9c4ab58dddbffed3e446ab10e9249f07edc6165f updated: 2026-08-25 -->", "path": "plugins/gcore-fastedge-codex/skills/test/reference/vscode-debugger.md", "skill": "test", "category": "testing", @@ -44060,9 +44063,9 @@ "ref", "main", "commit", - "61497eca6ead033ac810165bc1e20e1d6dd4678f", + "9c4ab58dddbffed3e446ab10e9249f07edc6165f", "updated", - "2026-08-17", + "2026-08-25", "fastedge", "visual", "debugger", @@ -44074,7 +44077,7 @@ "gcoredev", "same" ], - "content_sha256": "627d9b7700750420febf279bfb44b3cea3ea212faa41800f660fa1f74a5965e5", + "content_sha256": "5a505cc6e1aefcfc489819d1e757d797bd6e10328b985575fec1e9c9cc53df71", "sections": [ { "id": "vscode-debugger#introduction", @@ -44091,9 +44094,9 @@ "ref", "main", "commit", - "61497eca6ead033ac810165bc1e20e1d6dd4678f", + "9c4ab58dddbffed3e446ab10e9249f07edc6165f", "updated", - "2026-08-17", + "2026-08-25", "fastedge", "visual", "debugger", @@ -44120,7 +44123,7 @@ "level": 2, "anchor": "two-ways-to-launch", "line_start": 17, - "line_end": 97, + "line_end": 79, "keywords": [ "two", "ways", @@ -44167,8 +44170,8 @@ "heading": "Dual-Mode Behaviour", "level": 2, "anchor": "dual-mode-behaviour", - "line_start": 98, - "line_end": 112, + "line_start": 80, + "line_end": 94, "keywords": [ "dual-mode", "behaviour", @@ -44216,8 +44219,8 @@ "heading": "Providing Secrets and Environment Variables", "level": 2, "anchor": "providing-secrets-and-environment-variables", - "line_start": 113, - "line_end": 120, + "line_start": 95, + "line_end": 102, "keywords": [ "providing", "secrets", @@ -44252,85 +44255,73 @@ "heading": "What the UI Shows", "level": 2, "anchor": "what-the-ui-shows", - "line_start": 121, - "line_end": 135, + "line_start": 103, + "line_end": 108, "keywords": [ "shows", - "panel", - "content", - "---", - "request", - "method", - "url", - "headers", - "body", - "sent", + "provides", + "graphical", + "interface", + "loading", "wasm", - "response", - "status", - "returned", - "logs", - "streamed", - "log", - "output", - "filterable", - "level", - "trace", - "debug", - "info", - "warn", - "error", - "critical", - "hook", - "results", - "cdn", - "only", - "phase", - "callbacks", - "onrequestheaders", - "onrequestbody", - "onresponseheaders", - "onresponsebody", - "property", - "accesses", - "properties", - "filter" + "modules", + "configuring", + "requests", + "inspecting", + "results.", + "interactions", + "use", + "same", + "rest", + "websocket", + "endpoints", + "available", + "api", + "consumers.", + "---" ] }, { - "id": "vscode-debugger#test-config-integration", - "heading": "test-config Integration", + "id": "vscode-debugger#programmatic-usage", + "heading": "Programmatic Usage", "level": 2, - "anchor": "test-config-integration", - "line_start": 136, - "line_end": 143, + "anchor": "programmatic-usage", + "line_start": 109, + "line_end": 131, "keywords": [ - "test-config", - "integration", - "debugger", - "auto-loads", - "fastedge-config.test.json", - "project", - "root", - "startup", - "wasm", - "path", - "request", - "headers", - "cdn", - "properties", - "pre-filled", - "session.", - "use", - "gcore-fastedge", + "programmatic", + "usage", + "import", + "startserver", + "server", + "export", + "start", + "your", + "own", + "script", "test", - "create", - "update", - "file.", - "full", - "schema", - "see", - "reference.", + "setup", + "typescript", + "gcoredev", + "fastedge-test", + "default", + "port", + "5179", + "await", + "custom", + "3000", + "signature", + "function", + "number", + "promise", + "void", + "returned", + "resolves", + "once", + "bound", + "ready", + "accept", + "connections.", "---" ] }, @@ -44339,8 +44330,8 @@ "heading": "Environment Variables", "level": 2, "anchor": "environment-variables", - "line_start": 144, - "line_end": 169, + "line_start": 132, + "line_end": 157, "keywords": [ "environment", "variables", @@ -44389,8 +44380,8 @@ "heading": "Health Check", "level": 2, "anchor": "health-check", - "line_start": 170, - "line_end": 191, + "line_start": 158, + "line_end": 179, "keywords": [ "health", "check", @@ -44416,8 +44407,8 @@ "heading": "Port File", "level": 2, "anchor": "port-file", - "line_start": 192, - "line_end": 197, + "line_start": 180, + "line_end": 185, "keywords": [ "port", "file", @@ -44450,8 +44441,8 @@ "heading": "Port Conflicts", "level": 2, "anchor": "port-conflicts", - "line_start": 198, - "line_end": 210, + "line_start": 186, + "line_end": 198, "keywords": [ "port", "conflicts", @@ -44489,8 +44480,8 @@ "heading": "Graceful Shutdown", "level": 2, "anchor": "graceful-shutdown", - "line_start": 211, - "line_end": 246, + "line_start": 199, + "line_end": 234, "keywords": [ "graceful", "shutdown", @@ -44538,8 +44529,8 @@ "heading": "What to Commit / Gitignore", "level": 2, "anchor": "what-to-commit-gitignore", - "line_start": 247, - "line_end": 261, + "line_start": 235, + "line_end": 249, "keywords": [ "commit", "gitignore", @@ -44568,8 +44559,8 @@ "heading": "See Also", "level": 2, "anchor": "see-also", - "line_start": 262, - "line_end": 269, + "line_start": 250, + "line_end": 257, "keywords": [ "see", "api", diff --git a/plugins/gcore-fastedge-codex/skills/test/reference/test-framework.md b/plugins/gcore-fastedge-codex/skills/test/reference/test-framework.md index b65dfde..4b0a2ee 100644 --- a/plugins/gcore-fastedge-codex/skills/test/reference/test-framework.md +++ b/plugins/gcore-fastedge-codex/skills/test/reference/test-framework.md @@ -3,8 +3,8 @@ sources: - id: fastedge-test ref: main - commit: 61497eca6ead033ac810165bc1e20e1d6dd4678f - updated: 2026-08-17 + commit: 9c4ab58dddbffed3e446ab10e9249f07edc6165f + updated: 2026-08-25 --> # FastEdge Test Framework API @@ -71,8 +71,8 @@ defineTestSuite({ wasmBuffer: Buffer; // pre-loaded WASM binary — mutually exclusive with wasmPath runnerConfig?: { dotenv?: { - enabled?: boolean; // load .env into WASM before each test — see the DOTENV reference - path?: string; // directory to load dotenv files from; defaults to process CWD + enabled?: boolean; // load .env into WASM before each test — see the DOTENV reference + path?: string; // directory to load dotenv files from; defaults to process CWD }; enforceProductionPropertyRules?: boolean; // default true runnerType?: "http-wasm" | "proxy-wasm"; // override automatic WASM type detection diff --git a/plugins/gcore-fastedge-codex/skills/test/reference/vscode-debugger.md b/plugins/gcore-fastedge-codex/skills/test/reference/vscode-debugger.md index 28df592..3d97053 100644 --- a/plugins/gcore-fastedge-codex/skills/test/reference/vscode-debugger.md +++ b/plugins/gcore-fastedge-codex/skills/test/reference/vscode-debugger.md @@ -3,8 +3,8 @@ sources: - id: fastedge-test ref: main - commit: 61497eca6ead033ac810165bc1e20e1d6dd4678f - updated: 2026-08-17 + commit: 9c4ab58dddbffed3e446ab10e9249f07edc6165f + updated: 2026-08-25 --> # FastEdge Visual Debugger @@ -75,24 +75,6 @@ npx fastedge-debug --project-dir .. ../fixtures/scenario-1.test.json When omitted, behavior is unchanged — the positional argument or `process.cwd()` is used as the starting point. -Programmatic usage: -```typescript -import { startServer } from "@gcoredev/fastedge-test/server"; - -// Start on the default port (5179) -await startServer(); - -// Start on a custom port -await startServer(3000); -``` - -**Signature:** -```typescript -function startServer(port?: number): Promise; -``` - -The returned promise resolves once the server is bound and ready to accept connections. - --- ## Dual-Mode Behaviour @@ -120,24 +102,30 @@ See the dotenv reference for the full setup — prefix scheme, file options, pri ## What the UI Shows -| Panel | Content | -|---|---| -| Request | Method, URL, headers, body sent to the WASM | -| Response | Status, headers, body returned by the WASM | -| Logs | Streamed log output, filterable by level (trace/debug/info/warn/error/critical) | -| Hook results | **CDN only** — phase callbacks (`onRequestHeaders`, `onRequestBody`, `onResponseHeaders`, `onResponseBody`) | -| Property accesses | **CDN only** — which CDN properties the filter read | - -Log verbosity is controlled by `logLevel` in `fastedge-config.test.json`: -`0` = trace (everything), `1` = debug, `2` = info, `3` = warn, `4` = error. +The UI provides a graphical interface for loading WASM modules, configuring requests, and inspecting results. All UI interactions use the same REST and WebSocket endpoints available to API consumers. --- -## test-config Integration +## Programmatic Usage -The debugger auto-loads `fastedge-config.test.json` from the project root on startup — WASM path, request, headers, and CDN properties are pre-filled each session. +Import `startServer` from the `./server` export to start the server from your own script or test setup: -Use `/gcore-fastedge:test` to create or update this file. Full schema: see the test-config reference. +```typescript +import { startServer } from "@gcoredev/fastedge-test/server"; + +// Start on the default port (5179) +await startServer(); + +// Start on a custom port +await startServer(3000); +``` + +**Signature:** +```typescript +function startServer(port?: number): Promise; +``` + +The returned promise resolves once the server is bound and ready to accept connections. --- diff --git a/plugins/gcore-fastedge-cursor/.cursor-plugin/plugin.json b/plugins/gcore-fastedge-cursor/.cursor-plugin/plugin.json index 27d14ec..d9342f1 100644 --- a/plugins/gcore-fastedge-cursor/.cursor-plugin/plugin.json +++ b/plugins/gcore-fastedge-cursor/.cursor-plugin/plugin.json @@ -2,7 +2,7 @@ "name": "gcore-fastedge", "displayName": "Gcore FastEdge", "description": "Build, deploy, and manage serverless WebAssembly applications on Gcore FastEdge — Wasm compute on 210+ global edge PoPs.", - "version": "0.2.7", + "version": "0.2.8", "author": { "name": "Gcore", "email": "support@gcore.com", diff --git a/plugins/gcore-fastedge-cursor/docs-index.json b/plugins/gcore-fastedge-cursor/docs-index.json index 5592474..2705cb8 100644 --- a/plugins/gcore-fastedge-cursor/docs-index.json +++ b/plugins/gcore-fastedge-cursor/docs-index.json @@ -1,9 +1,9 @@ { "schema_version": "1.0.0", - "generated_at": "2026-08-20T15:14:07.398Z", + "generated_at": "2026-08-26T10:20:38.877Z", "source": { "repo": "fastedge-plugin", - "commit": "deaf77e", + "commit": "0ec6d97", "pipeline": "sync-reference-docs" }, "topics": [ @@ -43628,7 +43628,7 @@ { "id": "test-framework", "title": "FastEdge Test Framework API", - "description": "auto-updated: true sources: - id: fastedge-test ref: main commit: 61497eca6ead033ac810165bc1e20e1d6dd4678f updated: 2026-08-17 -->", + "description": "auto-updated: true sources: - id: fastedge-test ref: main commit: 9c4ab58dddbffed3e446ab10e9249f07edc6165f updated: 2026-08-25 -->", "path": "plugins/gcore-fastedge-cursor/skills/test/reference/test-framework.md", "skill": "test", "category": "testing", @@ -43647,9 +43647,9 @@ "ref", "main", "commit", - "61497eca6ead033ac810165bc1e20e1d6dd4678f", + "9c4ab58dddbffed3e446ab10e9249f07edc6165f", "updated", - "2026-08-17", + "2026-08-25", "fastedge", "framework", "api", @@ -43660,7 +43660,7 @@ "runner", "apps." ], - "content_sha256": "e125a779b09525ed8048d05e09b9979c2ceea4c1c90bbc4a988c1ce98a9fcda1", + "content_sha256": "d77a91d86abcea723b0f5729a8460588983d33123a8d247523b1e5cf5a7fecbc", "sections": [ { "id": "test-framework#introduction", @@ -43677,9 +43677,9 @@ "ref", "main", "commit", - "61497eca6ead033ac810165bc1e20e1d6dd4678f", + "9c4ab58dddbffed3e446ab10e9249f07edc6165f", "updated", - "2026-08-17", + "2026-08-25", "fastedge", "test", "framework", @@ -43820,7 +43820,10 @@ "runnerconfig", "dotenv", "enabled", - "boolean" + "boolean", + "load", + ".env", + "bef" ] }, { @@ -44044,7 +44047,7 @@ { "id": "vscode-debugger", "title": "FastEdge Visual Debugger", - "description": "auto-updated: true sources: - id: fastedge-test ref: main commit: 61497eca6ead033ac810165bc1e20e1d6dd4678f updated: 2026-08-17 -->", + "description": "auto-updated: true sources: - id: fastedge-test ref: main commit: 9c4ab58dddbffed3e446ab10e9249f07edc6165f updated: 2026-08-25 -->", "path": "plugins/gcore-fastedge-cursor/skills/test/reference/vscode-debugger.md", "skill": "test", "category": "testing", @@ -44060,9 +44063,9 @@ "ref", "main", "commit", - "61497eca6ead033ac810165bc1e20e1d6dd4678f", + "9c4ab58dddbffed3e446ab10e9249f07edc6165f", "updated", - "2026-08-17", + "2026-08-25", "fastedge", "visual", "debugger", @@ -44074,7 +44077,7 @@ "gcoredev", "same" ], - "content_sha256": "627d9b7700750420febf279bfb44b3cea3ea212faa41800f660fa1f74a5965e5", + "content_sha256": "5a505cc6e1aefcfc489819d1e757d797bd6e10328b985575fec1e9c9cc53df71", "sections": [ { "id": "vscode-debugger#introduction", @@ -44091,9 +44094,9 @@ "ref", "main", "commit", - "61497eca6ead033ac810165bc1e20e1d6dd4678f", + "9c4ab58dddbffed3e446ab10e9249f07edc6165f", "updated", - "2026-08-17", + "2026-08-25", "fastedge", "visual", "debugger", @@ -44120,7 +44123,7 @@ "level": 2, "anchor": "two-ways-to-launch", "line_start": 17, - "line_end": 97, + "line_end": 79, "keywords": [ "two", "ways", @@ -44167,8 +44170,8 @@ "heading": "Dual-Mode Behaviour", "level": 2, "anchor": "dual-mode-behaviour", - "line_start": 98, - "line_end": 112, + "line_start": 80, + "line_end": 94, "keywords": [ "dual-mode", "behaviour", @@ -44216,8 +44219,8 @@ "heading": "Providing Secrets and Environment Variables", "level": 2, "anchor": "providing-secrets-and-environment-variables", - "line_start": 113, - "line_end": 120, + "line_start": 95, + "line_end": 102, "keywords": [ "providing", "secrets", @@ -44252,85 +44255,73 @@ "heading": "What the UI Shows", "level": 2, "anchor": "what-the-ui-shows", - "line_start": 121, - "line_end": 135, + "line_start": 103, + "line_end": 108, "keywords": [ "shows", - "panel", - "content", - "---", - "request", - "method", - "url", - "headers", - "body", - "sent", + "provides", + "graphical", + "interface", + "loading", "wasm", - "response", - "status", - "returned", - "logs", - "streamed", - "log", - "output", - "filterable", - "level", - "trace", - "debug", - "info", - "warn", - "error", - "critical", - "hook", - "results", - "cdn", - "only", - "phase", - "callbacks", - "onrequestheaders", - "onrequestbody", - "onresponseheaders", - "onresponsebody", - "property", - "accesses", - "properties", - "filter" + "modules", + "configuring", + "requests", + "inspecting", + "results.", + "interactions", + "use", + "same", + "rest", + "websocket", + "endpoints", + "available", + "api", + "consumers.", + "---" ] }, { - "id": "vscode-debugger#test-config-integration", - "heading": "test-config Integration", + "id": "vscode-debugger#programmatic-usage", + "heading": "Programmatic Usage", "level": 2, - "anchor": "test-config-integration", - "line_start": 136, - "line_end": 143, + "anchor": "programmatic-usage", + "line_start": 109, + "line_end": 131, "keywords": [ - "test-config", - "integration", - "debugger", - "auto-loads", - "fastedge-config.test.json", - "project", - "root", - "startup", - "wasm", - "path", - "request", - "headers", - "cdn", - "properties", - "pre-filled", - "session.", - "use", - "gcore-fastedge", + "programmatic", + "usage", + "import", + "startserver", + "server", + "export", + "start", + "your", + "own", + "script", "test", - "create", - "update", - "file.", - "full", - "schema", - "see", - "reference.", + "setup", + "typescript", + "gcoredev", + "fastedge-test", + "default", + "port", + "5179", + "await", + "custom", + "3000", + "signature", + "function", + "number", + "promise", + "void", + "returned", + "resolves", + "once", + "bound", + "ready", + "accept", + "connections.", "---" ] }, @@ -44339,8 +44330,8 @@ "heading": "Environment Variables", "level": 2, "anchor": "environment-variables", - "line_start": 144, - "line_end": 169, + "line_start": 132, + "line_end": 157, "keywords": [ "environment", "variables", @@ -44389,8 +44380,8 @@ "heading": "Health Check", "level": 2, "anchor": "health-check", - "line_start": 170, - "line_end": 191, + "line_start": 158, + "line_end": 179, "keywords": [ "health", "check", @@ -44416,8 +44407,8 @@ "heading": "Port File", "level": 2, "anchor": "port-file", - "line_start": 192, - "line_end": 197, + "line_start": 180, + "line_end": 185, "keywords": [ "port", "file", @@ -44450,8 +44441,8 @@ "heading": "Port Conflicts", "level": 2, "anchor": "port-conflicts", - "line_start": 198, - "line_end": 210, + "line_start": 186, + "line_end": 198, "keywords": [ "port", "conflicts", @@ -44489,8 +44480,8 @@ "heading": "Graceful Shutdown", "level": 2, "anchor": "graceful-shutdown", - "line_start": 211, - "line_end": 246, + "line_start": 199, + "line_end": 234, "keywords": [ "graceful", "shutdown", @@ -44538,8 +44529,8 @@ "heading": "What to Commit / Gitignore", "level": 2, "anchor": "what-to-commit-gitignore", - "line_start": 247, - "line_end": 261, + "line_start": 235, + "line_end": 249, "keywords": [ "commit", "gitignore", @@ -44568,8 +44559,8 @@ "heading": "See Also", "level": 2, "anchor": "see-also", - "line_start": 262, - "line_end": 269, + "line_start": 250, + "line_end": 257, "keywords": [ "see", "api", diff --git a/plugins/gcore-fastedge-cursor/skills/test/reference/test-framework.md b/plugins/gcore-fastedge-cursor/skills/test/reference/test-framework.md index b65dfde..4b0a2ee 100644 --- a/plugins/gcore-fastedge-cursor/skills/test/reference/test-framework.md +++ b/plugins/gcore-fastedge-cursor/skills/test/reference/test-framework.md @@ -3,8 +3,8 @@ sources: - id: fastedge-test ref: main - commit: 61497eca6ead033ac810165bc1e20e1d6dd4678f - updated: 2026-08-17 + commit: 9c4ab58dddbffed3e446ab10e9249f07edc6165f + updated: 2026-08-25 --> # FastEdge Test Framework API @@ -71,8 +71,8 @@ defineTestSuite({ wasmBuffer: Buffer; // pre-loaded WASM binary — mutually exclusive with wasmPath runnerConfig?: { dotenv?: { - enabled?: boolean; // load .env into WASM before each test — see the DOTENV reference - path?: string; // directory to load dotenv files from; defaults to process CWD + enabled?: boolean; // load .env into WASM before each test — see the DOTENV reference + path?: string; // directory to load dotenv files from; defaults to process CWD }; enforceProductionPropertyRules?: boolean; // default true runnerType?: "http-wasm" | "proxy-wasm"; // override automatic WASM type detection diff --git a/plugins/gcore-fastedge-cursor/skills/test/reference/vscode-debugger.md b/plugins/gcore-fastedge-cursor/skills/test/reference/vscode-debugger.md index 28df592..3d97053 100644 --- a/plugins/gcore-fastedge-cursor/skills/test/reference/vscode-debugger.md +++ b/plugins/gcore-fastedge-cursor/skills/test/reference/vscode-debugger.md @@ -3,8 +3,8 @@ sources: - id: fastedge-test ref: main - commit: 61497eca6ead033ac810165bc1e20e1d6dd4678f - updated: 2026-08-17 + commit: 9c4ab58dddbffed3e446ab10e9249f07edc6165f + updated: 2026-08-25 --> # FastEdge Visual Debugger @@ -75,24 +75,6 @@ npx fastedge-debug --project-dir .. ../fixtures/scenario-1.test.json When omitted, behavior is unchanged — the positional argument or `process.cwd()` is used as the starting point. -Programmatic usage: -```typescript -import { startServer } from "@gcoredev/fastedge-test/server"; - -// Start on the default port (5179) -await startServer(); - -// Start on a custom port -await startServer(3000); -``` - -**Signature:** -```typescript -function startServer(port?: number): Promise; -``` - -The returned promise resolves once the server is bound and ready to accept connections. - --- ## Dual-Mode Behaviour @@ -120,24 +102,30 @@ See the dotenv reference for the full setup — prefix scheme, file options, pri ## What the UI Shows -| Panel | Content | -|---|---| -| Request | Method, URL, headers, body sent to the WASM | -| Response | Status, headers, body returned by the WASM | -| Logs | Streamed log output, filterable by level (trace/debug/info/warn/error/critical) | -| Hook results | **CDN only** — phase callbacks (`onRequestHeaders`, `onRequestBody`, `onResponseHeaders`, `onResponseBody`) | -| Property accesses | **CDN only** — which CDN properties the filter read | - -Log verbosity is controlled by `logLevel` in `fastedge-config.test.json`: -`0` = trace (everything), `1` = debug, `2` = info, `3` = warn, `4` = error. +The UI provides a graphical interface for loading WASM modules, configuring requests, and inspecting results. All UI interactions use the same REST and WebSocket endpoints available to API consumers. --- -## test-config Integration +## Programmatic Usage -The debugger auto-loads `fastedge-config.test.json` from the project root on startup — WASM path, request, headers, and CDN properties are pre-filled each session. +Import `startServer` from the `./server` export to start the server from your own script or test setup: -Use `/gcore-fastedge:test` to create or update this file. Full schema: see the test-config reference. +```typescript +import { startServer } from "@gcoredev/fastedge-test/server"; + +// Start on the default port (5179) +await startServer(); + +// Start on a custom port +await startServer(3000); +``` + +**Signature:** +```typescript +function startServer(port?: number): Promise; +``` + +The returned promise resolves once the server is bound and ready to accept connections. --- diff --git a/plugins/gcore-fastedge/.claude-plugin/plugin.json b/plugins/gcore-fastedge/.claude-plugin/plugin.json index 4b0388d..e6cd2e2 100644 --- a/plugins/gcore-fastedge/.claude-plugin/plugin.json +++ b/plugins/gcore-fastedge/.claude-plugin/plugin.json @@ -1,6 +1,6 @@ { "name": "gcore-fastedge", - "version": "0.2.7", + "version": "0.2.8", "description": "Build, deploy, and manage serverless edge applications on Gcore FastEdge — Wasm-powered compute on 210+ global PoPs", "author": { "name": "Gcore", diff --git a/plugins/gcore-fastedge/docs-index.json b/plugins/gcore-fastedge/docs-index.json index 7549dcd..96250ed 100644 --- a/plugins/gcore-fastedge/docs-index.json +++ b/plugins/gcore-fastedge/docs-index.json @@ -1,9 +1,9 @@ { "schema_version": "1.0.0", - "generated_at": "2026-08-20T15:14:07.190Z", + "generated_at": "2026-08-26T10:20:38.669Z", "source": { "repo": "fastedge-plugin", - "commit": "deaf77e", + "commit": "0ec6d97", "pipeline": "sync-reference-docs" }, "topics": [ @@ -17948,7 +17948,7 @@ { "id": "dotenv", "title": "Dotenv — Runtime Secrets and Environment Variables", - "description": "auto-updated: true sources: - id: fastedge-test ref: main commit: c79583ecbec74b0d36ae664cd3a148ae34059a75 updated: 2026-08-20 -->", + "description": "auto-updated: true sources: - id: fastedge-test ref: main commit: 9c4ab58dddbffed3e446ab10e9249f07edc6165f updated: 2026-08-25 -->", "path": "plugins/gcore-fastedge/skills/test/reference/dotenv.md", "skill": "test", "category": "testing", @@ -17967,9 +17967,9 @@ "ref", "main", "commit", - "c79583ecbec74b0d36ae664cd3a148ae34059a75", + "9c4ab58dddbffed3e446ab10e9249f07edc6165f", "updated", - "2026-08-20", + "2026-08-25", "dotenv", "runtime", "secrets", @@ -17980,7 +17980,7 @@ "debugger", "inject" ], - "content_sha256": "dd108104b49d289c76e6b1d0f11806564dc84135fbc78acdda8afd8fa457bfb5", + "content_sha256": "64bffc70a131a017941ce0e08399bc3f084612086f403804c82ed660578d9cad", "sections": [ { "id": "dotenv#introduction", @@ -17997,9 +17997,9 @@ "ref", "main", "commit", - "c79583ecbec74b0d36ae664cd3a148ae34059a75", + "9c4ab58dddbffed3e446ab10e9249f07edc6165f", "updated", - "2026-08-20", + "2026-08-25", "dotenv", "runtime", "secrets", @@ -40058,7 +40058,7 @@ { "id": "runner-internals", "title": "Runner Internals — Low-Level Runner API", - "description": "auto-updated: true sources: - id: fastedge-test ref: main commit: c79583ecbec74b0d36ae664cd3a148ae34059a75 updated: 2026-08-20 -->", + "description": "auto-updated: true sources: - id: fastedge-test ref: main commit: 9c4ab58dddbffed3e446ab10e9249f07edc6165f updated: 2026-08-25 -->", "path": "plugins/gcore-fastedge/skills/test/reference/runner-internals.md", "skill": "test", "category": "testing", @@ -40074,9 +40074,9 @@ "ref", "main", "commit", - "c79583ecbec74b0d36ae664cd3a148ae34059a75", + "9c4ab58dddbffed3e446ab10e9249f07edc6165f", "updated", - "2026-08-20", + "2026-08-25", "runner", "internals", "low-level", @@ -40088,7 +40088,7 @@ "use", "you" ], - "content_sha256": "abcb6943073feb071640d4e2fdbd1df4f815e41279a360bb65711d1935b48711", + "content_sha256": "aa96ffe4e0ae041dec78b3572d4a1c7db7fa5230af8af284fb3fcf411c1ce02b", "sections": [ { "id": "runner-internals#introduction", @@ -40105,9 +40105,9 @@ "ref", "main", "commit", - "c79583ecbec74b0d36ae664cd3a148ae34059a75", + "9c4ab58dddbffed3e446ab10e9249f07edc6165f", "updated", - "2026-08-20", + "2026-08-25", "runner", "internals", "low-level", @@ -42002,7 +42002,7 @@ { "id": "server-api", "title": "Server API — REST and WebSocket Endpoints", - "description": "auto-updated: true sources: - id: fastedge-test ref: main commit: c79583ecbec74b0d36ae664cd3a148ae34059a75 updated: 2026-08-20 -->", + "description": "auto-updated: true sources: - id: fastedge-test ref: main commit: 9c4ab58dddbffed3e446ab10e9249f07edc6165f updated: 2026-08-25 -->", "path": "plugins/gcore-fastedge/skills/test/reference/server-api.md", "skill": "test", "category": "testing", @@ -42018,9 +42018,9 @@ "ref", "main", "commit", - "c79583ecbec74b0d36ae664cd3a148ae34059a75", + "9c4ab58dddbffed3e446ab10e9249f07edc6165f", "updated", - "2026-08-20", + "2026-08-25", "server", "api", "rest", @@ -42032,7 +42032,7 @@ "interfaces", "loading" ], - "content_sha256": "7b0851d7b108a2c4d80330ca3c3f2510160d389f34850e62a985d48a73dc38e7", + "content_sha256": "010065841f102e6664523d44b06366752135e355f6f1232ad6292e6f9f5474ca", "sections": [ { "id": "server-api#introduction", @@ -42049,9 +42049,9 @@ "ref", "main", "commit", - "c79583ecbec74b0d36ae664cd3a148ae34059a75", + "9c4ab58dddbffed3e446ab10e9249f07edc6165f", "updated", - "2026-08-20", + "2026-08-25", "server", "api", "rest", @@ -43302,7 +43302,7 @@ { "id": "test-config", "title": "test-config Reference", - "description": "auto-updated: true sources: - id: fastedge-test ref: main commit: c79583ecbec74b0d36ae664cd3a148ae34059a75 updated: 2026-08-20 -->", + "description": "auto-updated: true sources: - id: fastedge-test ref: main commit: 9c4ab58dddbffed3e446ab10e9249f07edc6165f updated: 2026-08-25 -->", "path": "plugins/gcore-fastedge/skills/test/reference/test-config.md", "skill": "test", "category": "testing", @@ -43318,9 +43318,9 @@ "ref", "main", "commit", - "c79583ecbec74b0d36ae664cd3a148ae34059a75", + "9c4ab58dddbffed3e446ab10e9249f07edc6165f", "updated", - "2026-08-20", + "2026-08-25", "test-config", "reference", "fastedge-config.test.json", @@ -43332,7 +43332,7 @@ "request", "cdn" ], - "content_sha256": "0c69141a01fc2bd5ea12fe232d0388bdf67a31eb1ed5b40cff5fbacc2f452993", + "content_sha256": "3b344c65f18d4b8b0ea6d8cf317af995a36a81b2c6545970826e882c4639bbdd", "sections": [ { "id": "test-config#introduction", @@ -43349,9 +43349,9 @@ "ref", "main", "commit", - "c79583ecbec74b0d36ae664cd3a148ae34059a75", + "9c4ab58dddbffed3e446ab10e9249f07edc6165f", "updated", - "2026-08-20", + "2026-08-25", "test-config", "reference", "fastedge-config.test.json", @@ -43628,7 +43628,7 @@ { "id": "test-framework", "title": "FastEdge Test Framework API", - "description": "auto-updated: true sources: - id: fastedge-test ref: main commit: c79583ecbec74b0d36ae664cd3a148ae34059a75 updated: 2026-08-20 -->", + "description": "auto-updated: true sources: - id: fastedge-test ref: main commit: 9c4ab58dddbffed3e446ab10e9249f07edc6165f updated: 2026-08-25 -->", "path": "plugins/gcore-fastedge/skills/test/reference/test-framework.md", "skill": "test", "category": "testing", @@ -43647,9 +43647,9 @@ "ref", "main", "commit", - "c79583ecbec74b0d36ae664cd3a148ae34059a75", + "9c4ab58dddbffed3e446ab10e9249f07edc6165f", "updated", - "2026-08-20", + "2026-08-25", "fastedge", "framework", "api", @@ -43660,7 +43660,7 @@ "runner", "apps." ], - "content_sha256": "e78d8b55b9e4ea9c9245dda8d2962141185f3b9331c85d6b54b6d13120f5ab1d", + "content_sha256": "d77a91d86abcea723b0f5729a8460588983d33123a8d247523b1e5cf5a7fecbc", "sections": [ { "id": "test-framework#introduction", @@ -43677,9 +43677,9 @@ "ref", "main", "commit", - "c79583ecbec74b0d36ae664cd3a148ae34059a75", + "9c4ab58dddbffed3e446ab10e9249f07edc6165f", "updated", - "2026-08-20", + "2026-08-25", "fastedge", "test", "framework", @@ -43820,7 +43820,10 @@ "runnerconfig", "dotenv", "enabled", - "boolean" + "boolean", + "load", + ".env", + "bef" ] }, { @@ -44044,7 +44047,7 @@ { "id": "vscode-debugger", "title": "FastEdge Visual Debugger", - "description": "auto-updated: true sources: - id: fastedge-test ref: main commit: c79583ecbec74b0d36ae664cd3a148ae34059a75 updated: 2026-08-20 -->", + "description": "auto-updated: true sources: - id: fastedge-test ref: main commit: 9c4ab58dddbffed3e446ab10e9249f07edc6165f updated: 2026-08-25 -->", "path": "plugins/gcore-fastedge/skills/test/reference/vscode-debugger.md", "skill": "test", "category": "testing", @@ -44060,9 +44063,9 @@ "ref", "main", "commit", - "c79583ecbec74b0d36ae664cd3a148ae34059a75", + "9c4ab58dddbffed3e446ab10e9249f07edc6165f", "updated", - "2026-08-20", + "2026-08-25", "fastedge", "visual", "debugger", @@ -44074,7 +44077,7 @@ "gcoredev", "same" ], - "content_sha256": "1df0bfe2966e48ff0e99a252fb29c8e29b60eeb55b2a2f618d37c472e9062d41", + "content_sha256": "5a505cc6e1aefcfc489819d1e757d797bd6e10328b985575fec1e9c9cc53df71", "sections": [ { "id": "vscode-debugger#introduction", @@ -44091,9 +44094,9 @@ "ref", "main", "commit", - "c79583ecbec74b0d36ae664cd3a148ae34059a75", + "9c4ab58dddbffed3e446ab10e9249f07edc6165f", "updated", - "2026-08-20", + "2026-08-25", "fastedge", "visual", "debugger", @@ -44120,7 +44123,7 @@ "level": 2, "anchor": "two-ways-to-launch", "line_start": 17, - "line_end": 97, + "line_end": 79, "keywords": [ "two", "ways", @@ -44167,8 +44170,8 @@ "heading": "Dual-Mode Behaviour", "level": 2, "anchor": "dual-mode-behaviour", - "line_start": 98, - "line_end": 112, + "line_start": 80, + "line_end": 94, "keywords": [ "dual-mode", "behaviour", @@ -44216,8 +44219,8 @@ "heading": "Providing Secrets and Environment Variables", "level": 2, "anchor": "providing-secrets-and-environment-variables", - "line_start": 113, - "line_end": 120, + "line_start": 95, + "line_end": 102, "keywords": [ "providing", "secrets", @@ -44252,85 +44255,73 @@ "heading": "What the UI Shows", "level": 2, "anchor": "what-the-ui-shows", - "line_start": 121, - "line_end": 135, + "line_start": 103, + "line_end": 108, "keywords": [ "shows", - "panel", - "content", - "---", - "request", - "method", - "url", - "headers", - "body", - "sent", + "provides", + "graphical", + "interface", + "loading", "wasm", - "response", - "status", - "returned", - "logs", - "streamed", - "log", - "output", - "filterable", - "level", - "trace", - "debug", - "info", - "warn", - "error", - "critical", - "hook", - "results", - "cdn", - "only", - "phase", - "callbacks", - "onrequestheaders", - "onrequestbody", - "onresponseheaders", - "onresponsebody", - "property", - "accesses", - "properties", - "filter" + "modules", + "configuring", + "requests", + "inspecting", + "results.", + "interactions", + "use", + "same", + "rest", + "websocket", + "endpoints", + "available", + "api", + "consumers.", + "---" ] }, { - "id": "vscode-debugger#test-config-integration", - "heading": "test-config Integration", + "id": "vscode-debugger#programmatic-usage", + "heading": "Programmatic Usage", "level": 2, - "anchor": "test-config-integration", - "line_start": 136, - "line_end": 143, + "anchor": "programmatic-usage", + "line_start": 109, + "line_end": 131, "keywords": [ - "test-config", - "integration", - "debugger", - "auto-loads", - "fastedge-config.test.json", - "project", - "root", - "startup", - "wasm", - "path", - "request", - "headers", - "cdn", - "properties", - "pre-filled", - "session.", - "use", - "gcore-fastedge", + "programmatic", + "usage", + "import", + "startserver", + "server", + "export", + "start", + "your", + "own", + "script", "test", - "create", - "update", - "file.", - "full", - "schema", - "see", - "reference.", + "setup", + "typescript", + "gcoredev", + "fastedge-test", + "default", + "port", + "5179", + "await", + "custom", + "3000", + "signature", + "function", + "number", + "promise", + "void", + "returned", + "resolves", + "once", + "bound", + "ready", + "accept", + "connections.", "---" ] }, @@ -44339,8 +44330,8 @@ "heading": "Environment Variables", "level": 2, "anchor": "environment-variables", - "line_start": 144, - "line_end": 169, + "line_start": 132, + "line_end": 157, "keywords": [ "environment", "variables", @@ -44389,8 +44380,8 @@ "heading": "Health Check", "level": 2, "anchor": "health-check", - "line_start": 170, - "line_end": 191, + "line_start": 158, + "line_end": 179, "keywords": [ "health", "check", @@ -44416,8 +44407,8 @@ "heading": "Port File", "level": 2, "anchor": "port-file", - "line_start": 192, - "line_end": 197, + "line_start": 180, + "line_end": 185, "keywords": [ "port", "file", @@ -44450,8 +44441,8 @@ "heading": "Port Conflicts", "level": 2, "anchor": "port-conflicts", - "line_start": 198, - "line_end": 210, + "line_start": 186, + "line_end": 198, "keywords": [ "port", "conflicts", @@ -44489,8 +44480,8 @@ "heading": "Graceful Shutdown", "level": 2, "anchor": "graceful-shutdown", - "line_start": 211, - "line_end": 246, + "line_start": 199, + "line_end": 234, "keywords": [ "graceful", "shutdown", @@ -44538,8 +44529,8 @@ "heading": "What to Commit / Gitignore", "level": 2, "anchor": "what-to-commit-gitignore", - "line_start": 247, - "line_end": 261, + "line_start": 235, + "line_end": 249, "keywords": [ "commit", "gitignore", @@ -44568,8 +44559,8 @@ "heading": "See Also", "level": 2, "anchor": "see-also", - "line_start": 262, - "line_end": 269, + "line_start": 250, + "line_end": 257, "keywords": [ "see", "api",