API de plataforma para el backoffice SaaS de Postas. En esta etapa el servicio empieza a ser la fuente de verdad para billing: planes, features, limites, suscripciones, pagos y consumo mensual por tenant.
La API legacy de procesamiento IA sigue disponible durante la transicion, pero
el nuevo modulo de plataforma vive en /internal/v1.
GET /api/v1/healthGET /internal/v1/tenants/{tenant_id}/statusPOST /internal/v1/entitlements/checkPOST /internal/v1/usage/consumePOST /internal/v1/usage/check-and-consume
Endpoints legacy de IA:
POST /api/v1/document-extractions/processPOST /api/v1/invoices/extract
Crear .env desde .env.example:
copy .env.example .envVariables principales:
APP_NAMEAPI_PREFIXDATABASE_URLPOSTAS_SERVICE_TOKENALLOWED_REQUEST_SOURCES
Para la API legacy de IA tambien siguen disponibles:
POSTAS_AI_API_TOKENREQUIRE_API_TOKENGOOGLE_API_KEYAI_PROVIDERGOOGLE_MODEL
Por defecto se usa SQLite local:
sqlite:///./postas_platform.dbAplicar migraciones:
.\env\Scripts\python.exe -m alembic upgrade headEl catalogo inicial de planes y features es idempotente:
.\env\Scripts\python.exe scripts\seed_billing.pyEl plan test queda incluido en ese seed. Es privado y habilita todas las
features; las features de consumo mensual o limite de recursos quedan con
limite 1.
Para crear tenants locales de prueba, uno por cada plan activo, ejecutar:
.\env\Scripts\python.exe scripts\seed_plan_tenants.pyEl script reutiliza cualquier suscripcion activa existente para un plan y crea los planes faltantes con UUIDs consecutivos al mayor tenant ya presente.
Documentacion del modulo:
Con Docker:
docker compose up --buildCon entorno local:
.\env\Scripts\python.exe -m pip install -r requirements.txt
.\env\Scripts\python.exe -m alembic upgrade head
.\env\Scripts\python.exe scripts\seed_billing.py
.\env\Scripts\python.exe -m uvicorn main:app --reload --port 8001.\env\Scripts\python.exe -m pytest tests/test_billing.py -q