LinkSyncServer: - Fix app.py imports, add CORS middleware, lifespan events - Create api/routes.py router aggregator - Create config/settings.py for centralized configuration - Rewrite models/base.py with proper relationships and serialization - Rewrite all API endpoints with real DB integration (auth, links, collections, sync, queries, tags) - Add admin endpoints (user management, stats, audit log) - Complete query parser with recursive descent and proper precedence - Complete query executor with set operations and field filters - Set up Alembic migrations with initial schema - Create web interface (templates, CSS, JS) - Add 42 passing tests (auth, links, collections, queries) - Add deploy.ps1 and deploy.sh scripts - Update README with deployment workflow LinkSyncExtension: - Create utils/api.js (REST client with retries, auth, error handling) - Create utils/sync.js (3 sync modes + conflict detection) - Create utils/collection.js (collection management) - Create utils/query-engine.js (client-side query parser) - Rewrite background.js (sync loop, bookmark events, message routing) - Rewrite popup.js (tabs, settings modal, notifications, CRUD) - Update popup.html (tabbed interface, query builder, modal) - Update popup.css (full redesign) - Create content/content.js (page metadata extraction) - Create options.html/js (dedicated settings page) - Generate icons (48x48, 96x96) - Update manifest.json (host permissions, content scripts, options) - Create AGENTS.md
102 lines
3.1 KiB
Plaintext
102 lines
3.1 KiB
Plaintext
# LinkSyncServer - Task List
|
|
|
|
## Project Setup
|
|
- [x] Create project directory structure
|
|
- [x] Write README.md
|
|
- [x] Write TODOs.txt
|
|
- [x] Write design.md
|
|
- [x] Write tasks.md
|
|
- [x] Write AGENTS.md
|
|
- [x] Create docker-compose.yml
|
|
- [x] Create Dockerfile
|
|
- [x] Create requirements.txt
|
|
- [x] Create pyproject.toml
|
|
- [x] Create .env.example
|
|
|
|
## Core Development
|
|
|
|
### Authentication & Authorization
|
|
- [x] User registration/login (with real DB integration)
|
|
- [x] JWT token generation and validation (from environment settings)
|
|
- [x] API key management (with real DB integration)
|
|
- [x] Admin user creation (auto-creates on first login)
|
|
- [x] Role-based access control (admin/user roles)
|
|
- [x] Session management (JWT-based)
|
|
|
|
### Data Models
|
|
- [x] User model (with to_dict serialization)
|
|
- [x] Link model with Firefox fields (Bookmark)
|
|
- [x] Collection model (static and dynamic)
|
|
- [x] Tag model
|
|
- [x] Audit log model
|
|
- [x] SQLAlchemy ORM integration (with proper relationships)
|
|
|
|
### Database Schema
|
|
- [x] PostgreSQL schema design (schema.sql)
|
|
- [x] Migrations setup (Alembic with autogenerate)
|
|
- [x] Full-text search indexes
|
|
- [x] Schema.sql for Docker volumes
|
|
|
|
### API Layer
|
|
- [x] Link CRUD endpoints (with real DB)
|
|
- [x] Collection CRUD endpoints (with real DB)
|
|
- [x] Auth endpoints (with real DB, bcrypt hashing)
|
|
- [x] Sync endpoint for extension (with real DB)
|
|
- [x] Query execution endpoint (with real DB)
|
|
- [x] Admin endpoints (user management, stats, audit log)
|
|
- [x] Tag management endpoints
|
|
- [x] OpenAPI/Swagger documentation
|
|
|
|
### Query Engine
|
|
- [x] Query parser (recursive descent with proper precedence)
|
|
- [x] AST representation (TERM, TERM_SET, FIELD:*, AND, OR, XOR)
|
|
- [x] Query executor (set operations, field filters)
|
|
- [x] Set operation logic (AND=intersection, OR=union, XOR=difference)
|
|
- [x] Field filtering (url, tag, title, description, path, id)
|
|
|
|
### Web Interface
|
|
- [x] Base template and layout
|
|
- [x] Index page with feature overview
|
|
- [x] Responsive CSS (mobile-first)
|
|
- [x] JavaScript API client (LinkSync object)
|
|
|
|
### Docker & Deployment
|
|
- [x] Dockerfile for application
|
|
- [x] docker-compose.yml
|
|
- [x] .env.example
|
|
- [x] Health checks
|
|
- [x] Graceful shutdown (lifespan events)
|
|
|
|
## Testing
|
|
- [x] Unit tests for models
|
|
- [x] Unit tests for query parser/executor (17 tests)
|
|
- [x] API endpoint tests (25 tests)
|
|
- [x] Authentication tests (8 tests)
|
|
- [x] Integration tests with TestClient
|
|
- [x] Test configuration (tests/conftest.py)
|
|
- [x] pytest.ini in pyproject.toml
|
|
- [x] All 42 tests passing
|
|
|
|
## Documentation
|
|
- [x] API reference (via /api/docs OpenAPI)
|
|
- [x] User guide (README.md)
|
|
- [x] Developer guide (AGENTS.md, design.md)
|
|
- [x] Deployment guide (README.md)
|
|
- [x] Query syntax reference (README.md)
|
|
|
|
## Security
|
|
- [x] Password hashing (bcrypt with cost factor 12)
|
|
- [x] CORS configuration (configurable origins)
|
|
- [x] Input validation/sanitization (Pydantic models)
|
|
- [x] Security headers (via FastAPI defaults)
|
|
|
|
## Future Enhancements
|
|
- [ ] Export/import functionality
|
|
- [ ] Bulk operations
|
|
- [ ] Email notifications
|
|
- [ ] Webhook support
|
|
- [ ] Mobile app API
|
|
- [ ] Rate limiting middleware
|
|
- [ ] Caching layer for query results
|
|
- [ ] Full-text search optimization
|