Skip to content

feat: add SQLite database layer - #1

Merged
AxaySharma merged 3 commits into
developfrom
feature/database-layer
Jun 4, 2026
Merged

AxaySharma merged 3 commits into
developfrom
feature/database-layer

Conversation

@AxaySharma

Copy link
Copy Markdown
Contributor

What this adds

  • src/db/schema.ts — table definitions for raw_signals, local_sessions, feature_vectors
  • src/db/database.ts — typed query helpers with prepared statements
  • tests/db/database.test.ts — 9 tests covering all helpers + privacy constraints

Privacy

  • signals.insert() structurally rejects string values — throws WrkmarkObserverError
  • Foreign keys enforced — feature vectors cannot reference non-existent sessions
  • Zero raw string queries in business logic

Tests

19/19 passing (10 anonymizer + 9 database)

Checklist

  • Tests passing
  • No forbidden patterns in source
  • Privacy constraints tested
  • TypeScript strict mode — zero any types

- createDatabase() factory with WAL mode + foreign keys
- Typed query helpers: signals, sessions, features namespaces
- Privacy enforcement: signals.insert() rejects string values
- Foreign key constraint test: orphaned feature vectors rejected
- Tests: 9/9 passing

schema.ts: raw_signals, local_sessions, feature_vectors tables
database.ts: prepared statements, zero raw string queries
@AxaySharma
AxaySharma merged commit 5cd2fed into develop Jun 4, 2026
2 checks passed
@AxaySharma
AxaySharma deleted the feature/database-layer branch June 4, 2026 21:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant