john-okeefe
8321149957
test: add Bruno API test collections for device authentication
...
- Device token regeneration tests (success, forbidden, not found, unauthorized)
- OPDS authentication tests (Bearer token, query token)
- Kobo sync tests with token authentication
- Test various authentication methods and error cases
2026-02-13 12:12:17 -05:00
john-okeefe
2b24dd9dd3
fix: Fix failing integration tests and update documentation
...
- Fix TestUpdateDevice: Use correct JSON field name and handle float64 type
- Fix TestRejectDeviceRegistration: Expect message response instead of boolean
- Update approve device docs: Add missing response fields
- Update reject device docs: Correct message text and format
- Update Bruno API: Fix example response for reject endpoint
Both integration tests now pass while maintaining API consistency.
2026-02-10 10:22:19 -05:00
john-okeefe
26070e4000
Refactor: rename baseUrl to base_url in .bru files
...
Update configuration key naming convention to use snake_case
consistently.
Applies changes recursively across all subdirectories.
2026-02-08 21:26:31 -05:00
john-okeefe
3117ce54ec
refactor(bruno): migrate API tests to Bruno DSL format
...
- Convert all existing .bru files from JSON to Bruno DSL format
- Remove obsolete files (conflicts/api.bru, kobo/Kobo Initialization.bru)
- Update auth configuration to use 'inherit' instead of explicit bearer tokens
- Add comprehensive documentation to all test files
- Improve test scripts with proper assertions and error handling
2026-02-08 20:49:06 -05:00
john-okeefe
fb324693f6
docs: update Bruno API tests for device registration and admin registration
...
- Fix device registration API test parameters
- Update admin user registration test with proper fields
- Ensure API tests match current endpoint behavior
- Improve API documentation accuracy
2026-02-06 17:08:29 -05:00
john-okeefe
96825e3bc2
Rename API test collection references: Bookmann → Bookhoard
...
Bruno API test updates:
- Update test assertions: X-Bookmann-* → X-Bookhoard-*
- Update variable names and references in test scripts
- Update documentation and comments in API tests
This is part 4 of the project rename to Bookhoard.
2026-02-01 16:12:05 -05:00
john-okeefe
e28776c7a6
test(api): add Bruno API tests for devices, media items, and progress
2026-02-01 13:21:35 -05:00
john-okeefe
4d87beb540
test: add Bruno API collections for sync features
...
- Add device registration and management API tests
- Add conflicts resolution API tests
- Add queue management API tests
- Add KOReader sync protocol tests
- Add Kobo sync protocol tests
2026-01-31 18:25:32 -05:00
john-okeefe
45ba922c68
test: add Bruno API test collections for Kobo and media endpoints
2026-01-31 00:29:40 -05:00
john-okeefe
23ad70158c
Phase 2 Week 5: Device Registration & Management
...
Implement device registration and management system for universal sync.
Database Changes:
- Add device queries to queries.sql (CRUD operations, registration, auth)
- Add sync queue management queries
- Add conflict resolution queries
- Regenerate sqlc models with new device-related types
Device Handler (devices.go):
- InitiateRegistration: Start device registration with auth URL and QR code
- CheckRegistrationStatus: Poll for registration approval
- ListDevices: Get all devices for current user
- GetDevice: Get specific device details
- UpdateDevice: Update device settings (name, sync settings, frequency)
- DeleteDevice: Remove device from account
- ApproveDevice: User approves device registration via web
- RejectDevice: Reject pending device registration
- ListPendingRegistrations: Show all pending registrations
- generateDeviceToken: Generate secure Bearer token for devices
Device Authentication Middleware (device_auth.go):
- Authenticate: Validate device Bearer tokens
- RequirePermission: Check device permissions by type
- hasPermission: Define permissions per device type
- UpdateLastSeen: Auto-update device last_seen timestamp
Configuration:
- Add BaseURL field to Config for device setup URLs
API Endpoints:
POST /api/devices/register - Initiate device registration
POST /api/devices/register/status - Check registration status
GET /api/devices/approve/:id - Approve device (web UI)
POST /api/devices/reject/:id - Reject device
GET /api/devices - List user's devices
GET /api/devices/:id - Get device details
PUT /api/devices/:id - Update device settings
DELETE /api/devices/:id - Delete device
GET /api/devices/pending - List pending registrations
Bruno API Collection:
- Initiate Device Registration
- Check Registration Status
- List Devices
- Get Device
- Update Device
- Delete Device
Dependencies:
- github.com/skip2/go-qrcode for QR code generation
Device Types Supported:
- koreader: Calibre-compatible sync
- kobo: Kobo sync protocol
- web: Web interface
- mobile: Mobile apps
Device Permissions:
- sync:progress
- sync:annotations
- sync:metadata
- device:manage (web only)
2026-01-30 16:45:10 -05:00