> For the complete documentation index, see [llms.txt](https://v2.dataos.info/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://v2.dataos.info/concepts/resources/vulcan/components.md).

# Components

Components are the building blocks of a Vulcan project.

They define how data is transformed, validated, described, and served.

## What lives here

Use this section when you need to:

* define transformation logic in models
* validate model logic with tests
* block bad data at runtime with audits and assertions
* monitor datasets with DQ checks
* expose business-friendly semantic definitions
* extend projects with advanced features

## How components fit together

In most projects, the flow looks like this:

1. Build tables or views with **models**.
2. Validate logic with **tests** (controlled inputs and expected outputs).
3. Block bad data at runtime with **audits**, attached to models as **assertions**.
4. Monitor data over time with **DQ checks** (`kind: dq`).
5. Expose curated definitions through **semantics**.
6. Extend behavior with **advanced features**.

```mermaid
%%{init: {"theme":"base","themeVariables":{"fontFamily":"PP Neue Montreal, Inter, Helvetica Neue, Arial, sans-serif","fontSize":"14px","primaryColor":"#EDE9E5","primaryTextColor":"#242422","primaryBorderColor":"#242422","lineColor":"#242422","secondaryColor":"#D6CDC6","tertiaryColor":"#FFFFFF","clusterBkg":"#EDE9E5","clusterBorder":"#54DED1","edgeLabelBackground":"#FFFFFF"},"flowchart":{"curve":"basis","padding":12,"nodeSpacing":40,"rankSpacing":50}}}%%
graph LR
    A[Models] --> B[Tests]
    A --> C[Audits]
    A --> D[Data Quality]
    A --> E[Semantics]
    A --> F[Advanced Features]

    classDef primary-teal fill:#54DED1,color:#202F36,stroke:#009293,stroke-width:1.5px,font-weight:600;
    classDef surface      fill:#FFFFFF,color:#242422,stroke:#242422,stroke-width:1px;

    class A primary-teal;
    class B,C,D,E,F surface;
```

The model is the center of gravity. Everything else, tests, audits, DQ checks, semantics, and advanced features, attaches to a model. Get the model right first; the rest only has something to validate or expose once it exists.

## Choose a component

<table data-view="cards"><thead><tr><th></th><th data-card-target data-type="content-ref"></th></tr></thead><tbody><tr><td><strong>Model</strong><br>Define transformations, metadata, scheduling, and materialization behavior.</td><td><a href="/pages/GZC7liLbePz62jj1umrD">/pages/GZC7liLbePz62jj1umrD</a></td></tr><tr><td><strong>Tests</strong><br>Validate model logic with controlled inputs and expected outputs.</td><td><a href="/pages/xu3eLCwxfpleWMubXvi3">/pages/xu3eLCwxfpleWMubXvi3</a></td></tr><tr><td><strong>Assertions</strong><br>Attach audits to models to block bad data at runtime.</td><td><a href="/pages/Fn68cr19smJW8fERbD53">/pages/Fn68cr19smJW8fERbD53</a></td></tr><tr><td><strong>Data Quality</strong><br>Apply reusable DQ checks to monitor datasets over time.</td><td><a href="/pages/R5Idbtm3QExwi0msjRhZ">/pages/R5Idbtm3QExwi0msjRhZ</a></td></tr><tr><td><strong>Semantics</strong><br>Map technical models to business dimensions, measures, and metrics.</td><td><a href="/pages/NABrfkGb2GYIJ6lulO1c">/pages/NABrfkGb2GYIJ6lulO1c</a></td></tr><tr><td><strong>Advanced Features</strong><br>Use macros, signals, and custom materializations to extend Vulcan.</td><td><a href="/pages/zR5UU0epr9P9pnETayHZ">/pages/zR5UU0epr9P9pnETayHZ</a></td></tr></tbody></table>

## Quick guidance

Start with **Model** if you are building a pipeline.

Add **Tests** when you want confidence in transformation logic before deployment.

Use **Assertions** (and the audits behind them) and **Data Quality** checks when you need runtime validation on produced data.

Use **Semantics** when the project must serve business users, BI tools, or APIs.

## Best practices

Keep models focused and composable.

Use tests for logic correctness, audits and assertions to block bad data at runtime, and DQ checks to monitor it over time.

Add semantics after the underlying models are stable and well named.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://v2.dataos.info/concepts/resources/vulcan/components.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
