Some checks failed
Deploy to Production / Build and Deploy (push) Failing after 2m14s
Foundations:
- TranslationSegment model + migration f7e8d9c0b1a2 (segments, workspaces,
workspace_members, glossaries.workspace_id)
- SegmentRecorder injected into all 4 translators: unique (source,
translation) pairs captured per job and persisted (best-effort)
- set_segment_overrides: human-reviewed translations applied verbatim on
rebuild — top priority over TM and provider, zero API calls
Review API (routes/review_routes.py):
- GET /translations/{id}/segments (owner or job token)
- PATCH /segments/{id} edit/approve — feeds the per-user TM so approved
translations are reused in later jobs
- POST /translations/{id}/rebuild — rebuild document with reviewed text
- GET/POST /translations/{id}/xliff — XLIFF 1.2 export/import (edited
segments export their reviewed text)
Review editor (frontend /dashboard/reviews/[jobId]):
- side-by-side source/translation table, inline edit, approve (single or
all), rebuild & download (auth blob), XLIFF export/import, 13 locales
- 'Relire et corriger' link on the translation-complete screen
Team workspaces (routes/workspace_routes.py + /dashboard/teams):
- Workspace/WorkspaceMember models, roles owner/admin/member
- create (Business plan), list with seat usage, invite by email with
seat-limit enforcement (Business=5, Enterprise unlimited), removal
- shared glossaries: workspace members can use a glossary shared to their
workspace (access check extended)
Tests: 1184 passed / 0 failed (11 new: recorder, overrides, docx
capture->rebuild e2e, XLIFF structure/escaping, seats, workspace CRUD,
shared glossary access)
32 lines
1.3 KiB
Python
32 lines
1.3 KiB
Python
"""
|
|
Main API v1 Router
|
|
Aggregates all v1 sub-routers under /api/v1 prefix
|
|
Story 3.5: API Versioning
|
|
"""
|
|
|
|
from fastapi import APIRouter
|
|
|
|
router = APIRouter(tags=["API v1"])
|
|
|
|
from routes.translate_routes import router_v1 as translate_router
|
|
from routes.auth_routes import router_v1 as auth_router
|
|
from routes.api_key_routes import router as api_key_router
|
|
from routes.admin_routes import router as admin_router
|
|
from routes.legacy_routes import router as legacy_router
|
|
from routes.glossary_routes import router as glossary_router
|
|
from routes.prompt_routes import router as prompt_router
|
|
from routes.waitlist_routes import router as waitlist_router
|
|
from routes.review_routes import router as review_router
|
|
from routes.workspace_routes import router as workspace_router
|
|
|
|
router.include_router(translate_router, tags=["Translation"])
|
|
router.include_router(auth_router, tags=["Authentication"])
|
|
router.include_router(api_key_router, tags=["API Keys"])
|
|
router.include_router(admin_router, tags=["Admin"])
|
|
router.include_router(legacy_router, tags=["Legacy"])
|
|
router.include_router(glossary_router, tags=["Glossaries"])
|
|
router.include_router(prompt_router, tags=["Prompts"])
|
|
router.include_router(waitlist_router, tags=["Waitlist"])
|
|
router.include_router(review_router, tags=["Review"])
|
|
router.include_router(workspace_router, tags=["Workspaces"])
|