4.3 KiB
4.3 KiB
IXG Platform — Mission Complete Summary
VPS
- IP: 194.164.95.50
- OS: Ubuntu 26.04
- Project: /root/work/ixg_platform/
Services Running
| Container | Port | Notes |
|---|---|---|
| ixg-platform-app | 8000 | Django + Gunicorn |
| ixg-platform-db | 5433 | PostgreSQL 15 |
| ixg-platform-redis | 6379 | Redis 7 |
| ixg-platform-celery-worker | — | Celery worker |
| ixg-platform-celery-beat | — | Celery beat scheduler |
Nginx (Host)
- Config: /etc/nginx/sites-enabled/ixg
- Proxied routes → Django on port 8000:
- /admin/ — Django Admin (Grappelli)
- /oidc/ — OIDC auth flow
- /ops/ — Ops Portal
- /portal/ — Buyer Portal
- /static/ — Static files
- /grappelli/ — Grappelli admin theme
- /platform/ — Legacy Django root
Authentication
- Provider: Keycloak 26.6.1 (realm: ixg) on port 8443
- Admin console: https://auth.veripath.co.uk/admin/veripath/console/
- Keycloak admin: admin / test123
- OIDC Client: ixg-platform (secret: VGEvBE7M7AaNKde8F5t0zAXWMpgnCYCX)
- Django superuser: admin@ixg.local / Admin123!
- Test user: testuser / Test123! (test@ixg.local)
- Matthew: mstickels@yahoo.co.uk (role=admin)
What Was Built
Phase 1 — Foundation
- Django project (5.2) with 12 models across 9 apps
- Docker Compose orchestration (app, Celery worker/beat, PostgreSQL, Redis)
- Keycloak OIDC integration (mozilla-django-oidc)
- Grappelli-themed Django admin
- Custom User model (email-based, UUID PK, roles: buyer/ops/admin)
- RBAC middleware for role-based route access
Phase 2 — REST API
- DRF serializers, viewsets, and URLs for all models
- Pagination (20/page), filtering (django-filter), search, ordering
- QC auto-CAPA logic: QC fail auto-creates CAPA record
- Token + Session authentication
Phase 3 — Ops Portal (/ops/)
- Dashboard with key metrics (batches by status, QC pass/fail, active shipments, open CAPAs)
- List/detail views for Batches, QC Results, Shipments, CAPA Records, Documents, ESG Reports
- Search, filter, pagination on all list views
- Related data displayed on detail pages
Phase 4 — Buyer Portal (/portal/)
- Buyer-facing dashboard (batch count, active shipments, recent documents, subscription)
- Batches list/detail with shipments, documents, ESG reports
- Documents list (buyer-visible only, by visibility field)
- Subscription status view
Phase 5 — AI Chatbot
- AgentConfig model with encrypted API key storage (django-encrypted-model-fields)
- Agent admin UI at /admin/ai/agentconfig/
- Agent service with provider dispatch: OpenAI, DeepSeek, Google Gemini, Ollama, Custom
- Default agent IXG Assistant configured with DeepSeek API
- Chat API: POST /api/ai-interactions/chat/
- Standalone chat page: /portal/chat/
- Embeddable widget: /portal/chat/embed/
- Chat history tracked per user/session via AIInteraction model
API Endpoints
| Endpoint | Methods | Purpose |
|---|---|---|
| /api/auth/ | POST | Get auth token |
| /api/users/ | GET/POST/PUT/DELETE | User management |
| /api/subscriptions/ | GET/POST/PUT/DELETE | Subscriptions |
| /api/batches/ | GET/POST/PUT/DELETE | Processing batches |
| /api/qc-results/ | GET/POST/PUT/DELETE | QC results |
| /api/shipments/ | GET/POST/PUT/DELETE | Shipments |
| /api/documents/ | GET/POST/PUT/DELETE | Documents |
| /api/capa-records/ | GET/POST/PUT/DELETE | CAPA records |
| /api/esg-reports/ | GET/POST/PUT/DELETE | ESG reports |
| /api/ai-interactions/ | GET | Chat history |
| /api/ai-interactions/chat/ | POST | Send chat message |
| /api/agents/ | GET/POST/PUT/DELETE | Agent configs |
Outstanding Tasks
- Chat UI debugging — JS fetch to chat API needs session cookie auth to work in browser; works with token auth
- Email notifications — SMTP outgoing (QC fail alerts, shipment updates, CAPA assignments) + IMAP incoming (certificate PDF auto-import). Requires domain + Fasthosts mail hosting or transactional API (SendGrid/Mailgun)
- Compliance automation — CoA auto-generation, EUDR due diligence checks. Needs domain expertise
- Polish — UI refinement, form validation, error handling, loading states across both portals
Reference Documents
- This document: /root/work/ixg_platform/SESSION_CHECKPOINT.md
- Wiki development plan: http://194.164.95.50/en/home/development/plan