El escenario que cubre esta página
Hiciste sign in en tu instancia de looky y tenés cero workspaces — nadie te compartió ninguno y tu operator no seedeó un starter. Esta página te lleva por crear tu primer workspace desde cero y publicar un dashboard chiquito para que veas el loop end-to-end.
Si un colega ya te compartió un workspace, no necesitás esta página — necesitás Sources y Publish para empezar a contribuir. looky workspaces desde tu linked root te dice a qué workspaces tenés acceso de verdad.
Antes de empezar
Esta página asume que ya pasaste por Acceder a tu instancia — es decir, tenés:
- Una URL de instancia (la que te dio tu operator, o
https://my.looky.studiosi estás en el deploy gestionado) y unlooky login <url> <local_root>funcionando. - Un billing account activo seteado en ese linked root (
looky billing listlo muestra,looky billing use <billing_account_id>lo selecciona). - Un directorio local root en disco y un subdirectorio de billing adentro:
<local_root>/<billing_account_id>/. Cada workspace que crees vive bajo ese path.
Si te falta alguno, arreglalo primero — los comandos de abajo asumen que el CLI sabe a qué instancia hablarle y a qué billing account asignar el nuevo workspace.
Sanity check rápido: corré looky whoami desde <local_root> y confirmá que imprime la instancia y email correctos. Después cd <local_root>/<billing_account_id> — desde ahí vas a correr todos los comandos de esta página.
Crear el workspace
- Desde el directorio de billing, registrá el workspace en el servidor y scaffoldeá el esqueleto local en un solo paso:
cd <local_root>/<billing_account_id> looky create <workspace_slug> --name "My Workspace" --description "First build workspace"Set-Location <local_root>\<billing_account_id> looky create <workspace_slug> --name "My Workspace" --description "First build workspace"El CLI llama a la API de tu instancia para registrar el workspace (así aparece en la UI y en
looky workspaces) y después escribe la estructura local de carpetas bajo./<workspace_slug>/. Vos sos el owner del workspace con acceso de write. - Entrá a la carpeta nueva y confirmá que el CLI la resuelve:
cd <workspace_slug> looky statusSet-Location <workspace_slug> looky statuslooky statusresuelve el workspace id como<billing_account_id>/<workspace_slug>y confirma que el CLI está hablando con la instancia correcta. No corraslooky validatetodavía — no hay sources deployadas ni contenido para compilar, así que el resultado no aporta. Validá después de la sección "Publish y verificar" más abajo.
Configurar tu data source
Editá runtime/sources.runtime.yml para apuntar al warehouse que querés consultar. El shape exacto está documentado en Sources; ejemplos mínimos abajo.
BigQuery — usando el dataset público thelook_ecommerce como playground:
sources:
ecommerce:
type: bigquery
project_id: my-gcp-billing-project
credentials_file: my-workspace-bq.json
datasets:
- bigquery-public-data.thelook_ecommerce
Dropeá el JSON del service account en secrets/my-workspace-bq.json. Mirá Acceso al Dataset de BigQuery para saber cómo emitir ese archivo.
Postgres — DSN (URI libpq sin user:password@) más un JSON de credenciales en secrets/:
sources:
warehouse:
type: postgres
dsn: "postgresql://db.example.com:5432/analytics?sslmode=require"
credentials_file: warehouse.json
Dropeá el JSON con user/password en secrets/warehouse.json:
{"user": "looky_reader", "password": "..."}
MySQL — DSN mysql://host:port/database (sin user:password@, sin query string) más un JSON de credenciales en secrets/:
sources:
shop:
type: mysql
dsn: "mysql://db.example.com:3306/shop"
credentials_file: shop.json
Dropeá el JSON con user/password en secrets/shop.json (mismo shape que Postgres).
Una vez que el archivo está en lugar, pusheá el runtime config al servidor antes de cualquier content push:
looky push --settings
Este es el único push que sube runtime/** y secrets/**. Cada looky push subsiguiente envía solo content y asume que las settings ya están deployadas.
Archivos mínimos para el primer dashboard
content/models/sales.malloy
##! experimental.parameters
source: sales() is ecommerce.table('bigquery-public-data.thelook_ecommerce.order_items') extend {
dimension: product is product_name
measure: sales_amount is sum(sale_price)
}
query: total_sales is sales() -> {
aggregate: sales_amount
}
query: sales_by_product is sales() -> {
group_by: product
aggregate: sales_amount
order_by: sales_amount desc
limit: 10
}
content/visualizations/sales_total_kpi.yml
id: sales_total_kpi
title: Total Sales
query: "models/sales.malloy::total_sales"
type: kpi
mapping:
value: sales_amount
published: true
content/visualizations/sales_by_product_bar.yml
id: sales_by_product_bar
title: Sales by Product
query: "models/sales.malloy::sales_by_product"
type: bar
mapping:
x: product
y: sales_amount
published: true
content/dashboards/sales_overview.yml
id: sales_overview
title: Sales Overview
layout_mode: fluid_grid
items:
- visualization: sales_total_kpi
- visualization: sales_by_product_bar
published: true
Publish y verificar
looky validate
looky diff
looky push
looky list visualizations
looky list dashboards
Abrí la URL de tu instancia en un browser (la misma que usaste en looky login), navegá al workspace, y confirmá que el dashboard sales_overview es visible y renderiza los dos items.
Un looky push verde significa que el servidor aceptó los archivos — no que el dashboard esté correcto. Siempre abrí la UI y mirá antes de dar por hecho el workspace.
Estructura de directorios esperada
<local_root>/
<billing_account_id>/
<workspace_slug>/
workspace.yml
content/
models/
visualizations/
dashboards/
exports/
runtime/
sources.runtime.yml
secrets/
Todos los comandos de workspace del CLI asumen que corrés desde el root de <workspace_slug>.