mirror of
https://github.com/Memo-2023/mana-monorepo.git
synced 2026-05-14 20:41:09 +02:00
- Add build:packages step to all test.yml jobs (fixes @manacore/shared-nestjs-auth not found) - Handle missing coverage artifacts gracefully in test-coverage.yml - Update .prettierignore to exclude apps-archived/ and problematic files - Format all source files to pass CI checks 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
460 lines
11 KiB
Markdown
460 lines
11 KiB
Markdown
# Mana Universe - Authentication Documentation Index
|
|
|
|
**Analysis Date:** December 1, 2024
|
|
**Total Documentation:** 4 comprehensive guides
|
|
**Total Size:** 52 KB
|
|
**Status:** Production Ready
|
|
|
|
---
|
|
|
|
## Quick Navigation
|
|
|
|
Choose the document that best fits your needs:
|
|
|
|
### I need quick answers
|
|
|
|
→ **AUTH_QUICK_REFERENCE.md** (6.4 KB)
|
|
|
|
- Essential endpoints table
|
|
- Common curl commands
|
|
- Guard patterns
|
|
- Token inspection
|
|
- Error codes
|
|
- 5-minute read
|
|
|
|
### I'm implementing auth in a new backend
|
|
|
|
→ **AUTH_VALIDATION_CHECKLIST.md** (11 KB)
|
|
|
|
- Pre-integration checklist
|
|
- Implementation steps
|
|
- Testing procedures
|
|
- Production readiness
|
|
- Sign-off form
|
|
- Use for approval
|
|
|
|
### I need comprehensive details
|
|
|
|
→ **AUTH_ARCHITECTURE_REPORT.md** (24 KB)
|
|
|
|
- Complete 15-section guide
|
|
- API routes documented
|
|
- JWT format explained
|
|
- Database schema
|
|
- Integration patterns
|
|
- End-to-end flows
|
|
- Troubleshooting guide
|
|
- Use as reference
|
|
|
|
### I need executive summary
|
|
|
|
→ **AUTH_ANALYSIS_SUMMARY.md** (11 KB)
|
|
|
|
- Key findings
|
|
- Architecture decisions
|
|
- Validation results
|
|
- Integration guidance
|
|
- Risk assessment
|
|
- Use for stakeholders
|
|
|
|
---
|
|
|
|
## Document Comparison
|
|
|
|
| Aspect | Quick Ref | Checklist | Report | Summary |
|
|
| ----------------- | ------------ | ------------ | ------------- | --------- |
|
|
| **Audience** | Developers | Implementers | Architects | Managers |
|
|
| **Length** | Short | Medium | Comprehensive | Medium |
|
|
| **Details** | Minimal | Practical | Complete | Strategic |
|
|
| **Use Case** | Daily lookup | Integration | Reference | Overview |
|
|
| **Sign-off** | N/A | Yes | N/A | N/A |
|
|
| **Code Examples** | Many | Some | Complete | Few |
|
|
|
|
---
|
|
|
|
## Key Topics Coverage
|
|
|
|
### Core Concepts
|
|
|
|
**Covered in:**
|
|
|
|
- **Service Architecture** → Report (Section 1)
|
|
- **JWT Algorithm** → Report (Section 2), Summary (Finding 2)
|
|
- **Token Claims** → Report (Section 2), Quick Ref (Token Structure)
|
|
- **Validation Flow** → Report (Section 3), Checklist (JWT section)
|
|
|
|
### Implementation
|
|
|
|
**Covered in:**
|
|
|
|
- **Backend Setup** → Checklist (Implementation), Report (Section 9)
|
|
- **Guard Usage** → Quick Ref (Guard Patterns), Report (Section 4)
|
|
- **Decorator Patterns** → Report (Section 4), Checklist (Guard Setup)
|
|
- **Error Handling** → Report (Section 10), Checklist (Error Handling)
|
|
|
|
### Testing & Validation
|
|
|
|
**Covered in:**
|
|
|
|
- **Manual Testing** → Checklist (Testing section), Quick Ref (Requests)
|
|
- **Dev Bypass** → Quick Ref (Development Bypass), Checklist (Testing)
|
|
- **Integration Testing** → Checklist (Integration Testing)
|
|
- **Unit Tests** → Checklist (Unit Tests section)
|
|
|
|
### Security & Operations
|
|
|
|
**Covered in:**
|
|
|
|
- **Security** → Report (Section 13), Summary (Risk Assessment)
|
|
- **Environment Config** → Report (Section 6), Checklist (Env Variables)
|
|
- **Troubleshooting** → Report (Section 10), Quick Ref (Troubleshooting)
|
|
- **Monitoring** → Report (Section 12)
|
|
|
|
---
|
|
|
|
## Implementation Workflow
|
|
|
|
### Step 1: Review Architecture (30 min)
|
|
|
|
1. Start with **AUTH_QUICK_REFERENCE.md** - understand basics
|
|
2. Read **AUTH_ANALYSIS_SUMMARY.md** - understand decisions
|
|
3. Skim **AUTH_ARCHITECTURE_REPORT.md** sections 1-4
|
|
|
|
### Step 2: Plan Integration (15 min)
|
|
|
|
1. Read **AUTH_VALIDATION_CHECKLIST.md** Pre-Integration section
|
|
2. Determine integration path (A or B)
|
|
3. Set up environment variables
|
|
|
|
### Step 3: Implement (2-3 hours)
|
|
|
|
1. Reference **AUTH_ARCHITECTURE_REPORT.md** Section 9
|
|
2. Follow **AUTH_VALIDATION_CHECKLIST.md** Implementation section
|
|
3. Use code examples from Quick Reference
|
|
|
|
### Step 4: Test (1-2 hours)
|
|
|
|
1. Follow **AUTH_VALIDATION_CHECKLIST.md** Testing section
|
|
2. Use curl commands from Quick Reference
|
|
3. Verify development bypass works
|
|
|
|
### Step 5: Validate (30 min)
|
|
|
|
1. Complete **AUTH_VALIDATION_CHECKLIST.md** all sections
|
|
2. Get code review approval
|
|
3. Sign off checklist
|
|
|
|
---
|
|
|
|
## File Locations in Monorepo
|
|
|
|
### Documentation (At Monorepo Root)
|
|
|
|
```
|
|
/
|
|
├── AUTH_DOCUMENTATION_INDEX.md (this file)
|
|
├── AUTH_QUICK_REFERENCE.md
|
|
├── AUTH_VALIDATION_CHECKLIST.md
|
|
├── AUTH_ARCHITECTURE_REPORT.md
|
|
└── AUTH_ANALYSIS_SUMMARY.md
|
|
```
|
|
|
|
### Source Code (Analyzed)
|
|
|
|
```
|
|
services/mana-core-auth/
|
|
├── src/auth/
|
|
│ ├── auth.controller.ts
|
|
│ ├── services/better-auth.service.ts
|
|
│ ├── better-auth.config.ts
|
|
│ └── jwt-validation.spec.ts
|
|
├── src/db/schema/
|
|
│ └── auth.schema.ts
|
|
└── CLAUDE.md (project guidelines)
|
|
|
|
packages/
|
|
├── shared-nestjs-auth/src/guards/jwt-auth.guard.ts
|
|
└── mana-core-nestjs-integration/src/guards/auth.guard.ts
|
|
```
|
|
|
|
---
|
|
|
|
## Key Findings Summary
|
|
|
|
### Central Service
|
|
|
|
- **Name:** mana-core-auth
|
|
- **Port:** 3001
|
|
- **Framework:** NestJS + Better Auth
|
|
- **Algorithm:** EdDSA JWT
|
|
- **Database:** PostgreSQL with Drizzle
|
|
|
|
### Integration Patterns
|
|
|
|
- **Path A:** `@manacore/shared-nestjs-auth` (lightweight)
|
|
- **Path B:** `@mana-core/nestjs-integration` (with credits)
|
|
- **Pattern:** Centralized validation via `/api/v1/auth/validate`
|
|
|
|
### Canonical Design
|
|
|
|
- **JWT Claims:** Minimal (sub, email, role, sid only)
|
|
- **Token Expiry:** 15 minutes (access), 7 days (refresh)
|
|
- **Rotation:** Refresh token rotation + soft delete
|
|
- **Guards:** Use `@UseGuards()` decorator
|
|
- **Injection:** Use `@CurrentUser()` decorator
|
|
|
|
### Environment Setup
|
|
|
|
```env
|
|
# Required
|
|
MANA_CORE_AUTH_URL=http://localhost:3001
|
|
|
|
# Development (optional)
|
|
NODE_ENV=development
|
|
DEV_BYPASS_AUTH=true
|
|
DEV_USER_ID=test-uuid
|
|
|
|
# Better Auth manages JWT (DO NOT SET)
|
|
# JWT_PRIVATE_KEY=...
|
|
# JWT_PUBLIC_KEY=...
|
|
```
|
|
|
|
---
|
|
|
|
## Architecture Decisions (Validated)
|
|
|
|
1. **Minimal JWT Claims**
|
|
- Why: Prevents stale data (credits, org info change frequently)
|
|
- Impact: Smaller tokens, better performance
|
|
- Evidence: All backends follow pattern
|
|
|
|
2. **EdDSA Algorithm**
|
|
- Why: Better performance + security than RSA
|
|
- Impact: Smaller keys (32 bytes vs 2048+ bits)
|
|
- Source: Better Auth framework default
|
|
|
|
3. **Centralized Validation**
|
|
- Why: Single source of truth, reduces key distribution
|
|
- Impact: All backends call `/api/v1/auth/validate`
|
|
- Benefit: Easier security updates
|
|
|
|
4. **Refresh Token Rotation**
|
|
- Why: Prevent token replay attacks
|
|
- Impact: Old token revoked on refresh
|
|
- Result: Enhanced session security
|
|
|
|
---
|
|
|
|
## Common Mistakes (Avoid!)
|
|
|
|
1. **Wrong JWT Algorithm**
|
|
- WRONG: RS256 or HS256
|
|
- RIGHT: EdDSA (Better Auth default)
|
|
|
|
2. **Hardcoded Claims**
|
|
- WRONG: Adding org data, credits to JWT
|
|
- RIGHT: Fetch via API endpoints
|
|
|
|
3. **Missing Guard**
|
|
- WRONG: Manual token parsing in controllers
|
|
- RIGHT: Use `@UseGuards()` decorator
|
|
|
|
4. **Wrong Library**
|
|
- WRONG: `import jwt from 'jsonwebtoken'`
|
|
- RIGHT: Use `jose` library for verification
|
|
|
|
5. **Environment Variable**
|
|
- WRONG: Setting JWT_PRIVATE_KEY
|
|
- RIGHT: Let Better Auth manage keys
|
|
|
|
See **AUTH_ARCHITECTURE_REPORT.md** Section 10 for troubleshooting guide.
|
|
|
|
---
|
|
|
|
## Testing Quick Commands
|
|
|
|
### Get Token
|
|
|
|
```bash
|
|
curl -X POST http://localhost:3001/api/v1/auth/login \
|
|
-H "Content-Type: application/json" \
|
|
-d '{"email": "test@example.com", "password": "password123"}'
|
|
```
|
|
|
|
### Test Protected Endpoint
|
|
|
|
```bash
|
|
curl http://localhost:3007/api/favorites \
|
|
-H "Authorization: Bearer $TOKEN"
|
|
```
|
|
|
|
### Validate Token
|
|
|
|
```bash
|
|
curl -X POST http://localhost:3001/api/v1/auth/validate \
|
|
-H "Content-Type: application/json" \
|
|
-d "{\"token\": \"$TOKEN\"}"
|
|
```
|
|
|
|
### Decode Token
|
|
|
|
```bash
|
|
echo $TOKEN | cut -d'.' -f2 | base64 -d | jq '.'
|
|
```
|
|
|
|
More commands in **AUTH_QUICK_REFERENCE.md**.
|
|
|
|
---
|
|
|
|
## Integration Checklist (TL;DR)
|
|
|
|
- [ ] Choose integration path (A or B)
|
|
- [ ] Set `MANA_CORE_AUTH_URL=http://localhost:3001`
|
|
- [ ] Install package via pnpm
|
|
- [ ] Add guard to main.ts
|
|
- [ ] Use `@UseGuards()` on controllers
|
|
- [ ] Use `@CurrentUser()` in handlers
|
|
- [ ] Mark public routes with `@Public()` (Path B)
|
|
- [ ] Test with token
|
|
- [ ] Enable dev bypass (NODE_ENV=development, DEV_BYPASS_AUTH=true)
|
|
- [ ] Complete AUTH_VALIDATION_CHECKLIST.md
|
|
- [ ] Get code review
|
|
- [ ] Deploy
|
|
|
|
---
|
|
|
|
## Support & Resources
|
|
|
|
### Documents in This Analysis
|
|
|
|
- **Getting started?** → AUTH_QUICK_REFERENCE.md
|
|
- **Implementing?** → AUTH_VALIDATION_CHECKLIST.md
|
|
- **Deep dive?** → AUTH_ARCHITECTURE_REPORT.md
|
|
- **Executive brief?** → AUTH_ANALYSIS_SUMMARY.md
|
|
|
|
### External Resources
|
|
|
|
- **Better Auth Docs:** https://www.better-auth.com/docs
|
|
- **JWT.io:** https://jwt.io (decoder)
|
|
- **EdDSA:** https://en.wikipedia.org/wiki/EdDSA
|
|
|
|
### Project Resources
|
|
|
|
- **Source code:** services/mana-core-auth/
|
|
- **Project guide:** services/mana-core-auth/CLAUDE.md
|
|
- **Example backend:** apps/zitare/apps/backend/
|
|
|
|
---
|
|
|
|
## Document Maintenance
|
|
|
|
**Last Updated:** December 1, 2024
|
|
**Status:** Production Ready
|
|
**Version:** 1.0
|
|
|
|
### When to Update
|
|
|
|
- Architecture changes
|
|
- New integration patterns discovered
|
|
- Breaking changes to API
|
|
- Security updates
|
|
|
|
### Update Process
|
|
|
|
1. Update AUTH_ARCHITECTURE_REPORT.md (source of truth)
|
|
2. Update AUTH_VALIDATION_CHECKLIST.md if implementation changes
|
|
3. Update AUTH_QUICK_REFERENCE.md if commands change
|
|
4. Update this index if structure changes
|
|
5. Update AUTH_ANALYSIS_SUMMARY.md with new findings
|
|
|
|
---
|
|
|
|
## Approval & Sign-Off
|
|
|
|
**Analysis Completed:** December 1, 2024
|
|
**By:** Auth Architecture Specialist
|
|
**Status:** APPROVED FOR PRODUCTION USE
|
|
|
|
**Next Steps:**
|
|
|
|
1. Share documents with development team
|
|
2. Reference in PR review process
|
|
3. Use checklist for new backend integrations
|
|
4. Monitor compliance
|
|
|
|
**Questions?** Start with AUTH_QUICK_REFERENCE.md or AUTH_ANALYSIS_SUMMARY.md.
|
|
|
|
---
|
|
|
|
## Table of Contents (All Documents)
|
|
|
|
### AUTH_QUICK_REFERENCE.md
|
|
|
|
1. Core Service
|
|
2. Essential Endpoints
|
|
3. Backend Integration
|
|
4. JWT Token Structure
|
|
5. Common Requests
|
|
6. Guard Usage Patterns
|
|
7. Environment Variables
|
|
8. Token Inspection
|
|
9. Error Codes
|
|
10. Development Bypass
|
|
11. Troubleshooting
|
|
12. File Locations
|
|
13. Related Packages
|
|
|
|
### AUTH_VALIDATION_CHECKLIST.md
|
|
|
|
1. Pre-Integration Checklist
|
|
2. Implementation Checklist
|
|
3. API Route Validation
|
|
4. JWT Token Validation
|
|
5. Database Considerations
|
|
6. Testing Checklist
|
|
7. Integration Testing
|
|
8. Production Readiness
|
|
9. Code Review Checklist
|
|
10. Common Issues & Fixes
|
|
11. Sign-Off
|
|
|
|
### AUTH_ARCHITECTURE_REPORT.md
|
|
|
|
1. Executive Summary
|
|
2. API Route Structure & Versioning
|
|
3. JWT Token Format & Structure
|
|
4. Validation Flow & JWKS
|
|
5. Authentication Guards & Decorators
|
|
6. Database Schema
|
|
7. Environment Variables
|
|
8. Login Flow (E2E)
|
|
9. Organization (B2B) Flow
|
|
10. Integration Best Practices
|
|
11. Common Issues & Troubleshooting
|
|
12. Testing & Debugging
|
|
13. Monitoring & Logging
|
|
14. Security Considerations
|
|
15. References & Further Reading
|
|
|
|
### AUTH_ANALYSIS_SUMMARY.md
|
|
|
|
1. Objective
|
|
2. Key Findings
|
|
3. Architecture Decisions (Validated)
|
|
4. Validation Results
|
|
5. Deliverables Created
|
|
6. Integration Guidance
|
|
7. Common Patterns Identified
|
|
8. Risk Assessment
|
|
9. Success Criteria
|
|
10. Approval & Sign-Off
|
|
|
|
---
|
|
|
|
**Master Index Created:** December 1, 2024
|
|
**Total Documentation Pages:** 52 KB
|
|
**Sections Documented:** 60+
|
|
**Code Examples:** 40+
|
|
**Checklists:** 8+
|
|
|
|
Navigate to appropriate document and start working!
|