Fuentes de datos de plataforma

Fuentes de datos de plataforma son los backends de mercado que IVPrior usa para jobs del scanner — la misma familia que el CLI Python (yfinance, tradier, tastytrade). El staff de plataforma registra credenciales acá; los Suscriptores nunca ven secretos. Los Planes (S-106) eligen qué fuentes puede usar una cuenta de pago.

Vista general

Lista de fuentes de datos de plataforma

Figura: Operations → Data sources — búsqueda, filtros, acciones por fila y Add data source (wizard modal).

Qué significa cada columna

Nombre

Etiqueta humana en selectores del wizard de Planes (por ejemplo Yahoo Finance). Editable en cualquier momento.

Código

Clave estable en minúsculas (yahoo, tradier, tastytrade) usada en jobs y entitlements. Se genera automáticamente al crear desde el nombre (por ejemplo Yahoo Financeyahoo_finance). No aparece en el wizard y no es editable después.

Proveedor

Familia de implementación:

  • YFINANCE — proxy gratuito de Yahoo (default del CLI sin API keys). Buen spot/historial; IV de opciones menos fiable.
  • TRADIER — sandbox de desarrollador Tradier; requiere token API en credenciales.
  • TASTYTRADE — REST Tastytrade; requiere credenciales de login. Aporta IV rank real cuando está disponible.

Estado

  • Activo — se puede vincular a Planes y elegir en jobs del scanner.
  • Inactivo — oculto para vínculos nuevos en Planes; suscripciones existentes conservan el vínculo histórico hasta que actualices el Plan.

Permisos (platform.data_sources.*)

  • read — listar y ver hint de credenciales enmascaradas
  • create — Add data source (wizard modal)
  • update — Editar, Desactivar
  • delete — Eliminar fila y eliminación masiva

Sin read, el ítem de navegación no aparece.

Agregar o editar una fuente

  1. Abrí Operations → Data sources.
  2. Clic en Add data source (o fila ⋮ → Edit).
  3. Identity — nombre (código auto-generado al crear), proveedor, toggle Activo. YFINANCE termina acá — sin paso de credenciales (proxy público, igual que el CLI sin keys).
  4. Credentials (solo Tradier, Tastytrade, FMP) — usá el icono ? junto al campo para instrucciones paso a paso y enlaces a los proveedores. Los secretos se guardan cifrados.
  5. Finish (crear) o Save (editar). La lista se actualiza y el modal se cierra.

Credenciales por proveedor

El icono ? del wizard (tipo de proveedor en Identidad, Credenciales en el paso 2) muestra el mismo contenido inline. Abajo está la referencia completa para Soporte y chat con IA.

Yahoo Finance (YFINANCE)

  • ¿Requiere credenciales? No.
  • Wizard: solo Identidad — sin paso Credenciales.
  • Qué aporta: spot/historial gratuito vía proxy Yahoo (yfinance). La IV de opciones es menos fiable que Tradier/Tastytrade.
  • Alineación CLI: default cuando TRADIER_TOKEN y TASTY_USER / token Tastytrade guardado no están definidos (get_source() → yfinance).
  • Dónde registrarse: no aplica — sin API key.

Sandbox Tradier (TRADIER)

  • ¿Requiere credenciales? Sí — Access Token del sandbox (cuenta de desarrollador gratuita).
  • Dónde conseguirlas:
    1. Creá una cuenta gratuita en developer.tradier.com.
    2. Abrí Developer → Dashboard.
    3. Copiá el Access Token del sandbox.
    4. Pegá el token en el campo Credenciales del wizard (texto plano).
  • Formato: token de una línea (no tu contraseña de login).
  • Alineación CLI: export TRADIER_TOKEN="tu_token" — el mismo valor.
  • Notas: el sandbox es gratuito; las keys de producción Tradier son otro producto y no son necesarias para paridad del scanner IVPrior con el CLI.

Tastytrade (TASTYTRADE)

  • ¿Requiere credenciales? Sí — login de tu cuenta Tastytrade (o token de sesión guardado).
  • Dónde conseguirlas: cuenta activa en tastytrade.com. API: developer.tastytrade.com.
  • Formato (campo del wizard):
    • Dos líneas: email en la línea 1, contraseña en la 2; o
    • JSON: {"login":"vos@ejemplo.com","password":"tu_contraseña"}
  • 2FA: si usás Google Authenticator, hacé un login CLI con TASTY_OTP una vez y pegá un token de sesión guardado, o rotá en una ventana de mantenimiento.
  • Alineación CLI: export TASTY_USER="email" y export TASTY_PASS="contraseña" (TASTY_OTP opcional con 2FA). El CLI cachea la sesión en .tasty_session.json (~24h).
  • Qué agrega: IV rank real vía market-metrics de Tastytrade (Yahoo no lo da bien).

Financial Modeling Prep (FMP)

  • ¿Requiere credenciales? Sí — API key de FMP.
  • Dónde conseguirlas: registrate en Financial Modeling Prep Developer y copiá tu API key del dashboard.
  • Formato: API key de una línea.
  • Alineación CLI: export FMP_API_KEY="tu_key" solo para modo --screener. FMP no forma parte de la resolución auto de get_source() (yahoo/tradier/tastytrade).
  • Uso en IVPrior: jobs de screener fundamental cuando el Plan lo vincula — no la cadena default del scanner de opciones.

Rotar secretos (modo edición)

En Edit → Credentials, dejá el campo vacío para conservar el secreto guardado. Ingresá texto nuevo solo al rotar. El hint enmascarado (••••abcd) confirma que hay algo almacenado.

Desactivar vs eliminar

  • Deactivate — apagado suave (active=false). Usalo cuando el proveedor está mal configurado pero querés conservar la fila para auditoría.
  • Delete — eliminación permanente (API DELETE). Usalo cuando la fuente fue un error. Los Planes que aún la referencian necesitan un nuevo default en S-106.

Delete selected en masa ejecuta un delete por fila; un fallo de API aborta el resto.

Alineación con el CLI

El get_source() local en apps/cli resuelve:

  1. tastytrade cuando existe TASTY_USER o un token guardado válido
  2. si no, tradier cuando TRADIER_TOKEN está definido
  3. si no, yfinance (Yahoo)

El seed de base de datos hace upsert de los mismos tres códigos para que los Planes SaaS usen el mismo vocabulario que el CLI.

Preguntas frecuentes (Soporte)

¿Dónde consigo credenciales de Tradier / Tastytrade / FMP?

Ver Credenciales por proveedor arriba. Cada sección lista la URL del proveedor, formato del campo y variable de entorno del CLI.

¿Por qué Yahoo no tiene paso Credenciales?

YFINANCE usa el proxy público de Yahoo sin API key — igual que el default del CLI cuando no hay variables Tradier ni Tastytrade.

Pegué credenciales pero los scans siguen fallando

Revisá: (1) fuente Activa, (2) Plan vincula esta fuente en Scanner entitlements (S-106), (3) token no expirado (sandbox Tradier / sesión Tastytrade), (4) formato correcto (Tradier = solo token, no contraseña).

¿Los Suscriptores ven estas API keys?

No. Solo el staff de plataforma con permisos platform.data_sources.* gestiona credenciales. Los Suscriptores ven solo nombres de fuentes permitidas.

¿Cómo se relaciona con el CLI Python?

apps/cli/data_source.py get_source() elige tastytrade → tradier → yfinance según env vars. SaaS guarda el equivalente por fila de Data source; el seed hace upsert de códigos yahoo, tradier, tastytrade.

Test del lector

Si un scan del Suscriptor falla con “data source not allowed”, revisá Plan → Scanner entitlements (S-106) por fuentes vinculadas y si la fuente sigue Activa — no el email de login del Suscriptor.