Docs / Getting Started

Creá tu primer workspace

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:

  1. Una URL de instancia (la que te dio tu operator, o https://my.looky.studio si estás en el deploy gestionado) y un looky login <url> <local_root> funcionando.
  2. Un billing account activo seteado en ese linked root (looky billing list lo muestra, looky billing use <billing_account_id> lo selecciona).
  3. 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

  1. 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"

    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.

  2. Entrá a la carpeta nueva y confirmá que el CLI la resuelve:
    cd <workspace_slug>
    looky status

    looky status resuelve el workspace id como <billing_account_id>/<workspace_slug> y confirma que el CLI está hablando con la instancia correcta. No corras looky validate todaví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>.