:: overview::app :: · entrega::sistemas

mayan-sync-catrina-control 1.0.0

pk ID_Post · sk URL · fuente final_production_package_control.csv · @catrina_nortena
analytics Streamlit+Plotly/Power BI · ingest CSV upsert · Teams webhook + logs JSON

:: posts en memoria ::
10
:: columnas modelo ::
51
:: endpoints ::
10
:: api base ::
https://api.terrauniversalis.mx/catrina/v1
version / owner
1.0.0 · alfonso

:: overview::app ::

nombremayan-sync-catrina-control owneralfonso @ terrauniversalis version1.0.0 clave primariaID_Post clave secundariaURL fuente canónicafinal_production_package_control.csv analyticsStreamlit + Plotly / Power BI ingesta CSVmultipart/form-data + upsert por ID_Post observabilidadTeams webhook + logs JSON

Tablero editorial que revisa, corrige y enruta posts diarios de @catrina_nortena para el área editorial de Terrauniversalis. Integra el pipeline Panchita (narración), QA automático y verificación de fuentes.

Los datos se guardan en memoria en la sesión actual del navegador y se exportan hacia SharePoint / Power Automate. Este paquete es lo que necesita el área de Sistemas para replicar el modelo en un backend propio (Postgres, SharePoint, Fabric, etc.).

:: stack::tecnico ::

frontendVite + React 18 + TypeScript stylingTailwind v4 + Shadcn UI routingreact-router-dom estadomemory-store + TanStack Query chartsD3.js iconografialucide-react analyticsStreamlit + Plotly / Power BI backend sugeridoFastAPI o Node/Express persistenciaPostgreSQL o SharePoint List automatizacionPower Automate + Copilot Studio observabilidadTeams webhook + logs JSON

:: esquema::datos :: 51 columnas · snapshot json

Fuente canónica: final_production_package_control.csv · pk ID_Post · sk URL

#columnatipoorigendescripcion
cargando…

:: autenticacion :: bearer::jwt ::

JWT Azure AD (tenant Terrauniversalis). Rate limit: 120 req/min por token.

Authorization: Bearer $CATRINA_API_TOKEN
editorGET, PATCH (posts propios) revisorGET, PATCH (todos) produccionGET, PATCH, POST adminGET, POST, PATCH, DELETE
curl -X GET "https://api.terrauniversalis.mx/catrina/v1/posts?estado=REVISAR&limit=50" \
  -H "Authorization: Bearer $CATRINA_API_TOKEN"

curl -X PATCH "https://api.terrauniversalis.mx/catrina/v1/posts/2054615748157604003" \
  -H "Authorization: Bearer $CATRINA_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"Estado_Revision":"Aprobado","QA_Status":"PASS","Revisor":"alfonso"}'

:: endpoints::rest :: 10 rutas ::

base: https://api.terrauniversalis.mx/catrina/v1

#métodopathuso
1GET/postsListar · filtros estado/community/qa/batch · page/limit
2GET/posts/{ID_Post}Obtener por pk
3POST/postsCrear · upsert ?upsert=1
4PATCH/posts/{ID_Post}Actualización parcial
5DELETE/posts/{ID_Post}Soft-delete · ?hard=1 admin
6GET/export/csvdescargar csv · 51 cols
7GET/export/jsondescargar json · snapshot
8POST/ingest/csvmultipart file · upsert ID_Post
9GET/statsKPIs Streamlit / Power BI
10POST/webhook/post-updatedPower Automate / Teams

:: openapi::3.0.3 :: catrina_openapi.yaml

abrir ↗
cargando…

:: conexion::streamlit :: dashboard::python ::

catrina_streamlit_app.py — KPIs, Plotly por community/verification, tabla editorial, PATCH en línea.

pip install streamlit pandas requests plotly
export CATRINA_API_BASE="https://api.terrauniversalis.mx/catrina/v1"
export CATRINA_API_TOKEN="eyJhbGciOi..."
streamlit run catrina_streamlit_app.py

:: notas::deploy :: sistemas ::

  1. Replicar esquema 51 columnas. PK ID_Post (índice único). SK URL.
  2. Backend FastAPI/Node con 10 endpoints y contrato OpenAPI.
  3. Azure AD App Registration · roles editor / revisor / produccion / admin · JWT.
  4. Ingesta inicial: POST /ingest/csv con final_production_package_control.csv (upsert).
  5. Power Automate escucha /webhook/post-updated → Teams #catrina-editorial.
  6. Publicar Streamlit (App Service / Container Apps).
  7. Backup diario del CSV canónico a OneDrive Terrauniversalis.

contacto::sistemas · owner alfonso @ terrauniversalis · sistemas@terrauniversalis.mx · #catrina-editorial

entrega::sistemas · csv · json · openapi · streamlit.py

::::mayan::sync::catrina::powerapp::control:::: · ::::mayan::sync::catrina::control:::: · Panchita
terra sls · ::::terra::sls:::: ♾