API key stored/transmitted insecurely — plaintext in localStorage and unencrypted in DB #33

Closed
opened 2026-05-09 00:18:17 +00:00 by Mark · 3 comments
Owner

API keys stored in localStorage as plaintext and in SQLite without encryption. Session secret hardcoded.

API keys stored in localStorage as plaintext and in SQLite without encryption. Session secret hardcoded.
Author
Owner

Approved as bug. API keys stored in plaintext in localStorage and DB — needs encryption and secure storage.

Approved as bug. API keys stored in plaintext in localStorage and DB — needs encryption and secure storage.
Author
Owner

GSD VERIFY phase failed after 3 attempts.
═══ Gate: verify-passed (devforge#33) ═══
Mode: Tier 1 (functional only)

GATE OK: All gates up to 'implement' pass
── Tier 1: Functional ────────────────────────────────
Running tests...
❌ Tests failed (exit 1)
 FAIL  services/web/src/utils/terminalUtils.test.ts > terminalUtils > decodeTerminalMessage > should return empty Uint8Array for Blob input in sync decoder
 FAIL  services/web/src/utils/terminalUtils.test.ts > terminalUtils > debug mode > should return false when debug is not enabled
 FAIL  services/web/src/utils/terminalUtils.test.ts > terminalUtils > debug mode > should return true when debug is enabled
 FAIL  services/web/src/utils/terminalUtils.test.ts > terminalUtils > debug mode > should disable debug mode
ReferenceError: localStorage is not defined
 ❯ services/web/src/utils/terminalUtils.test.ts:12:5
 10|  beforeEach(() => {
 11|  vi.restoreAllMocks();
 12|  localStorage.clear();
 |  ^
 13|  });
 14| 

⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[4/9]⎯

 Test Files  4 failed | 1 passed (5)
 Tests  6 failed | 4 passed (10)
 Start at  06:48:15
 Duration  705ms (transform 519ms, setup 0ms, import 136ms, tests 12ms, environment 1ms)
Running linter...
✅ Lint clean
⚠️ No type checker discovered
No previous test result to compare

❌ GATE FAIL: verify-passed
- Tests failed with exit code 1
GATE FAIL: verify — blocked at 2026-05-27T13:48:17Z
Class: test-failure
Evidence: Verification failed: 1 failures
Git tag: devforge#33-gate-verify-fail-d8b03d138c09 (use gate-retry after fixing)

GSD VERIFY phase failed after 3 attempts. ═══ Gate: verify-passed (devforge#33) ═══ Mode: Tier 1 (functional only) GATE OK: All gates up to 'implement' pass ── Tier 1: Functional ──────────────────────────────── Running tests... ❌ Tests failed (exit 1)  FAIL  services/web/src/utils/terminalUtils.test.ts > terminalUtils > decodeTerminalMessage > should return empty Uint8Array for Blob input in sync decoder  FAIL  services/web/src/utils/terminalUtils.test.ts > terminalUtils > debug mode > should return false when debug is not enabled  FAIL  services/web/src/utils/terminalUtils.test.ts > terminalUtils > debug mode > should return true when debug is enabled  FAIL  services/web/src/utils/terminalUtils.test.ts > terminalUtils > debug mode > should disable debug mode ReferenceError: localStorage is not defined  ❯ services/web/src/utils/terminalUtils.test.ts:12:5  10|  beforeEach(() => {  11|  vi.restoreAllMocks();  12|  localStorage.clear();  |  ^  13|  });  14|  ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[4/9]⎯  Test Files  4 failed | 1 passed (5)  Tests  6 failed | 4 passed (10)  Start at  06:48:15  Duration  705ms (transform 519ms, setup 0ms, import 136ms, tests 12ms, environment 1ms) Running linter... ✅ Lint clean ⚠️ No type checker discovered No previous test result to compare ❌ GATE FAIL: verify-passed - Tests failed with exit code 1 GATE FAIL: verify — blocked at 2026-05-27T13:48:17Z Class: test-failure Evidence: Verification failed: 1 failures Git tag: devforge#33-gate-verify-fail-d8b03d138c09 (use gate-retry after fixing)
Author
Owner

GSD PLAN: response missing GATE: line.

GSD PLAN: response missing GATE: line.
Mark closed this issue 2026-06-08 23:40:15 +00:00
Sign in to join this conversation.
No description provided.