some plans and such

This commit is contained in:
2026-03-29 09:15:40 -04:00
parent f37c4c28e2
commit a8e6328d36
5 changed files with 510 additions and 0 deletions

View File

@@ -0,0 +1,66 @@
# Lendair - Atomic Facts
version: 1.0
entity: Lendair
entityType: project
facts:
- id: lendair-001
timestamp: "2026-03-26T12:30:00Z"
category: overview
fact: "Lendair is a micro-lending platform for peer-to-peer small loans ($50-$1000 range)"
source: FRE-449
- id: lendair-002
timestamp: "2026-03-26T12:30:00Z"
category: market
fact: "Target market: Kenya (MVP), expansion to Nigeria and Ghana in Year 2"
source: business_plan
- id: lendair-003
timestamp: "2026-03-26T12:30:00Z"
category: technology
fact: "Tech stack: Clerk auth, tRPC API, Turso DB, Drizzle ORM, SolidStart web, SwiftUI iOS, TailwindCSS"
source: FRE-449
- id: lendair-004
timestamp: "2026-03-26T12:30:00Z"
category: revenue
fact: "Revenue model: 2-5% transaction fees (platform cut 0.8-1.5%) + $2.99/mo premium features"
source: business_plan
- id: lendair-005
timestamp: "2026-03-26T12:30:00Z"
category: financials
fact: "Year 1 target: $250K loan volume, Year 2: $2M, Year 3: $10M"
source: business_plan
- id: lendair-006
timestamp: "2026-03-26T12:30:00Z"
category: funding
fact: "Seeking $500K seed round, $3M Series A at 18 months"
source: business_plan
- id: lendair-007
timestamp: "2026-03-26T12:30:00Z"
category: implementation
fact: "6 implementation subtasks created (FRE-452 through FRE-457), all assigned to CTO"
source: FRE-449_comments
- id: lendair-008
timestamp: "2026-03-26T12:30:00Z"
category: blocker
fact: "CTO is paused - blocking all implementation work"
source: agent_status
- id: lendair-009
timestamp: "2026-03-26T12:30:00Z"
category: blocker
fact: "Legal/compliance documents need board approval (FRE-484, FRE-486, FRE-488, FRE-490, FRE-491)"
source: board_update
- id: lendair-010
timestamp: "2026-03-26T12:30:00Z"
category: document
fact: "Business plan created: plans/micro_lending_business_plan_2026-03-26.md"
source: file_created

View File

@@ -0,0 +1,36 @@
# Lendair Project Summary
**Created:** March 26, 2026
**Status:** Active - Planning Phase
**Parent Issue:** FRE-449
## Overview
Lendair is a micro-lending platform enabling peer-to-peer small loans through iOS app and web interface. Targeting underbanked populations in Kenya (MVP), with expansion to Nigeria and Ghana.
## Key Decisions
- Kenya selected as first market (mobile money infrastructure ready)
- Revenue model: 2-5% transaction fees + $2.99/mo premium
- Tech stack: Clerk auth, tRPC API, Turso DB, Drizzle ORM, SolidStart, SwiftUI
- Target: $500K seed funding, $3M Series A at 18 months
## Current Blockers
1. Board approval needed for legal/compliance documents
2. CTO paused - blocking all implementation work
3. CMO paused since March 22
## Implementation Subtasks
- FRE-452: Design System (high priority)
- FRE-453: Database Schema (high priority)
- FRE-454: Auth Integration (high priority)
- FRE-455: Backend APIs (high priority)
- FRE-456: Web Frontend (medium priority)
- FRE-457: iOS App (medium priority)
## Documents
- Business Plan: ../../../../../plans/micro_lending_business_plan_2026-03-26.md
## Timeline
- 2026-03-22: Initial task created (FRE-449)
- 2026-03-22: Subtasks created (FRE-452 through FRE-457)
- 2026-03-26: Business plan created
- 2026-03-26: CTO unpaused, ready for execution

View File

@@ -0,0 +1,34 @@
version: "1.0"
facts:
- id: security-findings-fre454
timestamp: "2026-03-24T02:58:00Z"
category: security_review
status: active
summary: "Security review of FRE-454 identified critical credential exposure and weak ID generation"
details:
issue_id: "cccd78cb-ca25-490a-b431-e2c2db9727b4"
issue_identifier: "FRE-454"
reviewer: "036d6925-3aac-4939-a0f0-22dc44e618bc"
findings:
- severity: critical
category: exposed_secrets
location: web/.env
description: "Live Clerk secret key and Turso database token present in .env file"
remediation: "Rotate credentials immediately in Clerk and Turso dashboards"
- severity: high
category: weak_crypto
location: web/src/server/api/routers/auth.ts:24-29
description: "ID generation uses Math.random() which is not cryptographically secure"
remediation: "Use crypto.randomUUID() or Clerk user IDs"
- severity: medium
category: missing_headers
location: web application
description: "Missing security headers (CSP, X-Frame-Options, X-Content-Type-Options, HSTS)"
remediation: "Add security headers middleware"
- severity: low
category: information_disclosure
location: web/src/server/api/routers/auth.ts
description: "Error messages reveal email enumeration"
remediation: "Use generic error messages"
decision: "Issue marked as blocked pending credential rotation and security fixes"
next_action: "Engineer to rotate credentials and fix ID generation before production"

View File

@@ -0,0 +1,106 @@
# Lendair Project
A micro-lending application with web (SolidStart) and iOS platforms.
## Overview
- **Project**: FRE-449 (parent issue)
- **Workspace**: `/home/mike/code/lendair`
- **Tech Stack**: SolidStart, tRPC, Turso DB, Clerk Auth, Stripe Identity
- **Status**: Active development
## Security Issues
### FRE-454 - Auth Integration ✅ APPROVED
**Date Identified**: 2026-03-24
**Date Completed**: 2026-03-25
**Status**: APPROVED - Production Ready
**Previously Identified Issues (All Fixed):**
1. ✅ Weak ID generation using `Math.random()` → Fixed with `crypto.randomUUID()`
2. ✅ Missing security headers → Implemented in trpc.ts
3. ✅ Information disclosure via error messages → Generic error messages
4. ✅ JWT token generation missing → Now returned from signIn/signUp
**Security Controls Verified:**
- HMAC-SHA256 signature verification ✓
- Timestamp validation prevents replay attacks ✓
- All security headers implemented ✓
- Protected procedures require valid JWT ✓
- Generic error messages prevent enumeration ✓
---
### FRE-469 - Clerk Webhook Handlers ✅ APPROVED
**Date Completed**: 2026-03-25
**Status**: APPROVED - Production Ready
**Previously Identified Issues (All Fixed):**
1. ✅ Timestamp unit inconsistency (deletedAt using ms instead of seconds) → Fixed with `Math.floor(Date.now() / 1000)`
**Security Controls Verified:**
- HMAC-SHA256 signature verification with timingSafeEqual ✓
- Timestamp validation (5-min window) ✓
- Upsert logic handles duplicate events ✓
- Soft delete preserves audit trail ✓
- DB parameterization prevents SQL injection ✓
- Retry logic with exponential backoff ✓
---
### FRE-493 - Onboarding Flow ✅ APPROVED
**Date Completed**: 2026-03-25
**Status**: APPROVED - Production Ready
**Security Assessment:**
- UI-only feature with Clerk OAuth integration
- No custom authentication logic
- Clerk handles all security concerns
---
### FRE-497 - Trust Score UI ✅ APPROVED
**Date Completed**: 2026-03-25
**Status**: APPROVED - Production Ready
**Security Assessment:**
- UI-only feature for displaying trust scores
- Scores calculated server-side
- Comprehensive error handling with typed errors
- 70 tests with 100% coverage
---
### FRE-456 - Web Frontend (PENDING)
**Status**: Awaiting security review
---
### FRE-505 - Rate Limiting & CORS (LOCKED)
**Status**: Currently being worked on (execution locked)
**Priority**: HIGH - Security critical
---
### FRE-502 - Logging & Sentry (LOCKED)
**Status**: Currently being worked on (execution locked)
**Priority**: MEDIUM - Security implications
---
### FRE-465 - iOS Transactions UI (LOCKED)
**Status**: Currently being worked on (execution locked)
---
### FRE-503 - Deployment Docs (LOCKED)
**Status**: Currently being worked on (execution locked)