2026-09-13 — Turismo: Places (New) + Places Aggregate + BigQuery
Qué se decidió y veredicto final
-
Lo que importa ya funciona. La key estándar de la org responde a
places.googleapis.com/v1/places:searchTextconrating,userRatingCountyreviewsreales en español. El conectorgoogleplaces.tstiene la señal de sobreprecio que CF.md necesita. La llave anterior era “account-bound” y Places la rechazaba (“Expected OAuth2”); se sustituyó por key estándar. -
BigQuery es sumidero opcional, no columna. CF.md (Cloudflare MCP) corre sobre Workers + KV + DuckDB + Airflow; no usa BigQuery. La app ya lo soporta como sink opcional por env vars. Se creó el dataset
estado_turismoy la tablaobservacionesenyt-extract-505518por completitud, pero no es requisito del retrieval. -
ADC local owner, sin llave SA. La org bloquea creación de llaves de cuenta de servicio (
iam.disableServiceAccountKeyCreation, enforced). Para desarrollo local/usar BQ hoy:GOOGLE_APPLICATION_CREDENTIALSvacío → usa ADC (owner del proyecto). Para el servidor (Vercel/Workers) se resolverá con Workload Identity Federation cuando se decida; la política de la org lo impide por ahora. -
Places Aggregate API — endpoint correcto es
areainsights.googleapis.com(endpointhttps://areainsights.googleapis.com/v1:computeInsights), NOplacesaggregate.googleapis.com. Habilita “Places Aggregate API”; conteos por estrato (precio nivel / rating / tipo / operating status) sin abrir lugar por lugar. Complementa el conteo manual de competencia por estrato.
Acciones realizadas
yt-extract-505518: datasetestado_turismo, tablaobservaciones(destino, periodo, metrica, valor, fuente, modo, n, capturado) creados víabq mk.- Verificación con curl: key estándar devuelve rating+reseñas. ✅
.envajustado:BQ_DATASET=estado_turismo, ADC local.- Política de la org dejada como estaba (no se relajó; solo hereda).
Reconciliación con OSS.md (2026-09-13)
OSS.md (512 líneas) refuerza CF.md: stack target es open-source-first, soberanía de datos: DuckDB + Parquet + PostgreSQL + Apache Airflow + Iceberg, todo embebido/on-prem. Lista explícitamente en “Qué NO usar”:
❌ BigQuery (cloud-only, soberanía de datos)
Conclusión: BigQuery NO es la arquitectura target. El dataset/tabla
estado_turismo crean un sumidero opcional (env-gated) para la entrega
académica/prototipo y para correr el prototipo con Places (New) reviews
reales. En producción el almacén principal es DuckDB, igual que en CF.md.
No hay conflicto entre lo aprendido y el plan OSS.md; solo aclarar el rol del
sink para no parecer lock-in cloud en la evaluación.
Pendiente (futuro)
- Deploy server: WIF en lugar de llave SA (org lo exige).
- CF.md menciona “lugares bajo el capó” que ya no scrapea: actualizar a Places (New) + includedType si se retoma ese doc.