Project structure

A LeapView source root is a directory of project resources. Connections and sources provide governed inputs; Models, semantic models, pipelines, and dashboards reference one another by stable IDs. The source root is portable authoring input: the durable Project identity is bound to the target instance, not stored in an authored leapview.yaml file.

dashboards/
  connections/
    warehouse.yaml
  sources/
    warehouse.orders.yaml
  models/
    orders.yaml
  semantic-models/
    sales.yaml
  pipelines/
    sales-refresh.yaml
  dashboards/
    executive-sales.yaml
  access/
    sales-analysts.yaml

Source-root discovery

Pass the directory containing these conventional resource directories to the CLI. LeapView discovers supported YAML resources from the source root; there is no project manifest or include list to maintain. Keep files in the directory for their kind, use one stable ID per resource, and avoid overlapping copies.

The six documented authoring resource kinds are Connection, Source, Model, SemanticModel, Pipeline, and Dashboard. Access declarations may still be compiled as policy inputs where enabled by the target, but they are not additional source-root catalog kinds. Public dashboard publication is a target-owned operation, not a source-root resource.

Resource layers

  • Connections define how LeapView reaches physical data.
  • Sources use a connection and provide stable logical names, paths, and field definitions.
  • Models transform permitted sources into reusable analytical outputs.
  • Semantic models define datasets, dimensions, metrics, and relationships across semantic datasets. Shared dimensions can serve multiple semantic consumers in the same graph.
  • Pipelines select a semantic model and optionally define named schedules with explicit timezone, late-start, and concurrency policy.
  • Dashboards compose semantic queries into filters, visuals, tables, pages, and layout.

Managed-data planning and revision activation operate at project scope. A deployment can therefore pin a consistent set of shared input revisions while changing several dependent resources atomically.

Resource identity and metadata

Every authored analytical resource uses the versioned apiVersion, kind, metadata, and spec envelope. metadata.id is the explicit immutable graph identity; metadata.name is the stable project-local name. displayName, description, owner, and tags communicate intent without changing identity.

The target supplies the durable Project identity and environment when a source root is planned or published. Deploy the same source root to separate dev, staging, and production targets instead of adding environment or workspace containers to YAML.

Validate discovery

Validate from the repository directory that contains the source root:

go run ./cmd/leapview validate --source-root dashboards

Validation catches duplicate resources, invalid references, unsupported fields, and other contract failures before deployment. Use the generated pages for Connection, Source, Model, SemanticModel, Pipeline, and Dashboard field details.