Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

291
Vistas
Consumo de BigQuery API Client a través de middleware y ubicación de archivos secrets.json

Quiero usar una carpeta de secretos para almacenar mi bigquery api client secrets json y usar la biblioteca de cliente de BigQuery para el nodo para realizar consultas a la base de datos. Pero en la documentación , muestra la forma de cargar las credenciales desde un archivo json y no directamente.

Estoy usando mecanografiado para consultar una tabla y agregar una fila. En NEXT js, estoy un poco confundido acerca de cómo acceder a la ruta de una carpeta de secretos que no estará expuesta al lado del cliente y permanece en mi middleware.

Aquí está la función para el mismo:

 import type { NextApiHandler } from 'next'; import axios from 'axios'; import { BigQuery } from '@google-cloud/bigquery'; import bqSecrets from '../../../bigquery/keys.json'; const options = { keyFilename: '../../../secrets/keys.json', projectId: 'XXXXXXXXXXXXXXXXXXXXXX', }; const bigquery = new BigQuery(options); const submitUserData: NextApiHandler = async (request, response) => { const { geoData, googleData, post, userRole } = request.body; if (!post) response.json({ error: false, msg: 'Not Required' }); else { delete googleData.isAuthenticated; try { const rep = await bigquery .dataset('stackconnect') .table('googleoAuth') .insert([requestPayload]); console.log(await rep); response.json({ error: false, msg: 'Success' }); } catch (e) { console.log('Error = ', e); response.json({ error: true, msg: 'Error' }); } } };

Pero esto arroja un error que dice: File not Found . ¿Alguien puede ayudarme a identificar cómo ubicar el archivo en NEXT o cómo puedo pasar directamente los datos JSON usando BQ Node Client?

Además, quiero saber en NEXT, ¿cuál es el lugar ideal para almacenar secretos que no están expuestos al lado del cliente?

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Después de profundizar en el código fuente, me di cuenta de que hay un atributo llamado credenciales, por lo que pude hacerlo funcionar haciendo la siguiente modificación:

 import bqSecrets from '../../../bigquery/keys.json'; const options = { credentials: bqSecrets, projectId: 'project_id', }; const bigquery = new BigQuery(options);

Espero que esto ayude a cualquiera que busque inyectar directamente las credenciales json en el cliente de nodo de BigQuery.

Además, todavía no estoy muy seguro acerca de la estructura de archivos de NEXT, ya que todavía no sé si otros activos además de los ubicados en la carpeta pública están expuestos al lado del cliente o no.

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda