Commit graph

17 commits

Author SHA1 Message Date
goose
e5d0ae4fd1 fix(backend): Add debug output to diagnose silent crash 2026-02-15 15:37:12 -03:00
goose
7221a8e280 feat(api): Add API testing script and quick test guide 2026-02-15 15:28:04 -03:00
goose
b0318430ad docs(docker): Add /var space issue documentation and monitoring scripts 2026-02-15 15:18:21 -03:00
goose
f0b5109f61 fix(docker): Document MongoDB disk space issue and solutions 2026-02-15 14:33:58 -03:00
goose
b068579671 fix(docker): Simplify MongoDB healthcheck and add troubleshooting 2026-02-15 14:25:45 -03:00
goose
b218594b53 fix(docker): Fix MongoDB healthcheck configuration 2026-02-15 14:16:08 -03:00
goose
d63f160af3 fix(docker): Update to Rust 1.93 to support Edition 2024 2026-02-15 14:05:15 -03:00
goose
860c2dc439 Fix: Use Rust latest (1.85+) for edition2024 support
Our dependencies (time-core, getrandom, uuid, etc.) now require
Rust 1.85+ for edition2024 support.

Changes:
- Dockerfile.dev: Updated to rust:latest
- Dockerfile.prod: Updated to rust:latest for builder stage

This resolves the edition2024 compilation errors.
2026-02-15 12:24:51 -03:00
goose
5e20e802f3 Simplify: Remove cargo-watch from Docker dev build
cargo-watch dependencies require Rust 1.85+ and edition2024.
For development, we can simply use 'cargo run' which works fine.
The server can be restarted with docker compose restart.
2026-02-15 12:03:28 -03:00
goose
baa3ea9b6d Fix: Pin cargo-watch to v8.4.0 to avoid edition2024 requirement
Problem:
- cargo-watch v8.5.3 requires Rust edition2024 which is not stable yet
- Even Rust 1.83 doesn't support edition2024
- Build fails with: feature 'edition2024' is required

Solution:
- Pin cargo-watch to version 8.4.0
- This version works perfectly with stable Rust 1.83
- No functional difference for development purposes

Change:
RUN cargo install cargo-watch
→ RUN cargo install cargo-watch --version 8.4.0
2026-02-15 11:54:56 -03:00
goose
931c52daf6 Fix: Add pull_policy to docker-compose.dev.yml to force rebuild
Added pull_policy: build to prevent Docker from using cached images
with old Rust version. This ensures the build uses Rust 1.83 as specified
in Dockerfile.dev.
2026-02-15 11:51:22 -03:00
goose
39f9ff38d0 Fix: Update Rust to 1.83 and fix Dockerfile CMD syntax
Changes:
- Updated Rust from 1.75 to 1.83 in both Dockerfiles
- Fixed CMD syntax: changed single quotes to double quotes (JSON format)
  Before: CMD ['cargo-watch', '-x', 'run']
  After:  CMD [cargo-watch, -x, run]

This fixes the cargo-watch compilation error that required edition2024.
Rust 1.83 supports all current crate features and editions.
2026-02-15 11:32:27 -03:00
goose
ea684c4a4b Config: Change server port to 6800 and remove Cargo.lock dependency
Changes:
- Changed server port from 8000 to 6800 (in range 6500-6999 as requested)
- Updated all Docker Compose files (dev and prod)
- Updated all Dockerfiles (removed Cargo.lock dependency)
- Created backend/.dockerignore with Cargo.lock
- Added Cargo.lock to .gitignore (generated by cargo)
- Removed obsolete 'version' attribute from docker-compose files
- Updated all documentation to reflect new port:
  * README.md
  * thoughts/CONFIG.md
  * thoughts/QUICKSTART.md
  * thoughts/verification-report-phase-2.3.md

This fixes Docker build errors where Cargo.lock was not found during COPY operations.
Docker will now generate Cargo.lock during the build process as expected.
2026-02-15 09:48:11 -03:00
goose
02b24a3ac1 Phase 2.3: Complete JWT Authentication with token rotation and revocation
- Fixed DateTime timestamp issues (use timestamp_millis instead of to_millis)
- Implemented token rotation: old refresh tokens revoked on refresh
- Implemented logout revocation: tokens immediately marked as revoked
- Removed rate limiting (deferred to Phase 2.6)
- Created comprehensive verification report
- Updated STATUS.md

All Phase 2.3 objectives complete:
 JWT Access Tokens (15 min expiry)
 JWT Refresh Tokens (30 day expiry)
 Token Rotation
 Token Revocation
 PBKDF2 Password Hashing
 Auth endpoints (register, login, refresh, logout)
 Protected routes with JWT middleware
 Health check endpoints

Compiles successfully with only unused code warnings.
2026-02-15 09:05:34 -03:00
goose
8b2c13501f Phase 2.3: JWT Authentication implementation
- Implemented JWT-based authentication system with access and refresh tokens
- Added password hashing service using PBKDF2
- Created authentication handlers: register, login, refresh, logout
- Added protected routes with JWT middleware
- Created user profile handlers
- Fixed all compilation errors
- Added integration tests for authentication endpoints
- Added reqwest dependency for testing
- Created test script and environment example documentation

All changes:
- backend/src/auth/: Complete auth module (JWT, password, claims)
- backend/src/handlers/: Auth, users, and health handlers
- backend/src/middleware/: JWT authentication middleware
- backend/src/config/: Added AppState with Clone derive
- backend/src/main.rs: Fixed imports and added auth routes
- backend/src/db/mod.rs: Changed error handling to anyhow::Result
- backend/Cargo.toml: Added reqwest for testing
- backend/tests/auth_tests.rs: Integration tests
- thoughts/: Documentation updates (STATUS.md, env.example, test_auth.sh)
2026-02-14 20:03:11 -03:00
goose
154c3d1152 Phase 2.2: MongoDB connection and models 2026-02-14 15:37:02 -03:00
goose
1e38fe3ace Phase 2.1: Backend project initialized with Docker configuration
- Created Cargo.toml with all required dependencies
- Implemented health/ready endpoints
- Added Docker configuration (production + development)
- Configured docker-compose with resource limits
- Set up MongoDB service with persistence
- Verified build (cargo check passed)
- Prepared monorepo structure for mobile/web/shared

Next: Phase 2.2 (MongoDB connection and models)
2026-02-14 15:30:06 -03:00